§
    ÔŸ’j�  ã                  óZ   — d dl mZ d dlmZ d dlmZ ddlmZmZm	Z	m
Z
mZmZ dd„Zdd„ZdS )é    )Úannotations)ÚAny)ÚCompanyOperationalBlockedItemé   )Úensure_dictÚensure_listÚextract_string_listÚis_blocking_review_follow_upÚis_high_severityÚis_open_statusÚservicer   Úprojectsú	list[Any]Údossier_reviewsúlist[dict[str, Any]]Úoperations_blockersú#list[CompanyOperationalBlockedItem]Úreturnc               óÜ  — g }|D ]‹}|j         D ]�}t          |j        ¦  «        rkt          |j        ¦  «        rW|                     t          |j        |j        |j	        |j        |j
        |j        ddd|j        |j        dœ¬¦
  «
        ¦  «         Œ‚ŒŒ|D ]*}|                     |                      |¦  «        ¦  «         Œ+|D ]+}t          |j        ¦  «        r|                     |¦  «         Œ,|S )u   Táº¡o blocked items tá»•ng.Úproject_riskN)ÚseverityÚcurrent_phase)
Úproject_codeÚproject_nameÚtitleÚstatusÚownerÚreasonÚsource_typeÚreference_idÚdue_dateÚmetadata)Úrisksr   r   r   r   Úappendr   r   r   r   r   Ú
mitigationr   ÚextendÚ _build_blocked_items_from_review)	r   r   r   r   ÚitemsÚprojectÚriskÚreviewÚblockers	            úKC:\Projects\DSCons\app\services\company_operational_state\review_blocked.pyÚbuild_blocked_itemsr.      s'  € ð 24€EØð ð ˆØ”Mð 	ð 	ˆDÝ ¤Ñ.Ô.ð µ>À$Ä+Ñ3NÔ3Nð Ø—’Ý1Ø%,Ô%9Ø%,Ô%9Ø"œjØ#œ{Ø"œjØ#œØ$2Ø%)Ø!%à(,¬Ø-4Ô-Bð"ð "ðñ ô ñô ð øð	ð& "ð Gð GˆØ�Š�W×=Ò=¸fÑEÔEÑFÔFÐFÐFØ&ð "ð "ˆÝ˜'œ.Ñ)Ô)ð 	"Ø�LŠL˜Ñ!Ô!Ð!øØ€Ló    r+   údict[str, Any]c                óà
  — g }t          |                     d¦  «        pd¦  «        pd}t          |                     d¦  «        pd¦  «        pd}t          |                     d¦  «        pd¦  «        pd}t          |                     d¦  «        ¦  «        D �]Õ}t          |                     d¦  «        ¦  «        }t          |                     d¦  «        ¦  «        }|r|d	         ni }	t	          |                     d
