§
    t�’jŠ  ã                  ól   — d dl mZ d dlZd dlmZ d dlmZ  ej        d¦  «        Z G d„ d¦  «        Z	dS )é    )ÚannotationsN)ÚDecimal)ÚAnyzdscons.autonomous.invoicesc                  ó   — e Zd ZdZdd„ZdS )	ÚHealInvoicesMixinz;Self-healing routines for unlinked or pending tax invoices.Ú
session_idÚstrÚreturnúdict[str, Any]c              ƒ  ó	  K  — t                                d¦  «         d}d}g }	 | j                             ¦   «         5 }|                     ¦   «         5 }|                     d¦  «         |                     ¦   «         }ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   t          |¦  «        }|D �]x}t          |d         ¦  «        }	t          | 	                    d¦  «        pd¦  «         
                    ¦   «         }
d}|
dk    s8d	t          | 	                    d
¦  «        pd¦  «                             ¦   «         v rd}n„|
dk    s8dt          | 	                    d
¦  «        pd¦  «                             ¦   «         v rd}nC|
dk    s8dt          | 	                    d
¦  «        pd¦  «                             ¦   «         v rd}nd}t          | 	                    d¦  «        pd¦  «        }d}i }g }|r=||vr9d|› d|› � 
                    ¦   «         }||d<   |                     d|› �¦  «         d}t          t          | 	                    d¦  «        pd¦  «        ¦  «        }t          t          | 	                    d¦  «        pd¦  «        ¦  «        }t          t          | 	                    d¦  «        pd¦  «        ¦  «        }||z   }t          ||z
  ¦  «        t          d¦  «        k    r>|                     ddd|	d | 	                    d!¦  «        › d"|d#›d$|d#›d%|d#›d&�	d'œ¦  «         |rÿ| j                             ¦   «         5 }|                     ¦   «         5 }d(                     d)„ |D ¦   «         ¦  «        }|                     d*|› d+�g |                     ¦   «         ¢|	‘R ¦  «         |                     ¦   «          ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   | j                             |dd|	d,d|i|d-                     |¦  «        d.d/œ	¦  «         |d0z  }�ŒznO# t&          $ rB}t                                d1|¦  «         |                     dddd2|› �d3œ¦  «         Y d}~nd}~ww xY wdd4|||d5œS )6uz   Tá»± chuáº©n hÃ³a báº£ng erp_invoices: GÃ¡n 4 Trá»¥ Cá»™t Doanh Nghiá»‡p, Ä‘á»‘i soÃ¡t thuáº¿ VAT, kiá»ƒm tra 3-Way Match.uR   [AUTONOMOUS] AI Nam báº¯t Ä‘áº§u quÃ©t phÃ¢n há»‡ HÃ³a Ä�Æ¡n & DÃ²ng Tiá»�n EVM...r   a¶  
                        SELECT id, invoice_number, invoice_series, seller_tax_code, seller_name,
                               buyer_tax_code, subtotal_amount_vnd, vat_amount_vnd, total_amount_vnd,
                               reconciliation_status, matched_project_id, notes, created_at
                        FROM erp_invoices
                        ORDER BY created_at DESC
                        LIMIT 100;
                    NÚidÚseller_tax_codeÚ Ú
