§
    ÔŸ’j¹  ã                  óh   — d Z ddlmZ ddlmZmZ ddlmZ ddlmZ ddl	m
Z
mZ  G d„ d¦  «        Zd	S )
u\   Domain Service for Interim Payment Certificate (IPC) Export (Máº«u 03a NÄ� 206/2026/NÄ�-CP).é    )Úannotations)ÚdateÚdatetime)ÚDecimal)ÚAny)ÚIPCExport03aResponseÚ
IPCItem03ac                  ó,   — e Zd ZdZddd„Z	 	 	 ddd„ZdS )ÚIPCExporterServicezSGenerates legally compliant IPC payment certificates adhering to ND 206/2026/ND-CP.NÚpostgres_clientú
Any | NoneÚreturnÚNonec                ó   — || _         d S ©N)r   )Úselfr   s     ú7C:\Projects\DSCons\app\services\ipc_exporter_service.pyÚ__init__zIPCExporterService.__init__   s   € Ø.ˆÔÐÐó    úDA-KM-BENKEM-2025-2026é   Úproject_codeÚstrÚperiod_numberÚintÚcutoff_dateúdate | Noner   c                ó¤	  — |pt          j        ¦   «         }t          ddddt          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d	¦  «        t          d¦  «        t          d¦  «        t          d
¦  «        ¬¦  «        t          ddddt          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d
¦  «        ¬¦  «        t          ddddt          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        ¬¦  «        t          dd d!d"t          d#¦  «        t          d$¦  «        t          d%¦  «        t          d&¦  «        t          d'¦  «        t          d(¦  «        t          d)¦  «        t          d*¦  «        ¬¦  «        g}t	          d+„ |D ¦   «         t          d,¦  «        ¦  «        }t	          d-„ |D ¦   «         t          d,¦  «        ¦  «        }t          d.¦  «        }t          d/¦  «        }	d }
d }| j        rÉt          | j        d0¦  «        r´| j                             |¦  «        }|r˜|                     d1¦  «        }
|                     d2¦  «        }|                     d3¦  «        �"t          t          |d3         ¦  «        ¦  «        }|                     d4¦  «        �"t          t          |d4         ¦  «        ¦  «        }	||z  t          d
¦  «        z   
                    t          d5¦  «        ¦  «        }||	z  t          d
¦  «        z   
                    t          d5¦  «        ¦  «        }||z
  |z
  }t          d6¦  «        }||z  t          d
¦  «        z   
                    t          d5¦  «        ¦  «        }||z   }| j        rSt          | j        d7¦  «        r>|
