[IMP] account: add context in invoice onchange_partner_id method
authorRaphaël Valyi <rvalyi@gmail.com>
Fri, 4 Jul 2014 03:45:33 +0000 (00:45 -0300)
committerOlivier Dony <odo@openerp.com>
Sat, 5 Jul 2014 00:47:28 +0000 (02:47 +0200)
(Manual rebase of PR #915)

addons/account/account_invoice.py
addons/account/account_invoice_view.xml
addons/l10n_be_invoice_bba/invoice.py
addons/warning/warning.py

index 72e3ed2..1877364 100644 (file)
@@ -470,8 +470,10 @@ class account_invoice(osv.osv):
         osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
         return True
 
-    def onchange_partner_id(self, cr, uid, ids, type, partner_id,\
-            date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False, context=None):
+    def onchange_partner_id(self, cr, uid, ids, type, partner_id,
+                            date_invoice=False, payment_term=False,
+                            partner_bank_id=False, company_id=False,
+                            context=None):
         partner_payment_term = False
         acc_id = False
         bank_id = False
@@ -481,7 +483,8 @@ class account_invoice(osv.osv):
         if partner_id:
 
             opt.insert(0, ('id', partner_id))
-            p = self.pool.get('res.partner').browse(cr, uid, partner_id)
+            p = self.pool.get('res.partner').browse(cr, uid, partner_id,
+                                                    context=context)
             if company_id:
                 if (p.property_account_receivable.company_id and (p.property_account_receivable.company_id.id != company_id)) and (p.property_account_payable.company_id and (p.property_account_payable.company_id.id != company_id)):
                     property_obj = self.pool.get('ir.property')
@@ -500,8 +503,10 @@ class account_invoice(osv.osv):
                         msg = _('Cannot find a chart of accounts for this company, You should configure it. \nPlease go to Account Configuration.')
                         raise openerp.exceptions.RedirectWarning(msg, action_id, _('Go to the configuration panel'))
                     account_obj = self.pool.get('account.account')
-                    rec_obj_acc = account_obj.browse(cr, uid, [rec_res_id])
-                    pay_obj_acc = account_obj.browse(cr, uid, [pay_res_id])
+                    rec_obj_acc = account_obj.browse(cr, uid, [rec_res_id],
+                                                     context=context)
+                    pay_obj_acc = account_obj.browse(cr, uid, [pay_res_id],
+                                                     context=context)
                     p.property_account_receivable = rec_obj_acc[0]
                     p.property_account_payable = pay_obj_acc[0]
 
index ffd7b87..ef4edef 100644 (file)
                     <group>
                         <group>
                             <field string="Supplier" name="partner_id"
-                              on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)"
+                              on_change="onchange_partner_id(type, partner_id, date_invoice, payment_term, partner_bank_id, company_id, context)"
                               context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}"
                               domain="[('supplier', '=', True)]"/>
                             <field name="fiscal_position" options="{'no_create': True}"/>
                     <group>
                         <group>
                             <field string="Customer" name="partner_id"
-                                on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)"
+                                on_change="onchange_partner_id(type, partner_id, date_invoice, payment_term, partner_bank_id, company_id, context)"
                                 context="{'search_default_customer':1, 'show_address': 1}"
                                 options='{"always_reload": True}'
                                 domain="[('customer', '=', True)]"/>
index 7ecd348..337c5a3 100644 (file)
@@ -64,18 +64,20 @@ class account_invoice(osv.osv):
         return True\r
 \r
     def onchange_partner_id(self, cr, uid, ids, type, partner_id,\r
-            date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False):\r
+                            date_invoice=False, payment_term=False,\r
+                            partner_bank_id=False, company_id=False,\r
+                            context=None):\r
         result = super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id,\r
-            date_invoice, payment_term, partner_bank_id, company_id)\r
+            date_invoice, payment_term, partner_bank_id, company_id, context)\r
 #        reference_type = self.default_get(cr, uid, ['reference_type'])['reference_type']\r
 #        _logger.warning('partner_id %s' % partner_id)\r
         reference = False\r
         reference_type = 'none'\r
         if partner_id:\r
             if (type == 'out_invoice'):\r
-                reference_type = self.pool.get('res.partner').browse(cr, uid, partner_id).out_inv_comm_type\r
+                reference_type = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context).out_inv_comm_type\r
                 if reference_type:\r
-                    reference = self.generate_bbacomm(cr, uid, ids, type, reference_type, partner_id, '', context={})['value']['reference']\r
+                    reference = self.generate_bbacomm(cr, uid, ids, type, reference_type, partner_id, '', context=context)['value']['reference']\r
         res_update = {\r
             'reference_type': reference_type or 'none',\r
             'reference': reference,\r
index 55b198c..ee4b209 100644 (file)
@@ -111,7 +111,9 @@ class purchase_order(osv.osv):
 class account_invoice(osv.osv):
     _inherit = 'account.invoice'
     def onchange_partner_id(self, cr, uid, ids, type, partner_id,
-            date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False):
+                            date_invoice=False, payment_term=False,
+                            partner_bank_id=False, company_id=False,
+                            context=None):
         if not partner_id:
             return {'value': {
             'account_id': False,
@@ -121,7 +123,7 @@ class account_invoice(osv.osv):
         warning = {}
         title = False
         message = False
-        partner = self.pool.get('res.partner').browse(cr, uid, partner_id)
+        partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
         if partner.invoice_warn != 'no-message':
             title = _("Warning for %s") % partner.name
             message = partner.invoice_warn_msg
@@ -135,7 +137,7 @@ class account_invoice(osv.osv):
 
         result =  super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id,
             date_invoice=date_invoice, payment_term=payment_term, 
-            partner_bank_id=partner_bank_id, company_id=company_id)
+            partner_bank_id=partner_bank_id, company_id=company_id, context=context)
 
         if result.get('warning',False):
             warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']