0200149705u   thoÃ¡t nÆ°á»›cÚseller_nameu+   Trá»¥ cá»™t 2: Váº­n táº£i Xe ben LogisticsÚ
0201889988u   loan kháº£iu&   Trá»¥ cá»™t 3: Cho thuÃª Ca mÃ¡y Ä�Ã oÚ
0201805660u   trung kiÃªnu$   Trá»¥ cá»™t 4: Váº­t tÆ° & San láº¥pu2   Trá»¥ cá»™t 1: Thi cÃ´ng XÃ¢y láº¯p & Thá»§y lá»£iÚnotesFú[z] u   GÃ¡n nhÃ£n TÚsubtotal_amount_vndÚvat_amount_vndÚtotal_amount_vndz1.0000ÚnamÚerrorÚerp_invoicesu   HÃ³a Ä‘Æ¡n [Úinvoice_numberu*   ] lá»‡ch sá»‘ há»�c VAT: TrÆ°á»›c thuáº¿ (z,.0fz	) + VAT (u   ) != Tá»•ng (z).)ÚagentÚseverityÚtableÚ	record_idÚmessagez, c                ó   — g | ]}|› d �‘ŒS )z = %s© )Ú.0Úks     úBC:\Projects\DSCons\app\services\autonomous_engine\heal_invoices.pyú
<listcomp>z:HealInvoicesMixin.heal_invoices_module.<locals>.<listcomp>[   s   € Ð0TÐ0TÐ0TÀ°A°°°Ð0TÐ0TÐ0Tó    zUPDATE erp_invoices SET z WHERE id = %s;Úalign_pillarz; éc   )	r   Ú
agent_codeÚ
table_namer    Úaction_typeÚsnapshot_beforeÚsnapshot_afterÚreasonÚconfidence_scoreé   u+   [AUTONOMOUS] Lá»—i heal_invoices_module: %su#   Lá»—i quÃ©t phÃ¢n há»‡ hÃ³a Ä‘Æ¡n: )r   r   r   r!   Úinvoices)r   ÚmoduleÚscannedÚhealedÚfindings)ÚloggerÚinfoÚ_erp_clientÚget_connectionÚcursorÚexecuteÚfetchallÚlenr	   ÚgetÚstripÚlowerÚappendr   ÚabsÚjoinÚvaluesÚcommitÚcreate_autonomous_healing_logÚ	Exceptionr   )Úselfr   r5   r6   r7   ÚconnÚcurr3   ÚinvÚinv_idÚ
seller_taxÚtarget_pillarÚcurrent_notesÚneeds_updateÚupdate_fieldsÚreasonsÚ	new_notesÚpretaxÚvatÚtotal_finalÚ
calc_totalÚset_strÚexcs                          r&   Úheal_invoices_modulez&HealInvoicesMixin.heal_invoices_module   sc  è è € å�ŠØ`ñ	
ô 	
ð 	
ð ˆØˆØ)+ˆðd	ØÔ!×0Ò0Ñ2Ô2ð 
.°dØ—[’[‘]”]ð 	. cØ—K’Kð !ñ ô ð ð  #Ÿ|š|™~œ~�Hð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð
.ð 
.ð 
.ñ 
.ô 
.ð 
.ð 
.ð 
.ð 
.ð 
.ð 
.øøøð 
.ð 
.ð 
.ð 
.õ ˜(‘m”mˆGØð K ñ K �Ý˜S œY™œ�Ý  §¢Ð):Ñ!;Ô!;Ð!A¸rÑBÔB×HÒHÑJÔJ�
ð !%�à ,Ò.Ð.Ø'­3¨s¯wªw°}Ñ/EÔ/EÐ/KÈÑ+LÔ+L×+RÒ+RÑ+TÔ+TÐTÐTà$Q�M�Mà ,Ò.Ð.Ø$­¨C¯GªG°MÑ,BÔ,BÐ,HÀbÑ(IÔ(I×(OÒ(OÑ(QÔ(QÐQÐQà$L�M�Mà ,Ò.Ð.Ø$­¨C¯GªG°MÑ,BÔ,BÐ,HÀbÑ(IÔ(I×(OÒ(OÑ(QÔ(QÐQÐQà$J�M�Mà$X�Må # C§G¢G¨GÑ$4Ô$4Ð$:¸Ñ ;Ô ;�Ø$�Ø02�Ø%'�à ð ( ]¸-Ð%GÐ%GØ D MÐ DÐ D°]Ð DÐ D× JÒ JÑ LÔ L�IØ-6�M 'Ñ*Ø—N’NÐ#@°Ð#@Ð#@ÑAÔAÐAØ#'�Lõ !¥ S§W¢WÐ-BÑ%CÔ%CÐ%HÀqÑ!IÔ!IÑJÔJ�Ý�c #§'¢'Ð*:Ñ";Ô";Ð"@¸qÑAÔAÑBÔB�Ý%¥c¨#¯'ª'Ð2DÑ*EÔ*EÐ*JÈÑ&KÔ&KÑLÔL�Ø# c™\�
å�z KÑ/Ñ0Ô0µ7¸8Ñ3DÔ3DÒDÐDØ—O’Oà%*Ø(/Ø%3Ø)/ð (}°c·g²gÐ>NÑ6OÔ6Oð  (}ð  (}ð  |Bð  (}ð  (}ð  (}ð  RUð  (}ð  (}ð  (}ð  itð  (}ð  (}ð  (}ð  (}ðð ñô ð ð  ð  ØÔ)×8Ò8Ñ:Ô:ð *¸dØ!Ÿ[š[™]œ]ð *¨cØ&*§i¢iÐ0TÐ0TÀmÐ0TÑ0TÔ0TÑ&UÔ&U˜GØŸKšKØ S¸7Ð SÐ SÐ SØ A -×"6Ò"6Ñ"8Ô"8Ð A¸&Ð AÐ Añô ð ð !ŸKšK™MœM˜Mð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð Ô$×BÒBà*4Ø*/Ø*8Ø)/Ø+9Ø07¸Ð/GØ.;Ø&*§i¢i°Ñ&8Ô&8Ø02ð
ð 
ñô ð ð ˜a‘K�FùðWK øõZ ð 		ð 		ð 		Ý�LŠLÐFÈÑLÔLÐLØ�OŠOà"Ø 'Ø+ØJÀSÐJÐJð	ð ñô ð ð ð ð ð ð øøøøð		øøøð Ø ØØØ ð
ð 
ð 	
s©   ¤P6 ½BÁ*BÁ<BÂB	ÂBÂB	ÂBÂP6 ÂB#Â#P6 Â&B#Â'J&P6 ÍO*Í"A%OÏO*ÏOÏO*ÏOÏO*ÏP6 Ï*O.	Ï.P6 Ï1O.	Ï2AP6 Ð6
RÑ 8Q=Ñ=RN)r   r	   r
   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r\   r#   r(   r&   r   r   
   s4   € € € € € ØEÐEðu
ð u
ð u
ð u
ð u
ð u
r(   r   )
Ú
__future__r   ÚloggingÚdecimalr   Útypingr   Ú	getLoggerr8   r   r#   r(   r&   ú<module>rf      s“   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à	ˆÔ	Ð7Ñ	8Ô	8€ðx
ð x
ð x
ð x
ð x
ñ x
ô x
ð x
ð x
ð x
r(   