¦  «        ¦  «        t	          |                     d¦  «        ¦  «        z   }
t          |                     d¦  «        ¦  «        p0t          |                     d¦  «        ¦  «        ot          |
¦  «        }|sŒî|                     t          |||t          |                     d¦  «        pd¦  «        pd|	                     d¦  «        |                     d¦  «        p|	                     d¦  «        t          |                     d¦  «        pd¦  «        t          |                     d¦  «        pd¦  «        |	                     d¦  «        p|	                     d¦  «        d 	                    |
¦  «        p)|                     d¦  «        p|                     d¦  «        dt          |                     d¦  «        pd¦  «        pd|	                     d¦  «        p|                     d¦  «        |                     d¦  «        |                     d¦  «        |                     d¦  «        |
dœ¬ ¦  «        ¦  «         t          |                      ||¬!¦  «        d"¬#¦  «        D �]ý\  }}t          |¦  «        sŒ|                     t          |||t          |                     d¦  «        pd¦  «        pdt          |                     d$¦  «        pd¦  «        pd|                     d%¦  «        p|                     d¦  «        t          |                     d¦  «        pd&|                     d¦  «        pd'› �¦  «        t          |                     d¦  «        pd(¦  «        |                     d$¦  «        p|                     d%¦  «        |                     d)¦  «        p|                     d¦  «        t          |                     d*¦  «        pd+¦  «        t          |                     d,¦  «        p|› d-|› �¦  «        pd|                     d¦  «        |                     d¦  «        |                     d¦  «        |                     d.¦  «        d/œ¬ ¦  «        ¦  «         �Œÿ�Œ×|S )0u    Táº¡o blocked items tá»« review.r   Ú Nr   Ú	review_idÚfindingsr"   Úassignmentsr   Úblocked_reasonsÚblocking_reasonsÚis_blockingr   Úfinding_codeÚassigned_employee_codeÚresponsible_department_codeÚassigned_department_coder   zBlocking dossier findingÚopenÚassigned_employee_namez; ÚdescriptionÚresolution_noteÚdossier_review_findingÚ
finding_idr!   Úsupplement_statusr   Úimpact_level)rC   r   rD   Úblocker_reasons)r   r   Úreview_session_idr9   Úemployee_codeÚdepartment_coder   r   r   r   r   r    r!   r"   )r+   Úfindingr   )ÚstartÚowner_employee_coderH   zBlocking follow-up: zDossier findingÚpendingr   r   Údossier_review_follow_upr    ú:Útrigger_phase)rB   Úfinding_statusrO   )ÚstrÚgetr   r   r	   Úboolr   r$   r   ÚjoinÚ	enumerateÚ_collect_review_follow_upsr
   )r   r+   r(   r   r   r3   rI   r"   r5   Úprimary_assignmentrE   Úneeds_blockerÚindexÚ	follow_ups                 r-   Úbuild_blocked_items_from_reviewr[   8   s_  € ð 24€EÝ�v—z’z .Ñ1Ô1Ð7°RÑ8Ô8Ð@¸D€LÝ�v—z’z .Ñ1Ô1Ð7°RÑ8Ô8Ð@¸D€LÝ�F—J’J˜{Ñ+Ô+Ð1¨rÑ2Ô2Ð:°d€IÝ˜vŸzšz¨*Ñ5Ô5Ñ6Ô6ð Nñ NˆÝ˜wŸ{š{¨:Ñ6Ô6Ñ7Ô7ˆÝ! '§+¢+¨mÑ"<Ô"<Ñ=Ô=ˆØ/:ÐB˜[¨œ^˜^ÀÐÝ-Ø�LŠLÐ*Ñ+Ô+ñ
ô 
å §¢Ð-?Ñ @Ô @ÑAÔAñBˆõ �—’˜]Ñ+Ô+Ñ,Ô,ð &Ý˜gŸkšk¨(Ñ3Ô3Ñ4Ô4ð &Ý�_Ñ%Ô%ð 	ð
 ð 	ØØ�ŠÝ)Ø)Ø)Ø"+Ý  §¢¨^Ñ!<Ô!<Ð!BÀÑCÔCÐKÀtØ0×4Ò4Ð5MÑNÔNØ '§¢Ð,IÑ JÔ Jð !FØ%×)Ò)Ð*DÑEÔEÝ˜'Ÿ+š+ gÑ.Ô.ÐLÐ2LÑMÔMÝ˜7Ÿ;š; xÑ0Ô0Ð:°FÑ;Ô;Ø(×,Ò,Ð-EÑFÔFð DØ%×)Ò)Ð*BÑCÔCØ—y’y Ñ1Ô1ð 2Ø—;’;˜}Ñ-Ô-ð2à—;’;Ð0Ñ1Ô1Ø4Ý  §¢¨\Ñ!:Ô!:Ð!@¸bÑAÔAÐIÀTØ+×/Ò/°
Ñ;Ô;ÐV¸w¿{º{È:Ñ?VÔ?Và)0¯ªÐ5HÑ)IÔ)IØ '§¢¨JÑ 7Ô 7Ø$+§K¢K°Ñ$?Ô$?Ø'6ð	ð ð%ñ ô ñ	
ô 	
ð 	
õ6 !*Ø×.Ò.°fÀgÐ.ÑNÔNÐVWð!
ñ !
ô !
ð %	ñ %	ÑˆE�9õ 0°	Ñ:Ô:ð ØØ�LŠLÝ-Ø!-Ø!-Ø&/Ý!$ W§[¢[°Ñ%@Ô%@Ð%FÀBÑ!GÔ!GÐ!OÈ4Ý"% i§m¢mÐ4IÑ&JÔ&JÐ&PÈbÑ"QÔ"Qð #ØØ$-§M¢MÐ2CÑ$DÔ$Dð %BØ—{’{Ð#@ÑAÔAÝØ!Ÿš gÑ.Ô.ð ^Ø]°'·+²+¸gÑ2FÔ2FÐ2[ÐJ[Ð]Ð]ñô õ ˜yŸ}š}¨XÑ6Ô6ÐC¸)ÑDÔDØ#Ÿ-š-Ð(=Ñ>Ô>ð 8Ø —}’}Ð%6Ñ7Ô7Ø$Ÿ=š=¨Ñ2Ô2ÐR°i·m²mÀMÑ6RÔ6RÝ #Ø!Ÿš mÑ4Ô4ÐRÐ8Rñ!ô !õ "%Ø!Ÿš nÑ5Ô5ÐO¸IÐ9OÐ9OÈÐ9OÐ9Oñ"ô "ð "ð Ø&Ÿ]š]¨:Ñ6Ô6à&-§k¢k°,Ñ&?Ô&?Ø*1¯+ª+°hÑ*?Ô*?Ø)2¯ª°Ñ)GÔ)Gðð ð3ñ ô ñ ô  ð  ñ  ñ%	ðL €Lr/   N)
r   r   r   r   r   r   r   r   r   r   )r   r   r+   r0   r   r   )Ú
__future__r   Útypingr   Úapp.models.schemasr   Úhelpersr   r   r	   r
   r   r   r.   r[   © r/   r-   ú<module>ra      sÐ   ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð ðð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð"ð "ð "ð "ðJWð Wð Wð Wð Wð Wr/   