[FIX] Sale_crm : Code improved for partner onchange to take effect on SO
authorJMA (OpenERP) <jma@tinyerp.com>
Wed, 12 May 2010 08:44:58 +0000 (14:14 +0530)
committerJMA (OpenERP) <jma@tinyerp.com>
Wed, 12 May 2010 08:44:58 +0000 (14:14 +0530)
bzr revid: jma@tinyerp.com-20100512084458-idtdjgf1df3v2xg7

addons/sale_crm/wizard/makesale.py

index a31d987..e0a4d95 100644 (file)
@@ -116,14 +116,19 @@ class make_sale(wizard.interface):
 
             if data['form']['analytic_account']:
                 vals['project_id'] = data['form']['analytic_account']
+                
+            vals.update( sale_obj.onchange_partner_id(cr, uid, [], partner_id).get('value',{}) )
             new_id = sale_obj.create(cr, uid, vals)
-            for product_id in data['form']['products'][0][2]:
-                value = sale_line_obj.product_id_change(cr, uid, [], pricelist,
-                        product_id, qty=1, partner_id=partner_id, fiscal_position=fpos)['value']
-                value['product_id'] = product_id
-                value['order_id'] = new_id
-                value['tax_id'] = [(6,0,value['tax_id'])]
-                sale_line_obj.create(cr, uid, value)
+            if data['form']['products']:
+                for product_id in data['form']['products'][0][2]:
+                    value = {
+                    'price_unit': 0.0,
+                    'product_id': product_id,
+                    'order_id': new_id,
+                        }
+                    value.update( sale_line_obj.product_id_change(cr, uid, [], pricelist,product_id, qty=1, partner_id=partner_id, fiscal_position=fpos)['value'] )
+                    value['tax_id'] = [(6,0,value['tax_id'])]
+                    sale_line_obj.create(cr, uid, value)
 
             case_obj.write(cr, uid, [case.id], {'ref': 'sale.order,%s' % new_id})
             new_ids.append(new_id)