+
    iH.                     x    ^ RI HtHtHt ^ RIHtHtHtHtH	t	H
t
HtHtHtHt ^ RIHt ^ RIt^ RIt^ RIHt R tR# )    )jsonifyrequestrender_template)
get_AccessEmployeesget_all_request_typesget_roles_by_filtersget_all_companiesget_divisions_by_companyget_departments_by_divisionget_infocheck_if_email_existsupdate_infoupdate_user_request_rejected)MessageN)send_activation_emailc                4  a aa S P                  RR.R7      R 4       pS P                  RR.R7      R 4       pS P                  RR.R7      R 4       pS P                  R	R.R7      R
 4       pS P                  RR.R7      R 4       pS P                  RR.R7      R 4       pS P                  RR.R7      R 4       pS P                  RR.R7      R 4       p	S P                  RR.R7      V V3R l4       p
S P                  RR.R7      V3R l4       pRV V3R lloS # )uG   
Agrupamos todas las funciones que importamos en la aplicación Flask.
z2/SupyCtrol_Module/DataMaster/DMAccessEmployee/listGET)methodsc                      \        4       p \        V 4      ^3#   \         d#   p\        R\        T4      /4      R3u Rp?# Rp?ii ; i)u8   Retorna la lista de empleados pendientes de aceptación.error  N)r   r   	Exceptionstr)AccessEmployeeses     oC:\Users\victor.barrera\Documents\proyectos\elepV3\Elep\src\App\SupyCtrol_Module\DataMaster\DMAccessEmployee.pylist_AccessEmployees5funcion_AccessEmployees.<locals>.list_AccessEmployees   sH    	313O?+S00 	3GSV,-s22	3    AAAAz;/SupyCtrol_Module/DataMaster/DMAccessEmployee/request-typesc                      \        4       p \        V 4      ^3#   \         d#   p\        R\        T4      /4      R3u Rp?# Rp?ii ; i)z4Retorna la lista de tipos de formulario disponibles.r   r   N)r   r   r   r   )request_typesr   s     r   get_request_types2funcion_AccessEmployees.<locals>.get_request_types   sH    	313M=)3.. 	3GSV,-s22	3r   z7/SupyCtrol_Module/DataMaster/DMAccessEmployee/companiesc                      \        4       p \        V 4      ^3#   \         d#   p\        R\        T4      /4      R3u Rp?# Rp?ii ; i)u,   Retorna la lista de compañías disponibles.r   r   N)r	   r   r   r   )	companiesr   s     r   get_companies.funcion_AccessEmployees.<locals>.get_companies'   sH    	3)+I9%s** 	3GSV,-s22	3r   z7/SupyCtrol_Module/DataMaster/DMAccessEmployee/divisionsc                      \         P                  P                  R4      p V '       g   \        RR/4      R3# \	        V 4      p\        V4      ^3#   \
         d#   p\        R\        T4      /4      R3u Rp?# Rp?ii ; i)uC   Retorna las divisiones disponibles para una compañía específica.	companyIdr   zCompanyID es requerido  r   N)r   argsgetr   r
   r   r   )
company_id	divisionsr   s      r   get_divisions.funcion_AccessEmployees.<locals>.get_divisions0   sw    	3 ))+6J)ABCSHH0<I9%s** 	3GSV,-s22	3s'   &A A A A=A82A=8A=z9/SupyCtrol_Module/DataMaster/DMAccessEmployee/departmentsc                 N    \         P                  P                  R4      p \         P                  P                  R4      pV '       d	   V'       g   \        RR/4      R3# \	        W4      p\        V4      ^3#   \
         d#   p\        R\        T4      /4      R3u Rp?# Rp?ii ; i)uS   Retorna los departamentos disponibles para una compañía y división específicas.r)   
