fix: Made outstanding amount field read only and added validation
Made the field editable so that outstanding amount can be adjusted
This commit is contained in:
parent
ed004018d6
commit
e7f67592a8
@ -38,13 +38,11 @@
|
|||||||
"read_only": 1
|
"read_only": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fetch_from": "sales_invoice.outstanding_amount",
|
|
||||||
"fieldname": "outstanding_amount",
|
"fieldname": "outstanding_amount",
|
||||||
"fieldtype": "Currency",
|
"fieldtype": "Currency",
|
||||||
"in_list_view": 1,
|
"in_list_view": 1,
|
||||||
"label": "Outstanding Amount",
|
"label": "Outstanding Amount",
|
||||||
"options": "Company:company:default_currency",
|
"options": "Company:company:default_currency"
|
||||||
"read_only": 1
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "column_break_3",
|
"fieldname": "column_break_3",
|
||||||
@ -60,7 +58,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"modified": "2019-09-23 13:59:16.450344",
|
"modified": "2019-09-23 15:29:54.199318",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Accounts",
|
"module": "Accounts",
|
||||||
"name": "Discounted Invoice",
|
"name": "Discounted Invoice",
|
||||||
|
@ -97,7 +97,6 @@ frappe.ui.form.on('Invoice Discounting', {
|
|||||||
}
|
}
|
||||||
frm.set_value("total_amount", total_amount);
|
frm.set_value("total_amount", total_amount);
|
||||||
},
|
},
|
||||||
|
|
||||||
get_invoices: (frm) => {
|
get_invoices: (frm) => {
|
||||||
var d = new frappe.ui.Dialog({
|
var d = new frappe.ui.Dialog({
|
||||||
title: __('Get Invoices based on Filters'),
|
title: __('Get Invoices based on Filters'),
|
||||||
@ -205,9 +204,15 @@ frappe.ui.form.on('Invoice Discounting', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
frappe.ui.form.on('Discounted Invoice', {
|
frappe.ui.form.on('Discounted Invoice', {
|
||||||
sales_invoice: (frm) => {
|
sales_invoice: (frm, cdt, cdn) => {
|
||||||
frm.events.calculate_total_amount(frm);
|
frm.events.calculate_total_amount(frm);
|
||||||
frm.events.refresh_filters(frm);
|
frm.events.refresh_filters(frm);
|
||||||
|
|
||||||
|
let row = locals[cdt][cdn];
|
||||||
|
frappe.db.get_value("Sales Invoice",row["sales_invoice"], "outstanding_amount", (res) => {
|
||||||
|
row.outstanding_amount = res["outstanding_amount"];
|
||||||
|
frm.refresh_field("invoices");
|
||||||
|
});
|
||||||
},
|
},
|
||||||
invoices_remove: (frm) => {
|
invoices_remove: (frm) => {
|
||||||
frm.events.calculate_total_amount(frm);
|
frm.events.calculate_total_amount(frm);
|
||||||
|
@ -26,14 +26,20 @@ class InvoiceDiscounting(AccountsController):
|
|||||||
frappe.throw(_("Loan Start Date and Loan Period are mandatory to save the Invoice Discounting"))
|
frappe.throw(_("Loan Start Date and Loan Period are mandatory to save the Invoice Discounting"))
|
||||||
|
|
||||||
def validate_invoices(self):
|
def validate_invoices(self):
|
||||||
discounted_invoices = [record.sales_invoice for record in
|
discounted_invoices = [record.sales_invoice for record in
|
||||||
frappe.get_all("Discounted Invoice",fields = ["sales_invoice"], filters= {"docstatus":1})]
|
frappe.get_all("Discounted Invoice",fields=["sales_invoice"], filters={"docstatus":1})]
|
||||||
|
|
||||||
for record in self.invoices:
|
for record in self.invoices:
|
||||||
if record.sales_invoice in discounted_invoices:
|
if record.sales_invoice in discounted_invoices:
|
||||||
frappe.throw("Row({0}): {1} is already discounted in {2}"
|
frappe.throw(_("Row({0}): {1} is already discounted in {2}")
|
||||||
.format(record.idx, frappe.bold(record.sales_invoice), frappe.bold(record.parent)))
|
.format(record.idx, frappe.bold(record.sales_invoice), frappe.bold(record.parent)))
|
||||||
|
|
||||||
|
actual_outstanding = frappe.db.get_value("Sales Invoice", record.sales_invoice,"outstanding_amount")
|
||||||
|
if record.outstanding_amount > actual_outstanding :
|
||||||
|
frappe.throw(_
|
||||||
|
("Row({0}): Outstanding Amount cannot be greater than actual Outstanding Amount {1} in {2}").format(
|
||||||
|
record.idx, frappe.bold(actual_outstanding), frappe.bold(record.sales_invoice)))
|
||||||
|
|
||||||
def calculate_total_amount(self):
|
def calculate_total_amount(self):
|
||||||
self.total_amount = sum([flt(d.outstanding_amount) for d in self.invoices])
|
self.total_amount = sum([flt(d.outstanding_amount) for d in self.invoices])
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user