[module] +website lhc
authorLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Mon, 1 Oct 2012 12:33:50 +0000 (14:33 +0200)
committerLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Mon, 1 Oct 2012 12:33:50 +0000 (14:33 +0200)
__openerp__.py
remembership.py

index 6e9738d..eeb1df7 100644 (file)
@@ -29,6 +29,7 @@
     This module overload official OpenERP membership module for adding some functionnalities that could be useful.
     """,
     'author': 'L\'Heureux Cyclage - LHC',
+    'website': 'http://www.heureux-cyclage.org',
     'depends': ['membership'],
     'init_xml': [],
     'data': [
index 2004770..2072258 100644 (file)
@@ -92,4 +92,36 @@ class Partner(osv.osv):
 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
+
+account_invoice_line()
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: