diff --git a/addons/membership/membership.py b/addons/membership/membership.py index c192d77534a..167e0bcfb87 100644 --- a/addons/membership/membership.py +++ b/addons/membership/membership.py @@ -232,6 +232,13 @@ class Partner(osv.osv): list_partner.append(data.partner.id) return list_partner + def _get_invoice_partner(self, cr, uid, ids, context=None): + data_inv = self.pool.get('account.invoice').browse(cr, uid, ids, context) + list_partner = [] + for data in data_inv: + list_partner.append(data.partner_id.id) + return list_partner + def _membership_state(self, cr, uid, ids, name, args, context=None): res = {} for id in ids: @@ -436,7 +443,8 @@ class Partner(osv.osv): # 'membership_state': fields.function(_membership_state, method=True, string='Current membership state', # type='selection', selection=STATE, fnct_search=_membership_state_search), 'membership_state': fields.function(_membership_state, method=True, string='Current membership state', - type='selection',selection=STATE,store={'membership.membership_line':(_get_partner_id,['state'], 10), + type='selection',selection=STATE,store={'account.invoice':(_get_invoice_partner,['state'], 10), + 'membership.membership_line':(_get_partner_id,['state'], 10), 'res.partner':(lambda self,cr,uid,ids,c={}:ids, ['free_member'], 10)}), # 'associate_member': fields.many2one('res.partner', 'Associate member'), 'free_member': fields.boolean('Free member'), @@ -444,19 +452,22 @@ class Partner(osv.osv): # string='Start membership date', type='date', # fnct_search=_membership_start_search), 'membership_start': fields.function(_membership_start, method=True, - string='Start membership date', type='date',store={'membership.membership_line':(_get_partner_id,['state'], 10), + string='Start membership date', type='date',store={'account.invoice':(_get_invoice_partner,['state'], 10), + 'membership.membership_line':(_get_partner_id,['state'], 10), 'res.partner':(lambda self,cr,uid,ids,c={}:ids, ['free_member'], 10)}), # 'membership_stop': fields.function(_membership_stop, method=True, # string='Stop membership date', type='date', # fnct_search=_membership_stop_search), 'membership_stop': fields.function(_membership_stop, method=True, - string='Stop membership date', type='date',store={'membership.membership_line':(_get_partner_id,['state'], 10), + string='Stop membership date', type='date',store={'account.invoice':(_get_invoice_partner,['state'], 10), + 'membership.membership_line':(_get_partner_id,['state'], 10), 'res.partner':(lambda self,cr,uid,ids,c={}:ids, ['free_member'], 10)}), # 'membership_cancel': fields.function(_membership_cancel, method=True, # string='Cancel membership date', type='date', # fnct_search=_membership_cancel_search), 'membership_cancel': fields.function(_membership_cancel, method=True, - string='Cancel membership date', type='date',store={'membership.membership_line':(_get_partner_id,['state'], 10), + string='Cancel membership date', type='date',store={'account.invoice':(_get_invoice_partner,['state'], 10), + 'membership.membership_line':(_get_partner_id,['state'], 10), 'res.partner':(lambda self,cr,uid,ids,c={}:ids, ['free_member'], 10)}), } _defaults = {