§
    t�’j«"  ã                  óH   — d dl mZ d dlmZmZ d dlmZ  G d„ d¦  «        ZdS )é    )Úannotations)ÚdateÚ	timedelta)ÚAnyc                  óB   — e Zd ZdZedd„¦   «         Zedd„¦   «         ZdS )ÚWbsPhaseLateMixinz2Phase 3 & 4 WBS item generators with exact schema.Úp3_startr   Úp3_endÚp3_daysÚintÚ	p3_amountÚfloatÚreturnúlist[dict[str, Any]]c                ó¸  — g }|                      ddd|                      ¦   «         |                     ¦   «         |dddd|dœ¦  «         |                     dd	d
dddt          |dz  dz  d¦  «        t          |dz  d¦  «        |                      ¦   «         | t	          t          |dz  d¦  «        ¬¦  «        z                        ¦   «         t          |dz  d¦  «        ddddœddddddt          |dz  dz  d¦  «        t          |dz  d¦  «        | t	          t          |dz  d¦  «        ¬¦  «        z                        ¦   «         | t	          t          |dz  dz  d¦  «        ¬¦  «        z                        ¦   «         t          |dz  d¦  «        ddddœdd d!dd"d#t          |d$z  d¦  «        t          |d$z  d¦  «        | t	          t          |dz  d¦  «        ¬¦  «        z                        ¦   «         | t	          t          |d%z  dz  d&¦  «        ¬¦  «        z                        ¦   «         t          |dz  dz  d¦  «        dd'd(dœdd)d*dd+d#t          |d,z  d¦  «        t          |d,z  d¦  «        | t	          t          |dz  dz  d-¦  «        ¬¦  «        z                        ¦   «         |                     ¦   «         t          |dz  dz  d.¦  «        dd/d0dœg¦  «         |S )1Nz3.0uN   Giai Ä‘oáº¡n 3: Thi cÃ´ng Káº¿t cáº¥u thÃ¢n & HoÃ n thiá»‡n Kiáº¿n trÃºc / M&EÚphaser   Útodou)   Ä�á»™i thi cÃ´ng XÃ¢y láº¯p hoÃ n thiá»‡né
   ©Úwbs_codeÚ	task_nameÚ	task_typeÚ
start_dateÚend_dateÚduration_daysÚprogress_percentÚstatusÚassigned_roleÚ
sort_orderÚtotal_amount_vndz3.1uJ   Thi cÃ´ng káº¿t cáº¥u bÃª tÃ´ng cá»‘t thÃ©p cá»™t, dáº§m, sÃ n cÃ¡c táº§ngÚtasku   SÃ né   gÍÌÌÌÌÌÜ?é   é   ©Údaysu   Tá»• XÃ¢y thÃ´ & BÃª tÃ´ngé   ©Úparent_wbs_coder   r   r   ÚunitÚquantityÚunit_price_vndr    r   r   r   r   r   r   z3.2uA   XÃ¢y tÆ°á»�ng bao, vÃ¡ch ngÄƒn & TrÃ¡t tÆ°á»�ng trong/ngoÃ i nhÃ Úm2i  g      Ð?é   é   é   é   é   u   Tá»• Ná»� hoÃ n thiá»‡nz3.3uX   Láº¯p Ä‘áº·t há»‡ thá»‘ng cáº¥p thoÃ¡t nÆ°á»›c, Ä‘iá»‡n chiáº¿u sÃ¡ng Ã¢m tÆ°á»�ng (M&E)u   Há»‡ thá»‘ngé   gš™™™™™É?é	   é#   u   Tá»• CÆ¡ Ä‘iá»‡n M&Eé   z3.4uM   SÆ¡n báº£ tÆ°á»�ng, á»‘p lÃ¡t gáº¡ch sÃ n & Láº¯p Ä‘áº·t cá»­a Ä‘i/cá»­a sá»•u   GÃ³igš™™™™™¹?é   é   u   Tá»• SÆ¡n & HoÃ n thiá»‡né   ©ÚappendÚ	isoformatÚextendÚroundr   Úmax)r	   r
   r   r   Ú	wbs_itemss        ú4C:\Projects\DSCons\app\services\ai_wbs\phase_late.pyÚ_build_phase_3_itemsz&WbsPhaseLateMixin._build_phase_3_items
   s>  € ð +-ˆ	Ø×Òà!ØmØ$Ø&×0Ò0Ñ2Ô2Ø"×,Ò,Ñ.Ô.Ø!(Ø$%Ø Ø!LØ Ø$-ðð ñ	
