a
    0iG                     @   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 d   W d   W dS 1 s0    Y  W d   n1 s0    Y  W n6 t y }
 ztd|
  W Y d}
~
dS d}
~
0 0 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 = ?;
                            NTz#Error actualizando CZE_Quotes 001: F)r   cursorexecutefetchonefloat	Exceptionprint)selfquote_idconnr   querystop_idStopButtonEnclosure_QtyStopButtonEnclosure_PriceStopButtonEnclosure_TSheetStopButtonEnclosure_PriceTote r   8/var/www/html/src/App/api/services/CZE_Quotes_Service.pyupdateQuote_stopButtonEnclosure   s     

Pz2CZE_Quotes_Service.updateQuote_stopButtonEnclosurec           
   
   C   s   zt  }| v}d}|||f | d }d}||| | \}}|}d}||||||f W d   W d   W dS 1 s0    Y  W d   n1 s0    Y  W n6 t y }	 ztd|	  W Y d}	~	dS d}	~	0 0 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 = ?;
                            NT#Error actualizando CZE_Quotes 002: F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     


Pz*CZE_Quotes_Service.update_quote_louvers_inc           
   
   C   s   zt  }| x}d}|||f | d }d}|||f | \}}|}d}||||||f W d   W d   W dS 1 s0    Y  W d   n1 s0    Y  W n6 t y }	 ztd|	  W Y d}	~	dS d}	~	0 0 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 = ?;
                            NTr   Fr   )
r   r   r   r   r   louvers_outlouvers_out_pricelouvers_out_technicalSheetZlouvers_out_PriceTotr   r   r   r   update_quote_louvers_outv   s     


Pz+CZE_Quotes_Service.update_quote_louvers_out)	getFieldsr   c              
   C   s   zt  }| `}dd| d}||| jf | }|rPtt||ni W  d   W  d   W S 1 sx0    Y  W d   n1 s0    Y  W n6 ty } zt	d|  i W  Y d}~S d}~0 0 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 = ?;Nz'Error obteniendo campos de CZE_Quotes: )
r   r   joinr   r   r   dictzipr	   r
   )r   r#   r   r   r   resultr   r   r   r   	get_field   s    

f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   