From 24087efebf6b93d818aa75f6cca0ff8816e7ef79 Mon Sep 17 00:00:00 2001 From: "robin.keunen" Date: Wed, 3 Apr 2019 17:05:11 +0200 Subject: [PATCH] [FIX] cpo: compute fiscal position --- .../models/computed_purchase_order.py | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/compute_purchase_order/models/computed_purchase_order.py b/compute_purchase_order/models/computed_purchase_order.py index 00a2e56..87973b8 100644 --- a/compute_purchase_order/models/computed_purchase_order.py +++ b/compute_purchase_order/models/computed_purchase_order.py @@ -205,9 +205,24 @@ class PurchaseOrderLine(models.Model): @api.multi def compute_taxes_id(self): for pol in self: - fpos = pol.order_id.fiscal_position_id if self.env.uid == SUPERUSER_ID: company_id = self.env.user.company_id.id - pol.taxes_id = fpos.map_tax(pol.product_id.supplier_taxes_id.filtered(lambda r: r.company_id.id == company_id)) else: - pol.taxes_id = fpos.map_tax(pol.product_id.supplier_taxes_id) + company_id = self.company_id.id + + fpos_id = ( + self.env['account.fiscal.position'] + .with_context(company_id=company_id) + .get_fiscal_position(pol.partner_id.id) + ) + fpos = self.env['account.fiscal.position'].browse(fpos_id) + pol.order_id.fiscal_position_id = fpos + + taxes = self.product_id.supplier_taxes_id + taxes_id = fpos.map_tax(taxes) if fpos else taxes + + if taxes_id: + taxes_id = taxes_id.filtered( + lambda t: t.company_id.id == company_id) + + pol.taxes_id = taxes_id