a
    0i                     @   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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update_costing_head_docsidSQLcotizaciones_especialesc           
      C   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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   L/var/www/html/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u 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_id0   s    
z.cotizcreateding_solicitud.<locals>.get_user_idz/currenciesc               
   S   sv   z.t  } | rt| dfW S tddidfW S W nB typ } z*td|  tddidfW  Y d	}~S d	}~0 0 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_controller2A   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y| } z*td|  tddid	fW  Y d}~S d}~0 0 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_controller2X   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)archivos	modulo_idr"   r4   r2   DocsIDsuccessr#   r   )	r   r   r   filesgetlistformr   r   r   )UserIDr5   r2   r4   	resultador7   status_coder   r   r    
uploadFileq   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   s   t  } t| S )zF
        Endpoint para actualizar el DocsID en Q_CostingHead.
        )r   r@   r   )rC   r   r   r    update_costing_head_docsid   s    z=cotizcreateding_solicitud.<locals>.update_costing_head_docsidN)routelogin_required)
r   mailZ	_BASE_URLr!   r$   r,   r0   r?   rD   rE   r   r   r    cotizcreateding_solicitud   s,    rI   )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   r   	getLoggerloggerrI   r   r   r   r    <module>   s   8
