+
    bi                         ^ RI H t  ^ RIt^ RIHtHtHtHtHt ^ RIH	t	 ^ RI
HtHtHtHtHtHtHtHtHtHtHt ]P,                  ! R4      tR tR# )    )datetimeN)appjsonifyrender_templaterequestsession)check_user_access)buscar_tarea_crmbuscar_oportunidad_crmdata_for_emailenviarCorreoCostingCreadogenerar_costing_headSQLget_currencies	get_taxesobtener_contexto_usuarioobtener_datos_formularioupload_archivos_simpleuploadFileAuxiliarcotizaciones_especialesc                  a	 RpV P                   ! V R2R.R7      V P                  R 4       4       p V P                   ! V R2R.R7      V P                  R 4       4       p V P                   ! V R2R.R7      V P                  R	 4       4       p V P                   ! R
R.R7      V P                  R 4       4       p V P                   ! V R2R.R7      V P                  R 4       4       p V P                   ! V R2R.R7      V P                  R 4       4       p V P                   ! V R2R.R7      V P                  V	3R l4       4       o	R# )u   
Función principal que registra todas las funciones y endpoints del módulo de cotizaciones de ingeniería.
Args:
    app: Instancia de Flask
    mail: Instancia del sistema de mail
z1/api/Operaciones/Ingenieria/Cotiz/CotizCreatedIngz/get_data_for_emailGET)methodsc                      \         P                  P                  R \        R7      p V '       g   RR/R3# \	        V 4      pV# )task_id)typeerrorztask_id es requerido  )r   argsgetintr   )r   dataJsons     vC:\Users\victor.barrera\Documents\proyectos\elepV3\Elep\src\App\Operaciones_Module\Ingenieria\Cotiz\CotizCreatedIng.pyget_data_for_email5cotizcreateding_solicitud.<locals>.get_data_for_email    s@     ,,""93"734c99,W5    z/user_idc                 r    \         P                  ! R4      p V f   \        RR/4      R3# \        RV /4      ^3# )u>   
Retorna el UserID actual de la sesión si está autenticado.
user_idr   u   No hay sesión activai  )r   r   r   )r'   s    r"   get_user_id.cotizcreateding_solicitud.<locals>.get_user_id/   sB     ++i(?G%<=>CC	7+,c11r%   z/currenciesc                      \        4       p V '       d   \        V 4      ^3# \        RR/4      R3#   \         d(   p\        RT 24       \        RR/4      R3u Rp?# Rp?ii ; i)	zb
Endpoint para obtener todas las monedas activas del sistema.
Ruta final: /api/general/currencies
messagez!No se encontraron monedas activasi  zError en currencies endpoint: r   (   Ocurrió un error interno en el servidor  N)r   r   	Exceptionprint)
currencieses     r"   get_currencies_controller2=cotizcreateding_solicitud.<locals>.get_currencies_controller2@   ss    
	W')Jz*C//	+NOPRUUU 	W21#67G%OPQSVVV	Ws   0 0 A"AA"A"z+/Ingenieria/Cotiz/CotizCreatedIng/get_taxesc                     \         P                  P                  RR4      p V '       g   \        RR/4      R3# \	        V 4      p\        V4      ^3#   \
         d(   p\        RT 24       \        RR/4      R3u Rp?# Rp?ii ; i)	z
Endpoint para obtener impuestos activos filtrados por CurrencyCode (query param).
Compatible con: fillTaxCurrencySelect(currencyCode)
currencyNr   u%   El parámetro 'currency' es requeridor   zError en get_taxes endpoint: r,   r-   )r   r   r   r   r   r.   r/   )currency_codetaxesr1   s      r"   get_taxes_controller28cotizcreateding_solicitud.<locals>.get_taxes_controller2W   s    	W#LL,,Z>M )PQRTWWWm,E5>3&& 	W1!56G%OPQSVVV	Ws'   'A A A BA>8B>Bz/uploadFilePOSTc                     \         P                  ! R 4      p \        P                  P	                  R4      p\        P
                  P                  RR4      p\        P
                  P                  R4      p\        VRV VVR7      pVP                  R4      p\        WSV4      pVP                  R4      '       d   ^MRp\        V4      V3# )	r'   z
archivos[]	categoriaCotizCreatedIng	CostingID)archivos	modulo_idr'   r>   r<   DocsIDsuccessr   )	r   r   r   filesgetlistformr   r   r   )UserIDr?   r<   r>   	resultadorA   status_codes          r"   
uploadFile-cotizcreateding_solicitud.<locals>.uploadFilep   s     Y'MM)),7LL$$[2CD	LL$$[1	 +'
	 x(&v	B	 ']]955c3y!;..r%   z/Q_CostingHead/Completoc                 J    Rp Rp\         P                  ! 4       p\        V4      # )u   
Endpoint que crea Q_CostingHead y Q_CostingDetail en una transacción.
Obtiene el último CostingNum, incrementa +1 y lo usa para insertar.
N)r   get_jsonr   )conncursordatas      r"   generar_costing_head7cotizcreateding_solicitud.<locals>.generar_costing_head   s'     !&t,,r%   z/updateCostingHead-docsIDc                 >   < \         P                  ! 4       p S! V 4      # )z6
Endpoint para actualizar el DocsID en Q_CostingHead.
)r   rL   )rO   update_costing_head_docsids    r"   rS   =cotizcreateding_solicitud.<locals>.update_costing_head_docsid   s     !)$//r%   N)routelogin_required)
r   mail	_BASE_URLr#   r(   r2   r8   rI   rP   rS   s
   &&       @r"   cotizcreateding_solicitudrY      s    DI 	YY)/05'B  C 	YY)H%w7	2  8	2 	YY)K(5':W  ;W$ 	YY<ugNW  OW( 	YY)K(6(;/  </2 	YY)34vhG
-  H
- 	YY)56I0  J0r%   )r   loggingflaskr   r   r   r   r   App.Security_Module.UserAccessr	   =Consultas_SQL.Operaciones.Ingenieria.Cotiz.CotizCreatedIngSQLr
   r   r   r   r   r   r   r   r   r   r   	getLoggerloggerrY    r%   r"   <module>ra      sC      B B <    
		4	5R0r%   