From deb2f3a9547135fae2074572ae68d5aa850f4042 Mon Sep 17 00:00:00 2001 From: "dle@openerp.com" <> Date: Mon, 10 Dec 2012 17:00:41 +0100 Subject: [PATCH] [ADD]Auto add partner account number bzr revid: dle@openerp.com-20121210160041-8r68a86w1763xh08 --- addons/l10n_be_coda/l10n_be_coda.py | 36 +++++++++++++++++++ .../wizard/account_coda_import.py | 1 + 2 files changed, 37 insertions(+) diff --git a/addons/l10n_be_coda/l10n_be_coda.py b/addons/l10n_be_coda/l10n_be_coda.py index 40792dd3d24..07850a736f1 100644 --- a/addons/l10n_be_coda/l10n_be_coda.py +++ b/addons/l10n_be_coda/l10n_be_coda.py @@ -29,6 +29,42 @@ class account_bank_statement(osv.osv): 'coda_note': fields.text('CODA Notes'), } + +class account_bank_statement_line(osv.osv): + _inherit = 'account.bank.statement.line' + _columns = { + 'coda_account_number': fields.char('Account Number', size=64, help="The Counter Party Account Number") + } + + def create(self, cr, uid, data, context=None): + if 'partner_id' in data and data['partner_id'] and 'coda_account_number' in data and data['coda_account_number']: + acc_number_ids = self.pool.get('res.partner.bank').search(cr, uid, [('acc_number', '=', data['coda_account_number'])]) + if len(acc_number_ids) == 0: + try: + type_model, type_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'bank_normal') + type_id = self.pool.get('res.partner.bank.type').browse(cr,uid,type_id,context=context) + self.pool.get('res.partner.bank').create(cr, uid, {'acc_number': data['coda_account_number'],'partner_id': data['partner_id'],'state': type_id.code},context=context) + except ValueError: + pass + return super(account_bank_statement_line, self).create(cr, uid, data, context=context) + + + + def write(self, cr, uid, ids, vals, context=None): + super(account_bank_statement_line,self).write(cr, uid, ids, vals, context) + if 'partner_id' in vals: + for line in self.pool.get('account.bank.statement.line').browse(cr, uid, ids, context=context): + if line.coda_account_number: + acc_number_ids = self.pool.get('res.partner.bank').search(cr, uid, [('acc_number', '=', line.coda_account_number)]) + if len(acc_number_ids) == 0: + try: + type_model, type_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'bank_normal') + type_id = self.pool.get('res.partner.bank.type').browse(cr,uid,type_id,context=context) + self.pool.get('res.partner.bank').create(cr, uid, {'acc_number': line.coda_account_number,'partner_id': vals['partner_id'],'state': type_id.code},context=context) + except ValueError: + pass + return True + account_bank_statement() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_be_coda/wizard/account_coda_import.py b/addons/l10n_be_coda/wizard/account_coda_import.py index ba7ace38ab6..d5f4033c5a3 100644 --- a/addons/l10n_be_coda/wizard/account_coda_import.py +++ b/addons/l10n_be_coda/wizard/account_coda_import.py @@ -362,6 +362,7 @@ class account_coda_import(osv.osv_memory): 'ref': line['ref'], 'sequence': line['sequence'], 'voucher_id': line['voucher_id'], + 'coda_account_number': line['counterpartyNumber'], } self.pool.get('account.bank.statement.line').create(cr, uid, data, context=context) if statement['coda_note'] != '':