trytond-patches/issue154_316.diff

46 lines
1.9 KiB
Diff

Index: product.py
===================================================================
--- .a/trytond/trytond/modules/purchase/product.py
+++ .b/trytond/trytond/modules/purchase/product.py
@@ -125,12 +125,14 @@
supplier_id = Transaction().context['supplier']
for product_supplier in product.product_suppliers:
if product_supplier.party.id == supplier_id:
- for price in product_supplier.prices:
- if Uom.compute_qty(product.purchase_uom,
- price.quantity, uom) <= quantity:
- res[product.id] = price.unit_price
- default_uom = product.purchase_uom
- default_currency = product_supplier.currency
+ price = product.get_supplier_price(product_supplier,
+ quantity, uom)
+ if price is not None:
+ res[product.id] = price
+ default_uom = product.purchase_uom
+ default_currency = product_supplier.currency
+ else:
+ price = product.cost_price
break
res[product.id] = Uom.compute_price(default_uom, res[product.id],
uom)
@@ -141,6 +143,17 @@
res[product.id], currency, round=False)
return res
+ def get_supplier_price(self, product_supplier, quantity, to_uom):
+ pool = Pool()
+ Uom = pool.get('product.uom')
+
+ res = None
+ for price in product_supplier.prices:
+ if Uom.compute_qty(self.purchase_uom,
+ price.quantity, to_uom) <= quantity:
+ res = price.unit_price
+ return res
+
class ProductSupplier(ModelSQL, ModelView):
'Product Supplier'