fix: asset maintenance fixes (#21277)
* fix: asset maintenance fixes
* fix: tests
diff --git a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.js b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.js
index 3c135d4..001fc26 100644
--- a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.js
+++ b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.js
@@ -24,26 +24,6 @@
return indicator;
}
);
-
- frm.set_query('select_serial_no', function(doc){
- return {
- asset: frm.doc.asset_name
- }
- })
- },
-
- select_serial_no: (frm) => {
- let serial_nos = frm.doc.serial_no || frm.doc.select_serial_no;
- if (serial_nos) {
- serial_nos = serial_nos.split('\n');
- serial_nos.push(frm.doc.select_serial_no);
-
- const unique_sn = serial_nos.filter(function(elem, index, self) {
- return index === self.indexOf(elem);
- });
-
- frm.set_value("serial_no", unique_sn.join('\n'));
- }
},
refresh: (frm) => {
@@ -93,25 +73,6 @@
},
end_date: (frm, cdt, cdn) => {
get_next_due_date(frm, cdt, cdn);
- },
- assign_to: (frm, cdt, cdn) => {
- var d = locals[cdt][cdn];
- if (frm.doc.__islocal) {
- frappe.model.set_value(cdt, cdn, "assign_to", "");
- frappe.model.set_value(cdt, cdn, "assign_to_name", "");
- frappe.throw(__("Please save before assigning task."));
- }
- if (d.assign_to) {
- return frappe.call({
- method: 'erpnext.assets.doctype.asset_maintenance.asset_maintenance.assign_tasks',
- args: {
- asset_maintenance_name: frm.doc.name,
- assign_to_member: d.assign_to,
- maintenance_task: d.maintenance_task,
- next_due_date: d.next_due_date
- }
- });
- }
}
});
diff --git a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py
index ecb55dd..3f04611 100644
--- a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py
+++ b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py
@@ -16,12 +16,11 @@
throw(_("Start date should be less than end date for task {0}").format(task.maintenance_task))
if getdate(task.next_due_date) < getdate(nowdate()):
task.maintenance_status = "Overdue"
+ if not task.assign_to and self.docstatus == 0:
+ throw(_("Row #{}: Please asign task to a member.").format(task.idx))
def on_update(self):
for task in self.get('asset_maintenance_tasks'):
- if not task.assign_to:
- task.db_set("assign_to", self.maintenance_manager)
- task.db_set("assign_to_name", self.maintenance_manager_name)
assign_tasks(self.name, task.assign_to, task.maintenance_task, task.next_due_date)
self.sync_maintenance_tasks()
@@ -108,7 +107,7 @@
@frappe.whitelist()
def get_team_members(doctype, txt, searchfield, start, page_len, filters):
- return frappe.db.get_values('Maintenance Team Member', {'parent':filters.get("maintenance_team")})
+ return frappe.db.get_values('Maintenance Team Member', { 'parent': filters.get("maintenance_team") })
@frappe.whitelist()
def get_maintenance_log(asset_name):
diff --git a/erpnext/assets/doctype/asset_maintenance/test_asset_maintenance.py b/erpnext/assets/doctype/asset_maintenance/test_asset_maintenance.py
index 6c2fd67..392fbdd 100644
--- a/erpnext/assets/doctype/asset_maintenance/test_asset_maintenance.py
+++ b/erpnext/assets/doctype/asset_maintenance/test_asset_maintenance.py
@@ -125,13 +125,15 @@
"start_date": nowdate(),
"periodicity": "Monthly",
"maintenance_type": "Preventive Maintenance",
- "maintenance_status": "Planned"
+ "maintenance_status": "Planned",
+ "assign_to": "marcus@abc.com"
},
{"maintenance_task": "Check Gears",
"start_date": nowdate(),
"periodicity": "Yearly",
"maintenance_type": "Calibration",
- "maintenance_status": "Planned"
+ "maintenance_status": "Planned",
+ "assign_to": "thalia@abc.com"
}
]