[FIX] Account/stock : Better context-handling at tax computation to avoid wrong conte...
authorJay (OpenERP) <jvo@tinyerp.com>
Wed, 6 Oct 2010 14:25:06 +0000 (19:55 +0530)
committerJay (OpenERP) <jvo@tinyerp.com>
Wed, 6 Oct 2010 14:25:06 +0000 (19:55 +0530)
bzr revid: jvo@tinyerp.com-20101006142506-1qh2u60gfd2z0pj8

addons/account/invoice.py
addons/stock/wizard/wizard_invoice_onshipping.py

index b4cecea..346013b 100644 (file)
@@ -467,16 +467,17 @@ class account_invoice(osv.osv):
     def button_reset_taxes(self, cr, uid, ids, context=None):
         if not context:
             context = {}
+        ctx = context.copy()
         ait_obj = self.pool.get('account.invoice.tax')
         for id in ids:
             cr.execute("DELETE FROM account_invoice_tax WHERE invoice_id=%s", (id,))
-            partner = self.browse(cr, uid, id,context=context).partner_id
+            partner = self.browse(cr, uid, id,context=ctx).partner_id
             if partner.lang:
-                context.update({'lang': partner.lang})
-            for taxe in ait_obj.compute(cr, uid, id, context=context).values():
+                ctx.update({'lang': partner.lang})
+            for taxe in ait_obj.compute(cr, uid, id, context=ctx).values():
                 ait_obj.create(cr, uid, taxe)
          # Update the stored value (fields.function), so we write to trigger recompute
-        self.pool.get('account.invoice').write(cr, uid, ids, {'invoice_line':[]}, context=context)    
+        self.pool.get('account.invoice').write(cr, uid, ids, {'invoice_line':[]}, context=ctx)    
 #        self.pool.get('account.invoice').write(cr, uid, ids, {}, context=context)
         return True
 
index 3b70f20..715630d 100644 (file)
@@ -87,6 +87,8 @@ def _get_type(obj, cr, uid, data, context=None):
 
 
 def _create_invoice(obj, cr, uid, data, context=None):
+    if context is None:
+        context = {}
     if data['form'].get('new_picking', False):
         data['id'] = data['form']['new_picking']
         data['ids'] = [data['form']['new_picking']]