refactor: rename interest_amount to interest, dunning_level
This commit is contained in:
parent
be5fb94837
commit
bc40f3f425
@ -200,7 +200,7 @@ frappe.ui.form.on("Dunning", {
|
||||
if (frm.doc.dunning_type) {
|
||||
frappe.call({
|
||||
method:
|
||||
"erpnext.accounts.doctype.dunning.dunning.get_dunning_letter_text",
|
||||
"erpnext.accounts.doctype.dunning.dunning.get_dunning_letter_text",
|
||||
args: {
|
||||
dunning_type: frm.doc.dunning_type,
|
||||
language: frm.doc.language,
|
||||
@ -223,12 +223,12 @@ frappe.ui.form.on("Dunning", {
|
||||
frm.trigger("calculate_overdue_days");
|
||||
},
|
||||
rate_of_interest: function (frm) {
|
||||
frm.trigger("calculate_interest_amount");
|
||||
frm.trigger("calculate_interest");
|
||||
},
|
||||
dunning_fee: function (frm) {
|
||||
frm.trigger("calculate_totals");
|
||||
},
|
||||
overdue_payments_add: function(frm) {
|
||||
overdue_payments_add: function (frm) {
|
||||
frm.trigger("calculate_totals");
|
||||
},
|
||||
overdue_payments_remove: function (frm) {
|
||||
@ -245,16 +245,16 @@ frappe.ui.form.on("Dunning", {
|
||||
}
|
||||
});
|
||||
},
|
||||
calculate_interest_amount: function (frm) {
|
||||
calculate_interest: function (frm) {
|
||||
frm.doc.overdue_payments.forEach((row) => {
|
||||
const interest_per_year = row.outstanding * frm.doc.rate_of_interest / 100;
|
||||
const interest_amount = flt((interest_per_year * cint(row.overdue_days)) / 365 || 0, precision("interest_amount"));
|
||||
frappe.model.set_value(row.doctype, row.name, "interest_amount", interest_amount);
|
||||
const interest_per_day = frm.doc.rate_of_interest / 100 / 365;
|
||||
const interest = flt((interest_per_day * row.outstanding * cint(row.overdue_days)) / 365 || 0, precision("interest"));
|
||||
frappe.model.set_value(row.doctype, row.name, "interest", interest);
|
||||
});
|
||||
},
|
||||
calculate_totals: function (frm) {
|
||||
const total_interest = frm.doc.overdue_payments
|
||||
.reduce((prev, cur) => prev + cur.interest_amount, 0);
|
||||
.reduce((prev, cur) => prev + cur.interest, 0);
|
||||
const total_outstanding = frm.doc.overdue_payments
|
||||
.reduce((prev, cur) => prev + cur.outstanding, 0);
|
||||
const dunning_amount = flt(total_interest + frm.doc.dunning_fee, precision("dunning_amount"));
|
||||
@ -268,7 +268,7 @@ frappe.ui.form.on("Dunning", {
|
||||
make_payment_entry: function (frm) {
|
||||
return frappe.call({
|
||||
method:
|
||||
"erpnext.accounts.doctype.payment_entry.payment_entry.get_payment_entry",
|
||||
"erpnext.accounts.doctype.payment_entry.payment_entry.get_payment_entry",
|
||||
args: {
|
||||
dt: frm.doc.doctype,
|
||||
dn: frm.doc.name,
|
||||
@ -282,7 +282,7 @@ frappe.ui.form.on("Dunning", {
|
||||
});
|
||||
|
||||
frappe.ui.form.on("Overdue Payment", {
|
||||
interest_amount: function(frm, cdt, cdn) {
|
||||
interest: function (frm, cdt, cdn) {
|
||||
frm.trigger("calculate_totals");
|
||||
}
|
||||
});
|
@ -24,10 +24,11 @@ class Dunning(AccountsController):
|
||||
self.income_account = frappe.db.get_value("Company", self.company, "default_income_account")
|
||||
|
||||
def validate_overdue_payments(self):
|
||||
daily_interest = self.rate_of_interest / 100 / 365
|
||||
|
||||
for row in self.overdue_payments:
|
||||
row.overdue_days = (getdate(self.posting_date) - getdate(row.due_date)).days or 0
|
||||
interest_per_year = flt(row.outstanding) * flt(self.rate_of_interest) / 100
|
||||
row.interest_amount = (interest_per_year * cint(row.overdue_days)) / 365
|
||||
row.interest = row.outstanding * daily_interest * row.overdue_days
|
||||
|
||||
def validate_totals(self):
|
||||
self.total_outstanding = sum(row.outstanding for row in self.overdue_payments)
|
||||
|
@ -7,6 +7,7 @@
|
||||
"field_order": [
|
||||
"sales_invoice",
|
||||
"payment_schedule",
|
||||
"dunning_level",
|
||||
"payment_term",
|
||||
"section_break_15",
|
||||
"description",
|
||||
@ -16,21 +17,18 @@
|
||||
"mode_of_payment",
|
||||
"column_break_5",
|
||||
"invoice_portion",
|
||||
"section_break_9",
|
||||
"section_break_16",
|
||||
"payment_amount",
|
||||
"outstanding",
|
||||
"paid_amount",
|
||||
"discounted_amount",
|
||||
"column_break_3",
|
||||
"base_payment_amount",
|
||||
"interest_amount"
|
||||
"interest"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"columns": 2,
|
||||
"fieldname": "payment_term",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"label": "Payment Term",
|
||||
"options": "Payment Term",
|
||||
"print_hide": 1,
|
||||
@ -79,10 +77,6 @@
|
||||
"label": "Invoice Portion",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "section_break_9",
|
||||
"fieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"columns": 2,
|
||||
"fieldname": "payment_amount",
|
||||
@ -116,24 +110,13 @@
|
||||
"print_hide": 1,
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_3",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "base_payment_amount",
|
||||
"fieldtype": "Currency",
|
||||
"label": "Payment Amount (Company Currency)",
|
||||
"options": "Company:company:default_currency",
|
||||
"print_hide": 1,
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "sales_invoice",
|
||||
"fieldtype": "Link",
|
||||
"in_list_view": 1,
|
||||
"label": "Sales Invoice",
|
||||
"options": "Sales Invoice",
|
||||
"read_only": 1,
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
@ -151,17 +134,30 @@
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "interest_amount",
|
||||
"default": "1",
|
||||
"fieldname": "dunning_level",
|
||||
"fieldtype": "Int",
|
||||
"in_list_view": 1,
|
||||
"label": "Dunning Level",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "section_break_16",
|
||||
"fieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "interest",
|
||||
"fieldtype": "Currency",
|
||||
"in_list_view": 1,
|
||||
"label": "Interest Amount",
|
||||
"label": "Interest",
|
||||
"options": "currency",
|
||||
"read_only": 1
|
||||
}
|
||||
],
|
||||
"index_web_pages_for_search": 1,
|
||||
"istable": 1,
|
||||
"links": [],
|
||||
"modified": "2021-09-17 12:10:42.278923",
|
||||
"modified": "2021-09-23 13:48:27.898830",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Accounts",
|
||||
"name": "Overdue Payment",
|
||||
|
Loading…
x
Reference in New Issue
Block a user