diff options
| -rw-r--r-- | indoteknik_custom/models/sale_order_line.py | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/indoteknik_custom/models/sale_order_line.py b/indoteknik_custom/models/sale_order_line.py index d362d573..1fee041d 100644 --- a/indoteknik_custom/models/sale_order_line.py +++ b/indoteknik_custom/models/sale_order_line.py @@ -115,25 +115,33 @@ class SaleOrderLine(models.Model): [('vendor_id', '=', self.product_id.x_manufacture.override_vendor_id.id), ('product_id', '=', self.product_id.id)], limit=1, order='count_trx_po desc, count_trx_po_vendor desc') - self.purchase_price = self._get_valid_purchase_price(purchase_price) + price, taxes = self._get_valid_purchase_price(purchase_price) + self.purchase_price = price + self.purchase_tax_id = taxes else: purchase_price = self.env['purchase.pricelist'].search( [('vendor_id', '=', self.vendor_id.id), ('product_id', '=', self.product_id.id)], limit=1, order='count_trx_po desc, count_trx_po_vendor desc') - self.purchase_price = self._get_valid_purchase_price(purchase_price) - self.purchase_tax_id = 22 + price, taxes = self._get_valid_purchase_price(purchase_price) + self.purchase_price = price + self.purchase_tax_id = taxes def _get_valid_purchase_price(self, purchase_price): price = 0 + taxes = '' human_last_update = purchase_price.human_last_update or datetime.min system_last_update = purchase_price.system_last_update or datetime.min + + if purchase_price.taxes_product_id.type_tax_use == 'purchase': + price = purchase_price.product_price + taxes = purchase_price.taxes_product_id.id if system_last_update > human_last_update: - price = purchase_price.system_price - else: - price = purchase_price.product_price + if purchase_price.taxes_system_id.type_tax_use == 'purchase': + price = purchase_price.system_price + taxes = purchase_price.taxes_system_id.id - return price or 0 + return price, taxes @api.onchange('product_id') def product_id_change(self): @@ -148,7 +156,8 @@ class SaleOrderLine(models.Model): query, limit=1, order='count_trx_po desc, count_trx_po_vendor desc') line.vendor_id = purchase_price.vendor_id line.tax_id = line.order_id.sales_tax_id - line.purchase_price = line._get_valid_purchase_price(purchase_price) + price, taxes = line._get_valid_purchase_price(purchase_price) + line.purchase_price = price line_name = ('[' + line.product_id.default_code + ']' if line.product_id.default_code else '') + ' ' + (line.product_id.name if line.product_id.name else '') + ' ' + \ ('(' + line.product_id.product_template_attribute_value_ids.name + ')' if line.product_id.product_template_attribute_value_ids.name else '') + ' ' + \ |
