'data/membership_sequence.xml',
'view/partner.xml',
'view/point_of_sale.xml',
+ 'view/membership.xml',
],
'update_xml': [],
'demo_xml': [],
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()
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+ <data>
+ <record id="view_remembership_products_form" model="ir.ui.view">
+ <field name="name">Membership product</field>
+ <field name="model">product.product</field>
+ <field name="inherit_id" ref="membership.membership_products_form"/>
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='categ_id']" position="after">
+ <field name="membership_grouped"/>
+ <field name="membership_date2date"/>
+ </xpath>
+ <xpath expr="//label[@for='membership_date_from']" position="attributes">
+ <attribute name="attrs">{'invisible': [('membership_date2date','=',True)]}</attribute>
+ </xpath>
+ <xpath expr="//div[child::field[@name='membership_date_from']]" position="attributes">
+ <attribute name="attrs">{'invisible': [('membership_date2date','=',True)]}</attribute>
+ </xpath>
+ </field>
+ </record>
+ <record id="view_remembership_product_normal_form" model="ir.ui.view">
+ <field name="name">product.product.form</field>
+ <field name="model">product.product</field>
+ <field name="inherit_id" ref="membership.product_normal_form_view"/>
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='membership']" position="after">
+ <field name="membership_grouped" attrs="{'invisible': [('membership','=', False)]}"/>
+ <field name="membership_date2date" attrs="{'invisible': [('membership','=', False)]}"/>
+ </xpath>
+ <xpath expr="//group[child::field[@name='membership_date_from']]" position="attributes">
+ <attribute name="attrs">{'invisible': ['|',('membership','=',False),('membership_date2date','=',True)]}</attribute>
+ </xpath>
+ </field>
+ </record>
+ </data>
+</openerp>