diff --git a/base_transaction_id/invoice.py b/base_transaction_id/invoice.py index 7460495c..c8a71699 100644 --- a/base_transaction_id/invoice.py +++ b/base_transaction_id/invoice.py @@ -19,32 +19,30 @@ # ############################################################################## -from openerp.osv.orm import Model -from openerp.osv import fields +from openerp import models, fields, api -class AccountInvoice(Model): +class AccountInvoice(models.Model): _inherit = 'account.invoice' - _columns = { - 'transaction_id': fields.char( - 'Transaction id', - select=1, - help="Transaction id from the financial institute"), - } + transaction_id = fields.Char(string='Transaction ID', + index=True, + copy=False, + help="Transaction ID from the " + "financial institute") - def copy_data(self, cr, uid, id, default=None, context=None): - if default is None: - default = {} - default['transaction_id'] = False - return super(AccountInvoice, self).\ - copy_data(cr, uid, id, default=default, context=context) + @api.multi + def finalize_invoice_move_lines(self, move_lines): + """ Propagate the transaction_id from the invoice to the move lines. - def finalize_invoice_move_lines(self, cr, uid, invoice_browse, move_lines): - if invoice_browse.transaction_id: - invoice_account_id = invoice_browse.account_id.id - for line in move_lines: - # tuple (0, 0, {values}) - if invoice_account_id == line[2]['account_id']: - line[2]['transaction_ref'] = invoice_browse.transaction_id + The transaction id is written on the move lines only if the account is + the same than the invoice's one. + """ + for invoice in self: + if invoice.transaction_id: + invoice_account_id = invoice.account_id.id + for line in move_lines: + # tuple (0, 0, {values}) + if invoice_account_id == line[2]['account_id']: + line[2]['transaction_ref'] = invoice.transaction_id return move_lines