@@ -126,7 +126,6 @@ def validate(self):
126126 self .set_employee_name ()
127127 self .validate_date ()
128128 self .validate_email ()
129- self .validate_auto_user_creation ()
130129 self .validate_status ()
131130 self .validate_reports_to ()
132131 self .set_preferred_email ()
@@ -162,8 +161,14 @@ def validate_user_details(self):
162161 self .validate_duplicate_user_id ()
163162
164163 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" ))
164+ if self .create_user_automatically and not (self .prefered_email or self .company_email ):
165+ frappe .throw (
166+ _ (
167+ "Company Email or Preferred Email is mandatory when 'Create User Automatically' is enabled"
168+ ),
169+ frappe .MandatoryError ,
170+ title = _ ("Auto User Creation Error" ),
171+ )
167172
168173 def update_nsm_model (self ):
169174 frappe .utils .nestedset .update_nsm (self )
@@ -176,6 +181,9 @@ def on_update(self):
176181 self .update_user_permissions ()
177182 self .reset_employee_emails_cache ()
178183
184+ def before_insert (self ):
185+ self .validate_auto_user_creation ()
186+
179187 def after_insert (self ):
180188 if not self .create_user_automatically :
181189 return
@@ -185,7 +193,7 @@ def after_insert(self):
185193
186194 create_user (
187195 employee = self .name ,
188- email = self .company_email ,
196+ email = self .prefered_email or self . company_email ,
189197 create_user_permission = self .create_user_permission ,
190198 )
191199
0 commit comments