From 6400a55c688843b7cc2b1d8a39464c8b8d54df65 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Tue, 24 Jan 2012 16:27:47 +0100 Subject: [PATCH] [FIX] account: fixed multi-company related stuffs on cash/bank statements bzr revid: qdp-launchpad@openerp.com-20120124152747-5ygkcu5z3i9awnw7 --- addons/account/account_bank_statement.py | 32 ++++++++++-------------- addons/account/account_view.xml | 9 ++++--- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py index bd31b01a41d..c255775b83b 100644 --- a/addons/account/account_bank_statement.py +++ b/addons/account/account_bank_statement.py @@ -52,8 +52,9 @@ class account_bank_statement(osv.osv): journal_pool = self.pool.get('account.journal') journal_type = context.get('journal_type', False) journal_id = False + company_id = self.pool.get('res.company')._company_default_get(cr, uid, 'account.bank.statement',context=context) if journal_type: - ids = journal_pool.search(cr, uid, [('type', '=', journal_type)]) + ids = journal_pool.search(cr, uid, [('type', '=', journal_type),('company_id','=',company_id)]) if ids: journal_id = ids[0] return journal_id @@ -169,30 +170,21 @@ class account_bank_statement(osv.osv): 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.bank.statement',context=c), } - def onchange_date(self, cr, user, ids, date, context=None): + def onchange_date(self, cr, uid, ids, date, company_id, context=None): """ - Returns a dict that contains new values and context - @param cr: A database cursor - @param user: ID of the user currently logged in - @param date: latest value from user input for field date - @param args: other arguments - @param context: context arguments, like lang, time zone - @return: Returns a dict which contains new values, and context + Find the correct period to use for the given date and company_id, return it and set it in the context """ res = {} period_pool = self.pool.get('account.period') if context is None: context = {} - - pids = period_pool.search(cr, user, [('date_start','<=',date), ('date_stop','>=',date)]) + ctx = context.copy() + ctx.update({'company_id': company_id}) + pids = period_pool.find(cr, uid, dt=date, context=ctx) if pids: - res.update({ - 'period_id':pids[0] - }) - context.update({ - 'period_id':pids[0] - }) + res.update({'period_id': pids[0]}) + context.update({'period_id': pids[0]}) return { 'value':res, @@ -385,8 +377,10 @@ class account_bank_statement(osv.osv): ORDER BY date DESC,id DESC LIMIT 1', (journal_id, 'draft')) res = cr.fetchone() balance_start = res and res[0] or 0.0 - account_id = self.pool.get('account.journal').read(cr, uid, journal_id, ['default_debit_account_id'], context=context)['default_debit_account_id'] - return {'value': {'balance_start': balance_start, 'account_id': account_id}} + journal_data = self.pool.get('account.journal').read(cr, uid, journal_id, ['default_debit_account_id', 'company_id'], context=context) + account_id = journal_data['default_debit_account_id'] + company_id = journal_data['company_id'] + return {'value': {'balance_start': balance_start, 'account_id': account_id, 'company_id': company_id}} def unlink(self, cr, uid, ids, context=None): stat = self.read(cr, uid, ids, ['state'], context=context) diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index 3d34396248b..3a28ea9a244 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -594,7 +594,7 @@
- + @@ -655,7 +655,8 @@ - + + @@ -2620,7 +2621,7 @@ action = pool.get('res.config').next(cr, uid, [], context) - + @@ -2693,7 +2694,7 @@ action = pool.get('res.config').next(cr, uid, [], context) - +