From f25bd906bf57c2df59d094c5bc918fcf2555b1ff Mon Sep 17 00:00:00 2001 From: Federico Cruz Date: Tue, 28 Oct 2014 19:10:40 -0600 Subject: [PATCH] Set correct company on invoices when working on multicompany environment In the last commit we used a new cursor for this problem, but in this time we make a browse for each contract like Pedro Baeza proposed --- .../account_analytic_analysis_recurring.py | 30 +++++-------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/contract/account_analytic_analysis_recurring.py b/contract/account_analytic_analysis_recurring.py index 23e52833..fc195803 100644 --- a/contract/account_analytic_analysis_recurring.py +++ b/contract/account_analytic_analysis_recurring.py @@ -243,30 +243,14 @@ class AccountAnalyticAccount(orm.Model): context['next_date'] = new_date # Force company for correct evaluate domain access rules context['force_company'] = contract.company_id.id - - # Create new cursor for handle multi company environments - from openerp import pooler - db, pool = pooler.get_db_and_pool(cr.dbname) - cursor = db.cursor() - try: - this = pool.get('account.analytic.account') - # Need to reload contract on new cursor for prevent - # ORM optimizations use same company for load all - # partner properties - contract = this.browse( - cursor, uid, contract.id, context=context - ) - this._prepare_invoice( - cursor, uid, contract, context=context - ) - cursor.commit() # commit results - except Exception: - cursor.rollback() # error, rollback everything - finally: - cursor.close() # always close cursor - + # Re-read contract with correct company + contract = self.browse(cr, uid, contract.id, context=context) + self._prepare_invoice( + cr, uid, contract, context=context + ) self.write( cr, uid, [contract.id], {'recurring_next_date': new_date.strftime('%Y-%m-%d')}, - context=context) + context=context + ) return True