§
     ’j	8  ã                  ó>  — d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ dd	lmZmZmZmZmZ  ej        d
¦  «        Z eddg¬¦  «        ZeZ e¦   «         Ze                     dd¬¦  «         ed¦  «         ee¦  «        fdOd„¦   «         Ze                     dd¬¦  «         ee¦  «        fdPd„¦   «         Ze                     dd¬¦  «         ee¦  «        fdQd!„¦   «         Z e !                    d"d#¬¦  «         e
dd$¬%¦  «         e
dd&¬%¦  «         e
dd'¬%¦  «         ee¦  «        fdRd,„¦   «         Z"e !                    d-d.¬¦  «         e
dd$¬%¦  «         e
dd&¬%¦  «         e
d/d0¬%¦  «         ee¦  «        fdSd2„¦   «         Z#e                     d3d4¬¦  «         ee¦  «        fdTd6„¦   «         Z$e !                    d7d8¬¦  «         ee¦  «        fdUd9„¦   «         Z%e !                    d:d;¬¦  «         ee¦  «        fdVd<„¦   «         Z&e !                    d=d>¬¦  «         ee¦  «        fdVd?„¦   «         Z'e                     d@dA¬¦  «         ee¦  «        fdWdC„¦   «         Z(e                     dDdE¬¦  «         ee¦  «        fdUdF„¦   «         Z)e                     dGdH¬¦  «         ee¦  «        fdXdJ„¦   «         Z*e !                    dKdL¬¦  «         e
dd$¬%¦  «         e
dd&¬%¦  «         e
d/dM¬%¦  «         ee¦  «        fdSdN„¦   «         Z+dS )Yé    )ÚannotationsN)ÚAny)Ú	APIRouterÚDependsÚFileÚHTTPExceptionÚQueryÚ
UploadFile)ÚResponse)Úget_current_user)ÚInvoiceProcessingServiceé   )ÚDirectXmlUploadRequestÚFidicIpcInvoiceRequestÚIssueInvoiceRequestÚReconcileRequestÚSendEmailInvoiceRequestzdscons.api.invoicesz/v1/erp/invoiceszE-Invoices & Tax Management)ÚprefixÚtagsz/upload-xmlu3   Táº£i lÃªn vÃ  bÃ³c tÃ¡ch File XML HÃ³a Ä�Æ¡n Gá»‘c)ÚsummaryÚfilesúlist[UploadFile]Úcurrent_userúdict[str, Any]Úreturnc              ƒ  óB  K  — | st          dd¬¦  «        ‚|                     d¦  «        p|                     d¦  «        pd}g }d}d}| D �]6}|j                             ¦   «                              d¦  «        s|                     |j        d	d
dœ¦  «         ŒN	 |                     ¦   «         ƒ d{V —†}t                               |d¬¦  «        }t           	                    ||d¬¦  «        }	|j        |	d<   |	                     d¦  «        dk    r|dz  }n|	                     d¦  «        dk    r|dz  }|                     |	¦  «         Œÿ# t          $ r,}
|                     |j        d	d|
›�dœ¦  «         Y d}
~
�Œ0d}
~
ww xY wddt          | ¦  «        › d|› d|› d�|||dœS )u]   BÃ³c tÃ¡ch tá»± Ä‘á»™ng 1 hoáº·c nhiá»�u file XML hÃ³a Ä‘Æ¡n gá»‘c (NÄ�123 hoáº·c meInvoice).é�  u,   Vui lÃ²ng Ä‘Ã­nh kÃ¨m Ã­t nháº¥t 1 file XML.©Ústatus_codeÚdetailÚ	full_nameÚemailÚ
SuperAdminr   ú.xmlÚerroru,   Chá»‰ cháº¥p nháº­n file Ä‘á»‹nh dáº¡ng .xml)ÚfilenameÚstatusÚmessageNÚ
manual_xml©Úsource_channelT©Úuser_idÚauto_reconciler&   r'   Úsuccessr   Ú	duplicateu   Lá»—i bÃ³c tÃ¡ch XML: u   Ä�Ã£ xá»­ lÃ½ z file: u&    hÃ³a Ä‘Æ¡n má»›i náº¡p thÃ nh cÃ´ng, u    hÃ³a Ä‘Æ¡n Ä‘Ã£ tá»“n táº¡i.)r'   r(   Úsuccess_countÚduplicate_countÚresults)r   Úgetr&   ÚlowerÚendswithÚappendÚreadÚinvoice_serviceÚparse_xml_contentÚsave_invoiceÚ	ExceptionÚlen)r   r   Ú	user_namer3   r1   Ú	dup_countÚfileÚcontent_bytesÚparsedÚresÚes              ú]C:\Projects\DSCons\app\modules\invoices\presentation\invoice_modules\invoices_upload_audit.pyÚupload_invoice_xmlrF      sa  è è € ð ð 
ÝØÐ$Rð
ñ 
ô 
ð 	
ð
 	×Ò˜Ñ%Ô%ÐR¨×)9Ò)9¸'Ñ)BÔ)BÐRÀlð ð €GØ€MØ€Iàð  ñ  ˆØŒ}×"Ò"Ñ$Ô$×-Ò-¨fÑ5Ô5ð 	Ø�NŠNà $¤Ø%ØMðð ñô ð ð ð	Ø"&§)¢)¡+¤+Ð-Ð-Ð-Ð-Ð-Ð-ˆMÝ$×6Ò6Ø¨lð 7ñ ô ˆFõ "×.Ò.Ø 	¸$ð /ñ ô ˆCð #œmˆC�
‰OØ�wŠw�xÑ Ô  IÒ-Ð-Ø Ñ"��Ø—’˜Ñ"Ô" kÒ1Ð1Ø˜Q‘�	Ø�NŠN˜3ÑÔÐÐøÝð 	ð 	ð 	Ø�NŠNà $¤Ø%Ø=¸Ð=Ð=ðð ñô ð ð ð ð ð ñ øøøøð	øøøð ð U¥C¨¡J¤Jð  Uð  U°}ð  Uð  UÐluð  Uð  Uð  UØ&Ø$Øðð ð s   ÂB/E	Å	
E?Å!E:Å:E?z/upload-xml-rawu-   Náº¡p trá»±c tiáº¿p ná»™i dung XML hÃ³a Ä‘Æ¡nÚreqr   c              ƒ  ó  K  — 	 |                      d¦  «        pd}t                               | j        | j        ¬¦  «        }t                               ||d¬¦  «        }|S # t          $ r}t          dd|›�¬¦  «        ‚d	}~ww xY w)
u;   Náº¡p trá»±c tiáº¿p XML string tá»« webhook / email reader.r!   r#   r*   Tr,   r   u   Lá»—i phÃ¢n tÃ­ch XML: r   N)r4   r9   r:   Úxml_contentr+   r;   r<   r   )rG   r   r>   rB   rC   rD   s         rE   Úupload_invoice_xml_rawrJ   W   s±   è è € ð
UØ ×$Ò$ [Ñ1Ô1ÐA°\ˆ	Ý ×2Ò2ØŒO¨CÔ,>ð 3ñ 
ô 
ˆõ ×*Ò*Ø˜I°dð +ñ 
ô 
ˆð ˆ
øÝð Uð Uð UÝ¨Ð4SÈaÐ4SÐ4SÐTÑTÔTÐTøøøøðUøøøs   „AA  Á 
BÁ*A>Á>Bz/{invoice_id}/reconcileu,   Khá»›p ná»‘i HÃ³a Ä�Æ¡n vá»›i Dá»± Ã�n & WBSÚ
invoice_idÚstrr   c              ƒ  ó  K  — |                      d¦  «        pd}t                               | |j        |j        |¬¦  «        }|                      d¦  «        dk    r$t          d|                      d¦  «        ¬¦  «        ‚|S )	ua   GÃ¡n hÃ³a Ä‘Æ¡n vÃ o dá»± Ã¡n cá»¥ thá»ƒ Ä‘á»ƒ theo dÃµi chi phÃ­ thá»±c táº¿ EVM / giáº£i ngÃ¢n.r!   r#   )rK   Ú
project_idÚwbs_idr-   r'   r%   r   r(   r   )r4   r9   Úreconcile_invoicerN   rO   r   )rK   rG   r   r>   rC   s        rE   rP   rP   j   s‡   è è € ð × Ò  Ñ-Ô-Ð=°€IÝ
×
+Ò
+ØØ”>ØŒzØð	 ,ñ ô €Cð ‡w‚wˆxÑÔ˜GÒ#Ð#Ý¨°C·G²G¸IÑ4FÔ4FÐGÑGÔGÐGØ€Jó    z/reports/vat-scheduleuM   Láº¥y báº£ng kÃª thuáº¿ GTGT Ä‘áº§u vÃ o & Ä‘áº§u ra (Máº«u 01-1 & 01-2/GTGT)u   Tá»« ngÃ y (YYYY-MM-DD))Údescriptionu   Ä�áº¿n ngÃ y (YYYY-MM-DD)u   TÃªn ká»³ kÃª khaiÚ	from_dateú
str | NoneÚto_dateÚ
vat_periodc              ƒ  óJ   K  — t                                | ||¬¦  «        }d|dœS )uz   Tá»•ng há»£p báº£ng kÃª hÃ³a Ä‘Æ¡n mua vÃ o (01-1) vÃ  bÃ¡n ra (01-2) phÃ¢n nhÃ³m theo thuáº¿ suáº¥t 0%, 5%, 8%, 10%, KCT.)rS   rU   rV   r/   )r'   Úschedule)r9   Úget_vat_tax_schedule)rS   rU   rV   r   rX   s        rE   Úget_vat_schedulerZ      s9   è è € õ ×3Ò3Ø W¸ð 4ñ ô €Hð  ¨XÐ6Ð6Ð6rQ   z/reports/vat-schedule/exportu?   Xuáº¥t file CSV báº£ng kÃª thuáº¿ GTGT (Máº«u 01-1 & 01-2/GTGT)Úallu%   Loáº¡i báº£ng kÃª: all, input, outputÚ	directionc              ƒ  ó  K  — t                                | ||¬¦  «        }| r|                      dd¦  «        nd}|r|                     dd¦  «        nd}d|› d|› d�}t          |                     d	¦  «        d
dd|› �i¬¦  «        S )uQ   Xuáº¥t trá»±c tiáº¿p file CSV chuáº©n UTF-8 BOM Ä‘á»ƒ má»Ÿ trÃªn Microsoft Excel.©rS   rU   r\   ú-Ú Údau_kyÚhien_taiÚBang_Ke_Thue_GTGT_Ú_z.csvz	utf-8-sigztext/csvúContent-Dispositionúattachment; filename=©ÚcontentÚ
media_typeÚheaders)r9   Úexport_vat_schedule_csvÚreplacer   Úencode)rS   rU   r\   r   Úcsv_contentÚf_tagÚt_tagr&   s           rE   rk   rk   �   s»   è è € õ "×9Ò9Ø W¸	ð :ñ ô €Kð +4ÐAˆI×Ò˜c 2Ñ&Ô&Ð&¸€EØ(/Ð?ˆG�OŠO˜C Ñ$Ô$Ð$°Z€EØ7 EÐ7Ð7¨EÐ7Ð7Ð7€HÝØ×"Ò" ;Ñ/Ô/ØØ&Ð(JÀÐ(JÐ(JÐKðñ ô ð rQ   z/output/ipc-invoiceuD   Láº­p hÃ³a Ä‘Æ¡n bÃ¡n ra / Ä�á»� nghá»‹ thanh toÃ¡n Ä‘á»£t IPC FIDICr   c              ƒ  ó®  K  — |                      d¦  «        p|                      d¦  «        pd}d„ | j        D ¦   «         }t                               | j        || j        | j        | j        | j        | j	        | j
        | j        | j        || j        ¬¦  «        }|                      d¦  «        dk    r$t          d|                      d	¦  «        ¬
¦  «        ‚|S )u|   Láº­p hÃ³a Ä‘Æ¡n Ä‘áº§u ra tá»« khá»‘i lÆ°á»£ng nghiá»‡m thu hoÃ n thÃ nh WBS cÃ³ kháº¥u trá»« táº¡m á»©ng & báº£o hÃ nh 5%.r!   r"   r#   c                ó6   — g | ]}|                      ¦   «         ‘ŒS © ©Ú
model_dump©Ú.0Úitms     rE   ú
<listcomp>z&create_ipc_invoice.<locals>.<listcomp>´   s"   € Ð=Ð=Ð=¨�3—>’>Ñ#Ô#Ð=Ð=Ð=rQ   )rN   Ú	wbs_itemsÚadvance_deduction_pctÚretention_pctÚvat_rate_pctÚbuyer_tax_codeÚ
buyer_nameÚbuyer_addressÚinvoice_numberÚinvoice_seriesr>   Únotesr'   r%   r   r(   r   )r4   rz   r9   Úcreate_fidic_ipc_output_invoicerN   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r   )rG   r   r>   Úitems_dictsrC   s        rE   Úcreate_ipc_invoicer†   ¨   sã   è è € ð 	×Ò˜Ñ%Ô%ÐR¨×)9Ò)9¸'Ñ)BÔ)BÐRÀlð ð >Ð=¨s¬}Ð=Ñ=Ô=€KÝ
×
9Ò
9Ø”>ØØ!Ô7ØÔ'ØÔ%ØÔ)Ø”>ØÔ'ØÔ)ØÔ)ØØŒið :ñ ô €Cð ‡w‚wˆxÑÔ˜GÒ#Ð#Ý¨°C·G²G¸IÑ4FÔ4FÐGÑGÔGÐGØ€JrQ   z/{invoice_id}/tax-risk-audituG   RÃ  soÃ¡t rá»§i ro thuáº¿ & toÃ n váº¹n chá»¯ kÃ½ sá»‘ cá»§a hÃ³a Ä‘Æ¡nc              ƒ  óÀ   K  — t                                | ¦  «        }|                     d¦  «        dk    r$t          d|                     d¦  «        ¬¦  «        ‚d||dœS )ue   Kiá»ƒm tra chá»¯ kÃ½ sá»‘, sai lá»‡ch thuáº¿ suáº¥t vÃ  Ä‘á»™ trá»… kÃ½ sá»‘ theo Nghá»‹ Ä‘á»‹nh 123.r'   r%   é”  r(   r   r/   )r'   ÚauditÚaudit_report)r9   Úaudit_invoice_tax_riskr4   r   )rK   r   rC   s      rE   r‹   r‹   È   sa   è è € õ ×
0Ò
0°Ñ
<Ô
<€CØ
‡w‚wˆxÑÔ˜GÒ#Ð#Ý¨°C·G²G¸IÑ4FÔ4FÐGÑGÔGÐGØ¨#¸sÐCÐCÐCrQ   z/{invoice_id}/export-xmlu:   Xuáº¥t File XML HÃ³a Ä�Æ¡n Chuáº©n MISA meInvoice / NÄ�123c              ƒ  óÖ  K  — t                                | ¦  «        }|st          dd¬¦  «        ‚|                     d¦  «        }|r|                     ¦   «         s1|                     dg ¦  «        }t                                ||¦  «        }|                     dd¦  «        }|                     dd	¦  «        }d
|› d|› d�}t          |                     d¦  «        ddd|› �i¬¦  «        S )us   Xuáº¥t trá»±c tiáº¿p file XML hÃ³a Ä‘Æ¡n gá»‘c hoáº·c sinh file XML chuáº©n MISA meInvoice theo Nghá»‹ Ä‘á»‹nh 123.rˆ   u+   KhÃ´ng tÃ¬m tháº¥y hÃ³a Ä‘Æ¡n Ä‘iá»‡n tá»­.r   Úxml_raw_contentÚitemsr‚   Ú1C26TDSr�   Ú00000001ÚHoa_Don_rd   r$   zutf-8zapplication/xmlre   rf   rg   )r9   Úget_invoice_detailr   r4   ÚstripÚgenerate_misa_xmlr   rm   )rK   r   ÚinvrI   rŽ   Ú
inv_seriesÚinv_numr&   s           rE   Úexport_invoice_xmlr˜   Ö   s  è è € õ ×
,Ò
,¨ZÑ
8Ô
8€CØð cÝ¨Ð4aÐbÑbÔbÐbà—'’'Ð+Ñ,Ô,€KØð D˜k×/Ò/Ñ1Ô1ð DØ—’˜ Ñ$Ô$ˆÝ%×7Ò7¸¸UÑCÔCˆà—’Ð)¨9Ñ5Ô5€JØ�gŠgÐ&¨
Ñ3Ô3€GØ4˜*Ð4Ð4 wÐ4Ð4Ð4€HåØ×"Ò" 7Ñ+Ô+Ø$Ø&Ð(JÀÐ(JÐ(JÐKðñ ô ð rQ   z/{invoice_id}/html-viewuL   Báº£n Thá»ƒ Hiá»‡n HÃ³a Ä�Æ¡n Ä�iá»‡n Tá»­ Khá»• A4 (Chuáº©n MISA meInvoice)c              ƒ  ó`   K  — t                                | ¦  «        }ddlm}  ||d¬¦  «        S )uy   Tráº£ vá»� trang HTML báº£n thá»ƒ hiá»‡n hÃ³a Ä‘Æ¡n Ä‘iá»‡n tá»­ khá»• A4 sang trá»�ng (há»— trá»£ in áº¥n vÃ  lÆ°u PDF).r   )ÚHTMLResponseéÈ   )rh   r   )r9   Úrender_misa_invoice_htmlÚfastapi.responsesrš   )rK   r   Úhtmlrš   s       rE   Úget_invoice_html_viewrŸ   ò   sB   è è € õ ×3Ò3°JÑ?Ô?€DØ.Ð.Ð.Ð.Ð.Ð.àˆ< °#Ð6Ñ6Ô6Ð6rQ   z/issue-output-invoiceu@   Láº­p & Xuáº¥t HÃ³a Ä�Æ¡n BÃ¡n Ra Má»›i (Chuáº©n MISA meInvoice)r   c              ƒ  ó”  K  — |                      d¦  «        p|                      d¦  «        pd}d„ | j        D ¦   «         }t                               | j        | j        | j        | j        | j        | j	        || j
        | j        | j        | j        | j        | j        | j        | j        |¬¦  «        }|                      d¦  «        dk    r$t%          d|                      d	¦  «        ¬
¦  «        ‚| j        rT| j        rM| j        sF|                      d¦  «        r1t                               |d         | j        ¦  «        ƒ d{V —†}||d<   |S )uŒ   Láº­p vÃ  xuáº¥t hÃ³a Ä‘Æ¡n Ä‘iá»‡n tá»­ bÃ¡n ra má»›i (há»— trá»£ cáº£ KÃ½ phÃ¡t hÃ nh ngay hoáº·c LÆ°u nhÃ¡p theo chuáº©n MISA meInvoice).r!   r"   r#   c                ó6   — g | ]}|                      ¦   «         ‘ŒS rs   rt   rv   s     rE   ry   z(issue_output_invoice.<locals>.<listcomp>  s"   € Ð9Ð9Ð9¨�3—>’>Ñ#Ô#Ð9Ð9Ð9rQ   )r   r~   r€   Úbuyer_emailÚbuyer_phoneÚbuyer_representativerŽ   Úvat_rate_percentr‚   r�   Ú
issue_dateÚpayment_methodrƒ   rN   Úis_draftr>   r'   r%   r   r(   r   rK   NÚemail_result)r4   rŽ   r9   Úissue_output_invoicer   r~   r€   r¢   r£   r¤   r¥   r‚   r�   r¦   r§   rƒ   rN   r¨   r   Úsend_email_to_buyerÚsend_invoice_to_buyer_email)rG   r   r>   r…   rC   Ú	email_ress         rE   rª   rª      s}  è è € ð 	×Ò˜Ñ%Ô%ÐR¨×)9Ò)9¸'Ñ)BÔ)BÐRÀlð ð :Ð9¨s¬yÐ9Ñ9Ô9€Kå
×
.Ò
.Ø”>ØÔ)ØÔ'Ø”OØ”OØ Ô5ØØÔ-ØÔ)ØÔ)Ø”>ØÔ)ØŒiØ”>Ø”Øð! /ñ ô €Cð$ ‡w‚wˆxÑÔ˜GÒ#Ð#Ý¨°C·G²G¸IÑ4FÔ4FÐGÑGÔGÐGð 	Ôð	(àŒOð	(ð ”ð	(ð �GŠG�LÑ!Ô!ð		(õ *×EÒEØ�Ô˜sœñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆ	ð (ˆˆNÑà€JrQ   z/{invoice_id}/sign-and-issueu'   KÃ½ Sá»‘ & PhÃ¡t HÃ nh HÃ³a Ä�Æ¡n NhÃ¡pc              ƒ  ó  K  — |                      d¦  «        p|                      d¦  «        pd}t                               | |¬¦  «        }|                      d¦  «        dk    r$t          d|                      d¦  «        ¬	¦  «        ‚|S )
uz   KÃ½ sá»‘ Ä‘iá»‡n tá»­ báº±ng chá»©ng thÆ° sá»‘ cá»§a CÃ´ng ty Ä�á»‹nh SÆ¡n vÃ  chÃ­nh thá»©c phÃ¡t hÃ nh hÃ³a Ä‘Æ¡n nhÃ¡p.r!   r"   r#   )r>   r'   r%   r   r(   r   )r4   r9   Úsign_and_issue_invoicer   )rK   r   r>   rC   s       rE   Úsign_and_issue_invoice_endpointr°   1  s‹   è è € ð 	×Ò˜Ñ%Ô%ÐR¨×)9Ò)9¸'Ñ)BÔ)BÐRÀlð õ ×
0Ò
0°ÀyÐ
0Ñ
QÔ
Q€CØ
‡w‚wˆxÑÔ˜GÒ#Ð#Ý¨°C·G²G¸IÑ4FÔ4FÐGÑGÔGÐGØ€JrQ   z/{invoice_id}/send-emailu4   Gá»­i Email HÃ³a Ä�Æ¡n Ä�iá»‡n Tá»­ Cho KhÃ¡ch HÃ ngr   c              ƒ  óÐ   K  — t                                | |j        ¦  «        ƒ d{V —†}|                     d¦  «        dk    r$t	          d|                     d¦  «        ¬¦  «        ‚|S )uq   Gá»­i email thÃ´ng bÃ¡o phÃ¡t hÃ nh hÃ³a Ä‘Æ¡n Ä‘iá»‡n tá»­ kÃ¨m thÃ´ng tin chi tiáº¿t Ä‘áº¿n email ngÆ°á»�i mua.Nr'   r%   r   r(   r   )r9   r¬   r¢   r4   r   )rK   rG   r   rC   s       rE   Úsend_invoice_email_endpointr²   A  sl   è è € õ  ×;Ò;¸JÈÌÑXÔXÐ
XÐ
XÐ
XÐ
XÐ
XÐ
X€CØ
‡w‚wˆxÑÔ˜GÒ#Ð#Ý¨°C·G²G¸IÑ4FÔ4FÐGÑGÔGÐGØ€JrQ   z/export/misa-excelu7   Xuáº¥t Báº£ng KÃª HÃ³a Ä�Æ¡n Chuáº©n Excel MISA (.xlsx)u%   Loáº¡i hÃ³a Ä‘Æ¡n: all, input, outputc              ƒ  óè   K  — t                                | ||¬¦  «        }| r|                      dd¦  «        nd}|r|                     dd¦  «        nd}d|› d|› d�}t          |d	d
d|› �i¬¦  «        S )uh   Xuáº¥t file Excel (.xlsx) danh sÃ¡ch hÃ³a Ä‘Æ¡n theo chuáº©n báº£ng kÃª nháº­p liá»‡u pháº§n má»�m MISA.r^   r_   r`   ra   rb   ÚBang_Ke_Hoa_Don_MISA_rd   z.xlsxzAapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetre   rf   rg   )r9   Úexport_misa_excelrl   r   )rS   rU   r\   r   Úexcel_bytesro   rp   r&   s           rE   rµ   rµ   P  s¯   è è € õ "×3Ò3ØØØð 4ñ ô €Kð
 +4ÐAˆI×Ò˜c 2Ñ&Ô&Ð&¸€EØ(/Ð?ˆG�OŠO˜C Ñ$Ô$Ð$°Z€EØ; uÐ;Ð;¨uÐ;Ð;Ð;€HåØØVØ&Ð(JÀÐ(JÐ(JÐKðñ ô ð rQ   )r   r   r   r   r   r   )rG   r   r   r   r   r   )rK   rL   rG   r   r   r   r   r   )
rS   rT   rU   rT   rV   rT   r   r   r   r   )rS   rT   rU   rT   r\   rL   r   r   )rG   r   r   r   r   r   )rK   rL   r   r   r   r   )rK   rL   r   r   )rG   r   r   r   r   r   )rK   rL   rG   r   r   r   r   r   ),Ú
__future__r   ÚloggingÚtypingr   Úfastapir   r   r   r   r	   r
   r�   r   Ú"app.modules.auth.presentation.authr   Ú;app.modules.invoices.application.invoice_processing_servicer   Úmodelsr   r   r   r   r   Ú	getLoggerÚloggerÚrouterÚinvoice_routerr9   ÚpostrF   rJ   rP   r4   rZ   rk   r†   r‹   r˜   rŸ   rª   r°   r²   rµ   rs   rQ   rE   ú<module>rÃ      s  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð à NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ &Ð &Ð &Ð &Ð &Ð &à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø `Ð `Ð `Ð `Ð `Ð `ðð ð ð ð ð ð ð ð ð ð ð ð ð ð 
