[PYTHON] ~fix partner last membership product problem
authorLudovic CHEVALIER <ludovic@beurresarrasin.net>
Wed, 13 Jan 2016 15:48:51 +0000 (16:48 +0100)
committerLudovic CHEVALIER <ludovic@beurresarrasin.net>
Wed, 13 Jan 2016 15:48:51 +0000 (16:48 +0100)
etudesetchantiersidf.py

index 1f40102..468996d 100644 (file)
@@ -31,15 +31,15 @@ from openerp.osv import fields
 class Partner(osv.osv):
     '''Partner'''
     _inherit = 'res.partner'
-    '''
-    def _get_invoice_partner(self, cr, uid, ids, context=None):
-        res = super(Partner, self)._get_invoice_partner(cr, uid, ids, context=context)
-        return res
 
     def _get_partner_id(self, cr, uid, ids, context=None):
-        res = super(Partner, self)._get_partner_id(cr, uid, ids, context=context)
-        return res
-    '''
+        return super(Partner, self.pool['res.partner'])._get_partner_id(cr, uid, ids, context=context)
+
+    def _get_invoice_partner(self, cr, uid, ids, context=None):
+        return super(Partner, self.pool['res.partner'])._get_invoice_partner(cr, uid, ids, context=context)
+
+    def _get_order_partner(self, cr, uid, ids, context=None):
+        return super(Partner, self.pool['res.partner'])._get_order_partner(cr, uid, ids, context=context)
 
     def _get_last_mb_product(self, cr, uid, ids, name, args, context=None):
         """Return the last membership product buy by a user"""
@@ -51,28 +51,26 @@ class Partner(osv.osv):
             line_id = member_line_obj.search(cr, uid, [
                 ('partner', '=', partner_id),
                 ('date_cancel', '=', False)
-            ], limit=1, order='date_from', context=context)
+            ], limit=1, order='date_from desc', context=context)
             if line_id:
                 product_id = member_line_obj.read(cr, uid, line_id[0], [name], context=context)[name][0]
                 res[partner.id] = {name: product_id}
         return res
 
-
     _columns = {
         'membership_id': fields.function(
             _get_last_mb_product, multi='membership_id',
             string='Last membership product',
             type='many2one',
             obj='product.product',
-            store=True,
+            store = {
+                'account.invoice': (_get_invoice_partner, ['state'], 11),
+                'pos.order': (_get_order_partner, ['state', 'partner_id'], 11),
+                'membership.membership_line': (_get_partner_id, ['state'], 10),
+                'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['free_member'], 10)
+                }
             ),
     }
-'''
-store = {
-    'account.invoice': (_get_invoice_partner, ['state'], 10),
-    'membership.membership_line': (_get_partner_id, ['state'], 10, )
-    }
-'''
 
 Partner()