o
    tj	                     @  s   d dl mZ d dlZd dlmZ d dlZd dlmZ d dl	m
Z
 d dlmZmZmZ eeZdZdd	 ZdddZd ddZd!ddZd"d#ddZdS )$    )annotationsN)Any)Error)get_db_config)as_dateas_int	as_numberz
SELECT
  IDENTIDAD,
  FECHA_OTORGAMIENTO,
  fVencimiento,
  Ultimo_Pago,
  Cuotas_Mora,
  MTO_APROBADO,
  Cuotas_Pendientes,
  DESTINO
FROM mora
WHERE IDENTIDAD = %s
c                   C  s   t jjdi t S )N )mysql	connectorconnectr   r	   r	   r	   9/var/www/csodoo/proyecto_oportunidades/utils/db_helper.pyget_connection   s   r   rowdict[str, Any]namesstrreturnr   c                 G  s<   dd |   D }|D ]}| |v r||    S qd S )Nc                 S  s   i | ]\}}t | |qS r	   )r   lower).0keyvaluer	   r	   r   
<dictcomp>"   s    z_col.<locals>.<dictcomp>)itemsr   )r   r   mappednamer	   r	   r   _col!   s   r   destinooverdueintpendingboolc                   s>   t | pd   t fdddD rdS |dkp|dkS )N c                 3  s    | ]}| v V  qd S Nr	   )r   tokentextr	   r   	<genexpr>+   s    zis_refi.<locals>.<genexpr>)REFINANCREFINANCIAMIENTOTr   )r   stripupperany)r   r   r    r	   r%   r   is_refi)   s   r-   c              
   C  sl   t t| d}t t| d}t| d}tt| dtt| dtt| d|tt| dd|t|||d	S )
NCuotas_MoraCuotas_PendientesDESTINOFECHA_OTORGAMIENTOfVencimientoUltimo_PagoMTO_APROBADOr   )fecha_otorgamientofecha_vencimientofecha_ultimo_realizadocuotas_moramonto_aprobadocuotas_pendientesrefinanciamiento)r   r   r   r   r-   )r   r   r    r   r	   r	   r   map_loan0   s   

r<   	identidadlist[dict[str, Any]]c                 C  s   t | pd } |du }|rt }z@z1|jdd}|t| f | p%g }|  dd |D W W |rA|durB| rC|  S S S S  t	yQ   t
d|   w |ra|durb| rc|  w w w w )z,Consulta mora y mapea las filas a prestamos.r"   NT)
dictionaryc                 S  s   g | ]}t |qS r	   )r<   )r   r   r	   r	   r   
<listcomp>L   s    zget_loans.<locals>.<listcomp>z(Error consultando mora para identidad %s)r   r*   r   cursorexecuteLOAN_SQLfetchallcloseis_connected
MySQLErrorlogger	exception)r=   conexionownrA   rowsr	   r	   r   	get_loans@   s(   

rM   )r   r   r   r   r   r   )r   r   r   r   r    r   r   r!   )r   r   r   r   r#   )r=   r   r   r>   )
__future__r   loggingtypingr   mysql.connectorr
   r   rG   config.db_configr   utils.json_helperr   r   r   	getLogger__name__rH   rC   r   r   r-   r<   rM   r	   r	   r	   r   <module>   s    