ˆÔ	Ð0Ñ	1Ô	1€Ø	ˆÐ,Ð4QÐ3RÐ	SÑ	SÔ	S€Ø€Ø*Ð*Ñ,Ô,€ð ×Ò�]Ð,aÐÑbÔbà"˜d 4™jœjØ#* 7Ð+;Ñ#<Ô#<ð9ð 9ð 9ð 9ñ cÔbð9ðx ×ÒÐ&Ð0_ÐÑ`Ô`ð $+ 7Ð+;Ñ#<Ô#<ðUð Uð Uð Uñ aÔ`ðUð$ ×ÒØÐ'Uð ñ ô ð $+ 7Ð+;Ñ#<Ô#<ðð ð ð ñô ðð$ ×ÒØØ[ð ñ ô ð
 "˜E $Ð4MÐNÑNÔNØ˜% Ð2MÐNÑNÔNØ"˜U 4Ð5IÐJÑJÔJØ#* 7Ð+;Ñ#<Ô#<ð	
7ð 
7ð 
7ð 
7ñ	ô ð
7ð ×ÒØ"ØMð ñ ô ð
 "˜E $Ð4MÐNÑNÔNØ˜% Ð2MÐNÑNÔNØ�U˜5Ð.UÐVÑVÔVØ#* 7Ð+;Ñ#<Ô#<ð	ð ð ð ñ	ô ðð( ×ÒØØRð ñ ô ð $+ 7Ð+;Ñ#<Ô#<ðð ð ð ñ	ô ðð8 ×ÒØ"ØUð ñ ô ð
 5<°GÐ<LÑ4MÔ4MðDð Dð Dð Dñ	ô ðDð ×ÒØØHð ñ ô ð
 5<°GÐ<LÑ4MÔ4Mðð ð ð ñ	ô ðð0 ×ÒØØZð ñ ô ð
 5<°GÐ<LÑ4MÔ4Mð7ð 7ð 7ð 7ñ	ô ð7ð ×ÒØØNð ñ ô ð
 >E¸WÐEUÑ=VÔ=Vð*ð *ð *ð *ñ	ô ð*ðZ ×ÒØ"Ð,Uð ñ ô ð 5<°GÐ<LÑ4MÔ4Mð
ð 
ð 
ð 
ñô ð
ð ×ÒØÐ(^ð ñ ô ð $+ 7Ð+;Ñ#<Ô#<ð	ð 	ð 	ð 	ñô ð	ð ×ÒØÐ"[ð ñ ô ð "˜E $Ð4MÐNÑNÔNØ˜% Ð2MÐNÑNÔNØ�U˜5Ð.UÐVÑVÔVØ#* 7Ð+;Ñ#<Ô#<ð	ð ð ð ñô ðð ð rQ   