From b119144251ed7a52ca9c1eb9ee2fe04e5a984dbc Mon Sep 17 00:00:00 2001 From: Ludovic CHEVALIER Date: Fri, 5 Oct 2012 16:33:19 +0200 Subject: [PATCH] [Identifiant] +numerotation depuis la facture --- remembership.py | 39 ++++++++++++--------------------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/remembership.py b/remembership.py index 2072258..6dde317 100644 --- a/remembership.py +++ b/remembership.py @@ -21,6 +21,8 @@ # ############################################################################## +import time + from osv import osv from osv import fields @@ -95,33 +97,16 @@ Partner() class account_invoice_line(osv.osv): _inherit='account.invoice.line' - def write(self, cr, uid, ids, vals, context=None): - """Overrides orm write method - """ - member_line_obj = self.pool.get('membership.membership_line') - res = super(account_invoice_line, self).write(cr, uid, ids, vals, context=context) - for line in self.browse(cr, uid, ids, context=context): - if line.invoice_id.type == 'out_invoice': - ml_ids = member_line_obj.search(cr, uid, [('account_invoice_line', '=', line.id)], context=context) - if line.product_id and line.product_id.membership and not ml_ids: - # Product line has changed to a membership product - date_from = line.product_id.membership_date_from - date_to = line.product_id.membership_date_to - if line.invoice_id.date_invoice > date_from and line.invoice_id.date_invoice < date_to: - date_from = line.invoice_id.date_invoice - member_line_obj.create(cr, uid, { - 'partner': line.invoice_id.partner_id.id, - 'membership_id': line.product_id.id, - 'member_price': line.price_unit, - 'date': time.strftime('%Y-%m-%d'), - 'date_from': date_from, - 'date_to': date_to, - 'account_invoice_line': line.id, - }, context=context) - if line.product_id and not line.product_id.membership and ml_ids: - # Product line has changed to a non membership product - member_line_obj.unlink(cr, uid, ml_ids, context=context) - return res + def create(self, cr, uid, vals, context=None): + result = super(account_invoice_line, self).create(cr, uid, vals, context=context) + line = self.browse(cr, uid, result, 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}) + return result account_invoice_line() + + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: -- 2.20.1