@@ -49,6 +49,7 @@ class Employee(NestedSet):
4949 company : DF .Link
5050 company_email : DF .Data | None
5151 contract_end_date : DF .Date | None
52+ create_user_automatically : DF .Check
5253 create_user_permission : DF .Check
5354 ctc : DF .Currency
5455 current_accommodation_type : DF .Literal ["" , "Rented" , "Owned" ]
@@ -125,6 +126,7 @@ def validate(self):
125126 self .set_employee_name ()
126127 self .validate_date ()
127128 self .validate_email ()
129+ self .validate_auto_user_creation ()
128130 self .validate_status ()
129131 self .validate_reports_to ()
130132 self .set_preferred_email ()
@@ -159,6 +161,10 @@ def validate_user_details(self):
159161 self .validate_for_enabled_user_id (data .get ("enabled" , 0 ))
160162 self .validate_duplicate_user_id ()
161163
164+ def validate_auto_user_creation (self ):
165+ if self .create_user_automatically and not self .company_email :
166+ frappe .throw (_ ("Email is mandatory when Create User Automatically is enabled" ))
167+
162168 def update_nsm_model (self ):
163169 frappe .utils .nestedset .update_nsm (self )
164170
@@ -170,6 +176,19 @@ def on_update(self):
170176 self .update_user_permissions ()
171177 self .reset_employee_emails_cache ()
172178
179+ def after_insert (self ):
180+ if not self .create_user_automatically :
181+ return
182+
183+ if self .user_id :
184+ return
185+
186+ create_user (
187+ employee = self .name ,
188+ email = self .company_email ,
189+ create_user_permission = self .create_user_permission ,
190+ )
191+
173192 def update_user_permissions (self ):
174193 if not self .has_value_changed ("user_id" ) and not self .has_value_changed ("create_user_permission" ):
175194 return
@@ -406,7 +425,7 @@ def create_user(employee, user=None, email=None, create_user_permission=0):
406425 if email :
407426 email = cstr (email ).strip ().lower ()
408427 else :
409- email = emp .prefered_email
428+ email = emp .company_email
410429
411430 if not email :
412431 frappe .throw (_ ("Email is required to create a user" ))
@@ -436,7 +455,7 @@ def create_user(employee, user=None, email=None, create_user_permission=0):
436455 user = frappe .new_doc ("User" )
437456 user .update (
438457 {
439- "name" : emp . employee_name ,
458+ "name" : email ,
440459 "email" : email ,
441460 "enabled" : 1 ,
442461 "first_name" : first_name ,
@@ -446,7 +465,6 @@ def create_user(employee, user=None, email=None, create_user_permission=0):
446465 "birth_date" : emp .date_of_birth ,
447466 "phone" : emp .cell_number ,
448467 "bio" : emp .bio ,
449- "send_welcome_email" : 1 ,
450468 }
451469 )
452470 user .append_roles ("Employee" )
0 commit comments