[FIX] website_sale: Avoid compute tax for every company
When a product has multiple company taxes and b2c prices is enabled, price is not computed properly and adds to the base price every company tax present. This patch filters the company set on the company so taxes are computed just for that company.
This commit is contained in:
committed by
Pedro M. Baeza
parent
bc623461b3
commit
ee7cfba917
@@ -192,7 +192,9 @@ class Product(models.Model):
|
||||
def _website_price(self):
|
||||
qty = self._context.get('quantity', 1.0)
|
||||
partner = self.env.user.partner_id
|
||||
pricelist = self.env['website'].get_current_website().get_current_pricelist()
|
||||
current_website = self.env['website'].get_current_website()
|
||||
pricelist = current_website.get_current_pricelist()
|
||||
company_id = current_website.company_id
|
||||
|
||||
context = dict(self._context, pricelist=pricelist.id, partner=partner)
|
||||
self2 = self.with_context(context) if self._context != context else self
|
||||
@@ -200,7 +202,7 @@ class Product(models.Model):
|
||||
ret = self.env.user.has_group('sale.group_show_price_subtotal') and 'total_excluded' or 'total_included'
|
||||
|
||||
for p, p2 in zip(self, self2):
|
||||
taxes = partner.property_account_position_id.map_tax(p.taxes_id)
|
||||
taxes = partner.property_account_position_id.map_tax(p.taxes_id.sudo().filtered(lambda x: x.company_id == company_id))
|
||||
p.website_price = taxes.compute_all(p2.price, pricelist.currency_id, quantity=qty, product=p2, partner=partner)[ret]
|
||||
p.website_public_price = taxes.compute_all(p2.lst_price, quantity=qty, product=p2, partner=partner)[ret]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user