refactor: rename interest_amount to interest, dunning_level

This commit is contained in:
barredterra 2021-09-23 20:13:52 +02:00 committed by marination
parent be5fb94837
commit bc40f3f425
3 changed files with 33 additions and 36 deletions

View File

@ -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");
}
});

View File

@ -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)

View File

@ -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",