
    yh<H                        d dl Z d dlmZmZmZ d dlZd dlZd dlZd dlZd dlm	Z	 ej                  j                  ej                  j                  e            Zej                  j                  e      Zej                  j!                  edd      Z e	e        ej$                  d      Zer ed ee              n ed       ej                  j-                  d	       d d
lmZ d Zd Zd ZddZddZd ZddZd Z y)    N)datetime	timedeltatimezone)load_dotenvconfiguracionesz.envTokenAuu   🔑 Token obtenido: uI   ⚠️ Advertencia: No se pudo cargar el token de la variable de entorno.z/var/www/html/config)get_connectionc                  *   	 t               } | dddS | j                  d      }d}|j                  |       |j                         }|j	                          | j	                          dd|d	S # t
        $ r}dd
t        |       dcY d }~S d }~ww xY w)Nr      Error de conexiónsuccessmessageT
dictionaryzSELECT * FROM pqrsf_status   zStatus de soportes encontradosr   r   dataError: r	   cursorexecutefetchallclose	Exceptionstr)
conexionBDr   queryr   es        H/var/www/dev.api.imparables.com.co/api_imparables/crm/soporte/soporte.pygetStatusSupportr       s    
#%
/ 
 ""d"3,u  7
 	

  
 Q)
 	

#   A. AA. .	B7BBBc                  *   	 t               } | dddS | j                  d      }d}|j                  |       |j                         }|j	                          | j	                          dd|d	S # t
        $ r}dd
t        |       dcY d }~S d }~ww xY w)Nr   r   r   Tr   zSELECT * FROM modulosr   u   Módulos encontradosr   r   r   )r   r   r   userDatar   s        r   
getModulosr$   ;   s    
#%
/ 
 ""d"3'u??$ -
 	

  
 Q)
 	

r!   c                 <   	 t               }|dddS |j                  d      }d}|j                  || f       |j                         }|j	                          |j	                          |rdd|d	S dd
dS # t
        $ r}ddt        |       dcY d }~S d }~ww xY w)Nr   r   r   Tr   z1SELECT * FROM modulos_vistas WHERE id_modulo = %sr   zVistas encontradasr   zError al buscar las vistasr   r   )	id_modulor   r   r   vistasr   s         r   	getVistasr(   W   s    
#%
/ 
 ""d"3Cuyl+"/  7   
 Q)
 	

s)   A7 AA7 2A7 7	B BBBc                 X   	 t               }|dddS |j                  d      }| rd}|j                  || f       nd}|j                  |       |j                         }|j	                          |j	                          d|d	S # t
        $ r}dd
t        |       dcY d }~S d }~ww xY w)Nr   r   r   Tr   z,SELECT * FROM soporte WHERE id_empleado = %szSELECT * FROM soporter   r   r   zError al obtener tickets: r   )customer_idr   r   r   rowsr   s         r   
getTicketsr-      s    P#%
 -ABB ""d"3 BENN5;.1+ENN5!  d++ P+Ec!fX)NOOPs#   B A1B 	B)B$B)$B)c                    t        j                  d      }t        j                  d      }dt         dd}t        j                  ||      }|j
                  dk7  rdd	|j                         d
S |j                         }|D cg c]  }|j	                  d      dk(  s| }}| r$|D cg c]  }|j	                  d      | k(  s| }}t        j                  ||      }|j
                  dk7  rdd|j                         d
S |j                         }|D ch c]  }|d   	 }	}|D 
cg c]  }
|
d   |	v s|
 }}
|D ]"  }|D 
cg c]  }
|
d   |d   k(  s|
 }}
||d<   $ d|dS c c}w c c}w c c}w c c}
w c c}
w )N
URL_ticketURL_ticket_articleszBearer zapplication/json)AuthorizationzContent-Type)headers   FzError al obtener los tickets.)r   r   responsestate_id   r+   u    Error al obtener los artículos.id	ticket_idarticlesTr*   )osgetenvtokenrequestsgetstatus_codejson)r+   url_ticketsurl_articlesr2   r4   ticketsticketarticles_responser9   
ticket_idsarticlefiltered_articlesticket_articless                r   getClosedTicketsrJ      s    ))L)K9923L"5'**G ||K9Hs"6 
 	
 mmoG %,K&vzz*/E/JvKGK (/\f6::m3LP[3[6\\ !\7C$$+9)..0
 	
 !%%'H .556&,5J508_WGK<PT^<^__  -2Clww{G[_efj_kGk7ll,z- W--7 L ] 6_ ms6   E*E*+E/E/E4+E98E9E>E>c           
      t   	 t               }|dddS | j                  d      }| j                  d      }| j                  d      }| j                  d      }| j                  d      }| j                  d	      }t        t        d
            }t	        j
                  |      j                  d      }	d}
