From 2f32807ce692bb35e6df3fa7b2e5a60daaf2297f Mon Sep 17 00:00:00 2001 From: "rpa (Open ERP)" Date: Wed, 8 Dec 2010 18:03:38 +0530 Subject: [PATCH] [FIX]: product/purchase: Fixed wrong calculation of product qty and amount in purchas line if supplier UOM is different lp bug: https://launchpad.net/bugs/423124 fixed bzr revid: rpa@tinyerp.com-20101208123338-absetujv1l31ce9k --- addons/product/product.py | 2 +- addons/purchase/purchase.py | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/addons/product/product.py b/addons/product/product.py index 84b90a53b62..be318db59bc 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -159,7 +159,7 @@ class product_uom(osv.osv): return price amount = price * from_unit.factor if to_uom_id: - amount = amount / to_unit.factor + amount = amount / to_unit.factor_inv return amount def onchange_type(self, cursor, user, ids, value): diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 927f1cdcba5..1995b5d93f7 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -647,7 +647,7 @@ class purchase_order_line(osv.osv): 'notes': notes or'', 'product_uom' : uom or False}, 'domain':{'product_uom':[]}} prod= self.pool.get('product.product').browse(cr, uid, product) - + product_uom_pool = self.pool.get('product.uom') lang=False if partner_id: lang=self.pool.get('res.partner').read(cr, uid, partner_id, ['lang'])['lang'] @@ -668,15 +668,18 @@ class purchase_order_line(osv.osv): for s in prod.seller_ids: if s.name.id == partner_id: seller_delay = s.delay - temp_qty = s.qty # supplier _qty assigned to temp + temp_qty = s.min_qty # supplier _qty assigned to temp + if s.product_uom: + qty = product_uom_pool._compute_qty(cr, uid, s.product_uom.id, s.min_qty, to_uom_id=prod_uom_po) + uom = prod_uom_po if qty < temp_qty: # If the supplier quantity is greater than entered from user, set minimal. qty = temp_qty if price_unit: price = price_unit else: price = self.pool.get('product.pricelist').price_get(cr,uid,[pricelist], - product, qty or 1.0, partner_id, { - 'uom': uom, + product, 1.0, partner_id, { + 'uom': prod_uom_po, 'date': date_order, })[pricelist] dt = (datetime.now() + relativedelta(days=int(seller_delay) or 0.0)).strftime('%Y-%m-%d %H:%M:%S')