[PYTHON] +change partner in membership line if s-he is change in pos_order and pos_or... master
authorLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Fri, 1 Jul 2016 11:21:32 +0000 (13:21 +0200)
committerLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Fri, 1 Jul 2016 11:21:32 +0000 (13:21 +0200)
pos_membership.py

index 8df622e..e0b63c9 100644 (file)
@@ -668,11 +668,24 @@ class pos_order(osv.osv):
         return res
 
     def onchange_partner_id(self, cr, uid, ids, part=False, context=None):
+        """
+        - Change membership stop value if partner change
+        - Change partner in membership line if s·he is change
+        """
         if not part:
             return {'value': {}}
         res = super(pos_order, self).onchange_partner_id(cr, uid, ids, part=part, context=context)
         membership_stop = self.pool.get('res.partner').browse(cr, uid, part, context=context).membership_stop
         res['value']['membership_stop'] = membership_stop
+        ml_line_obj = self.pool.get('membership.membership_line')
+        pol_obj = self.pool.get('pos.order.line')
+        for id in ids:
+            pol_ids = pol_obj.search(cr, uid, [('order_id', '=', id)], context=context)
+            pols = pol_obj.browse(cr, uid, pol_ids, context=context)
+            for pol in pols:
+                if pol.product_id.membership:
+                    ml_line_ids = ml_line_obj.search(cr, uid, [('pos_order_line', '=', pol.id)], context=context)
+                    ml_line_obj.write(cr, uid, ml_line_ids, {'partner': part}, context=context)
         return res
 
     def _get_membership_stop(self, cr, uid, ids, name, args, context=None):