Ë
    ^ÖjR#  ã            	       ó¤  — d Z ddlZddlZddlZddl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                  d e ej                  e«      j!                  «       j"                  j"                  «      «       ddlmZ ddlmZ  e
«         e ej.                  dd«      «      Z ej.                  d«      Z ej.                  d«      Z ej.                  d	«      Z ej.                  d
«      Z ej.                  d«      Zd„ Zdedefd„Zdededz  fd„Z d„ Z! ej                  e«      j!                  «       j"                  j"                  dz  Z"h d£Z#i dd“dd“dd“dd“dd“dd“d d!“d"d#“d$d%“d&d'“d(d)“d*d+“d,d-“d.d/“d0d1“d2d3“d4d5“d6d7d8d9d:d;d<d=œ¥Z$d>edz  dedz  fd?„Z%d@„ Z&e'dAk(  r edB«      5   e&«        ddd«       yy# 1 sw Y   yxY w)Cz>
Procesa los JSON de sociedades en la carpeta boletines_json.
é    N)Úload_dotenv)Úsingle_instance)Úejecutar_spÚID_PROCESO_JSON_EDICTOSÚ	DB_DRIVERÚ	DB_SERVERÚDB_DATABASEÚDB_USERÚDB_PASSWORDc                  ó�   — dt         › dt        › dt        › dt        › dt        › d�} t        d| «       t        j                  | «      S )uD   Abre una conexiÃ³n a la base de datos usando las variables del .env.zDRIVER={z	};SERVER=z
;DATABASE=z;UID=z;PWD=z;TrustServerCertificate=yes;z	CONN STR:)r   r   r	   r
   r   ÚprintÚpyodbcÚconnect)Úconn_strs    úK/home/fidelitas/Code/central_edictos/procesamiento/procesar_json_edictos.pyÚ
db_connectr      s]   € ð ”I�;ð Ü�ð Ü�=ð !Üˆið Üˆmð &ð		'ð ô 
ˆ+�xÔ ä�>‰>˜(Ó#Ð#ó    Úrazon_socialÚreturnc                 óD  — | syt        j                  d| «      }dj                  d„ |D «       «      }|j                  «       }g d¢}|D ]  }t	        j
                  |d|«      }Œ t	        j
                  dd|«      }t	        j
                  dd|«      j                  «       }|S )NÚ ÚNFKDc              3   óL   K  — | ]  }t        j                  |«      rŒ|–— Œ y ­w©N)ÚunicodedataÚ	combining)Ú.0Úcs     r   ú	<genexpr>z'limpiar_razon_social.<locals>.<genexpr>2   s   è ø€ ÒE˜!¬K×,AÑ,AÀ!Õ,D”AÑEùs   ‚$�$)z\bS\.?\s*R\.?\s*L\.?\bz\bS\.?\s*A\.?\s*S\.?\bz\bS\.?\s*A\.?\bz\bSAS\bz\bSRL\bz\bSA\bz[^A-Z0-9\s]ú z\s+)r   Ú	normalizeÚjoinÚupperÚreÚsubÚstrip)r   ÚtextoÚpatronesÚps       r   Úlimpiar_razon_socialr*   .   s•   € ÙØÜ×!Ñ! &¨,Ó7€EØ�G‰GÑE˜uÔEÓE€EØ�K‰K‹M€Eò€Hð ò %ˆÜ—‘�q˜"˜eÓ$‰ð%ä�F‰F�> 3¨Ó.€EÜ�F‰F�6˜3 Ó&×,Ñ,Ó.€EØ€Lr   c                 ó*  — 	 t        | «      }|j                  «       }|j                  ddd|ddddddddd«       |j                  «       }|j	                  «        t        |«      dk(  r|d   d   S y# t        $ r}t        d	|› �«       Y d}~yd}~ww xY w)
