a
    0i|                     @   st   d dl Z d dlZd dlmZ d dlmZmZmZmZ d dlm	Z	m
Z
 d dlmZ edZeee  ddd	ZdS )
    N)datetime)DictListOptionalUnion)
ProductivoENVIRONMENT)get_connectionZclientes_score_sql)returnc                  C   s  d} d}zvzlt  }|s"td|> | }||  dd |jD }| }|rg }|D ]F}tt||}dD ]$}||v rx|| rx||  ||< qx|	| qbt
dt| d |W  d   W W |rz|  W S  ty   t
d	 Y S 0 S t
d
 W d   W W |rTz|  W n tyR   t
d	 Y n0 dS W d   n1 sn0    Y  W n tjy }	 z,dt|	 }
t
|
 t|
W Y d}	~	nd}	~	0  ty }	 z,dt|	 }
t
|
 t|
W Y d}	~	nNd}	~	0  tyJ }	 z,dt|	 }
t
|
 t|
W Y d}	~	n
d}	~	0 0 W |rz|  W n ty~   t
d	 Y n0 n4|rz|  W n ty   t
d	 Y n0 0 dS )z<
    Buscar los registros de score en la base de datos.
    u6  
        SELECT 
            Score.[OrderNum&Line] AS ordernumandline,
            Score.OrderNum, Score.Capacidad,
            Score.Voltaje, Score.Tipo, 
            Score.Caseta, Score.JobNum2,
            Score.FechaProducción,
            Score.FechaMat, Score.AvanceDeSurtimiento,
            Score.AvisoDeTerminacion, Score.MaterialFaltante,
            Score.PartNum_M, Score.Description_M,
            Score.RefCategory_M, 
            Score.NoSerie_M, Score.Faltante_M,
            Score.En_PO_Altern_M, Score.Estatus_M,
            Score.Fecha_Llegada_M, Score.PartNum_G,
            Score.Description_G, 
            Score.NoSerie_G,
            Score.Faltante_G, Score.En_PO_Altern_G,
            Score.Estatus_G, Score.Fecha_Llegada_G
        FROM 
            Score 
        WHERE
            Score.OrderNum IN (
            '126309', '126308', '126307', '126306', '126305', '126304', '126303', '126302', '126301', '126300',
            '126299', '126298', '126297', '126296', '126295', '126294', '126293', '126292', '126291', '126290',
            '126289', '126288', '126287', '126286', '126285', '126284', '126283', '126282', '126281', '126280',
            '126279', '126278', '126277', '126276', '126275', '126274', '126273', '126272', '126271', '126270',
            '126269', '126268', '126267', '126266', '126265', '126264', '126263', '126262', '126261', '126260',
            '126259', '126258', '126257', '126256', '126255', '126254', '126253', '126252', '126251', '126250',
            '126249', '126248', '126247', '126246', '126245', '126244'
        )
        Nu4   No se pudo establecer conexión con la base de datosc                 S   s   g | ]}|d  qS )r    ).0columnr   r   X/var/www/html/src/Consultas_SQL/Clientes/NetworkEnvironment/ScoreNetworkEnvironmentQL.py
<listcomp>B       z%buscar_score_view.<locals>.<listcomp>)	CreatedAt	UpdatedAtzSe encontraron z registros de scoreu#   Error al cerrar la conexión ala BDz-No se encontraron registros en la tabla Scorez-Error de base de datos al buscar los scores: u)   Error de conexión al buscar los scores: z'Error inesperado al buscar los scores: )r	   ConnectionErrorcursorexecutedescriptionfetchalldictzip	isoformatappendloggerinfolenclose	ExceptionwarningpyodbcErrorstrerror)queryconnr   columnsrowsresultsrowresult
date_fielde	error_msgr   r   r   buscar_score_view   sr     

(


 r0   )r"   loggingr   typingr   r   r   r   configr   r   Consultas_SQL.conexionr	   	getLoggerr   r0   r   r   r   r   <module>   s   
