[Identifiant] +numerotation depuis la facture
authorLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Fri, 5 Oct 2012 14:33:19 +0000 (16:33 +0200)
committerLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Fri, 5 Oct 2012 14:33:19 +0000 (16:33 +0200)
remembership.py

index 2072258..6dde317 100644 (file)
@@ -21,6 +21,8 @@
 #
 ##############################################################################
 
+import time
+
 from osv import osv
 from osv import fields
 
@@ -95,33 +97,16 @@ Partner()
 class account_invoice_line(osv.osv):
     _inherit='account.invoice.line'
 
-    def write(self, cr, uid, ids, vals, context=None):
-        """Overrides orm write method
-        """
-        member_line_obj = self.pool.get('membership.membership_line')
-        res = super(account_invoice_line, self).write(cr, uid, ids, vals, context=context)
-        for line in self.browse(cr, uid, ids, context=context):
-            if line.invoice_id.type == 'out_invoice':
-                ml_ids = member_line_obj.search(cr, uid, [('account_invoice_line', '=', line.id)], context=context)
-                if line.product_id and line.product_id.membership and not ml_ids:
-                    # Product line has changed to a membership product
-                    date_from = line.product_id.membership_date_from
-                    date_to = line.product_id.membership_date_to
-                    if line.invoice_id.date_invoice > date_from and line.invoice_id.date_invoice < date_to:
-                        date_from = line.invoice_id.date_invoice
-                    member_line_obj.create(cr, uid, {
-                                    'partner': line.invoice_id.partner_id.id,
-                                    'membership_id': line.product_id.id,
-                                    'member_price': line.price_unit,
-                                    'date': time.strftime('%Y-%m-%d'),
-                                    'date_from': date_from,
-                                    'date_to': date_to,
-                                    'account_invoice_line': line.id,
-                                    }, context=context)
-                if line.product_id and not line.product_id.membership and ml_ids:
-                    # Product line has changed to a non membership product
-                    member_line_obj.unlink(cr, uid, ml_ids, context=context)
-        return res
+    def create(self, cr, uid, vals, context=None):
+        result = super(account_invoice_line, self).create(cr, uid, vals, context=context)
+        line = self.browse(cr, uid, result, context=context)
+        if line.invoice_id.type == 'out_invoice':
+            if line.product_id and line.product_id.membership and not line.invoice_id.partner_id.member_ident:
+                mbr_id = self.pool.get('ir.sequence').get(cr, uid, 'member_ident')
+                self.pool.get('res.partner').write(cr, uid, line.invoice_id.partner_id.id, {'member_ident': mbr_id})
+        return result
 
 account_invoice_line()
+
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: