From 8c4cf12c933d09846fa470aa316684bbf7fd235a Mon Sep 17 00:00:00 2001 From: "Parth J. Kharwar" Date: Wed, 25 Dec 2019 15:14:52 +0530 Subject: [PATCH 1/2] Setting preferred driver email in delivery trip (#19832) * fix: add driver's preferred contact email in delivery trip * fix: modify driver's preferred email patch and blank field checks * fix: patch file fix * fix: patch changes to improve speed * fix: removal of conflicts Co-authored-by: Nabin Hait --- erpnext/hr/doctype/employee/employee.py | 6 ++++++ erpnext/patches.txt | 1 + .../v12_0/set_employee_preferred_emails.py | 16 ++++++++++++++++ .../doctype/delivery_trip/delivery_trip.js | 17 ++++++++++++++++- .../doctype/delivery_trip/delivery_trip.json | 11 ++++++++++- .../doctype/delivery_trip/delivery_trip.py | 6 ++++++ 6 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 erpnext/patches/v12_0/set_employee_preferred_emails.py diff --git a/erpnext/hr/doctype/employee/employee.py b/erpnext/hr/doctype/employee/employee.py index 242531bd17..4d49503d2d 100755 --- a/erpnext/hr/doctype/employee/employee.py +++ b/erpnext/hr/doctype/employee/employee.py @@ -164,6 +164,12 @@ class Employee(NestedSet): if self.personal_email: validate_email_address(self.personal_email, True) + def set_preferred_email(self): + preferred_email_field = frappe.scrub(self.prefered_contact_email) + if preferred_email_field: + preferred_email = self.get(preferred_email_field) + self.prefered_email = preferred_email + def validate_status(self): if self.status == 'Left': reports_to = frappe.db.get_all('Employee', diff --git a/erpnext/patches.txt b/erpnext/patches.txt index ab8e942ba7..89be499f6f 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -649,6 +649,7 @@ erpnext.patches.v12_0.add_export_type_field_in_party_master erpnext.patches.v12_0.remove_denied_leaves_from_leave_ledger erpnext.patches.v12_0.update_price_or_product_discount erpnext.patches.v12_0.set_production_capacity_in_workstation +erpnext.patches.v12_0.set_employee_preferred_emails erpnext.patches.v12_0.set_against_blanket_order_in_sales_and_purchase_order erpnext.patches.v12_0.set_cost_center_in_child_table_of_expense_claim erpnext.patches.v12_0.set_lead_title_field diff --git a/erpnext/patches/v12_0/set_employee_preferred_emails.py b/erpnext/patches/v12_0/set_employee_preferred_emails.py new file mode 100644 index 0000000000..27635612f9 --- /dev/null +++ b/erpnext/patches/v12_0/set_employee_preferred_emails.py @@ -0,0 +1,16 @@ +import frappe + + +def execute(): + employees = frappe.get_all("Employee", + filters={"prefered_email": ""}, + fields=["name", "prefered_contact_email", "company_email", "personal_email", "user_id"]) + + for employee in employees: + preferred_email_field = frappe.scrub(employee.prefered_contact_email) + + if not preferred_email_field: + continue + + preferred_email = employee.get(preferred_email_field) + frappe.db.set_value("Employee", employee.name, "prefered_email", preferred_email, update_modified=False) diff --git a/erpnext/stock/doctype/delivery_trip/delivery_trip.js b/erpnext/stock/doctype/delivery_trip/delivery_trip.js index 6a7eecfba6..a025f06711 100755 --- a/erpnext/stock/doctype/delivery_trip/delivery_trip.js +++ b/erpnext/stock/doctype/delivery_trip/delivery_trip.js @@ -79,6 +79,21 @@ frappe.ui.form.on('Delivery Trip', { }, () => { frm.reload_doc(); }); + }, + + driver: function (frm) { + if (frm.doc.driver) { + frappe.call({ + method: "erpnext.stock.doctype.delivery_trip.delivery_trip.get_driver_email", + args: { + driver: frm.doc.driver + }, + callback: (data) => { + frm.set_value("driver_email", data.message.email); + } + }); + }; + }, }, @@ -196,4 +211,4 @@ frappe.ui.form.on('Delivery Stop', { frappe.model.set_value(cdt, cdn, "customer_contact", ""); } } -}); \ No newline at end of file +}); diff --git a/erpnext/stock/doctype/delivery_trip/delivery_trip.json b/erpnext/stock/doctype/delivery_trip/delivery_trip.json index 0a526243bc..1bacf465fa 100644 --- a/erpnext/stock/doctype/delivery_trip/delivery_trip.json +++ b/erpnext/stock/doctype/delivery_trip/delivery_trip.json @@ -1,4 +1,5 @@ { + "actions": [], "autoname": "naming_series:", "creation": "2017-10-16 16:45:48.293335", "doctype": "DocType", @@ -13,6 +14,7 @@ "section_break_3", "driver", "driver_name", + "driver_email", "driver_address", "total_distance", "uom", @@ -167,10 +169,17 @@ "fieldtype": "Link", "label": "Driver Address", "options": "Address" + }, + { + "fieldname": "driver_email", + "fieldtype": "Data", + "label": "Driver Email", + "read_only": 1 } ], "is_submittable": 1, - "modified": "2019-09-27 15:43:01.975139", + "links": [], + "modified": "2019-12-06 17:06:59.681952", "modified_by": "Administrator", "module": "Stock", "name": "Delivery Trip", diff --git a/erpnext/stock/doctype/delivery_trip/delivery_trip.py b/erpnext/stock/doctype/delivery_trip/delivery_trip.py index 77d322ed28..e2c5b91f51 100644 --- a/erpnext/stock/doctype/delivery_trip/delivery_trip.py +++ b/erpnext/stock/doctype/delivery_trip/delivery_trip.py @@ -387,3 +387,9 @@ def get_attachments(delivery_stop): file_name="Delivery Note", print_format=dispatch_attachment) return [attachments] + +@frappe.whitelist() +def get_driver_email(driver): + employee = frappe.db.get_value("Driver", driver, "employee") + email = frappe.db.get_value("Employee", employee, "prefered_email") + return {"email": email} From e2ea11c43721f752c6d46f8e0bc48f2318f7c72b Mon Sep 17 00:00:00 2001 From: Himanshu Date: Wed, 25 Dec 2019 15:15:35 +0530 Subject: [PATCH 2/2] fix: remove quote (#20076) --- erpnext/stock/doctype/batch/batch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/batch/batch.py b/erpnext/stock/doctype/batch/batch.py index 114925469b..0524eee2d5 100644 --- a/erpnext/stock/doctype/batch/batch.py +++ b/erpnext/stock/doctype/batch/batch.py @@ -270,5 +270,5 @@ def get_batches(item_code, warehouse, qty=1, throw=False): where `tabStock Ledger Entry`.item_code = %s and `tabStock Ledger Entry`.warehouse = %s and (`tabBatch`.expiry_date >= CURDATE() or `tabBatch`.expiry_date IS NULL) group by batch_id - order by `tabBatch`.expiry_date ASC, `tabBatch`.creation ASC' + order by `tabBatch`.expiry_date ASC, `tabBatch`.creation ASC """, (item_code, warehouse), as_dict=True) \ No newline at end of file