§
    ~‰¬j  ã            
      óŽ  — d Z 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 ddlmZ ddlmZmZ ddlmZ  ej        e¦  «        Z ed	d
g e eg d¢¦  «        ¦  «        g¬¦  «        Ze                     dd¬¦  «         e
dd¬¦  «         e
dddd¬¦  «         e
dd¬¦  «         ee¦  «        fd6d!„¦   «         Ze                     d"ed#¬$¦  «         e
dd%¬¦  «         e
dddd&¬¦  «         e
dd¬¦  «         ee¦  «        fd7d(„¦   «         Ze                     d)d*¬¦  «         e
dd%¬¦  «         e
dddd&¬¦  «         e
dd+¬¦  «         ee¦  «        fd8d-„¦   «         Z ed.d/g e eg d¢¦  «        ¦  «        g¬¦  «        Ze                     dd0¬1¦  «         e
d¦  «         e
d¦  «         ee¦  «        fd9d2„¦   «         Ze                     d"ed0¬3¦  «         e
d¦  «         e
d¦  «         ee¦  «        fd9d4„¦   «         Ze                     d)d0¬1¦  «         e
d¦  «         e
d¦  «         ee¦  «        fd9d5„¦   «         ZdS ):u£   API endpoints for Treasury Settlement Dossier (Máº«u 03.a/TT & Máº«u 03.c/TT Nghá»‹ Ä‘á»‹nh 254/2025/NÄ�-CP).
Strict RBAC & Enterprise AEC Architecture COMPLIANT.
é    )ÚannotationsN)ÚAny)Ú	APIRouterÚDependsÚHTTPExceptionÚQueryÚResponse)ÚHTMLResponse)Úget_current_userÚrequire_role)ÚTreasurySettlementServicez/v1/erp/dossier/treasuryuN   ERP - Treasury Settlement Dossier (Kho Báº¡c NhÃ  NÆ°á»›c NÄ� 254/2025/NÄ�-CP))Ú
superadminÚdirectorÚpmÚ
accountantÚqs)ÚprefixÚtagsÚdependenciesz/datauG   Láº¥y dá»¯ liá»‡u JSON Há»“ sÆ¡ Thanh toÃ¡n Kho báº¡c Máº«u 03.a / 03.c)Úsummary.u8   MÃ£ dá»± Ã¡n (vÃ­ dá»¥: DA-2608281122 hoáº·c DA-2026-32))Údescriptioné   é
   u   Ä�á»£t thanh toÃ¡n (1, 2, 3...))ÚgeÚler   Ú03auJ   Loáº¡i biá»ƒu máº«u: '03a' (theo HÄ�) hoáº·c '03c' (phÃ¡t sinh ngoÃ i HÄ�)Úproject_codeÚstrÚstage_numberÚintÚ	form_typeÚcurrent_userúdict[str, Any]Úreturnc                ó4  — 	 t          ¦   «         }|                     | ||¦  «        S # t          $ r#}t          dt	          |¦  «        ¬¦  «        ‚d}~wt
          $ r;}t                               d|› d|› �d¬¦  «         t          dd	|›�¬¦  «        ‚d}~ww xY w)