r<|r:| j                             t          |
¦  «        t          |¦  «        ||||¬8¦  «         t          dVi d9|“d:d;“d<d=“d>d?“d@dA“dBdC“dD|“dE|“dFdG“dHdI“dJ|“dK|“dL|“dM|“dN|	“dO|“dP|“dQ|“dR|“dS|“dT|“dUt          j        ¦   «         “ŽS )WNé   zWBS-KM-01-DAOuE   Ä�Ã o Ä‘áº¥t há»‘ mÃ³ng cá»‘ng há»™p, váº­n chuyá»ƒn Ä‘áº¥t cáº¥p IIIu   mÂ³z	4500.0000z
85000.0000z382500000.0000z	3800.0000z700.0000z100.0000)Ú
item_orderÚwbs_codeÚ	work_nameÚunitÚcontract_qtyÚ
unit_priceÚcontract_amountÚaccumulated_prev_qtyÚ
period_qtyÚaccumulated_total_qtyÚaccumulated_total_amountÚcompletion_rate_pcté   zWBS-KM-02-BETONG-LOTu?   Ä�á»• bÃª tÃ´ng lÃ³t mÃ³ng cá»‘ng há»™p M100 Ä‘Ã¡ 4x6 dÃ y 10cmz320.0000z1150000.0000z368000000.0000z200.0000z120.0000r   zWBS-KM-03-BETONG-CONGu9   BÃª tÃ´ng thÃ¢n cá»‘ng há»™p C25 (M300) Ä‘á»• táº¡i chá»—z	1250.0000z1850000.0000z2312500000.0000z450.0000z350.0000z800.0000z1480000000.0000z64.0000é   zWBS-KM-04-COTHEPu6   Gia cÃ´ng láº¯p dá»±ng cá»‘t thÃ©p CB400-V cÃ¡c loáº¡iu   Táº¥nz145.0000z18200000.0000z2639000000.0000z50.0000z40.0000z90.0000z1638000000.0000z62.0690c              3  ó$   K  — | ]}|j         V — Œd S r   )r&   ©Ú.0Úitems     r   ú	<genexpr>z6IPCExporterService.generate_ipc_03a.<locals>.<genexpr>W   s%   è è € Ð4Ð4 dˆTÔ!Ð4Ð4Ð4Ð4Ð4Ð4r   z0.0000c              3  ó4   K  — | ]}|j         |j        z  V — Œd S r   )r(   r%   r/   s     r   r2   z6IPCExporterService.generate_ipc_03a.<locals>.<genexpr>Z   s+   è è € ÐAÐA°4ˆTŒ_˜tœÑ.ÐAÐAÐAÐAÐAÐAr   z10.0000z5.0000Úget_project_detailÚidÚ
company_idÚadvance_payment_percentÚretention_percentz0.0001z8.0000Ú!create_ipc_financial_transactions)Ú
project_idr6   r   Únet_payableÚretention_amountÚadvance_recovery_amountr   Úproject_nameuF   Há»‡ Thá»‘ng Cá»‘ng Há»™p KÃªnh Báº¿n Kem & ThoÃ¡t NÆ°á»›c Kiáº¿n MinhÚcontract_numberu   HÄ�-2025/KM-BENKEM/01Úcontract_datez
15/12/2025Úclient_nameu   UBND XÃ£ Kiáº¿n MinhÚcontractor_nameu&   CÃ”NG TY TNHH XÃ‚Y Dá»°NG Ä�á»ŠNH SÆ Nr   Úperiod_cutoff_dateÚcurrencyÚVNDÚlegal_basisuK   Nghá»‹ Ä‘á»‹nh sá»‘ 206/2026/NÄ�-CP & Luáº­t XÃ¢y dá»±ng sá»‘ 135/2025/QH15Útotal_contract_valueÚtotal_period_value_pre_taxÚadvance_recovery_rate_pctÚadvance_recovered_periodÚretention_rate_pctÚretention_deducted_periodÚnet_payable_period_pre_taxÚvat_rate_pctÚvat_amount_periodÚtotal_net_payable_periodÚitemsÚgenerated_at© )r   Útodayr	   r   Úsumr   Úhasattrr4   Úgetr   Úquantizer9   r   r   Únow)r   r   r   r   Útarget_cutoffrQ   Útotal_contract_valÚperiod_val_pre_taxÚadvance_rateÚretention_rater:   r6   ÚprojÚadvance_recoveryÚretention_deductedÚnet_pre_taxÚvat_rateÚ
vat_amountÚtotal_payables                      r   Úgenerate_ipc_03az#IPCExporterService.generate_ipc_03a   s¨  € ð $Ð3¥t¤z¡|¤|ˆõ ØØ(ØaØÝ$ [Ñ1Ô1Ý" <Ñ0Ô0Ý 'Ð(8Ñ 9Ô 9Ý%,¨[Ñ%9Ô%9Ý" :Ñ.Ô.Ý&-¨kÑ&:Ô&:Ý)0Ð1AÑ)BÔ)BÝ$+¨JÑ$7Ô$7ðñ ô õ ØØ/Ø[ØÝ$ ZÑ0Ô0Ý" >Ñ2Ô2Ý 'Ð(8Ñ 9Ô 9Ý%,¨ZÑ%8Ô%8Ý" :Ñ.Ô.Ý&-¨jÑ&9Ô&9Ý)0Ð1AÑ)BÔ)BÝ$+¨JÑ$7Ô$7ðñ ô õ ØØ0ØUØÝ$ [Ñ1Ô1Ý" >Ñ2Ô2Ý 'Ð(9Ñ :Ô :Ý%,¨ZÑ%8Ô%8Ý" :Ñ.Ô.Ý&-¨jÑ&9Ô&9Ý)0Ð1BÑ)CÔ)CÝ$+¨IÑ$6Ô$6ðñ ô õ ØØ+ØRØÝ$ ZÑ0Ô0Ý" ?Ñ3Ô3Ý 'Ð(9Ñ :Ô :Ý%,¨YÑ%7Ô%7Ý" 9Ñ-Ô-Ý&-¨iÑ&8Ô&8Ý)0Ð1BÑ)CÔ)CÝ$+¨IÑ$6Ô$6ðñ ô ðW9
ˆõv !Ø4Ð4¨eÐ4Ñ4Ô4µg¸hÑ6GÔ6Gñ
ô 
Ðõ !ØAÐA¸5ÐAÑAÔAÅ7È8ÑCTÔCTñ
ô 
Ðõ ˜yÑ)Ô)ˆÝ  Ñ*Ô*ˆØˆ
Øˆ
àÔð 	M¥G¨DÔ,@ÐBVÑ$WÔ$Wð 	MØÔ'×:Ò:¸<ÑHÔHˆDØð MØ!ŸXšX d™^œ^�
Ø!ŸXšX lÑ3Ô3�
Ø—8’8Ð5Ñ6Ô6ÐBÝ#*­3¨tÐ4MÔ/NÑ+OÔ+OÑ#PÔ#P�LØ—8’8Ð/Ñ0Ô0Ð<Ý%,­S°Ð6IÔ1JÑ-KÔ-KÑ%LÔ%L�Nð  Ñ-µ¸
Ñ0CÔ0CÑCß
Š(•7˜8Ñ$Ô$Ñ
%Ô
%ð 	ð
  Ñ/µ'¸*Ñ2EÔ2EÑEß
Š(•7˜8Ñ$Ô$Ñ
%Ô
%ð 	ð )Ð+;Ñ;Ð>PÑPˆÝ˜8Ñ$Ô$ˆØ! HÑ,­w°zÑ/BÔ/BÑB×LÒLÝ�HÑÔñ
ô 
ˆ
ð $ jÑ0ˆð Ô ð	å˜Ô,Ð.QÑRÔRð	ð ð	ð ð		ð Ô ×BÒBÝ˜z™?œ?Ý˜z™?œ?Ø+Ø)Ø!3Ø(8ð Cñ ô ð õ $ð 
ð 
ð 
Ø%˜ð
àaÐað
ð 4Ð3ð
ð '˜,ð	
ð
 /Ð.ð
ð EÐDð
ð (˜-ð
ð  -˜}ð
ð �Uð
ð fÐeð
ð "4Ð!3ð
ð (:Ð'9ð
ð '3 lð
ð &6Ð%5ð
ð  .˜~ð
ð  '9Ð&8ð!
ð" (3 {ð#
ð$ "˜ð%
ð& )˜jð'
ð( &3 ]ð)
ð* �%ð+
õ, "œ™œ˜ð-
ð 	
r   r   )r   r   r   r   )r   r   N)r   r   r   r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rf   rS   r   r   r   r      s^   € € € € € Ø]Ð]ð/ð /ð /ð /ð /ð
 5ØØ#'ð	P
ð P
ð P
ð P
ð P
ð P
ð P
r   r   N)rj   Ú
__future__r   r   r   Údecimalr   Útypingr   Úapp.models.ipc_export_schemasr   r	   r   rS   r   r   ú<module>ro      s­   ðØ bÐ bà "Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à JÐ JÐ JÐ JÐ JÐ JÐ JÐ JðV
ð V
ð V
ð V
ð V
ñ V
ô V
ð V
ð V
ð V
r   