Merge pull request #38191 from frappe/mergify/bp/version-15-hotfix/pr-38171
fix: wrong round off and rounded total (#38171)
This commit is contained in:
commit
0f227aa883
@ -789,6 +789,28 @@ class TestSalesInvoice(FrappeTestCase):
|
|||||||
w = self.make()
|
w = self.make()
|
||||||
self.assertEqual(w.outstanding_amount, w.base_rounded_total)
|
self.assertEqual(w.outstanding_amount, w.base_rounded_total)
|
||||||
|
|
||||||
|
def test_rounded_total_with_cash_discount(self):
|
||||||
|
si = frappe.copy_doc(test_records[2])
|
||||||
|
|
||||||
|
item = copy.deepcopy(si.get("items")[0])
|
||||||
|
item.update(
|
||||||
|
{
|
||||||
|
"qty": 1,
|
||||||
|
"rate": 14960.66,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
si.set("items", [item])
|
||||||
|
si.set("taxes", [])
|
||||||
|
si.apply_discount_on = "Grand Total"
|
||||||
|
si.is_cash_or_non_trade_discount = 1
|
||||||
|
si.discount_amount = 1
|
||||||
|
si.insert()
|
||||||
|
|
||||||
|
self.assertEqual(si.grand_total, 14959.66)
|
||||||
|
self.assertEqual(si.rounded_total, 14960)
|
||||||
|
self.assertEqual(si.rounding_adjustment, 0.34)
|
||||||
|
|
||||||
def test_payment(self):
|
def test_payment(self):
|
||||||
w = self.make()
|
w = self.make()
|
||||||
|
|
||||||
|
|||||||
@ -54,6 +54,7 @@ class calculate_taxes_and_totals(object):
|
|||||||
if self.doc.apply_discount_on == "Grand Total" and self.doc.get("is_cash_or_non_trade_discount"):
|
if self.doc.apply_discount_on == "Grand Total" and self.doc.get("is_cash_or_non_trade_discount"):
|
||||||
self.doc.grand_total -= self.doc.discount_amount
|
self.doc.grand_total -= self.doc.discount_amount
|
||||||
self.doc.base_grand_total -= self.doc.base_discount_amount
|
self.doc.base_grand_total -= self.doc.base_discount_amount
|
||||||
|
self.doc.rounding_adjustment = self.doc.base_rounding_adjustment = 0.0
|
||||||
self.set_rounded_total()
|
self.set_rounded_total()
|
||||||
|
|
||||||
self.calculate_shipping_charges()
|
self.calculate_shipping_charges()
|
||||||
|
|||||||
@ -43,6 +43,9 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments {
|
|||||||
if (this.frm.doc.apply_discount_on == "Grand Total" && this.frm.doc.is_cash_or_non_trade_discount) {
|
if (this.frm.doc.apply_discount_on == "Grand Total" && this.frm.doc.is_cash_or_non_trade_discount) {
|
||||||
this.frm.doc.grand_total -= this.frm.doc.discount_amount;
|
this.frm.doc.grand_total -= this.frm.doc.discount_amount;
|
||||||
this.frm.doc.base_grand_total -= this.frm.doc.base_discount_amount;
|
this.frm.doc.base_grand_total -= this.frm.doc.base_discount_amount;
|
||||||
|
this.frm.doc.rounding_adjustment = 0;
|
||||||
|
this.frm.doc.base_rounding_adjustment = 0;
|
||||||
|
this.set_rounded_total();
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.calculate_shipping_charges();
|
await this.calculate_shipping_charges();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user