U
    bi                     @   s   d dl m Z  d dlZd dlmZmZmZmZmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZmZmZmZmZ edZdd ZdS )	    )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           	         s  d}| j | ddgd| jdd }| j | ddgd| jdd	 }| j | d
dgd| jdd }| j ddgd| jdd }| j | ddgd| jdd }| j | ddgd| jdd }| j | ddgd| j fdd dS )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                  S   s,   t jjdtd} | s ddidfS t| }|S )Ntask_id)typeerrorztask_id es requerido  )r   argsgetintr   )r   ZdataJson r   vC:\Users\victor.barrera\Documents\proyectos\elepV3\Elep\src\App\Operaciones_Module\Ingenieria\Cotiz\CotizCreatedIng.pyget_data_for_email    s
    z5cotizcreateding_solicitud.<locals>.get_data_for_emailz/user_idc                  S   s2   t d} | dkr"tddidfS td| idfS )uN   
        Retorna el UserID actual de la sesión si está autenticado.
        user_idNr   u   No hay sesión activai     )r   r   r   )r!   r   r   r   get_user_id/   s    
z.cotizcreateding_solicitud.<locals>.get_user_idz/currenciesc               
   S   sx   z.t  } | rt| dfW S tddidfW S W nD tk
rr } z&td|  tddidf W Y S d	}~X Y nX d	S )
zz
        Endpoint para obtener todas las monedas activas del sistema.
        Ruta final: /api/general/currencies
        r"   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er   r   r   get_currencies_controller2@   s    z=cotizcreateding_solicitud.<locals>.get_currencies_controller2z+/Ingenieria/Cotiz/CotizCreatedIng/get_taxesc               
   S   s   z:t jdd} | s&tddidfW S t| }t|dfW S  tk
r~ } z&td|  tddid	f W Y S d}~X Y nX dS )
z
        Endpoint para obtener impuestos activos filtrados por CurrencyCode (query param).
        Compatible con: fillTaxCurrencySelect(currencyCode)
        currencyNr   u%   El parámetro 'currency' es requeridor   r"   zError en get_taxes endpoint: r%   r&   )r   r   r   r   r   r'   r(   )currency_codetaxesr*   r   r   r   get_taxes_controller2W   s    z8cotizcreateding_solicitud.<locals>.get_taxes_controller2z/uploadFilePOSTc                  S   sv   t d} tjd}tjdd}tjd}t|d| ||d}|d}t|||}|drfd	nd
}t||fS )Nr!   z
archivos[]	categoriaCotizCreatedIng	CostingID)archivosZ	modulo_idr!   r3   r1   DocsIDsuccessr"   r   )	r   r   r   filesgetlistformr   r   r   )UserIDr4   r1   r3   	resultador5   status_coder   r   r   
uploadFilep   s    

z-cotizcreateding_solicitud.<locals>.uploadFilez/Q_CostingHead/Completoc                  S   s   d} d}t  }t|S )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datar   r   r   generar_costing_head   s    z7cotizcreateding_solicitud.<locals>.generar_costing_headz/updateCostingHead-docsIDc                     s   t  }  | S )zF
        Endpoint para actualizar el DocsID en Q_CostingHead.
        )r   r>   )rA   update_costing_head_docsidr   r   rD      s    z=cotizcreateding_solicitud.<locals>.update_costing_head_docsidN)routelogin_required)	r   mailZ	_BASE_URLr    r#   r+   r/   r=   rB   r   rC   r   cotizcreateding_solicitud   s,    rH   )r   loggingflaskr   r   r   r   r   App.Security_Module.UserAccessr   Z=Consultas_SQL.Operaciones.Ingenieria.Cotiz.CotizCreatedIngSQLr	   r
   r   r   r   r   r   r   r   r   r   	getLoggerloggerrH   r   r   r   r   <module>   s   4