divisionIdr   z%CompanyID y DivisionID son requeridosr*   r   N)r   r+   r,   r   r   r   r   )r-   division_iddepartmentsr   s       r   get_departments0funcion_AccessEmployees.<locals>.get_departments=   s    
	3 ))+6J!,,**<8K[)PQRTWWW5jNK;',, 	3GSV,-s22	3s0   AA7 A7 A7 A7 7B$BB$B$z</SupyCtrol_Module/DataMaster/DMAccessEmployee/filtered-rolesc                 V    \         P                  P                  RR4      p \         P                  P                  RR4      p\         P                  P                  RR4      p\        WV4      p\	        V4      ^3#   \
         d#   p\	        R\        T4      /4      R3u Rp?# Rp?ii ; i)uY   Retorna la lista de roles disponibles filtrados por compañía, división y departamento.r)    r2   departamentIdr   r   N)r   r+   r,   r   r   r   r   )r-   r3   departament_idrolesr   s        r   get_filtered_roles3funcion_AccessEmployees.<locals>.get_filtered_rolesL   s    	3 ))+r:J!,,**<<K$\\--orBN(.QE5>3&& 	3GSV,-s22	3s   A8A; ;B(B#B(#B(z5/SupyCtrol_Module/DataMaster/DMAccessEmployee/getinfoc                 0    \         P                  P                  R4      p \        RV 4       V '       g   \	        RR/4      R3# \        V 4      p\        RV4       \	        V4      ^3#   \         d#   p\	        R\        T4      /4      R3u Rp?# Rp?ii ; i)	uB   Obtiene la información detallada de un empleado por su RequestID.	RequestIDzID del usuario: r   RequestID es requeridor*   u   Información del empleado: r   N)r   r+   r,   printr   r   r   r   )
request_idInfoEmployeer   s      r   getinfo(funcion_AccessEmployees.<locals>.getinfoY   s    	3 ))+6J$j1)ABCSHH#J/L0,?<(#-- 	3GSV,-s22	3s$   AA( #A( (B3B
BBz9/SupyCtrol_Module/DataMaster/DMAccessEmployee/check-emailc                     \         P                  P                  R4      p V '       g   \        RR/4      R3# \	        V 4      p\        RV/4      ^3#   \
         d#   p\        R\        T4      /4      R3u Rp?# Rp?ii ; i)u?   Verifica si un correo electrónico ya existe en la tabla Users.emailr   zEmail es requeridor*   existsr   N)r   r+   r,   r   r   r   r   )rG   rH   r   s      r   check_email_exists3funcion_AccessEmployees.<locals>.check_email_existsl   s|    		3LL$$W-E)=>?DD*51FHf-.33 	3GSV,-s22	3s'   &A A A A?A:4A?:A?z4/SupyCtrol_Module/DataMaster/DMAccessEmployee/updatePOSTc            	       <  \         P                  ! 4       p V '       g   \        RR/4      R3# V P                  R4      pV'       g   \        RR/4      R3# \	        V 4      p\        RV4       V'       d   RV9  d   \        RR/4      R	3# \        R
VR,          4       \        S	S
VR,          4      p \        V\        4      '       d6   Vw  rEVP                  4       p\        RRRVP                  RR4      /4      V3# \        RRR\        VR4      '       d   VP                  MR/4      ^3#   \         dN   p^ RIp\        RT 24       \        TP                  4       4       \        R\        T4      /4      R	3u Rp?# Rp?ii ; i)u)   Actualiza la información de un empleado.r   zNo se recibieron datosr*   r?   r@   u    Resultado de la actualización: user_idz0No se pudo obtener el ID del usuario actualizador   zID del usuario actualizado: messageub   Hubo un error al enviar el correo de activación contacte a soporte carlos.velazquezm@igsa.com.mx zError desconocidou&   Información actualizada correctamente
token_infojsonzEmail enviado correctamenteNz)Error en al intentar resgistrar usuario: )r   get_jsonr   r,   r   rA   r   
isinstancetuplehasattrrP   r   	traceback
format_excr   )datarB   update_resulttoken_resultjson_responsestatus_code
error_datar   rU   appmails            r   
updateinfo+funcion_AccessEmployees.<locals>.updateinfoz   s   3	3##%D )ABCSHH+.J)ABCSHH'-M4mD I]$B)[\]_bbb0-	2JK 1dM)<TUL ,..-9**335
   DZ^^G5HI       
 C7<3P3Pl//Vs   
  	3=aSAB)&&()GSV,-s22		3sA   D. D. D. D. 4D. A2D. ?.D. .F9AF;FFz4/SupyCtrol_Module/DataMaster/DMAccessEmployee/rejectc                   <  \         P                  ! 4       p V P                  R4      pV P                  R4      pV'       g   \        RR/4      R3# \	        V4      pV'       d   RV9   d   \        RR/4      R3# \
        P                  ! R4      p\        P                  P                  V4      P                  R	4      p\        WV4      pRV9   d   \        V4      R3# S	! W24      pRV9   d   \        R
