From: Ludovic CHEVALIER Date: Sun, 16 Dec 2012 10:16:04 +0000 (+0100) Subject: Merge branch 'master' into membership_grouped X-Git-Url: http://git.cyclocoop.org/?p=burette%2Fremembership.git;a=commitdiff_plain;h=c045b91ccff4120c9084e57101955aa64892acf0;hp=45b3ce93e9483b672d4b2258e1ff3dd228ece786 Merge branch 'master' into membership_grouped --- diff --git a/__openerp__.py b/__openerp__.py index 0adc843..d71b1ac 100644 --- a/__openerp__.py +++ b/__openerp__.py @@ -36,6 +36,7 @@ 'data/membership_sequence.xml', 'view/partner.xml', 'view/point_of_sale.xml', + 'view/membership.xml', ], 'update_xml': [], 'demo_xml': [], diff --git a/remembership.py b/remembership.py index 7115b86..58ba74c 100644 --- a/remembership.py +++ b/remembership.py @@ -39,16 +39,31 @@ class Partner(osv.osv): Partner() +class Product(osv.osv): + _inherit = 'product.product' + + _columns = { + 'membership_grouped': fields.boolean('Grouped membership product', help='Check if it\'s a grouped membership product.'), + 'membership_date2date': fields.boolean('Date to date membership product', help='Check if it\'s a date to date membership product.'), + } + +Product() + + class account_invoice_line(osv.osv): _inherit = 'account.invoice.line' def create(self, cr, uid, vals, context=None): res = super(account_invoice_line, self).create(cr, uid, vals, context=context) line = self.browse(cr, uid, res, context=context) - if line.invoice_id.type == 'out_invoice': - if line.product_id and line.product_id.membership and not line.invoice_id.partner_id.member_ident: - mbr_id = self.pool.get('ir.sequence').get(cr, uid, 'member_ident') - self.pool.get('res.partner').write(cr, uid, line.invoice_id.partner_id.id, {'member_ident': mbr_id}) + + if line.invoice_id.type == 'out_invoice' and line.product_id and line.product_id.membership: + partners = [line.invoice_id.partner_id] + partners.extend(line.invoice_id.partner_id.associate_members) + for i in partners: + if not i.member_ident: + mbr_id = self.pool.get('ir.sequence').get(cr, uid, 'member_ident') + self.pool.get('res.partner').write(cr, uid, i.id, {'member_ident': mbr_id}) return res account_invoice_line() diff --git a/view/membership.xml b/view/membership.xml new file mode 100644 index 0000000..6240239 --- /dev/null +++ b/view/membership.xml @@ -0,0 +1,36 @@ + + + + + Membership product + product.product + + + + + + + + {'invisible': [('membership_date2date','=',True)]} + + + {'invisible': [('membership_date2date','=',True)]} + + + + + product.product.form + product.product + + + + + + + + {'invisible': ['|',('membership','=',False),('membership_date2date','=',True)]} + + + + +