mirror of
https://github.com/frappe/erpnext.git
synced 2026-04-02 06:29:54 +00:00
fix: employee user creation
- consider prefered email as default in employee creation
- remove unused user parameter from `create_user` API
- remove unnecessary validations on user ID, already checked by user doctype hooks
- set company email only if empty
(cherry picked from commit 613d36a139)
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user