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 <nabinhait@gmail.com>
This commit is contained in:
Parth J. Kharwar 2019-12-25 15:14:52 +05:30 committed by Nabin Hait
parent 6e8a9286c2
commit 8c4cf12c93
6 changed files with 55 additions and 2 deletions

View File

@ -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',

View File

@ -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

View File

@ -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)

View File

@ -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", "");
}
}
});
});

View File

@ -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",

View File

@ -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}