From aef65e7417167429359bef4588dd3db3353417fa 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 --- .../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 25351800920..910343d934d 100644 --- a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py +++ b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py @@ -278,9 +278,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 9a86885c0ab4d08bada8384070c35ae5589229d3 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 --- .../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 910343d934d..9689f9cf23c 100644 --- a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py +++ b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py @@ -264,6 +264,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 @@ -278,9 +279,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 589dd17e5893b03e04eb9a2d77b3784824e553e1 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 --- .../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 9689f9cf23c..8614fcb9cdc 100644 --- a/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py +++ b/erpnext/loan_management/doctype/loan_repayment/loan_repayment.py @@ -264,7 +264,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