§
    ÔŸ’jR"  ã                  óR   — 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
 dd„Zdd„ZdS )é    )Úannotations)ÚAny)ÚCompanyOperationalBacklogItemé   )Úderive_priorityÚensure_listÚis_assignment_openÚis_open_statusÚservicer   Úprojectsú	list[Any]Údossier_reviewsúlist[dict[str, Any]]Úoperations_actionsÚreturnú#list[CompanyOperationalBacklogItem]c               óœ  — g }|D ]n}|j         D ]d}|                     t          |j        |j        |j        |j        |j        |j        |j	        dd|j
        |j        |j        dœ¬¦  «        ¦  «         ŒeŒo|D ]*}|                     |                      |¦  «        ¦  «         Œ+|D ]¨}t          |j        ¦  «        r’|                     t          |j        d|j        |j        |j        |j        |j        |j        p|j        |j        |j        |j	        |j        |j        |j        |j        |j        |j        |j        dœ¬¦  «        ¦  «         Œ©|S )u   Táº¡o backlog tá»•ng.Úproject_taskN)Úcurrent_phaseÚbudget_status)Úproject_codeÚproject_nameÚtitleÚassigneeÚstatusÚpriorityÚdue_dateÚsource_typeÚreference_idÚnoteÚmetadata)Úcase_idÚreview_session_idÚfinding_codeÚrequires_human_confirmation©r   r   r#   r$   Úemployee_codeÚdepartment_coder   r   r   r   r   r   r   r    r!   )Úupcoming_tasksÚappendr   r   r   r   r   r   r   r   r    r   r   ÚextendÚ_build_backlog_from_reviewr
   r#   r$   Úowner_employee_codeÚowner_department_codeÚaction_typeÚ	action_idÚdescriptionr"   r%   )	r   r   r   r   ÚitemsÚprojectÚtaskÚreviewÚactions	            úKC:\Projects\DSCons\app\services\company_operational_state\review_backlog.pyÚbuild_backlogr8      sŸ  € ð 24€EØð ð ˆØÔ*ð 	ð 	ˆDØ�LŠLÝ-Ø!(Ô!5Ø!(Ô!5Øœ*Ø!œ]Øœ;Ø!œ]Ø!œ]Ø .Ø!%Øœà)0Ô)>Ø)0Ô)>ðð ðñ ô ñô ð ð ð	ð& "ð Að AˆØ�Š�W×7Ò7¸Ñ?Ô?Ñ@Ô@Ð@Ð@Ø$ð ð ˆÝ˜&œ-Ñ(Ô(ð 	Ø�LŠLÝ-Ø!'Ô!4Ø!%Ø&,Ô&>Ø!'Ô!4Ø"(Ô"<Ø$*Ô$@Ø œ,Ø#Ô7ÐW¸6Ô;WØ!œ=Ø#œ_Ø#œ_Ø &Ô 2Ø!'Ô!1ØÔ+à#)¤>Ø-3Ô-EØ(.Ô(;Ø7=Ô7Yð	ð ðñ ô ñô ð øð0 €Ló    r5   ú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¦  «        pd¦  «        }t          |                     d¦  «        ¦  «        }t          |¦  «        �rP|�sM|                     t          |||t          |                     d	¦  «        pd¦  «        pd|                     d
¦  «        d|                     d¦  «        pd› �|                     d
¦  «        dt          |                     d¦  «        |                     d¦  «        |                     d¦  «        ¦  «        |                     d¦  «        dt          |                     d¦  «        pd¦  «        pd|                     d¦  «        |                     d¦  «        |                     d¦  «        dœ¬¦  «        ¦  «         |D �]=}	t          |	                     d¦  «        ¦  «        �r|                     t          |||t          |                     d	¦  «        pd¦  «        pd|	                     d¦  «        |	                     d¦  «        t          |                     d¦  «        pd¦  «        |	                     d¦  «        p|	                     d¦  «        t          |	                     d¦  «        pd¦  «        t          |	                     d¦  «        pIt          |                     d¦  «        |                     d¦  «        |                     d¦  «        ¦  «        ¦  «        |	                     d¦  «        p|                     d¦  «        dt          |	                     d¦  «        p|                     d¦  «        pd¦  «        pd|	                     d¦  «        p|                     d¦  «        |                     d¦  «        |                     d¦  «        |                     d¦  «        d œ¬!¦  «        ¦  «         �Œ?t          |  	                    ||¬"¦  «        d#¬$¦  «        D �]\  }
}t          |                     d¦  «        ¦  «        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¦  «        t          |                     d¦  «        pd(¦  «        |                     d¦  «        t          |                     d)¦  «        pd*¦  «        t          |                     d+¦  «        p|› d,|
› �¦  «        pd|                     d¦  «        p|                     d-¦  «        |                     d¦  «        |                     d¦  «        |                     d.¦  «        d/œ¬!¦  «        ¦  «         �Œ�Œ/|S )0u   Táº¡o backlog tá»« review.r   Ú Nr   Ú	review_idÚfindingsr   Úassignmentsr$   Úresponsible_department_codeu   PhÃ¢n cÃ´ng xá»­ lÃ½: r   zDossier findingÚpendingÚseverityÚimpact_levelÚis_blockingr   Údossier_review_triageÚ
finding_idr1   Úsupplement_status)Úfinding_statusrG   )r   r   r#   r$   r(   r   r   r   r   r   r   r   r    r!   Úassigned_employee_codeÚassigned_department_codeu   Theo dÃµi bá»• sung há»“ sÆ¡r   Údossier_review_assignmentÚassignment_idÚassignment_note)rF   rH   rG   r&   )r5   Úfindingr   )Ústartr-   r(   zFollow-up actionÚmediumr/   Údossier_review_follow_upr   ú:ÚreasonÚtrigger_phase)rF   rH   rT   )
ÚstrÚgetr   r
   r*   r   r   r	   Ú	enumerateÚ_collect_review_follow_ups)r   r5   r2   r   r   r=   rN   rH   r?   Ú