ua   Truy xuáº¥t dá»¯ liá»‡u cáº¥u trÃºc Máº«u 03.a/TT hoáº·c Máº«u 03.c/TT Ä‘á»ƒ render Live Preview.é”  ©Ústatus_codeÚdetailNu   Lá»—i truy xuáº¥t Máº«u ú: T©Úexc_infoéô  õ   Lá»—i há»‡ thá»‘ng: )r   Úget_treasury_dataÚ
ValueErrorr   r   Ú	ExceptionÚloggerÚerror)r   r   r!   r"   ÚserviceÚexcs         úFC:\Projects\DSCons\app\modules\dossier\presentation\treasury_routes.pyr/   r/      sÀ   € ðTÝ+Ñ-Ô-ˆØ×(Ò(¨°|ÀYÑOÔOÐOøÝð >ð >ð >Ý¨µC¸±H´HÐ=Ñ=Ô=Ð=øøøøÝð Tð Tð TÝ�ŠÐB°	ÐBÐB¸SÐBÐBÈTˆÑRÔRÐRÝ¨Ð4RÈ3Ð4RÐ4RÐSÑSÔSÐSøøøøðTøøøs    ‚$' §
B±AÁBÁ6BÂBz/preview-htmlu5   Xem trá»±c tiáº¿p Live Preview HTML Máº«u 03.a / 03.c)Úresponse_classr   u   MÃ£ dá»± Ã¡nu   Ä�á»£t thanh toÃ¡nr
   c                óV  — 	 t          ¦   «         }|                     | ||¦  «        }t          |d¬¦  «        S # t          $ r#}t	          dt          |¦  «        ¬¦  «        ‚d}~wt          $ r;}t                               d|› d|› �d¬	¦  «         t	          d
d|›�¬¦  «        ‚d}~ww xY w)u]   Tráº£ vá»� trang HTML sáº¯c nÃ©t Ä‘á»ƒ preview trong iframe hoáº·c in trá»±c tiáº¿p A4 ngang.éÈ   )Úcontentr(   r&   r'   Nu   Lá»—i preview HTML Máº«u r*   Tr+   r-   r.   )	r   Úrender_treasury_htmlr
   r0   r   r   r1   r2   r3   )r   r   r!   r"   r4   Úhtml_contentr5   s          r6   Úpreview_treasury_htmlr=   *   sÓ   € ðTÝ+Ñ-Ô-ˆØ×3Ò3°LÀ,ÐPYÑZÔZˆÝ L¸cÐBÑBÔBÐBøÝð >ð >ð >Ý¨µC¸±H´HÐ=Ñ=Ô=Ð=øøøøÝð Tð Tð TÝ�ŠÐC°ÐCÐC¸cÐCÐCÈdˆÑSÔSÐSÝ¨Ð4RÈ3Ð4RÐ4RÐSÑSÔSÐSøøøøðTøøøs!   ‚58 ¸
B(ÁA Á B(Á-6B#Â#B(z/export-excelu2   1-Click Táº£i file Excel Máº«u 03.a / 03.c (.xlsx)u'   Loáº¡i biá»ƒu máº«u: '03a' hoáº·c '03c'r	   c                óž  — 	 t          ¦   «         }|                     | ||¦  «        }d|                     ¦   «         › d| › d|› d�}t          |ddd|› �i¬¦  «        S # t          $ r#}t          d	t          |¦  «        ¬
¦  «        ‚d}~wt          $ r;}t           	                    d|› d|› �d¬¦  «         t          dd|›�¬
¦  «        ‚d}~ww xY w)uf   Xuáº¥t file Excel Máº«u 03.a/TT hoáº·c Máº«u 03.c/TT hoÃ n chá»‰nh Ä‘á»ƒ ná»™p Kho báº¡c NhÃ  nÆ°á»›c.ÚMau_Ú_KhoBac_Ú_Dotz.xlsxzAapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetzContent-Dispositionzattachment; filename=)r:   Ú
media_typeÚheadersr&   r'   Nu   Lá»—i xuáº¥t Excel Máº«u r*   Tr+   r-   r.   )
r   Úexport_treasury_excelÚupperr	   r0   r   r   r1   r2   r3   )r   r   r!   r"   r4   Úexcel_bytesÚfilenamer5   s           r6   rD   rD   =   s  € ðTÝ+Ñ-Ô-ˆØ×3Ò3°LÀ,ÐPYÑZÔZˆØZ˜)Ÿ/š/Ñ+Ô+ÐZÐZ°\ÐZÐZÀ|ÐZÐZÐZˆÝØØZØ*Ð,NÀHÐ,NÐ,NÐOð
ñ 
ô 
ð 	
øõ
 ð >ð >ð >Ý¨µC¸±H´HÐ=Ñ=Ô=Ð=øøøøÝð Tð Tð TÝ�ŠÐC°ÐCÐC¸cÐCÐCÈdˆÑSÔSÐSÝ¨Ð4RÈ3Ð4RÐ4RÐSÑSÔSÐSøøøøðTøøøs$   ‚AA Á
