§
    úž’jh  ã                  ó>  — 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	 d dl
mZ d dlmZ  ej        d¦  «        Z edd	g e eg d
¢¦  «        ¦  «        g¬¦  «        ZeZ e¦   «         Ze                     dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	d d!¬¦  «         e	d"d#d$¬%¦  «         e	d d ¬&¦  «         e eg d
¢¦  «        ¦  «        fdOdA„¦   «         Ze                     dBdC¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e eg d
¢¦  «        ¦  «        fdPdD„¦   «         Ze                     dEdF¬¦  «         e eg d
¢¦  «        ¦  «        fdQdG„¦   «         Ze                     dHdI¬¦  «         e eg d
¢¦  «        ¦  «        fdRdK„¦   «         Ze                     dLdM¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e	dd¬¦  «         e eg d
¢¦  «        ¦  «        fdSdN„¦   «         ZdS )Té    )ÚannotationsN)ÚAny)Ú	APIRouterÚDependsÚHTTPExceptionÚQuery)Úrequire_role)ÚInvoiceProcessingServicezdscons.api.invoicesz/v1/erp/invoiceszE-Invoices & Tax Management)Ú
superadminÚdirectorÚ
accountantÚpm)ÚprefixÚtagsÚdependenciesÚ u(   Láº¥y danh sÃ¡ch HÃ³a Ä�Æ¡n Ä�iá»‡n Tá»­)Úsummaryu4   Loáº¡i HÄ�: input (Mua vÃ o) hoáº·c output (BÃ¡n ra))Údescriptionu)   Tráº¡ng thÃ¡i: valid, cancelled, replacedu9   Tráº¡ng thÃ¡i Ä‘á»‘i soÃ¡t: unreconciled, manual_approvedu   Lá»�c theo ID dá»± Ã¡nu<   Tá»« khÃ³a: Sá»‘ HÄ�, MST, TÃªn bÃªn mua/bÃ¡n, TÃªn dá»± Ã¡nu   Tá»« ngÃ y (YYYY-MM-DD)u   Ä�áº¿n ngÃ y (YYYY-MM-DD)u#   Thuáº¿ suáº¥t VAT: 0, 5, 8, 10, kctu    Sá»‘ tiá»�n tá»‘i thiá»ƒu (VNÄ�)u   Sá»‘ tiá»�n tá»‘i Ä‘a (VNÄ�)u)   Tráº¡ng thÃ¡i chá»¯ kÃ½ sá»‘: true, falseu/   KÃ½ hiá»‡u máº«u sá»‘ hÃ³a Ä‘Æ¡n (VD: 1C26T...)u]   Lá»�c loáº¡i HÄ�: cash_register (MÃ¡y tÃ­nh tiá»�n MTT), standard (HÄ� GTGT thÃ´ng thÆ°á»�ng)u…   PhÃ¢n loáº¡i hÃ ng hÃ³a: machinery (Xe mÃ¡y/thiáº¿t bá»‹), materials (Váº­t tÆ°), fuel (XÄƒng dáº§u), services (Dá»‹ch vá»¥/thuÃª ca)Ú
issue_dateu�   TrÆ°á»�ng sáº¯p xáº¿p: issue_date, total_amount_vnd, subtotal_amount_vnd, vat_amount_vnd, invoice_number, seller_name, buyer_nameÚDESCu;   Thá»© tá»± sáº¯p xáº¿p: ASC (bÃ©->lá»›n), DESC (lá»›n->bÃ©)é2   é   éÈ   )ÚgeÚle)r   Ú	directionú
str | NoneÚstatusÚreconciliation_statusÚ
project_idÚsearchÚ	from_dateÚto_dateÚvat_rateÚ
min_amountúfloat | NoneÚ
max_amountÚsignature_validúbool | NoneÚinvoice_seriesÚinvoice_type_filterÚcategoryÚsort_byÚstrÚ
sort_orderÚlimitÚintÚoffsetÚcurrent_userúdict[str, Any]Úreturnc              ƒ  óz   K  — t                                | |||||||||	|
|||||||¬¦  «        \  }}d|||||||dœS )uz   Danh sÃ¡ch hÃ³a Ä‘Æ¡n Ä‘áº§u vÃ o vÃ  Ä‘áº§u ra kÃ¨m bá»™ lá»�c chi tiáº¿t chuáº©n meInvoice, sáº¯p xáº¿p vÃ  phÃ¢n trang.)r   r   r!   r"   r#   r   r    r$   r%   r'   r(   r*   r,   r-   r/   r+   r0   r2   Úsuccess)r   Útotalr0   r2   r,   r-   r/   Úinvoices)Úinvoice_serviceÚlist_invoices)r   r   r   r    r!   r"   r#   r$   r%   r'   r(   r*   r+   r,   r-   r/   r0   r2   r3   r9   Útotal_counts                        úFC:\Projects\DSCons\app\modules\invoices\presentation\invoices_query.pyr;   r;      s‡   è è € õ` ,×9Ò9ØØØØØØ3ØØØØØ'Ø%ØØØØ/ØØð% :ñ ô Ñ€Hˆkð* ØØØØØØ Øð	ð 	ð 	ó    z/summary/kpisu>   Tá»•ng há»£p chá»‰ sá»‘ tÃ i chÃ­nh & VAT tá»« Sá»• HÃ³a Ä�Æ¡nc              ƒ  óJ   K  — t                                | ||¬¦  «        }d|dœS )u|   Tá»•ng há»£p tiá»�n hÃ ng, thuáº¿ GTGT Ä‘áº§u vÃ o/Ä‘áº§u ra vÃ  sá»‘ hÃ³a Ä‘Æ¡n cáº§n Ä‘á»‘i soÃ¡t (há»— trá»£ lá»�c ká»³).)r"   r#   r    r7   )r   Úkpis)r:   Úget_invoice_summary_kpis)r"   r#   r    r3   r@   s        r=   Úget_invoice_kpisrB   g   s9   è è € õ ×3Ò3Ø W¸ð 4ñ ô €Dð  ¨Ð.Ð.Ð.r>   z/categories/summaryuR   Thá»‘ng kÃª phÃ¢n loáº¡i hÃ³a Ä‘Æ¡n (Xe mÃ¡y, váº­t tÆ°, xÄƒng dáº§u, dá»‹ch vá»¥)c              ƒ  óB   K  — t                                ¦   «         }d|dœS )un   Thá»‘ng kÃª sá»‘ lÆ°á»£ng vÃ  tá»•ng tiá»�n hÃ³a Ä‘Æ¡n theo danh má»¥c vÃ  tÃ i sáº£n thiáº¿t bá»‹ sá»Ÿ há»¯u.r7   )r   Ú
categories)r:   Úget_invoice_categories_summary)r3   r   s     r=   rE   rE   y   s'   è è € õ ×<Ò<Ñ>Ô>€GØ¨wÐ7Ð7Ð7r>   z/{invoice_id}u*   Láº¥y chi tiáº¿t 1 HÃ³a Ä�Æ¡n Ä�iá»‡n Tá»­Ú
invoice_idc              ƒ  ój   K  — t                                | ¦  «        }|st          dd¬¦  «        ‚d|dœS )uT   Chi tiáº¿t hÃ³a Ä‘Æ¡n kÃ¨m tá»«ng dÃ²ng hÃ ng hÃ³a vÃ  lá»‹ch sá»­ audit truy váº¿t.i”  u6   KhÃ´ng tÃ¬m tháº¥y hÃ³a Ä‘Æ¡n Ä‘iá»‡n tá»­ yÃªu cáº§u.)Ústatus_codeÚdetailr7   )r   Úinvoice)r:   Úget_invoice_detailr   )rF   r3   Úinvs      r=   rK   rK   ‡   sP   è è € õ ×
,Ò
,¨ZÑ
8Ô
8€CØð 
ÝØÐ$\ð
ñ 
ô 
ð 	
ð  ¨CÐ0Ð0Ð0r>   z/analytics/cost-breakdownuF   PhÃ¢n tÃ­ch phÃ¢n rÃ£ chi phÃ­ váº­t tÆ° chÃ­nh, ca mÃ¡y, tháº§u phá»¥c              ƒ  óJ   K  — t                                | ||¬¦  «        }d|dœS )u†   PhÃ¢n tÃ­ch cÆ¡ cáº¥u chi phÃ­ váº­t tÆ° chÃ­nh (ThÃ©p, BÃª tÃ´ng, Xi mÄƒng...) vs Ca mÃ¡y vs Tháº§u phá»¥ vÃ  Ä‘Æ¡n giÃ¡ bÃ¬nh quÃ¢n.)r    r"   r#   r7   )r   Ú	analytics)r:   Úget_material_and_cost_analytics)r    r"   r#   r3   Úress        r=   Úget_cost_breakdownrQ   —   s9   è è € õ ×
9Ò
9Ø¨¸Gð :ñ ô €Cð  ¨cÐ2Ð2Ð2r>   )(r   r   r   r   r   r   r    r   r!   r   r"   r   r#   r   r$   r   r%   r&   r'   r&   r(   r)   r*   r   r+   r   r,   r   r-   r.   r/   r.   r0   r1   r2   r1   r3   r4   r5   r4   )
r"   r   r#   r   r    r   r3   r4   r5   r4   )r3   r4   r5   r4   )rF   r.   r3   r4   r5   r4   )
r    r   r"   r   r#   r   r3   r4   r5   r4   )Ú
__future__r   ÚloggingÚtypingr   Úfastapir   r   r   r   Ú"app.modules.auth.presentation.authr	   Ú;app.modules.invoices.application.invoice_processing_servicer
   Ú	getLoggerÚloggerÚrouterÚinvoice_routerr:   Úgetr;   rB   rE   rK   rQ   © r>   r=   ú<module>r^      s  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø `Ð `Ð `Ð `Ð `Ð `à	ˆÔ	Ð0Ñ	1Ô	1€Ø	ˆØØ
'Ð	(àˆ��ÐKÐKÐKÑLÔLÑMÔMðð
ñ 
ô 
€ð €Ø*Ð*Ñ,Ô,€ð ×Ò�BÐ JÐÑKÔKà!˜EØÐPðñ ô ð ˜ØÐEðñ ô ð ).¨ØÐUð)ñ )ô )ð #˜U 4Ð5MÐNÑNÔNØ˜ØÐXðñ ô ð "˜E $Ð4MÐNÑNÔNØ˜% Ð2MÐNÑNÔNØ ˜5 Ð3XÐYÑYÔYØ$˜u TÐ7YÐZÑZÔZØ$˜u TÐ7UÐVÑVÔVØ#( 5ØÐEð$ñ $ô $ð "' ØÐKð"ñ "ô "ð ', eØØsð'ñ 'ô 'ð !˜5Øð \ðñ ô ð �5Øð Xðñ ô ð �eØÐYðñ ô ð ��r˜a CÐ(Ñ(Ô(Ø�%˜˜a�.‘.”.Ø#* 7ØˆÐCÐCÐCÑDÔDñ$ô $ðULð Lð Lð Lñ LÔKðLð^ ×ÒØÐ]ð ñ ô ð "˜E $Ð4MÐNÑNÔNØ˜% Ð2MÐNÑNÔNØ"˜U 4Ð5MÐNÑNÔNØ#* 7ØˆÐCÐCÐCÑDÔDñ$ô $ð	/ð /ð /ð /ñô ð/ð ×ÒØØ`ð ñ ô ð
 $+ 7ØˆÐCÐCÐCÑDÔDñ$ô $ð8ð 8ð 8ð 8ñ	ô ð8ð ×Ò�OÐ-YÐÑZÔZð $+ 7ØˆÐCÐCÐCÑDÔDñ$ô $ð1ð 1ð 1ð 1ñ [ÔZð1ð ×ÒØØTð ñ ô ð
 #˜U 4Ð5MÐNÑNÔNØ!˜E $Ð4MÐNÑNÔNØ˜% Ð2MÐNÑNÔNØ#* 7ØˆÐCÐCÐCÑDÔDñ$ô $ð	3ð 3ð 3ð 3ñ	ô ð3ð 3ð 3r>   