ô 	
ð 	
ð 	×Òð (-Ø %Ø!mØ!'Ø"Ø !Ý&+¨I¸Ñ,<¸qÑ,@À!Ñ&DÔ&DÝ(-¨i¸$Ñ.>ÀÑ(BÔ(BØ"*×"4Ò"4Ñ"6Ô"6à ¥9µ#°gÀ±lÀBÑ2GÔ2GÐ#HÑ#HÔ#HÑHß’i‘k”kÝ%(¨°A©°rÑ%:Ô%:Ø$Ø%AØ"$ð!ð ð& (-Ø %Ø!dØ!'Ø Ø $Ý&+¨I¸Ñ,<¸tÑ,CÀQÑ&GÔ&GÝ(-¨i¸$Ñ.>ÀÑ(BÔ(Bà ¥9µ#°gÀ±lÀBÑ2GÔ2GÐ#HÑ#HÔ#HÑHß’i‘k”kà ¥9µ#°gÀ±kÀQÑ6FÈÑ2KÔ2KÐ#LÑ#LÔ#LÑLß’i‘k”kÝ%(¨°A©°rÑ%:Ô%:Ø$Ø%>Ø"$ð%ð ð* (-Ø %Ø!{Ø!'Ø*Ø !Ý&+¨I¸Ñ,<¸aÑ&@Ô&@Ý(-¨i¸$Ñ.>ÀÑ(BÔ(Bà ¥9µ#°gÀ±lÀBÑ2GÔ2GÐ#HÑ#HÔ#HÑHß’i‘k”kà ¥9µ#°gÀ±kÀRÑ6GÈÑ2LÔ2LÐ#MÑ#MÔ#MÑMß’i‘k”kÝ%(¨°1©¸Ñ)9¸2Ñ%>Ô%>Ø$Ø%;Ø"$ð%ð ð* (-Ø %Ø!pØ!'Ø"Ø !Ý&+¨I¸Ñ,<¸aÑ&@Ô&@Ý(-¨i¸$Ñ.>ÀÑ(BÔ(Bà ¥9µ#°gÀ±kÀQÑ6FÈÑ2KÔ2KÐ#LÑ#LÔ#LÑLß’i‘k”kØ &× 0Ò 0Ñ 2Ô 2Ý%(¨°1©¸Ñ)9¸2Ñ%>Ô%>Ø$Ø%@Ø"$ð!ð ðwMñO	
ô O	
ð O	
ðd Ðó    Úp4_startÚp4_endÚp4_daysÚ	p4_amountc                óD  — g }|                      ddd|                      ¦   «         |                     ¦   «         |dddd|dœ¦  «         |                     dd	d
dddt          |dz  d¦  «        t          |dz  d¦  «        |                      ¦   «         | t	          t          |dz  d¦  «        ¬¦  «        z                        ¦   «         t          |dz  d¦  «        ddddœddddddt          |dz  d¦  «        t          |dz  d¦  «        | t	          t          |dz  d¦  «        ¬¦  «        z                        ¦   «         | t	          t          |dz  dz  d¦  «        ¬¦  «        z                        ¦   «         t          |dz  d¦  «        ddddœddd dd!dt          |dz  d¦  «        t          |dz  d¦  «        | t	          t          |dz  dz  d"¦  «        ¬¦  «        z                        ¦   «         |                     ¦   «         t          |dz  d¦  «        dd#d$dœg¦  «         |S )%Nz4.0uN   Giai Ä‘oáº¡n 4: Nghiá»‡m thu KCS, BÃ n giao cÃ´ng trÃ¬nh & Quyáº¿t toÃ¡n FIDICr   r   r   u   Ban QLDA & Káº¿ toÃ¡n trÆ°á»Ÿngr8   r   z4.1uI   Láº­p há»“ sÆ¡ hoÃ n cÃ´ng, kiá»ƒm Ä‘á»‹nh an toÃ n & Báº£n váº½ As-Builtr!   u   Bá»™ há»“ sÆ¡r3   gš™™™™™Ù?r#   é   r%   u   Ká»¹ sÆ° QA/QCé   r(   z4.2u_   Tá»• chá»©c nghiá»‡m thu hoÃ n thÃ nh vá»›i Chá»§ Ä‘áº§u tÆ° & BÃ n giao Ä‘Æ°a vÃ o sá»­ dá»¥ngu   BiÃªn báº£ng333333Ó?r/   r0   r   r"   u%   Chá»‰ huy trÆ°á»Ÿng & GiÃ¡m Ä‘á»‘c DAé   z4.3u_   Ä�á»‘i soÃ¡t chá»©ng tá»« IPC, xuáº¥t hÃ³a Ä‘Æ¡n VAT & Thu há»“i tiá»�n giá»¯ láº¡i (Retention)u   Ä�á»£tr4   u$   Káº¿ toÃ¡n trÆ°á»Ÿng (Nam / Quá»³nh)r$   r:   )rD   rE   rF   rG   r@   s        rA   Ú_build_phase_4_itemsz&WbsPhaseLateMixin._build_phase_4_itemsu   sq  € ð +-ˆ	Ø×Òà!ØmØ$Ø&×0Ò0Ñ2Ô2Ø"×,Ò,Ñ.Ô.Ø!(Ø$%Ø Ø!BØ Ø$-ðð ñ	
ô 	
ð 	
ð 	×Òð (-Ø %Ø!lØ!'Ø+Ø !Ý&+¨I¸©O¸QÑ&?Ô&?Ý(-¨i¸#©o¸qÑ(AÔ(AØ"*×"4Ò"4Ñ"6Ô"6à ¥9µ#°gÀ±lÀAÑ2FÔ2FÐ#GÑ#GÔ#GÑGß’i‘k”kÝ%(¨°A©°qÑ%9Ô%9Ø$Ø%5Ø"$ð!ð ð& (-Ø %ð "CØ!'Ø)Ø !Ý&+¨I¸©O¸QÑ&?Ô&?Ý(-¨i¸#©o¸qÑ(AÔ(Aà ¥9µ#°gÀ±lÀAÑ2FÔ2FÐ#GÑ#GÔ#GÑGß’i‘k”kà ¥9µ#°gÀ±kÀQÑ6FÈÑ2KÔ2KÐ#LÑ#LÔ#LÑLß’i‘k”kÝ%(¨°A©°qÑ%9Ô%9Ø$Ø%LØ"$ð%ð ð* (-Ø %ð "CØ!'Ø$Ø !Ý&+¨I¸©O¸QÑ&?Ô&?Ý(-¨i¸#©o¸qÑ(AÔ(Aà ¥9µ#°gÀ±kÀQÑ6FÈÑ2JÔ2JÐ#KÑ#KÔ#KÑKß’i‘k”kØ &× 0Ò 0Ñ 2Ô 2Ý%(¨°A©°qÑ%9Ô%9Ø$Ø%KØ"$ð!ð ðO9ñ;	
ô ;	
ð ;	
ð| ÐrC   N)
r	   r   r
   r   r   r   r   r   r   r   )
rD   r   rE   r   rF   r   rG   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstaticmethodrB   rL   © rC   rA   r   r      sc   € € € € € Ø<Ð<àðhð hð hñ „\ðhðT ðTð Tð Tñ „\ðTð Tð TrC   r   N)Ú
__future__r   Údatetimer   r   Útypingr   r   rR   rC   rA   ú<module>rV      s}   ðØ "Ð "Ð "Ð "Ð "Ð "à $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð ðCð Cð Cð Cð Cñ Cô Cð Cð Cð CrC   