|j                         }|j                  |
|||||||	f       |j                          |j                          |j                          dd| dS # t        $ r}ddt        |       dcY d }~S d }~ww xY w)Nr   r   r   asunto	prioridadobservacionid_empleadomodulovista)hoursz%Y-%m-%d %H:%M:%Sz
            INSERT INTO soporte (asunto, prioridad, observacion, id_empleado, id_modulo, id_vista, fecha_hora)
            VALUES (%s, %s, %s, %s, %s, %s, %s)
        r   zDatos insertados correctamenter   zError al insertar datos: )r	   r>   r   r   r   nowstrftimer   r   commitr   r   r   )r   r   rL   rM   rN   rO   r&   id_vistacolombia_tz
fecha_horar   r   r   s                r   insertarSoporterZ     s4   #O#%
 -ABB (#HH[)	hh}-hh}-HHX&	88G$ yr23\\+.778KL

 ""$uvy+{IW_aklm 	)ISWXX O+DSVH)MNNOs#   D C?D 	D7D2,D72D7c                    	 t               }|dddS | r@d}|j                  d      }|j                  || f       |j                         }|D ]  }d|v r8d}|j                  ||d   f       |j	                         }|r	|d	   |d	<   nd |d	<   d
|v r8d}|j                  ||d
   f       |j	                         }	|	r	|	d   |d<   nd |d<   d|v st        |d   t              r|d   j                  d      |d<   t        j                  |d   d      }
|
j                  d      |d<    |j                          |j                          |rdd|dS dddS y # t        $ r}ddt        |       dcY d }~S d }~ww xY w)Nr   r   r   zJ
                SELECT * FROM soporte WHERE id_empleado = %s
            Tr   r&   zV
                        SELECT modulo FROM modulos WHERE id = %s
                    rP   rW   zc
                        SELECT nombre_vista FROM modulos_vistas WHERE id = %s
                    nombre_vistarY   z%d de %B de %Y, %I:%M %pz%Y-%m-%dT%H:%M:%Sr   zDatos encontradosr   zNo se encontraron datoszError al recuperar datos: )r	   r   r   r   fetchone
isinstancer   rU   strptimer   r   r   )rO   r   r   r   r   recordquery_modulomodulo_resultquery_vistavista_resultrY   r   s               r   recuperarSoportere     s   =P#%
 -ABBE  &&$&7FNN5;.1 ??$D  !_&($L NN<&2E1GH$*OO$5M$+8+Bx(+/x('#K NN;
1C0EF#)??#4L#1=n1M~.15~.  6)!&"6A/5l/C/L/LMg/h|, &.%6%6vl7KM`%a
/9/B/BC]/^|,C!_F LLN#$1DdSS#$1JKKk n  P+Ec!fX)NOOPs0   E B;E BE E 	E; E60E;6E;c                    	 t               }|ddd|j                          S d|vrddd|j                          S |d   }|j                         5 }d}|j                  ||| f       |j	                          |j
                  dkD  rdddcd d d        |j                          S d	}|j                  || f       |j                         d   dkD  }|rdd
dcd d d        |j                          S dddcd d d        |j                          S # 1 sw Y   nxY wn4# t        $ r(}dt        |      dcY d }~j                          S d }~ww xY w	 |j                          y # j                          w xY w)Nr   r   r   	respuestazMissing respuesta in input dataz4UPDATE soporte_logs SET respuesta = %s WHERE id = %sr   zRespuesta updated successfullyz/SELECT COUNT(*) FROM soporte_logs WHERE id = %sz=No changes made; respuesta is identical to the current value.z%No record found with the provided ID.)	r	   r   r   r   rV   rowcountr]   r   r   )	r7   r   r   rg   r   r   
checkQueryrecordExistsr   s	            r   updateRespuestark     s   $#%
 -AB@ 	; d" -NO8 	5 %	  	^FJENN59b/2 "#$1QR	^ 	^0 	 O
zB51%03a7'(5tu!	^ 	^0 	 ()5\]%	^ 	^0 	1	^ 	^ 	^(  1Q00 		1)	^0 	
so   D D D :D	D %1D	D 0D4	D DD E! 	E$E1E2E! EE! !E3)N)!r@   r   r   r   hashlibsysr=   r:   dotenvr   pathdirnameabspath__file__
script_dircrm_dirjoinenv_pathr;   r<   printreprappendcnxpdor	   r    r$   r(   r-   rJ   rZ   re   rk        r   <module>r}      s     2 2  
  	  WW__RWW__X67

''//*
%77<<!2F; H 		)	!$u+
/0	
UV & ' !

8
8 
xP<3.`$OP>PF%r|   