fix: correct calculation for discount amount when margin is set (#25179)
This commit is contained in:
parent
cce3efe0c1
commit
37b826b988
@ -113,10 +113,10 @@ class calculate_taxes_and_totals(object):
|
|||||||
item.rate_with_margin, item.base_rate_with_margin = self.calculate_margin(item)
|
item.rate_with_margin, item.base_rate_with_margin = self.calculate_margin(item)
|
||||||
if flt(item.rate_with_margin) > 0:
|
if flt(item.rate_with_margin) > 0:
|
||||||
item.rate = flt(item.rate_with_margin * (1.0 - (item.discount_percentage / 100.0)), item.precision("rate"))
|
item.rate = flt(item.rate_with_margin * (1.0 - (item.discount_percentage / 100.0)), item.precision("rate"))
|
||||||
if not item.discount_amount:
|
if item.discount_amount and not item.discount_percentage:
|
||||||
item.discount_amount = item.rate_with_margin - item.rate
|
|
||||||
elif not item.discount_percentage:
|
|
||||||
item.rate -= item.discount_amount
|
item.rate -= item.discount_amount
|
||||||
|
else:
|
||||||
|
item.discount_amount = item.rate_with_margin - item.rate
|
||||||
elif flt(item.price_list_rate) > 0:
|
elif flt(item.price_list_rate) > 0:
|
||||||
item.discount_amount = item.price_list_rate - item.rate
|
item.discount_amount = item.price_list_rate - item.rate
|
||||||
elif flt(item.price_list_rate) > 0 and not item.discount_amount:
|
elif flt(item.price_list_rate) > 0 and not item.discount_amount:
|
||||||
@ -808,4 +808,4 @@ class init_landed_taxes_and_totals(object):
|
|||||||
def set_amounts_in_company_currency(self):
|
def set_amounts_in_company_currency(self):
|
||||||
for d in self.doc.get(self.tax_field):
|
for d in self.doc.get(self.tax_field):
|
||||||
d.amount = flt(d.amount, d.precision("amount"))
|
d.amount = flt(d.amount, d.precision("amount"))
|
||||||
d.base_amount = flt(d.amount * flt(d.exchange_rate), d.precision("base_amount"))
|
d.base_amount = flt(d.amount * flt(d.exchange_rate), d.precision("base_amount"))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user