diff --git a/erpnext/setup/doctype/employee/employee.js b/erpnext/setup/doctype/employee/employee.js index 2a525f18f7f..4422c9048d1 100755 --- a/erpnext/setup/doctype/employee/employee.js +++ b/erpnext/setup/doctype/employee/employee.js @@ -56,7 +56,8 @@ frappe.ui.form.on("Employee", { fieldname: "email", label: __("Email"), reqd: 1, - default: frm.doc.company_email || frm.doc.personal_email || frm.doc.user_id, + default: + frm.doc.prefered_email || frm.doc.company_email || frm.doc.personal_email, }, { fieldtype: "Check", diff --git a/erpnext/setup/doctype/employee/employee.py b/erpnext/setup/doctype/employee/employee.py index 7b93e11a354..9cf1ce6aa35 100755 --- a/erpnext/setup/doctype/employee/employee.py +++ b/erpnext/setup/doctype/employee/employee.py @@ -416,31 +416,19 @@ def deactivate_sales_person(status=None, employee=None): @frappe.whitelist() -def create_user( - employee: str, user: str | None = None, email: str | None = None, create_user_permission: int = 0 -) -> str: - if not employee: - frappe.throw(_("Employee is required")) - +def create_user(employee: str, email: str | None = None, create_user_permission: int = 0) -> str: emp = frappe.get_doc("Employee", employee) - - if email: - email = cstr(email).strip().lower() - else: - email = emp.company_email - - if not email: - frappe.throw(_("Email is required to create a user")) - - validate_email_address(email, True) - if emp.user_id: frappe.throw(_("Employee {0} already has a linked user").format(emp.name)) - if frappe.db.exists("User", email): - frappe.throw(_("User {0} already exists").format(email)) + if not email: + email = emp.company_email + if not email: + frappe.throw(_("Email is required to create a user")) + email = validate_email_address(email, True) employee_name = emp.employee_name.split(" ") + first_name = employee_name[0] middle_name = last_name = "" if len(employee_name) >= 3: @@ -449,12 +437,9 @@ def create_user( elif len(employee_name) == 2: last_name = employee_name[1] - first_name = employee_name[0] - user = frappe.new_doc("User") user.update( { - "name": email, "email": email, "enabled": 1, "first_name": first_name, @@ -471,7 +456,9 @@ def create_user( user.insert() emp.reload() - emp.company_email = email + emp.user_id = user.name + if not emp.company_email: + emp.company_email = email if not emp.prefered_contact_email: emp.prefered_contact_email = "Company Email" emp.save()