Small improvement in maintenance scheduler
This improvement is intended to start disable blocking Maintenance Schedule submit, when the `Sales Person` does not have a `user_id` in the Employee!
The old logic try to use the `sales_person` email_id or the `owner` to create the event, but due some fails in the code, it dont occurs!
diff --git a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py
index 5fab1ac..7d762f4 100644
--- a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py
+++ b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py
@@ -49,26 +49,28 @@
if d.sales_person not in email_map:
sp = frappe.get_doc("Sales Person", d.sales_person)
- email_map[d.sales_person] = sp.get_email_id()
+ try:
+ email_map[d.sales_person] = sp.get_email_id()
+ except frappe.ValidationError:
+ pass
scheduled_date = frappe.db.sql("""select scheduled_date from
`tabMaintenance Schedule Detail` where sales_person=%s and item_code=%s and
parent=%s""", (d.sales_person, d.item_code, self.name), as_dict=1)
for key in scheduled_date:
- if email_map[d.sales_person]:
- description = "Reference: %s, Item Code: %s and Customer: %s" % \
- (self.name, d.item_code, self.customer)
- frappe.get_doc({
- "doctype": "Event",
- "owner": email_map[d.sales_person] or self.owner,
- "subject": description,
- "description": description,
- "starts_on": cstr(key["scheduled_date"]) + " 10:00:00",
- "event_type": "Private",
- "ref_type": self.doctype,
- "ref_name": self.name
- }).insert(ignore_permissions=1)
+ description = "Reference: %s, Item Code: %s and Customer: %s" % \
+ (self.name, d.item_code, self.customer)
+ frappe.get_doc({
+ "doctype": "Event",
+ "owner": email_map.get(d.sales_person, self.owner),
+ "subject": description,
+ "description": description,
+ "starts_on": cstr(key["scheduled_date"]) + " 10:00:00",
+ "event_type": "Private",
+ "ref_type": self.doctype,
+ "ref_name": self.name
+ }).insert(ignore_permissions=1)
frappe.db.set(self, 'status', 'Submitted')