From e958ef26e06233ce60ec5f86bc2d00358a79e1ed Mon Sep 17 00:00:00 2001 From: Abhinav Raut Date: Fri, 13 May 2022 17:22:26 +0530 Subject: [PATCH 1/3] fix: gl entry validation for miniscule loan penalty (cherry picked from commit aef65e7417167429359bef4588dd3db3353417fa) --- .../loan_management/doctype/loan_repayment/loan_repayment.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py index 6a6eb591629..6362d45681b 100644 --- a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py +++ b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py @@ -279,9 +279,9 @@ class LoanRepayment(AccountsController): if interest_paid > 0: if self.penalty_amount and interest_paid > self.penalty_amount: - self.total_penalty_paid = self.penalty_amount + self.total_penalty_paid = flt(self.penalty_amount, self.precision("debit")) elif self.penalty_amount: - self.total_penalty_paid = interest_paid + self.total_penalty_paid = flt(interest_paid, self.precision("debit")) interest_paid -= self.total_penalty_paid From 5c45737a8fa506949a4a1b2cbf826e5a9402c24b Mon Sep 17 00:00:00 2001 From: Abhinav Raut Date: Fri, 13 May 2022 17:55:16 +0530 Subject: [PATCH 2/3] fix: precision of total penalty paid (cherry picked from commit 9a86885c0ab4d08bada8384070c35ae5589229d3) --- .../loan_management/doctype/loan_repayment/loan_repayment.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py index 6362d45681b..f41dfc0d6f6 100644 --- a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py +++ b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py @@ -265,6 +265,7 @@ class LoanRepayment(AccountsController): regenerate_repayment_schedule(self.against_loan, cancel) def allocate_amounts(self, repayment_details): + precision = 2 self.set("repayment_details", []) self.principal_amount_paid = 0 self.total_penalty_paid = 0 @@ -279,9 +280,9 @@ class LoanRepayment(AccountsController): if interest_paid > 0: if self.penalty_amount and interest_paid > self.penalty_amount: - self.total_penalty_paid = flt(self.penalty_amount, self.precision("debit")) + self.total_penalty_paid = flt(self.penalty_amount, precision) elif self.penalty_amount: - self.total_penalty_paid = flt(interest_paid, self.precision("debit")) + self.total_penalty_paid = flt(interest_paid, precision) interest_paid -= self.total_penalty_paid From ad21853b0125627d5964dab670eed3c7d2d28165 Mon Sep 17 00:00:00 2001 From: Abhinav Raut Date: Fri, 13 May 2022 17:56:27 +0530 Subject: [PATCH 3/3] fix: precision of total penalty paid (cherry picked from commit 589dd17e5893b03e04eb9a2d77b3784824e553e1) --- .../loan_management/doctype/loan_repayment/loan_repayment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py index f41dfc0d6f6..9a43c2aec63 100644 --- a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py +++ b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py @@ -265,7 +265,7 @@ class LoanRepayment(AccountsController): regenerate_repayment_schedule(self.against_loan, cancel) def allocate_amounts(self, repayment_details): - precision = 2 + precision = cint(frappe.db.get_default("currency_precision")) or 2 self.set("repayment_details", []) self.principal_amount_paid = 0 self.total_penalty_paid = 0