Discount amount in party currency
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 02fdf2c..5219339 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -295,7 +295,7 @@
self.precision("tax_amount", tax))
def adjust_discount_amount_loss(self, tax):
- discount_amount_loss = self.grand_total - flt(self.discount_amount) - tax.total
+ discount_amount_loss = self.grand_total - flt(self.base_discount_amount) - tax.total
tax.tax_amount_after_discount_amount = flt(tax.tax_amount_after_discount_amount +
discount_amount_loss, self.precision("tax_amount", tax))
tax.total = flt(tax.total + discount_amount_loss, self.precision("total", tax))
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index 68cdf18..4b0cd4e 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -218,8 +218,7 @@
def calculate_totals(self):
self.grand_total = flt(self.tax_doclist[-1].total if self.tax_doclist else self.net_total)
- self.grand_total_export = flt(self.grand_total / self.conversion_rate) \
- if self.tax_doclist else self.net_total_export
+ self.grand_total_export = flt(self.grand_total / self.conversion_rate)
self.other_charges_total = flt(self.grand_total - self.net_total, self.precision("other_charges_total"))
@@ -234,16 +233,20 @@
def apply_discount_amount(self):
if self.discount_amount:
+ self.base_discount_amount = flt(self.discount_amount * self.conversion_rate, self.precision("base_discount_amount"))
+
grand_total_for_discount_amount = self.get_grand_total_for_discount_amount()
if grand_total_for_discount_amount:
# calculate item amount after Discount Amount
for item in self.item_doclist:
- distributed_amount = flt(self.discount_amount) * item.base_amount / grand_total_for_discount_amount
+ distributed_amount = flt(self.base_discount_amount) * item.base_amount / grand_total_for_discount_amount
item.base_amount = flt(item.base_amount - distributed_amount, self.precision("base_amount", item))
self.discount_amount_applied = True
self._calculate_taxes_and_totals()
+ else:
+ self.base_discount_amount = 0
def get_grand_total_for_discount_amount(self):
actual_taxes_dict = {}