X-Git-Url: http://git.cyclocoop.org/?p=burette%2Fpos_membership.git;a=blobdiff_plain;f=pos_membership.py;h=e0b63c9908a3d116e16e6be037bc98ccd2703b9a;hp=8df622e2ceff29ef96a56ef334cfa7c26eae8ee4;hb=HEAD;hpb=d8dded4f5ea7cd47fb8045f4aa6890c693c69626 diff --git a/pos_membership.py b/pos_membership.py index 8df622e..e0b63c9 100644 --- a/pos_membership.py +++ b/pos_membership.py @@ -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):