mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-13 22:51:49 +00:00
fix: keep asset repair downtime in sync with entered dates
This commit is contained in:
@@ -86,24 +86,39 @@ frappe.ui.form.on("Asset Repair", {
|
|||||||
},
|
},
|
||||||
|
|
||||||
repair_status: (frm) => {
|
repair_status: (frm) => {
|
||||||
if (frm.doc.completion_date && frm.doc.repair_status == "Completed") {
|
|
||||||
frappe.call({
|
|
||||||
method: "erpnext.assets.doctype.asset_repair.asset_repair.get_downtime",
|
|
||||||
args: {
|
|
||||||
failure_date: frm.doc.failure_date,
|
|
||||||
completion_date: frm.doc.completion_date,
|
|
||||||
},
|
|
||||||
callback: function (r) {
|
|
||||||
if (r.message) {
|
|
||||||
frm.set_value("downtime", r.message + " Hrs");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (frm.doc.repair_status == "Completed" && !frm.doc.completion_date) {
|
if (frm.doc.repair_status == "Completed" && !frm.doc.completion_date) {
|
||||||
frm.set_value("completion_date", frappe.datetime.now_datetime());
|
frm.set_value("completion_date", frappe.datetime.now_datetime());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
frm.events.set_downtime(frm);
|
||||||
|
},
|
||||||
|
|
||||||
|
failure_date: (frm) => {
|
||||||
|
frm.events.set_downtime(frm);
|
||||||
|
},
|
||||||
|
|
||||||
|
completion_date: (frm) => {
|
||||||
|
frm.events.set_downtime(frm);
|
||||||
|
},
|
||||||
|
|
||||||
|
set_downtime: (frm) => {
|
||||||
|
if (frm.doc.repair_status != "Completed" || !frm.doc.failure_date || !frm.doc.completion_date) {
|
||||||
|
frm.set_value("downtime", null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
frappe.call({
|
||||||
|
method: "erpnext.assets.doctype.asset_repair.asset_repair.get_downtime",
|
||||||
|
args: {
|
||||||
|
failure_date: frm.doc.failure_date,
|
||||||
|
completion_date: frm.doc.completion_date,
|
||||||
|
},
|
||||||
|
callback: function (r) {
|
||||||
|
if (r.message) {
|
||||||
|
frm.set_value("downtime", r.message + " Hrs");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
stock_items_on_form_rendered() {
|
stock_items_on_form_rendered() {
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ class AssetRepair(AccountsController):
|
|||||||
self.set_stock_items_cost()
|
self.set_stock_items_cost()
|
||||||
self.calculate_total_repair_cost()
|
self.calculate_total_repair_cost()
|
||||||
self.validate_purchase_invoice_status()
|
self.validate_purchase_invoice_status()
|
||||||
|
self.set_downtime()
|
||||||
|
|
||||||
def validate_purchase_invoice_status(self):
|
def validate_purchase_invoice_status(self):
|
||||||
if self.purchase_invoice:
|
if self.purchase_invoice:
|
||||||
@@ -215,6 +216,13 @@ class AssetRepair(AccountsController):
|
|||||||
if self.repair_status == "Pending":
|
if self.repair_status == "Pending":
|
||||||
frappe.throw(_("Please update Repair Status."))
|
frappe.throw(_("Please update Repair Status."))
|
||||||
|
|
||||||
|
def set_downtime(self):
|
||||||
|
# keep downtime in sync with the entered dates, regardless of edit order
|
||||||
|
if self.repair_status == "Completed" and self.failure_date and self.completion_date:
|
||||||
|
self.downtime = f"{get_downtime(self.failure_date, self.completion_date)} Hrs"
|
||||||
|
else:
|
||||||
|
self.downtime = None
|
||||||
|
|
||||||
def check_for_stock_items_and_warehouse(self):
|
def check_for_stock_items_and_warehouse(self):
|
||||||
if not self.get("stock_items"):
|
if not self.get("stock_items"):
|
||||||
frappe.throw(_("Please enter Stock Items consumed during the Repair."), title=_("Missing Items"))
|
frappe.throw(_("Please enter Stock Items consumed during the Repair."), title=_("Missing Items"))
|
||||||
|
|||||||
Reference in New Issue
Block a user