[FIX] Wrong order of taxes in quotation

This commit is contained in:
Haresh Chavda 2018-10-31 18:25:35 +05:30
parent bdbf2c19c4
commit a92da3634f
1 changed files with 14 additions and 2 deletions

View File

@ -975,12 +975,19 @@ class AccountTax(models.Model):
total_excluded = total_included = base = round(price_unit * quantity, prec)
else:
total_excluded, total_included, base = base_values
# Sorting key is mandatory in this case. When no key is provided, sorted() will perform a
# search. However, the search method is overridden in account.tax in order to add a domain
# depending on the context. This domain might filter out some taxes from self, e.g. in the
# case of group taxes.
check_previous_sequence = False
previous_base = 0.0
previous_include_base_amount = False
final_base = base
for tax in self.sorted(key=lambda r: r.sequence):
if tax.sequence == check_previous_sequence and previous_include_base_amount == tax.include_base_amount:
base = previous_base or base
else:
base = final_base
if tax.amount_type == 'group':
children = tax.children_tax_ids.with_context(base_values=(total_excluded, total_included, base))
ret = children.compute_all(price_unit, currency, quantity, product, partner)
@ -1007,8 +1014,13 @@ class AccountTax(models.Model):
tax_base = base
if tax.include_base_amount:
previous_base = base
final_base += tax_amount
previous_include_base_amount = True
base += tax_amount
if tax.sequence == check_previous_sequence:
base -= tax_amount
check_previous_sequence = tax.sequence
taxes.append({
'id': tax.id,
'name': tax.with_context(**{'lang': partner.lang} if partner else {}).name,