U
    iG                     @   s   d dl mZ G dd dZdS )    )get_connectionc                   @   sF   e Zd ZedddZedddZedddZeedd	d
Z	dS )CZE_Quotes_Service)returnc              
   C   s   zt  }| }d}|||f | \}}d}|||f | \}}t|t| }	d}|||||	|f W 5 Q R  W 5 Q R  W dS Q R X W 5 Q R X W n6 tk
r }
 ztd|
  W Y dS d}
~
X Y nX dS )u  
        Actualiza la información del StopButtonEnclosure en la cotización CZE_Quotes

        params:
        - quote_id: ID de la cotización a actualizar (tabla CZE_Quotes).

        return: 
        - True si la actualización fue exitosa, False en caso contrario.
        a   
                            SELECT
                            StopButtonEnclosure,
                            StopButtonEnclosure_Qty
                            FROM CZE_Quotes
                            WHERE QuoteID = ?;
                            a  
                                SELECT 
                                stop_price,
                                stop_technicalSheet
                                FROM StopButtonEnclosureOptions
                            where stop_id = ?
                            aN  
                            UPDATE CZE_Quotes
                            SET
                            StopButtonEnclosure_Price = ?,
                            StopButtonEnclosure_TSheet = ?,
                            StopButtonEnclosure_PriceTot = ?
                            WHERE QuoteID = ?;
                            Tz#Error actualizando CZE_Quotes 001: FN)r   cursorexecutefetchonefloat	Exceptionprint)selfquote_idconnr   querystop_idStopButtonEnclosure_QtyStopButtonEnclosure_PriceStopButtonEnclosure_TSheetStopButtonEnclosure_PriceTote r   bC:\Users\victor.barrera\Documents\proyectos\elepV3\Elep\src\App\api\services\CZE_Quotes_Service.pyupdateQuote_stopButtonEnclosure   s     

.z2CZE_Quotes_Service.updateQuote_stopButtonEnclosurec           
   
   C   s   zt  }| r}d}|||f | d }d}||| | \}}|}d}||||||f W 5 Q R  W 5 Q R  W dS Q R X W 5 Q R X W n6 tk
r }	 ztd|	  W Y dS d}	~	X Y nX dS )	  
        Actualiza la información de los louvers en la cotización CZE_Quotes

        params:
        - quote_id: ID de la cotización a actualizar (tabla CZE_Quotes).

        return: 
        - True si la actualización fue exitosa, False en caso contrario.
        z
                            SELECT
                            louvers_in
                            FROM CZE_Quotes
                            WHERE QuoteID = ?;
                            r   a  
                                select 
                                louvers_in_price,
                                louvers_in_technicalSheet
                                from louvers_in
                                where louvers_in_id = ?
                            aP  
                            UPDATE CZE_Quotes
                            SET
                            louvers_in_price = ?,
                            louvers_in_tsheet = ?,
                            louvers_in_pricetot = ?
                            
                            WHERE QuoteID = ?;
                            T#Error actualizando CZE_Quotes 002: FNr   r   r   r   r	   r
   )
r   r   r   r   r   
louvers_inlouvers_in_pricelouvers_in_technicalSheetZlouvers_in_PriceTotr   r   r   r   update_quote_louvers_in=   s     


.z*CZE_Quotes_Service.update_quote_louvers_inc           
   
   C   s   zt  }| t}d}|||f | d }d}|||f | \}}|}d}||||||f W 5 Q R  W 5 Q R  W dS Q R X W 5 Q R X W n6 tk
r }	 ztd|	  W Y dS d}	~	X Y nX dS )	r   z
                            SELECT
                            louvers_out
                            FROM CZE_Quotes
                            WHERE QuoteID = ?;
                            r   a  
                                select 
                                louvers_out_price,
                                louvers_out_technicalSheet
                                from louvers_out
                                where louvers_out_id = ?
                            aS  
                            UPDATE CZE_Quotes
                            SET
                            louvers_out_price = ?,
                            louvers_out_tsheet = ?,
                            louvers_out_pricetot = ?
                            
                            WHERE QuoteID = ?;
                            Tr   FNr   )
r   r   r   r   r   louvers_outlouvers_out_pricelouvers_out_technicalSheetZlouvers_out_PriceTotr   r   r   r   update_quote_louvers_outv   s     


.z+CZE_Quotes_Service.update_quote_louvers_out)	getFieldsr   c                 C   s   zt  p}| \}dd| d}||| jf | }|rPtt||ni W  5 Q R  W  5 Q R  W S Q R X W 5 Q R X W n8 tk
r } zt	d|  i  W Y S d}~X Y nX dS )z
        Obtiene los valores de los campos especificados en getFields.

        params:
        - getFields: Lista de nombres de campos a obtener.

        return:
        - Diccionario con los valores de los campos solicitados.
        zSELECT z, z# FROM CZE_Quotes WHERE QuoteID = ?;z'Error obteniendo campos de CZE_Quotes: N)
r   r   joinr   r   r   dictzipr	   r
   )r   r#   r   r   r   resultr   r   r   r   	get_field   s    

DzCZE_Quotes_Service.get_fieldN)
__name__
__module____qualname__boolr   r   r"   listr%   r(   r   r   r   r   r      s   698r   N)Consultas_SQL.conexionr   r   r   r   r   r   <module>   s   