summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/purchase_order_line.py
diff options
context:
space:
mode:
Diffstat (limited to 'indoteknik_custom/models/purchase_order_line.py')
-rwxr-xr-xindoteknik_custom/models/purchase_order_line.py31
1 files changed, 27 insertions, 4 deletions
diff --git a/indoteknik_custom/models/purchase_order_line.py b/indoteknik_custom/models/purchase_order_line.py
index 807ee628..c7da0e24 100755
--- a/indoteknik_custom/models/purchase_order_line.py
+++ b/indoteknik_custom/models/purchase_order_line.py
@@ -78,14 +78,12 @@ class PurchaseOrderLine(models.Model):
def _onchange_product_custom(self):
self._compute_qty_stock()
- # Override method from addons/purchase/models/purchase.py
- @api.onchange('product_qty', 'product_uom')
+ @api.onchange('product_id','product_qty', 'product_uom')
def _onchange_quantity(self):
res = super(PurchaseOrderLine, self)._onchange_quantity()
- # Custom script
purchase_pricelist = self.env['purchase.pricelist'].search([
('product_id', '=', self.product_id.id),
- ('vendor_id', '=', self.partner_id.id)
+ ('vendor_id', '=', self.partner_id.id),
], limit=1)
price_unit = purchase_pricelist.product_price
@@ -96,8 +94,33 @@ class PurchaseOrderLine(models.Model):
], limit=1)
price_unit = product_supplierinfo.price
+ price_unit, taxes = self._get_valid_purchase_price(purchase_pricelist)
+
self.price_unit = price_unit
+ if purchase_pricelist.taxes_product_id or purchase_pricelist.taxes_system_id:
+ self.taxes_id = taxes
+
return res
+
+ def _get_valid_purchase_price(self, purchase_price):
+ p_price = 0
+ taxes = False
+
+ if purchase_price.system_price > 0 and purchase_price.product_price > 0:
+ if purchase_price.human_last_update > purchase_price.system_last_update:
+ p_price = purchase_price.product_price
+ taxes = purchase_price.taxes_product_id
+ else:
+ p_price = purchase_price.system_price
+ taxes = purchase_price.taxes_system_id
+ elif purchase_price.system_price > 0 and purchase_price.product_price == 0:
+ p_price = purchase_price.system_price
+ taxes = purchase_price.taxes_system_id
+ elif purchase_price.system_price == 0 and purchase_price.product_price > 0:
+ p_price = purchase_price.product_price
+ taxes = purchase_price.taxes_product_id
+
+ return p_price, taxes
def compute_item_margin(self):
sum_so_margin = sum_sales_price = sum_margin = 0