uM   Busca el CUIT de la razÃ³n social usando el padrÃ³n. Devuelve el CUIT o None.z>EXEC buscador_paises_padron ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?ÚbuscadorÚJÚARNé   r   é   z    Error buscando CUIT: )r*   ÚcursorÚexecuteÚfetchallÚcloseÚlenÚ	Exceptionr   )r   ÚconnÚrazon_limpiar1   ÚrowsÚes         r   Úbuscar_cuitr;   C   sœ   € ðÜ+¨LÓ9ˆØ—‘“ˆØ�‰ØLØ˜˜\¨4°°t¸TÀ4ÈÈtÐUYÐ[_ô	
ð �‰Ó ˆØ�‰ŒÜˆt‹9˜Š>Ø˜‘7˜1‘:ÐØøÜò ÜÐ)¨!¨Ð-Ô.Üûðús   ‚A-A1 Á1	BÁ:BÂBc                 óÚ   — 	 |j                  «       }|j                  d| ||||«       |j                  «        |j                  «        y# t        $ r}t        d|› �«       Y d}~yd}~ww xY w)zAInserta un edicto en la queue de staging usando stored procedure.z/EXEC insert_edictos_queue_staging ?, ?, ?, ?, ?Tz'    Error insertando en queue staging: NF)r1   r2   Úcommitr4   r6   r   )Úcuitr   ÚfechaÚ	provinciaÚedictor7   r1   r:   s           r   Úinsert_edictos_queue_stagingrB   V   sf   € ðØ—‘“ˆØ�‰Ø=Ø�,  y°&ô	
ð 	�‰ŒØ�‰ŒØøÜò ÜÐ7¸°sÐ;Ô<Üûðús   ‚AA	 Á		A*ÁA%Á%A*Úboletines_json>   úCIUDAD AUTONOMA DE BUENOS AIRESÚBORAÚCHACOÚJUJUYÚSALTAÚCHUBUTÚCORDOBAÚFORMOSAÚMENDOZAÚNEUQUENÚTUCUMANÚMISIONESÚ	CATAMARCAÚ
CORRIENTESúLA PAMPAúLA RIOJAúSAN JUANúSAN LUISúSANTA FEú	RIO NEGROú
ENTRE RIOSú
SANTA CRUZúBUENOS AIRESúTIERRA DEL FUEGOúSANTIAGO DEL ESTEROÚbuenos_airesrZ   ÚborarE   Ú	catamarcarP   ÚchacorF   ÚchubutrI   ÚcordobarJ   Ú
corrientesrQ   Ú
entre_riosrX   ÚformosarK   ÚjujuyrG   Úla_pamparR   Úla_riojarS   ÚmendozarL   ÚmisionesrO   ÚneuquenrM   Ú	rio_negrorW   ÚsaltarH   rT   rU   rY   rV   r\   r[   rN   )Úsan_juanÚsan_luisÚ
santa_cruzÚsanta_feÚsantiago_del_esteroÚtierra_del_fuegoÚtucumanr@   c                 ó\   — | sy | j                  «       j                  «       }|t        v r|S d S r   )r&   r#   ÚPROVINCIAS_VALIDAS)r@   Únormalizadas     r   Úvalidar_provinciarx   ¢   s0   € ÙØØ—/‘/Ó#×)Ñ)Ó+€KØ%Ô);Ñ;ˆ;ÐEÀÐEr   c                  ó”	  — d } dt         j                  v rCt         j                  j                  d«      }t         j                  |dz      j                  «       } d }	 t	        dt
        t        j                  t        j                  «       «      t        j                  «       t        j                  «       d g«      }|r|d   j                  d«      }d}d}d}	 t        «       5 }t        t         j#                  d«      «      }	| r6|	D �
cg c]+  }
| |
j$                  j&                  j                  «       v sŒ*|
‘Œ- }	}
t)        |	«      }|	st        d«       |	D �]\  }|j$                  }t*        j                  |j&                  |j&                  j-                  «       j/                  d	d
«      «      }|dz  }|dz  }|dz  }|||fD ]  }|j1                  d¬«       Œ 	 t3        j4                  |j7                  d¬«      «      }|j                  d«      }|j                  dg «      }t        d|j&                  › d|j&                  › d|› d|› dt)        |«      › d�«       |s0|j9                  ||j&                  z  «       t        d«       |dz  }�Œ6d}|D ]À  }|j                  d«      }|j                  d«      }t;        |j                  d«      «      }|r|n|}|s2|j                  d«      r!t        d|j                  d«      › d|› d �«       t=        ||«      }|rd!|› �nd"}t?        ||||||¬#«      }|sd}|rd$nd%}t        d&|› d'|› d(|› d)|› d*�	«       ŒÂ |r0|j9                  ||j&                  z  «       t        d+«       |dz  }�Œ/|j9                  ||j&                  z  «       t        d,«       |dz  }�Œ_ 	 d d d «       |�	 t	        d-|d |||g«       y y # t        $ r}t        d|› �«       Y d }~�Œd }~ww xY wc c}
w # t        $ rV}t        d|j&                  › d|j&                  › d|› �«       |j9                  ||j&                  z  «       |dz  }Y d }~�Œd }~ww xY w# 1 sw Y   Œ«xY w# t        $ r}t        d.|› �«       Y d }~y d }~ww xY w# |�7	 t	        d-|d |||g«       w # t        $ r}t        d.|› �«       Y d }~w d }~ww xY ww xY w)/Nz--provinciar/   Úproceso_iniciarr   Úid_logu   proceso_iniciar fallÃ³: z*/*.jsonz&No se encontraron JSONs para procesar.Ú_r    Ú
procesadosÚsin_edictosÚerrorT)Úexist_okzutf-8)Úencodingu   
â”€â”€ ú/u     â†’  ERROR lectura: Úfecha_publicacionÚedictosz  |  z edictosu     â†’ sin_edictos/Fr   Útexto_edictor@   z    [AVISO] Provincia 'u   ' no reconocida â†’ usando 'ú'zCUIT: zsin CUIT)r>   r   r?   r@   rA   r7   ÚOKÚERRORz  [z] z  (z)  [ú]u     â†’ error/u     â†’ procesados/Úproceso_finalizaru   proceso_finalizar fallÃ³: ) ÚsysÚargvÚindexÚlowerr   Ú
ID_PROCESOÚsocketÚgethostbynameÚgethostnameÚosÚgetpidÚgetr6   r   r   ÚsortedÚCARPETAÚglobÚparentÚnamer5   ÚFOLDER_TO_PROVINCIAr#   ÚreplaceÚmkdirÚjsonÚloadsÚ	read_textÚrenamerx   r;   rB   )Úfiltro_provinciaÚ_idxr{   Úresultr:   Úok_countÚerror_countÚtotalr7   ÚarchivosÚaÚarchivoÚprov_folderÚprov_nombreÚdest_procesadosÚdest_sin_edictosÚ
dest_errorÚdÚdatarƒ   r„   Ú
hubo_errorrA   r   r…   Úprovincia_edictoÚprovincia_finalr>   Úcuit_strÚokÚestados                                  r   Úmainr¸   ©   sò  € ØÐØœŸ™Ñ Ü�x‰x�~‰~˜mÓ,ˆÜŸ8™8 D¨1¡HÑ-×3Ñ3Ó5Ðà€Fð.ÜÐ.ÜÜ× Ñ ¤×!3Ñ!3Ó!5Ó6Ü�I‰I‹KÜ×ÑÓ Øð1
ó ˆñ Ø˜A‘Y—]‘] 8Ó,ˆFð €HØ€KØ€EðN8Ü‹\ð G	"˜TÜœgŸl™l¨:Ó6Ó7ˆHÙØ'/Ö] !Ð3CÀqÇxÁxÇ}Á}×GZÑGZÓG\Ò3\šAÐ]�Ð]Ü˜“MˆEÙÜÐ>Ô?à#ó ?"�Ø '§¡�Ü 3× 7Ñ 7¸×8HÑ8HÈ+×JZÑJZ×J`ÑJ`ÓJb×JjÑJjÐknÐpsÓJtÓ u�à#.°Ñ#=�Ø#.°Ñ#>Ð Ø#.°Ñ#8�
Ø)Ð+;¸ZÐHò +�AØ—G‘G T�GÕ*ð+ðÜŸ:™: g×&7Ñ&7ÀÐ&7Ó&IÓJ�Dð %)§H¡HÐ-@Ó$AÐ!ØŸ(™( 9¨bÓ1�ä˜	 +×"2Ñ"2Ð!3°1°W·\±\°NÀ%ÈÀ}ÐTYÐZkÐYlÐlqÔruÐv}Ór~Ðqð  @Hð  Iô  JáØ—N‘NÐ#3°g·l±lÑ#BÔCÜÐ.Ô0Ø ‘M�HÙà"�
Ø%ò ]�FØ#)§:¡:¨nÓ#=�LØ#)§:¡:¨nÓ#=�Lä'8¸¿¹ÀKÓ9PÓ'QÐ$Ù;KÑ'7ÐQ\�OÙ+°·
±
¸;Ô0GÜÐ 7¸¿
¹
À;Ó8OÐ7PÐPlÐm|Ðl}Ð}~Ðô  Aä& |°TÓ:�DÙ26 ¨ v™¸J�Hä5Ø!Ø%1Ø/Ø"1Ø+Ø!ô�Bñ Ø%)˜
á%'™T¨W�FÜ˜C ˜x r¨,¨°s¸8¸*ÀDÈÐHYÐYZÐ[Õ\ð1]ñ4 Ø—N‘N :°·±Ñ#<Ô=Ü˜LÔ*Ø 1Ñ$’Kà—N‘N ?°W·\±\Ñ#AÔBÜÐ-Ô/Ø ‘M’Hñ?"÷G	"ðR Ðð8ÜÐ/°&¸$ÀÀxÐQ\Ð1]Õ^ð øôc ò .ÜÐ(¨¨Ð,×-Ò-ûð.üò ^øô" !ò Ü˜I k×&6Ñ&6Ð%7°q¸¿¹¸ÐF\Ð]^Ð\_Ð`ÔaØ—N‘N :°·±Ñ#<Ô=Ø 1Ñ$�KÝûð	ú÷)G	"ð G	"ûôX ò 8ÜÐ2°1°#Ð6×7Ñ7ûð8ûð Ðð8ÜÐ/°&¸$ÀÀxÐQ\Ð1]Õ^øÜò 8ÜÐ2°1°#Ð6×7Ñ7ûð8úð úsÄ   ÁA4O Ã
R Ã %QÄ+O5Ä1O5Ä5BQÇ%O:Ç:F7QÎ2R Î=Q( Ï	O2ÏO-Ï-O2Ï5QÏ:	QÐAQÑQÑQÑQÑQ%Ñ!R Ñ(	R	Ñ1RÒR	ÒSÒR"Ò!SÒ"	SÒ+R>Ò9SÒ>SÓSÚ__main__Úprocesar_json_edictos)(Ú__doc__rž   Úpathlibr“   r$   r�   r‹   r   r   Údotenvr   ÚpathÚinsertÚstrÚPathÚ__file__Úresolver™   Úhelpers.singletonr   Ú
helpers.dbr   ÚintÚgetenvr�   r   r   r	   r
   r   r   r*   r;   rB   r—   rv   r›   rx   r¸   Ú__name__© r   r   ú<module>rÊ      s„  ðñó Û Û 	Û 	Û Û 
Û Û Ý ð ‡�‡��‘3�|�w—|‘| HÓ-×5Ñ5Ó7×>Ñ>×EÑEÓFÔ GÝ -Ý "á „á��—‘Ð4°aÓ8Ó9€
àˆB�I‰I�kÓ"€	ØˆB�I‰I�kÓ"€	Øˆb�i‰i˜Ó&€Ø
ˆ"�)‰)�IÓ
€Øˆb�i‰i˜Ó&€ò$ð sð ¨só ð*˜cð ¨C°$©Jó ò&ð  ˆ'�,‰,�xÓ
 ×
(Ñ
(Ó
*×
1Ñ
1×
8Ñ
8Ð;KÑ
K€òÐ ð:Ø˜>ðà
˜6ðð ˜;ðð ˜7ð	ð
 ˜8ðð ˜9ðð ˜<ðð ˜<ðð ˜9ðð ˜7ðð ˜:ðð ˜:ðð ˜9ðð ˜:ðð ˜9ðð  ˜;ð!ð" ˜7ð#ð$ &Ø%Ø'Ø%Ø0Ø-Ø$ò1Ð ð8F  t¡ð F°°d±
ó Fòf8ðR ˆzÒÙ	Ð0Ó	1ñ ÙŒ÷ð ð ÷ð ús   Æ4GÇG