assignmentÚindexÚ	follow_ups               r7   Úbuild_backlog_from_reviewr\   M   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ð gñ gˆÝ˜WŸ[š[¨Ñ2Ô2Ð8°bÑ9Ô9ˆÝ! '§+¢+¨mÑ"<Ô"<Ñ=Ô=ˆÝ˜.Ñ)Ô)ñ 	°+ñ 	Ø�LŠLÝ-Ø!-Ø!-Ø&/Ý!$ W§[¢[°Ñ%@Ô%@Ð%FÀBÑ!GÔ!GÐ!OÈ4Ø$+§K¢KÐ0MÑ$NÔ$NØ^°7·;²;¸wÑ3GÔ3GÐ3\ÐK\Ð^Ð^Ø$Ÿ[š[Ð)FÑGÔGØ$Ý,ØŸš JÑ/Ô/ØŸš NÑ3Ô3ØŸš MÑ2Ô2ñô ð
 %Ÿ[š[¨Ñ4Ô4Ø 7Ý!$ W§[¢[°Ñ%>Ô%>Ð%DÀ"Ñ!EÔ!EÐ!MÈØ Ÿš ]Ñ3Ô3à*1¯+ª+°hÑ*?Ô*?Ø-4¯[ª[Ð9LÑ-MÔ-Mðð ð%ñ ô ñô ð ð2 &ð &	ñ &	ˆJÝ! *§.¢.°Ñ":Ô":Ñ;Ô;ñ %Ø—’Ý1Ø%1Ø%1Ø*3Ý%(¨¯ª°^Ñ)DÔ)DÐ)JÈÑ%KÔ%KÐ%SÈtØ&0§n¢nÐ5MÑ&NÔ&NØ(2¯ªÐ7QÑ(RÔ(RÝ! '§+¢+¨gÑ"6Ô"6Ð"XÐ:XÑYÔYØ!+§¢Ð0HÑ!IÔ!Ið "FØ%Ÿ>š>Ð*DÑEÔEÝ" :§>¢>°(Ñ#;Ô#;Ð#H¸yÑIÔIÝ!$Ø&ŸNšN¨:Ñ6Ô6ð Ý.Ø '§¢¨JÑ 7Ô 7Ø '§¢¨NÑ ;Ô ;Ø '§¢¨MÑ :Ô :ñ ô  ñ"ô "ð ",§¢°
Ñ!;Ô!;Ð!V¸w¿{º{È:Ñ?VÔ?VØ$?Ý%(Ø&ŸNšN¨?Ñ;Ô;ð "Ø&Ÿ{š{¨<Ñ8Ô8ð"à!ñ&ô &ð & ð
  Ø'Ÿ^š^Ð,=Ñ>Ô>ð 6Ø"Ÿ;š; }Ñ5Ô5à*1¯+ª+°lÑ*CÔ*CØ.5¯kªk¸(Ñ.CÔ.CØ18·²Ð=PÑ1QÔ1Qð"ð "ð;"ñ "ô "ñ$ô $ð $ùõJ !*Ø×.Ò.°fÀgÐ.ÑNÔNÐVWð!
ñ !
ô !
ð #	ñ #	ÑˆE�9õ " )§-¢-°Ñ"9Ô"9Ñ:Ô:ð ØØ�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Ý˜iŸmšm¨GÑ4Ô4ÐJÐ8JÑKÔKØ&Ÿ]š]Ð+@ÑAÔAð 8Ø —}’}Ð%6Ñ7Ô7Ý˜yŸ}š}¨XÑ6Ô6ÐC¸)ÑDÔDÝ  §¢¨zÑ!:Ô!:Ð!F¸hÑGÔGØ&Ÿ]š]¨:Ñ6Ô6Ý #Ø!Ÿš mÑ4Ô4ÐRÐ8Rñ!ô !õ "%Ø!Ÿš nÑ5Ô5ÐO¸IÐ9OÐ9OÈÐ9OÐ9Oñ"ô "ð "ð Ø"Ÿš }Ñ5Ô5ÐP¸¿ºÀxÑ9PÔ9Pà&-§k¢k°,Ñ&?Ô&?Ø*1¯+ª+°hÑ*?Ô*?Ø)2¯ª°Ñ)GÔ)Gðð ð/ñ ô ñô ð ñ ñ#	ðH €Lr9   N)
r   r   r   r   r   r   r   r   r   r   )r   r   r5   r:   r   r   )Ú
__future__r   Útypingr   Úapp.models.schemasr   Úhelpersr   r   r	   r
   r8   r\   © r9   r7   ú<module>rb      s¼   ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð ðð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð9ð 9ð 9ð 9ðxpð pð pð pð pð pr9   