CÁ&BÂCÂ6CÃCz/v1/erp/dossier/treasury-02az0ERP - Treasury Settlement Dossier (Compat Alias)F)Úinclude_in_schemac                ó(   — t          | |d|¬¦  «        S ©Nr   )r   r   r!   r"   )r/   ©r   r   r"   s      r6   Úget_treasury_02a_data_compatrL   ^   s   € õ ¨,À\Ð]bÐq}Ð~Ñ~Ô~Ð~ó    )r7   rH   c                ó(   — t          | |d|¬¦  «        S rJ   )r=   rK   s      r6   Ú preview_treasury_02a_html_compatrO   f   ó-   € õ !¨lÈÐafð  vBð  Cñ  Cô  Cð  CrM   c                ó(   — t          | |d|¬¦  «        S rJ   )rD   rK   s      r6   Ú export_treasury_02a_excel_compatrR   n   rP   rM   )
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   r   r    r"   r#   )Ú__doc__Ú
__future__r   ÚloggingÚtypingr   Úfastapir   r   r   r   r	   Úfastapi.responsesr
   Ú"app.modules.auth.presentation.authr   r   Ú;app.modules.dossier.application.treasury_settlement_servicer   Ú	getLoggerÚ__name__r2   ÚrouterÚgetr/   r=   rD   Úcompat_routerrL   rO   rR   © rM   r6   ú<module>ra      s  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ *Ð *Ð *Ð *Ð *Ð *à MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ aÐ aÐ aÐ aÐ aÐ aà	ˆÔ	˜8Ñ	$Ô	$€à	ˆØ%Ø
ZÐ	[Ø�'˜,˜,Ð'[Ð'[Ð'[Ñ\Ô\Ñ]Ô]Ð^ð
ñ 
ô 
€ð ‡‚ˆGÐf€ÑgÔgà˜˜cÐ/iÐjÑjÔjØ˜˜a A¨"Ð:[Ð\Ñ\Ô\Ø�U˜5Ð.zÐ{Ñ{Ô{Ø#* 7Ð+;Ñ#<Ô#<ð	Tð Tð Tð Tñ hÔgðTð" ‡‚ˆO¨LÐBy€ÑzÔzà˜˜c¨~Ð>Ñ>Ô>Ø˜˜a A¨"Ð:NÐOÑOÔOØ�U˜5Ð.zÐ{Ñ{Ô{Ø#* 7Ð+;Ñ#<Ô#<ð	Tð Tð Tð Tñ {ÔzðTð$ ‡‚ˆOÐ%Y€ÑZÔZà˜˜c¨~Ð>Ñ>Ô>Ø˜˜a A¨"Ð:NÐOÑOÔOØ�U˜5Ð.WÐXÑXÔXØ#* 7Ð+;Ñ#<Ô#<ð	Tð Tð Tð Tñ [ÔZðTð4 �	Ø)Ø
<Ð	=Ø�'˜,˜,Ð'[Ð'[Ð'[Ñ\Ô\Ñ]Ô]Ð^ðñ ô €ð ×Ò�7¨eÐÑ4Ô4à˜˜c™
œ
Ø˜˜a™œØ#* 7Ð+;Ñ#<Ô#<ðð ð ð ñ 5Ô4ðð ×Ò�?°<ÐSXÐÑYÔYà˜˜c™
œ
Ø˜˜a™œØ#* 7Ð+;Ñ#<Ô#<ðCð Cð Cð Cñ ZÔYðCð ×Ò�?°eÐÑ<Ô<à˜˜c™
œ
Ø˜˜a™œØ#* 7Ð+;Ñ#<Ô#<ðCð Cð Cð Cñ =Ô<ðCð Cð CrM   