§
    ÔŸ’jÖ-  ã                  óX   — d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	  G d„ d¦  «        Z
dS )é    )Úannotations)Údate)ÚDecimal)ÚIPC03aExportRequestÚIPCDocumentDetailÚThreeWayMatchDetailResponsec                  ó&   — e Zd ZdZdd„Z	 ddd„ZdS )ÚConstructionPillarMixinu`   Trá»¥ cá»™t 1: Thi cÃ´ng XÃ¢y láº¯p & Thá»§y lá»£i (EPC Contracting / FIDIC / Phá»¥ lá»¥c 03.a).Úrequestr   Úreturnr   c                óÂ
  — |j         pt          j        ¦   «         }d|j        v rÿd}d}ddddt	          d¦  «        t	          d	¦  «        t	          d
¦  «        t	          d¦  «        dœddddt	          d¦  «        t	          d¦  «        t	          d¦  «        t	          d¦  «        dœddddt	          d¦  «        t	          d¦  «        t	          d¦  «        t	          d¦  «        dœddddt	          d¦  «        t	          d ¦  «        t	          d!¦  «        t	          d"¦  «        dœg}n‚d#}d$}dd%d&dt	          d'¦  «        t	          d(¦  «        t	          d)¦  «        t	          d*¦  «        dœdd+d,dt	          d-¦  «        t	          d.¦  «        t	          d/¦  «        t	          d0¦  «        dœg}g }t	          d1¦  «        }t	          d1¦  «        }t	          d1¦  «        }	|D �]E}
|
d2         |
d3         z                       t	          d4¦  «        ¦  «        }||z  }|
d5         |
d3         z                       t	          d4¦  «        ¦  «        }||z  }|
d6         |
d5         z   }||
d3         z                       t	          d4¦  «        ¦  «        }|	|z  }	|
d2         d7k    r;||
d2         z  t	          d8¦  «        z                       t	          d4¦  «        ¦  «        nt	          d1¦  «        }t          |
¦  «        }|                     |||||d9œ¦  «         |                     |¦  «         �ŒGd:}d:}|j	        }|j
        }t          | d;d:¦  «        rÎt          | j        d<¦  «        r¹| j                             |j        ¦  «        }|r˜|                     d=¦  «        }|                     d>¦  «        }|                     d?¦  «        �"t	          t!          |d?         ¦  «        ¦  «        }|                     d@¦  «        �"t	          t!          |d@         ¦  «        ¦  «        }||z  t	          d8¦  «        z                       t	          d4¦  «        ¦  «        }||z  t	          d8¦  «        z                       t	          d4¦  «        ¦  «        }||z
  |z
  }||j        z  t	          d8¦  «        z                       t	          d4¦  «        ¦  «        }||z   }t          | d;d:¦  «        rXt          | j        dA¦  «        rC|rA|r?| j                             t!          |¦  «        t!          |¦  «        |j        |||¬B¦  «         t)          dC|j        › dD|j        dE›�|j        |||j        |||||	|||||¬F¦  «        S )Gu|   Xuáº¥t há»“ sÆ¡ Ä‘á»� nghá»‹ thanh toÃ¡n IPC Phá»¥ lá»¥c 03.a theo Nghá»‹ Ä‘á»‹nh 206/2026/NÄ�-CP & Luáº­t XÃ¢y dá»±ng 2025.ÚBENKEMuV   Há»‡ thá»‘ng cá»‘ng há»™p kÃªnh Báº¿n Kem & Háº¡ táº§ng thoÃ¡t nÆ°á»›c xÃ£ Kiáº¿n Minhu2   á»¦y ban nhÃ¢n dÃ¢n XÃ£ Kiáº¿n Minh (Háº£i PhÃ²ng)é   úWBS-KM-01-DAOuE   Ä�Ã o Ä‘áº¥t há»‘ mÃ³ng cá»‘ng há»™p, váº­n chuyá»ƒn Ä‘áº¥t cáº¥p IIIu   mÂ³ú	4500.0000ú
85000.0000z700.0000z	3800.0000)Ú
item_orderÚwbs_codeÚ	work_nameÚunitÚcontract_qtyÚ
unit_priceÚ
period_qtyÚaccumulated_prev_qtyé   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120.0000z200.0000é   úWBS-KM-03-BETONG-CONGu9   BÃª tÃ´ng thÃ¢n cá»‘ng há»™p C25 (M300) Ä‘á»• táº¡i chá»—ú	1250.0000ú1850000.0000z350.0000z450.0000é   úWBS-KM-04-COTHEPu6   Gia cÃ´ng láº¯p dá»±ng cá»‘t thÃ©p CB400-V cÃ¡c loáº¡iu   Táº¥nú145.0000ú18200000.0000z40.0000z50.0000u:   Dá»± Ã¡n Ä�áº¯p bá»� vÃ  náº¡o vÃ©t Thá»§y lá»£i Ä�a Ä�á»™u@   CÃ´ng ty TNHH MTV Khai thÃ¡c CÃ´ng trÃ¬nh Thá»§y lá»£i Ä�a Ä�á»™zWBS-DADO-01-NAOVETu>   Náº¡o vÃ©t lÃ²ng sÃ´ng Ä�a Ä�á»™ báº±ng mÃ¡y Ä‘Ã o gáº§u 0.8m3z
35000.0000z
62000.0000z	8500.0000z
20000.0000zWBS-DADO-02-DAPBOu6   Ä�áº¯p bá»� Ä‘Ãª bao Ä‘áº¥t K95 lu lÃ¨n Ä‘áº¡t chuáº©nz
18000.0000z110000.0000z	4200.0000z
11000.0000ú0.0000r   r   z0.0001r   r   r   z100.0000)Úcontract_amountÚperiod_amountÚaccumulated_total_qtyÚaccumulated_total_amountÚcompletion_rate_pctNÚpostgres_clientÚget_project_detailÚidÚ
company_idÚadvance_payment_percentÚretention_percentÚ!create_ipc_financial_transactions)Ú
project_idr-   Úperiod_numberÚnet_payableÚretention_amountÚadvance_recovery_amountzIPC-z-DOTÚ02d)Úcertificate_codeÚproject_codeÚproject_nameÚinvestor_namer2   Úcutoff_dateÚitemsÚtotal_contract_valueÚperiod_work_value_pre_taxÚaccumulated_work_value_pre_taxr5   Úretention_deducted_amountÚnet_payable_pre_taxÚ
vat_amountÚtotal_net_payable_with_vat)r;   r   Útodayr8   r   ÚquantizeÚdictÚupdateÚappendÚadvance_recovery_rate_pctÚretention_rate_pctÚgetattrÚhasattrr*   r+   ÚgetÚstrÚvat_rate_pctr0   r2   r   )Úselfr   Úcutoffr9   r:   Ú	raw_itemsÚprocessed_itemsÚtotal_contract_valÚperiod_work_valÚaccumulated_work_valÚitemÚcontract_amtÚ
period_amtÚ	accum_qtyÚ	accum_amtÚrateÚ	item_dictr1   r-   Úadvance_rateÚretention_rateÚprojÚadvance_recoveryÚretention_deductedrA   rB   Útotal_payables                              úCC:\Projects\DSCons\app\services\four_pillars\pillar_construction.pyÚgenerate_ipc_documentz-ConstructionPillarMixin.generate_ipc_document   s(  € àÔ$Ð4­¬
©¬ˆð �wÔ+Ð+Ð+àhð ð QˆMð #$Ø /Ø!hØ!Ý$+¨KÑ$8Ô$8Ý")¨,Ñ"7Ô"7Ý")¨*Ñ"5Ô"5Ý,3°KÑ,@Ô,@ð	ð 	ð #$Ø 6Ø!bØ!Ý$+¨JÑ$7Ô$7Ý")¨.Ñ"9Ô"9Ý")¨*Ñ"5Ô"5Ý,3°JÑ,?Ô,?ð	ð 	ð #$Ø 7Ø!\Ø!Ý$+¨KÑ$8Ô$8Ý")¨.Ñ"9Ô"9Ý")¨*Ñ"5Ô"5Ý,3°JÑ,?Ô,?ð	ð 	ð #$Ø 2Ø!YØ#Ý$+¨JÑ$7Ô$7Ý")¨/Ñ":Ô":Ý")¨)Ñ"4Ô"4Ý,3°IÑ,>Ô,>ð	ð 	ð?)ˆIˆIðV XˆLØ^ˆMð #$Ø 4Ø!aØ!Ý$+¨LÑ$9Ô$9Ý")¨,Ñ"7Ô"7Ý")¨+Ñ"6Ô"6Ý,3°LÑ,AÔ,Að	ð 	ð #$Ø 3Ø!YØ!Ý$+¨LÑ$9Ô$9Ý")¨-Ñ"8Ô"8Ý")¨+Ñ"6Ô"6Ý,3°LÑ,AÔ,Að	ð 	ðˆIð. ˆÝ$ XÑ.Ô.ÐÝ! (Ñ+Ô+ˆÝ& xÑ0Ô0Ðàð !	.ñ !	.ˆDØ  Ô0°4¸Ô3EÑE×OÒOÝ˜Ñ!Ô!ñô ˆLð  ,Ñ.Ðà˜|Ô,¨t°LÔ/AÑA×KÒKÝ˜Ñ!Ô!ñô ˆJð ˜zÑ)ˆOàÐ3Ô4°t¸LÔ7IÑIˆIØ" T¨,Ô%7Ñ7×AÒAÅ'È(ÑBSÔBSÑTÔTˆIØ  IÑ-Ð ð ˜Ô'¨!Ò+Ð+ð ˜T .Ô1Ñ1µG¸JÑ4GÔ4GÑG×QÒQÝ˜HÑ%Ô%ñô ð õ ˜XÑ&Ô&ð õ ˜T™
œ
ˆIØ×Òà'3Ø%/Ø-6Ø09Ø+/ðð ñô ð ð ×"Ò" 9Ñ-Ô-Ð-Ñ-ð ˆ
Øˆ
ØÔ8ˆØ Ô3ˆå�4Ð*¨DÑ1Ô1ð 
	MµgØÔ Ð"6ñ7
ô 7
ð 
	Mð Ô'×:Ò:¸7Ô;OÑPÔPˆ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ð ˜lÑ*­W°ZÑ-@Ô-@Ñ@ß
Š(•7˜8Ñ$Ô$Ñ
%Ô
%ð 	ð ˜nÑ,­w°zÑ/BÔ/BÑBß
Š(•7˜8Ñ$Ô$Ñ
%Ô
%ð 	ð .Ð0@Ñ@ÐCUÑUÐà 'Ô"6Ñ6½ÀÑ9LÔ9LÑLß
Š(•7˜8Ñ$Ô$Ñ
%Ô
%ð 	ð ,¨jÑ8ˆõ �DÐ+¨TÑ2Ô2ð	å˜Ô,Ð.QÑRÔRð	ð ð	ð ð		ð Ô ×BÒBÝ˜z™?œ?Ý˜z™?œ?Ø%Ô3Ø)Ø!3Ø(8ð Cñ ô ð õ !ØY GÔ$8ÐYÐY¸gÔ>SÐYÐYÐYØ Ô-Ø%Ø'Ø!Ô/ØØ!Ø!3Ø&5Ø+?Ø$4Ø&8Ø 3Ø!Ø'4ð
ñ 
ô 
ð 	
ó    úDA-KM-BENKEM-2025-2026r8   rN   ú!list[ThreeWayMatchDetailResponse]c                óÐ  — t          d|ddt          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        ddd	¬
¦  «        t          d|ddt          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        ddd¬
¦  «        t          d|ddt          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        ddd¬
¦  «        gS )uw   Thá»±c hiá»‡n Ä‘á»‘i chiáº¿u 3 bÃªn: Thiáº¿t káº¿ BOQ vs Nghiá»‡m thu A-B vs HÃ³a Ä‘Æ¡n xuáº¥t vs Váº­t tÆ° xuáº¥t kho.z3WAY-KM-01-DAOu   Cá»‘ng Báº¿n Kem Kiáº¿n Minhr   r   r$   r   ÚPERFECT_MATCHTuX   Khá»‘i lÆ°á»£ng nghiá»‡m thu hoÃ n cÃ´ng khá»›p 100% vá»›i BOQ vÃ  HÃ³a Ä‘Æ¡n Ä‘áº§u ra.)Úmatch_idr8   r9   r   Úboq_quantityÚsite_acceptance_quantityÚinvoice_billed_quantityÚmaterial_consumed_quantityr   Úquantity_varianceÚamount_varianceÚstatusÚis_compliantÚexplanationz3WAY-KM-03-BETONGr   r   z800.0000z812.0000r   uŒ   Khá»‘i lÆ°á»£ng nghiá»‡m thu Ä‘á»£t 3 khá»›p vá»›i hÃ³a Ä‘Æ¡n; tá»· lá»‡ hao há»¥t bÃª tÃ´ng 1.5% náº±m trong Ä‘á»‹nh má»©c cho phÃ©p (<2%).z3WAY-KM-04-COTHEPr!   r"   z90.0000z91.1000r#   uj   ThÃ©p CB400-V gia cÃ´ng nghiá»‡m thu Ä‘áº¡t chuáº©n; Ä‘áº§y Ä‘á»§ chá»©ng chá»‰ kÃ©o nÃ©n xuáº¥t xÆ°á»Ÿng.)r   r   )rP   r8   s     rd   Úget_3way_matching_detailsz1ConstructionPillarMixin.get_3way_matching_detailsÆ   su  € õ
 (Ø)Ø)Ø;Ø(Ý$ [Ñ1Ô1Ý)0°Ñ)=Ô)=Ý(/°Ñ(<Ô(<Ý+2°8Ñ+<Ô+<Ý" <Ñ0Ô0Ý")¨(Ñ"3Ô"3Ý '¨Ñ 1Ô 1Ø&Ø!Øvðñ ô õ  (Ø,Ø)Ø;Ø0Ý$ [Ñ1Ô1Ý)0°Ñ)<Ô)<Ý(/°
Ñ(;Ô(;Ý+2°:Ñ+>Ô+>Ý" >Ñ2Ô2Ý")¨(Ñ"3Ô"3Ý '¨Ñ 1Ô 1Ø&Ø!ð kðñ ô õ  (Ø,Ø)Ø;Ø+Ý$ ZÑ0Ô0Ý)0°Ñ);Ô);Ý(/°	Ñ(:Ô(:Ý+2°9Ñ+=Ô+=Ý" ?Ñ3Ô3Ý")¨(Ñ"3Ô"3Ý '¨Ñ 1Ô 1Ø&Ø!ð Iðñ ô ðC1
ð 1	
rf   N)r   r   r   r   )rg   )r8   rN   r   rh   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__re   ru   © rf   rd   r
   r
      sQ   € € € € € ØjÐjðt
ð t
ð t
ð t
ðn #;ð5
ð 5
ð 5
ð 5
ð 5
ð 5
ð 5
rf   r
   N)Ú
__future__r   Údatetimer   Údecimalr   Úapp.models.four_pillars_schemasr   r   r   r
   rz   rf   rd   ú<module>r      s©   ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ðn
ð n
ð n
ð n
ð n
ñ n
ô n
ð n
ð n
ð n
rf   