On changing assign_to assign maintenance task in Asset Maintenance (#11804)
diff --git a/erpnext/assets/doctype/asset/asset.json b/erpnext/assets/doctype/asset/asset.json
index bce8851..573832c 100644
--- a/erpnext/assets/doctype/asset/asset.json
+++ b/erpnext/assets/doctype/asset/asset.json
@@ -1221,7 +1221,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-11-28 07:10:24.760982",
+ "modified": "2017-12-01 15:11:47.466859",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset",
@@ -1247,6 +1247,26 @@
"share": 1,
"submit": 1,
"write": 1
+ },
+ {
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 1,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 1,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Quality Manager",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 1,
+ "write": 1
}
],
"quick_entry": 0,
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index 97cb876..e5b545e 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -17,12 +17,12 @@
self.validate_item()
self.set_missing_values()
self.validate_asset_values()
- self.make_depreciation_schedule()
- self.set_accumulated_depreciation()
+ if self.calculate_depreciation:
+ self.make_depreciation_schedule()
+ self.set_accumulated_depreciation()
+ get_depreciation_accounts(self)
if self.get("schedules"):
self.validate_expected_value_after_useful_life()
- # Validate depreciation related accounts
- get_depreciation_accounts(self)
def on_submit(self):
self.set_status()
diff --git a/erpnext/assets/doctype/asset_category/asset_category.json b/erpnext/assets/doctype/asset_category/asset_category.json
index 39b3978..087b83d 100644
--- a/erpnext/assets/doctype/asset_category/asset_category.json
+++ b/erpnext/assets/doctype/asset_category/asset_category.json
@@ -236,7 +236,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-10-19 16:08:02.114363",
+ "modified": "2017-12-01 15:14:25.645077",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Category",
@@ -282,6 +282,26 @@
"share": 1,
"submit": 0,
"write": 1
+ },
+ {
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 1,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Quality Manager",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 0,
+ "write": 1
}
],
"quick_entry": 0,
diff --git a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.js b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.js
index ebac84c..1583daf 100644
--- a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.js
+++ b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.js
@@ -74,11 +74,23 @@
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.json b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.json
index 4d6a7cf..72d96b0 100644
--- a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.json
+++ b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.json
@@ -420,7 +420,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-11-29 04:42:54.893169",
+ "modified": "2017-12-01 15:13:29.816396",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Maintenance",
@@ -446,6 +446,26 @@
"share": 1,
"submit": 0,
"write": 1
+ },
+ {
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 1,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Manufacturing User",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 0,
+ "write": 1
}
],
"quick_entry": 0,
diff --git a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py
index 0c42a13..7551eae 100644
--- a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py
+++ b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py
@@ -18,29 +18,12 @@
task.maintenance_status = "Overdue"
def on_update(self):
- self.sync_maintenance_tasks()
-
- def after_insert(self):
for task in self.get('asset_maintenance_tasks'):
- self.assign_tasks(task)
-
- def assign_tasks(self, task):
- if not task.assign_to:
- task.db_set("assign_to", self.maintenance_manager)
- task.db_set("assign_to_name", self.maintenance_manager_name)
- if task.assign_to:
- team_member = frappe.get_doc('User', task.assign_to).email
- args = {
- 'doctype' : self.doctype,
- 'assign_to' : team_member,
- 'name' : self.name,
- 'description' : task.maintenance_task,
- 'date' : task.next_due_date
- }
- if not frappe.db.sql("""select owner from `tabToDo`
- where reference_type=%(doctype)s and reference_name=%(name)s and status="Open"
- and owner=%(assign_to)s""", args):
- assign_to.add(args)
+ 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()
def sync_maintenance_tasks(self):
tasks_names = []
@@ -55,6 +38,21 @@
maintenance_log.db_set('maintenance_status', 'Cancelled')
@frappe.whitelist()
+def assign_tasks(asset_maintenance_name, assign_to_member, maintenance_task, next_due_date):
+ team_member = frappe.get_doc('User', assign_to_member).email
+ args = {
+ 'doctype' : 'Asset Maintenance',
+ 'assign_to' : team_member,
+ 'name' : asset_maintenance_name,
+ 'description' : maintenance_task,
+ 'date' : next_due_date
+ }
+ if not frappe.db.sql("""select owner from `tabToDo`
+ where reference_type=%(doctype)s and reference_name=%(name)s and status="Open"
+ and owner=%(assign_to)s""", args):
+ assign_to.add(args)
+
+@frappe.whitelist()
def calculate_next_due_date(periodicity, start_date = None, end_date = None, last_completion_date = None, next_due_date = None):
if not start_date and not last_completion_date:
start_date = frappe.utils.now()
diff --git a/erpnext/assets/doctype/asset_maintenance_team/asset_maintenance_team.json b/erpnext/assets/doctype/asset_maintenance_team/asset_maintenance_team.json
index 28836b5..3405a7d 100644
--- a/erpnext/assets/doctype/asset_maintenance_team/asset_maintenance_team.json
+++ b/erpnext/assets/doctype/asset_maintenance_team/asset_maintenance_team.json
@@ -236,7 +236,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-10-25 12:59:19.133235",
+ "modified": "2017-12-01 15:13:00.374360",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Maintenance Team",
@@ -257,7 +257,7 @@
"print": 1,
"read": 1,
"report": 1,
- "role": "System Manager",
+ "role": "Manufacturing User",
"set_user_permissions": 0,
"share": 1,
"submit": 0,