RRVR,          /4      ^3# \        R
R/4      ^3#   \         d1   p\        RT 24       \        R\        T4      /4      R3u Rp?# Rp?ii ; i)uD   Rechaza una solicitud de empleado y envía notificación por correo.
employeeId
comentarior   zID de empleado requeridor*   u/   No se pudo obtener la información del empleador   America/Mexico_Cityz%Y-%m-%d %H:%M:%SrN   uK   Solicitud rechazada, pero hubo un problema al enviar el correo electrónico
error_mailu9   Solicitud rechazada correctamente y notificación enviadaz[Error en reject_employee] N)r   rQ   r,   r   r   pytztimezonedatetimenowstrftimer   r   rA   r   )
rW   employee_idrc   employee_inforg   current_daterX   email_resultr   enviar_correo_rechazos
            r   reject_employee0funcion_AccessEmployees.<locals>.reject_employee   sd   "	3##%D((<0K,/J )CDEsJJ %[1M G}$<)Z[\^aaa }}%:;H#,,00:CCDWXL8T^_M-'}-s22 1KL,&l ,w"7    
 I'bcdfiii 	3/s34GSV,-s22	3s<   >D D (D :A#D &D D E%E
E
Ec                x  <  V R,          pV'       g   RR/# Rp\         P                  ! R4      p\        P                  P                  V4      pRV R,          RV R,          R\        P                  P                  4       P                  R	V/p\        R
VR7      p\        VS
P                  R,          V.R7      pWxn        S
P                  4       ;_uu_ 4        SP                  V4       RRR4       RR/#   + '       g   i     L; i  \         d&   p	\        RT	 24       R\        T	4      /u Rp	?	# Rp	?	ii ; i)u;   
Envía un correo de notificación de rechazo al empleado.
CorporateEmailr   u&   No se encontró el correo del empleadoz0Respuesta a su solicitud de acceso como empleadord   	FirstNameLastNameYear
ComentariozSecurity/UserPasswordemail.html)rW   MAIL_USERNAME)sender
recipientsNsuccesszCorreo enviado correctamentez#Error al enviar correo de rechazo: )rf   rg   rh   ri   yearr   r   confightmlapp_contextsendr   rA   r   )rl   rc   destinatarioasuntorg   rm   rW   cuerpo_htmlmsgr   r]   r^   s   &&        r   ro   6funcion_AccessEmployees.<locals>.enviar_correo_rechazo   s&   &	%()9:L!IJJ HF }}%:;H#,,00:L];7M*5))--/44j	D **KRVWKzz/2(>C #H ""		# # =>> #"  	%7s;<SV$$	%s@   D	 D	 C D	 C6*D	 6D	D	 	D9D4.D94D9)N)route)r]   r^   r   r"   r&   r/   r5   r<   rD   rI   r_   rp   ro   s   ff          @r   funcion_AccessEmployeesr      s    	YYCeWYU3 V3 	YYLW\V]Y^3 _3 	YYHSXRYYZ3 [3 	YYHSXRYYZ
3 [
3 	YYJUZT[Y\3 ]3 	YYMX]W^Y_
3 `
3 	YYFQVPWYX3 Y3$ 	YYJUZT[Y\3 ]3 	YYEPVxYX53 Y53p 	YYEPVxYX$3 Y$3L*% *%Z J    )flaskr   r   r   6Consultas_SQL.SupYCtrol.DataMaster.DMAccessEmployeeSQLr   r   r   r	   r
   r   r   r   r   r   
flask_mailr   rh   rf    App.Security_Module.UserPasswordr   r    r   r   <module>r      s0   
 4 3  
    Bwr   