Nehal Panchal (Open ERP) has proposed merging 
lp:~openerp-dev/openobject-addons/6.0-opw-6000-nep into 
lp:openobject-addons/6.0.

Requested reviews:
  Anup(OpenERP) (ach-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/6.0-opw-6000-nep/+merge/63110

Hello,

The price calculation based on the Unit Of Sale is corrected.

Thanks.
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/6.0-opw-6000-nep/+merge/63110
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/6.0-opw-6000-nep.
=== modified file 'sale/sale.py'
--- sale/sale.py	2011-05-17 11:44:45 +0000
+++ sale/sale.py	2011-06-01 12:41:14 +0000
@@ -821,7 +821,7 @@
             context = {}
         for line in self.browse(cr, uid, ids, context=context):
             price = line.price_unit * (1 - (line.discount or 0.0) / 100.0)
-            taxes = tax_obj.compute_all(cr, uid, line.tax_id, price, line.product_uom_qty, line.order_id.partner_invoice_id.id, line.product_id, line.order_id.partner_id)
+            taxes = tax_obj.compute_all(cr, uid, line.tax_id, price, line.product_uos_qty or line.product_uom_qty, line.order_id.partner_invoice_id.id, line.product_id, line.order_id.partner_id)
             cur = line.order_id.pricelist_id.currency_id
             res[line.id] = cur_obj.round(cr, uid, cur, taxes['total'])
         return res
@@ -886,6 +886,26 @@
         'price_unit': 0.0,
     }
 
+    def uos_change(self, cr, uid, ids, product_uos, product_uos_qty=0, product_id=None):
+        product_obj = self.pool.get('product.product')
+        if not product_id:
+            return {'value': {'product_uom': product_uos,
+            'product_uom_qty': product_uos_qty}, 'domain': {}}
+
+        product = product_obj.browse(cr, uid, product_id)
+        value = {
+        'product_uom': product.uom_id.id,
+        }
+        # FIXME must depend on uos/uom of the product and not only of the coeff.
+        try:
+            value.update({
+            'product_uom_qty': product_uos_qty / product.uos_coeff,
+            'th_weight': product_uos_qty / product.uos_coeff * product.weight
+            })
+        except ZeroDivisionError:
+            pass
+        return {'value': value}
+        
     def invoice_line_create(self, cr, uid, ids, context=None):
         if context is None:
             context = {}

=== modified file 'sale/sale_view.xml'
--- sale/sale_view.xml	2011-05-20 09:49:07 +0000
+++ sale/sale_view.xml	2011-06-01 12:41:14 +0000
@@ -135,7 +135,7 @@
                                                 name="product_uom_qty"
                                                 on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position, True)"
                                                 />
-                                                <field groups="product.group_uos" name="product_uos_qty"/>
+                                                <field groups="product.group_uos" name="product_uos_qty" on_change="uos_change(product_uos, product_uos_qty, product_id)"/>
                                                 <field groups="product.group_uos" name="product_uos"/>
                                             <field name="product_uom"
                                                 on_change="product_uom_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order)"/>

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to