diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py index 3b2cc4f5839..acffb09f984 100644 --- a/addons/point_of_sale/models/pos_order.py +++ b/addons/point_of_sale/models/pos_order.py @@ -846,8 +846,8 @@ class PosOrderLine(models.Model): raise UserError(_('You have to select a pricelist in the sale form.')) price = self.price_unit * (1 - (self.discount or 0.0) / 100.0) self.price_subtotal = self.price_subtotal_incl = price * self.qty - if (self.product_id.taxes_id): - taxes = self.product_id.taxes_id.compute_all(price, self.order_id.pricelist_id.currency_id, self.qty, product=self.product_id, partner=False) + if (self.tax_ids): + taxes = self.tax_ids.compute_all(price, self.order_id.pricelist_id.currency_id, self.qty, product=self.product_id, partner=False) self.price_subtotal = taxes['total_excluded'] self.price_subtotal_incl = taxes['total_included'] diff --git a/addons/sale_coupon/models/sale_order.py b/addons/sale_coupon/models/sale_order.py index 1652c5b70e8..106a1012601 100644 --- a/addons/sale_coupon/models/sale_order.py +++ b/addons/sale_coupon/models/sale_order.py @@ -140,9 +140,8 @@ class SaleOrder(models.Model): def _get_reward_values_discount(self, program): if program.discount_type == 'fixed_amount': - taxes = program.discount_line_product_id.taxes_id - if self.fiscal_position_id: - taxes = self.fiscal_position_id.map_tax(taxes) + product_taxes = program.discount_line_product_id.taxes_id.filtered(lambda tax: tax.company_id == self.company_id) + taxes = self.fiscal_position_id.map_tax(product_taxes) return [{ 'name': _("Discount: %s", program.name), 'product_id': program.discount_line_product_id.id, diff --git a/addons/sale_purchase/models/sale_order.py b/addons/sale_purchase/models/sale_order.py index a9d6ae19abf..751135ebe49 100644 --- a/addons/sale_purchase/models/sale_order.py +++ b/addons/sale_purchase/models/sale_order.py @@ -230,9 +230,8 @@ class SaleOrderLine(models.Model): uom_id=self.product_id.uom_po_id ) fpos = purchase_order.fiscal_position_id - taxes = fpos.map_tax(self.product_id.supplier_taxes_id) - if taxes: - taxes = taxes.filtered(lambda t: t.company_id.id == self.company_id.id) + supplier_taxes = self.product_id.supplier_taxes_id.filtered(lambda t: t.company_id.id == self.company_id.id) + taxes = fpos.map_tax(supplier_taxes) # compute unit price price_unit = 0.0