+
    `Øj×4 ã                   ó  € R t ^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIHtH	t	 ^ RIH
t
 ]P                  ! ]4      t^ RIHtHtHtHtHtHt ^ RIHt ^ RIHt ^ R	IHtHtHtHtHtHtH t H!t! ^ R
I"H#t#H$t$H%t%H&t& ^ RI'H(t(H)t)H*t* ^ RI+H,t, ^ RI-H.t.H/t/ ^ RI0H1t1H2t2H3t3 ^ RI4H5t5 ^ RI6H7t7 ^ RI8H9t9 ^ RI:H;t; ^RI<H=t= R t>R R lt?R R lt@R R ltAR R ltBR R ltCR R  ltDR! R" ltER# R$ ltFR% R& ltGR' R( ltHR) R* ltIR+ R, ltJR- R. ltKR/ R0 ltLR1 R2 ltMR3 R4 ltNR5 R6 ltOR7 R8 ltPR9 R: ltQR; R< ltRR= R> ltSR? R@ ltTRA RB ltURYRC RD lltVRE RF ltWRG RH ltXRI RJ ltYRK RL ltZRM RN lt[RO RP lt\RQ RR lt]RS RT lt^RU RV lt_RW RX lt`R# )Zu   
QA Checksheet service â€” template CRUD, station mapping, inspection flow,
inventory deduction on QA pass, shortage tracking.
N)ÚdatetimeÚtimezone)ÚDecimal)ÚOptionalÚList)ÚUUID)ÚselectÚfuncÚand_Úor_ÚcaseÚtext)ÚAsyncSession)ÚHTTPException)ÚQaChecksheetTemplateÚQaChecksheetSectionÚQaCheckpointItemÚQaChecksheetInstanceÚQaCheckpointResponseÚQaChecksheetSignoffÚQaStationTemplateMapÚQaShortageLog)ÚStationMasterÚRmMasterÚRmInventoryÚRmInventoryLog)ÚQaResponsePhotoÚQaSectionRemarkÚStationUserAssignment)Úflow)ÚChassisMasterÚVehicleModelMaster)ÚBodyTypeMasterÚDealerOrderVehicleÚDealerOrderVehicleChassis)ÚChassisBomSnapshot)ÚChassisStationLog)Ú
LoginUsers)Úassigned_station_ids)Úschemasc                  óJ   € \         P                  ! \        P                  4      # ©N)r   Únowr   Úutc© ó    Ú8/var/www/html/audi_dev/backend/app/modules/qa/service.pyÚ_nowr1   (   s   € Ü�<Š<œŸ™Ó%Ð%r/   c                óZ   € V ^8„  d   QhR\         R\        \        P                  ,          /# ©é   ÚdbÚreturn)r   r   r)   ÚTemplateOut)Úformats   "r0   Ú__annotate__r9   /   s%   € ÷ ñ œ\ð ¬d´7×3FÑ3FÕ.Gñ r/   c              ƒ   ó¢  "  € V P                  \        \        4      P                  \        P                  4      4      G R j  x€L
 pVP                  4       P                  4       p. pV FÜ  pR pVP                  '       d=   V P                  \        VP                  4      G R j  x€L
 pV'       d   VP                  pVP                  \        P                  ! VP                  VP                  VP                  VP                  VVP                   VP"                  VP$                  VP&                  VP(                  R7
      4       KÞ  	  V#  EL	 Lª5i)N)
Útemplate_idÚtemplate_codeÚtemplate_nameÚ
station_idÚstation_nameÚ	format_noÚrevisionÚrevision_dateÚdescriptionÚ	is_active)Úexecuter   r   Úorder_byr<   ÚscalarsÚallr>   Úgetr   r?   Úappendr)   r7   r;   r=   r@   rA   rB   rC   rD   )r5   ÚresultÚ	templatesÚoutÚtr?   Ústs   &      r0   Úlist_templatesrP   /   sö   é € Ø—:‘:ÜÔ#Ó$×-Ñ-Ô.B×.PÑ.PÓQó÷ €Fð —‘Ó ×$Ñ$Ó&€IØ
€CÛˆØˆØ�<�<ˆ<Ø—v‘vœm¨Q¯\©\Ó:×:ˆBßØ!Ÿ™�Ø�
‰
”7×&Ò&ØŸ™ØŸ/™/ØŸ/™/Ø—|‘|Ø%Ø—k‘kØ—Z‘ZØŸ/™/ØŸ™Ø—k‘kô
ö 	ñ ð$ €Jò/ñ ;ùs+   ‚?EÁE
ÁA EÂ"EÂ#EÂ/BEÅEc                ód   € V ^8„  d   QhR\         R\        P                  R\        P                  /# ©r4   r5   Úreqr6   )r   r)   ÚTemplateCreater7   )r8   s   "r0   r9   r9   J   s-   € ÷ ñ œlð ´×1GÑ1Gð ÌG×L_ÑL_ñ r/   c              ƒ   ó`  "  € \        \        P                  ! 4       VP                  VP                  VP
                  VP                  VP                  VP                  VP                  R 7      pV P                  V4       V P                  4       G Rj  x€L
  V P                  V4      G Rj  x€L
  \        P                  ! VP                  VP                  VP                  VP
                  VP                  VP                  VP                  VP                  VP                   R7	      #  L– L5i))r;   r<   r=   r>   r@   rA   rB   rC   N©	r;   r<   r=   r>   r@   rA   rB   rC   rD   )r   ÚuuidÚuuid4r<   r=   r>   r@   rA   rB   rC   ÚaddÚcommitÚrefreshr)   r7   r;   rD   )r5   rS   rN   s   && r0   Úcreate_templater\   J   sÖ   é € ÜÜ—J’J“LØ×'Ñ'Ø×'Ñ'Ø—>‘>Ø—-‘-Ø—‘Ø×'Ñ'Ø—O‘Oô		€Að ‡F�Fˆ1„IØ
�)‰)‹+×ÐØ
�*‰*�Q‹-×ÐÜ×ÒØ—M‘MØ—o‘oØ—o‘oØ—<‘<Ø—+‘+Ø—‘Ø—o‘oØ—M‘MØ—+‘+ô
ð 
ñ Ùùs%   ‚BD.ÂD*ÂD.Â,D,Â-A>D.Ä,D.c                óp   € V ^8„  d   QhR\         R\        R\        P                  R\        P                  /# ©r4   r5   r;   rS   r6   )r   r   r)   ÚTemplateUpdater7   )r8   s   "r0   r9   r9   e   s5   € ÷ ñ œlð ¼ð ÄG×DZÑDZð Ô_f×_rÑ_rñ r/   c              ƒ   ó8  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RR4      hVP                  RR7      P	                  4        F  w  rE\        W4V4       K  	  V P                  4       G R j  x€L
  V P                  V4      G R j  x€L
  \        P                  ! VP                  VP                  VP                  VP                  VP                  VP                  VP                   VP"                  VP$                  R7	      #  L÷ L˜ L�5i)Né”  úTemplate not foundT©Úexclude_unsetrV   )rI   r   r   Ú
model_dumpÚitemsÚsetattrrZ   r[   r)   r7   r;   r<   r=   r>   r@   rA   rB   rC   rD   )r5   r;   rS   rN   ÚfieldÚvals   &&&   r0   Úupdate_templaterj   e   sÔ   é € Ø�f‰fÔ)¨;Ó7×7€AßÜ˜CÐ!5Ó6Ð6Ø—n‘n°4�nÓ8×>Ñ>Ö@‰
ˆÜ�˜#Öñ Aà
�)‰)‹+×ÐØ
�*‰*�Q‹-×ÐÜ×ÒØ—M‘MØ—o‘oØ—o‘oØ—<‘<Ø—+‘+Ø—‘Ø—o‘oØ—M‘MØ—+‘+ô
ð 
ñ 	8ñ
 Ùùs:   ‚DœD�D©ADÁ=DÁ>DÂDÂA>DÄDÄDc                ó4   € V ^8„  d   QhR\         R\        RR/# )r4   r5   r;   r6   N©r   r   )r8   s   "r0   r9   r9   z   s!   € ÷ ñ œlð ¼ð À$ñ r/   c              ƒ   ó¸   "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RR4      hRVn        V P	                  4       G R j  x€L
  R #  L9 L5i)Nra   rb   F)rI   r   r   rD   rZ   )r5   r;   rN   s   && r0   Údelete_templatern   z   sJ   é € Ø�f‰fÔ)¨;Ó7×7€AßÜ˜CÐ!5Ó6Ð6Ø€A„KØ
�)‰)‹+×Òñ	 	8ñ ùs&   ‚AœA�A©&AÁAÁAÁAc                óP   € V ^8„  d   QhR\         R\        R\        P                  /# )r4   r5   r;   r6   )r   r   r)   r7   )r8   s   "r0   r9   r9   ‚   s'   € ÷ 2ñ 2¤ð 2¼4ð 2ÄG×DWÑDWñ 2r/   c              ƒ   óÈ  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RR4      hV P                  \	        \
        4      P                  \
        P                  V8H  \
        P                  R8H  4      P                  \
        P                  4      4      G R j  x€L
 pVP                  4       P                  4       p. pV EF6  pV P                  \	        \        4      P                  \        P                  VP                  8H  \        P                  R8H  4      P                  \        P                  4      4      G R j  x€L
 pVP                  4       P                  4       pTP                  \         P"                  ! VP                  VP                  VP$                  VP&                  VP(                  VP                  V U	u. uF"  p	\         P*                  P-                  V	4      NK$  	  up	R7      4       EK9  	  R p
VP.                  '       d=   V P                  \0        VP.                  4      G R j  x€L
 pV'       d   VP2                  p
\         P4                  ! VP                  VP6                  VP8                  VP.                  V
VP:                  VP<                  VP>                  VP(                  VP                  VR7      #  EL¶ EL0 ELŽu up	i  L¡5i)Nra   rb   T)Ú
section_idr;   Ú
section_noÚsection_namerC   Ú
sort_orderrf   )r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   Úsections) rI   r   r   rE   r   r   Úwherer;   rD   rF   rt   rG   rH   r   rq   rJ   r)   Ú
SectionOutrr   rs   rC   ÚItemOutÚmodel_validater>   r   r?   r7   r<   r=   r@   rA   rB   )r5   r;   rN   Úsections_resultru   Úsection_listÚsecÚitems_resultrf   Úir?   rO   s   &&          r0   Úget_template_fullr   ‚   s)  é € Ø�f‰fÔ)¨;Ó7×7€AßÜ˜CÐ!5Ó6Ð6àŸJ™JÜÔ"Ó#×)Ñ)Ü×+Ñ+¨{Ñ:Ü×)Ñ)¨TÑ1ó	
÷ ‰(Ô&×1Ñ1Ó
2ó	÷ €Oð ×&Ñ&Ó(×,Ñ,Ó.€Hà€LÜˆØŸZ™ZÜÔ#Ó$×*Ñ*Ü ×+Ñ+¨s¯~©~Ñ=Ü ×*Ñ*¨dÑ2ó÷ ‰hÔ'×2Ñ2Ó3ó	
÷ 
ˆð ×$Ñ$Ó&×*Ñ*Ó,ˆØ×ÑœG×.Ò.Ø—~‘~ØŸ™Ø—~‘~Ø×)Ñ)ØŸ™Ø—~‘~Ù>CÓD¹e¸”7—?‘?×1Ñ1°!Ö4¹eÑDô
÷ 	ñ ð$ €LØ‡|‡|€|Ø—6‘6œ-¨¯©Ó6×6ˆßØŸ?™?ˆLä×ÒØ—M‘MØ—o‘oØ—o‘oØ—<‘<Ø!Ø—+‘+Ø—‘Ø—o‘oØ—M‘MØ—+‘+Øôð òK 	8òò
ùò Eñ
 7ùsf   ‚K"œK�K"©A<K"Â%KÂ&B$K"Å
KÅBK"Ç(KÇ6$K"È#K"È>K È?K"ÉBK"ËK"ËK"ËK"c                óp   € V ^8„  d   QhR\         R\        R\        P                  R\        P                  /# r^   )r   r   r)   ÚSectionCreaterw   )r8   s   "r0   r9   r9   ¸   s5   € ÷ 2ñ 2œ,ð 2´Tð 2Ä×@UÑ@Uð 2ÔZa×ZlÑZlñ 2r/   c           	   ƒ   óÔ  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RR4      h\        \        P
                  ! 4       VVP                  VP                  VP                  VP                  R7      pV P                  V4       V P                  4       G R j  x€L
  V P                  V4      G R j  x€L
  \        P                  P                  V4      #  LÅ L> L'5i)Nra   rb   )rq   r;   rr   rs   rC   rt   )rI   r   r   r   rW   rX   rr   rs   rC   rt   rY   rZ   r[   r)   rw   ry   )r5   r;   rS   rN   r|   s   &&&  r0   Úadd_sectionrƒ   ¸   s¯   é € Ø�f‰fÔ)¨;Ó7×7€AßÜ˜CÐ!5Ó6Ð6Ü
Ü—:’:“<ØØ—>‘>Ø×%Ñ%Ø—O‘OØ—>‘>ô€Cð ‡F�Fˆ3„KØ
�)‰)‹+×ÐØ
�*‰*�S‹/×ÐÜ×Ñ×,Ñ,¨SÓ1Ð1ñ 	8ñ Ùùs9   ‚C(œC"�C(©A<C(Â%C$Â&C(Â>C&Â?$C(Ã$C(Ã&C(c          
      ó|   € V ^8„  d   QhR\         R\        R\        R\        P                  R\        P                  /# ©r4   r5   r;   rq   rS   r6   )r   r   r)   ÚSectionUpdaterw   )r8   s   "r0   r9   r9   Ê   sE   € ÷ 2ñ 2œ\ð 2¼ð 2Ì$ð 2ÔU\×UjÑUjð 2Ôov÷  pBñ  pBñ 2r/   c              ƒ   ó¦  "  € V P                  \        V4      G R j  x€L
 pV'       d   VP                  V8w  d   \        RR4      hVP	                  RR7      P                  4        F  w  rV\        WEV4       K  	  V P                  4       G R j  x€L
  V P                  V4      G R j  x€L
  \        P                  P                  V4      #  L® L> L'5i)Nra   úSection not foundTrc   )rI   r   r;   r   re   rf   rg   rZ   r[   r)   rw   ry   )r5   r;   rq   rS   r|   rh   ri   s   &&&&   r0   Úupdate_sectionr‰   Ê   s¤   é € Ø—‘Ô*¨JÓ7×
7€Cß�#—/‘/ [Ô0Ü˜CÐ!4Ó5Ð5Ø—n‘n°4�nÓ8×>Ñ>Ö@‰
ˆÜ�˜CÖ ñ Aà
�)‰)‹+×ÐØ
�*‰*�S‹/×ÐÜ×Ñ×,Ñ,¨SÓ1Ð1ñ 8ñ
 Ùùó9   ‚CœC�C©A%CÂCÂCÂ'CÂ($CÃCÃCc                ó@   € V ^8„  d   QhR\         R\        R\        RR/# )r4   r5   r;   rq   r6   Nrl   )r8   s   "r0   r9   r9   Õ   s)   € ÷ ñ œ\ð ¼ð Ì$ð ÐSWñ r/   c              ƒ   óÚ   "  € V P                  \        V4      G R j  x€L
 pV'       d   VP                  V8w  d   \        RR4      hRVn        V P                  4       G R j  x€L
  R #  LJ L5i)Nra   rˆ   F)rI   r   r;   r   rD   rZ   )r5   r;   rq   r|   s   &&& r0   Údelete_sectionr�   Õ   sU   é € Ø—‘Ô*¨JÓ7×
7€Cß�#—/‘/ [Ô0Ü˜CÐ!4Ó5Ð5Ø€C„MØ
�)‰)‹+×Òñ	 8ñ ùó&   ‚A+œA'�A+©7A+Á A)Á!A+Á)A+c          
      ó|   € V ^8„  d   QhR\         R\        R\        R\        P                  R\        P                  /# r…   )r   r   r)   Ú
ItemCreaterx   )r8   s   "r0   r9   r9   Þ   s<   € ÷ 0ñ 0”|ð 0´$ð 0ÄDð 0Ìw×OaÑOað 0Ôfm×fuÑfuñ 0r/   c              ƒ   ól  "  € V P                  \        V4      G R j  x€L
 pV'       d   VP                  V8w  d   \        RR4      h\	        R/ R\
        P                  ! 4       bRVbRVP                  bRVP                  bRVP                  bRVP                  bR	VP                  bR
VP                  bRVP                  bRVP                  bRVP                  bRVP                   bRVP"                  bRVP$                  bRVP&                  ;'       g    / bRVP(                  ;'       g    . bRVP*                  bRVP,                  b pV P/                  V4       V P1                  4       G R j  x€L
  V P3                  V4      G R j  x€L
  \4        P6                  P9                  V4      #  EL‘ L? L(5i)Nra   rˆ   Úitem_idrq   Úitem_noÚ	area_descÚcheckpoint_descÚcheckpoint_classÚverification_methodÚstandard_specificationÚrequires_measurementÚ	min_valueÚ	max_valueÚunit_of_measureÚspecial_feature_flagÚ	frequencyÚmodel_specsÚ
sub_pointsÚreference_diagram_urlrt   r.   )rI   r   r;   r   r   rW   rX   r“   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   rt   rY   rZ   r[   r)   rx   ry   )r5   r;   rq   rS   r|   Úitems   &&&&  r0   Úadd_itemr£   Þ   s§  é € Ø—‘Ô*¨JÓ7×
7€Cß�#—/‘/ [Ô0Ü˜CÐ!4Ó5Ð5Üò Ü—
’
”ðáðð —’ðð —-’-ð	ð
 ×+Ò+ðð ×-Ò-ðð  ×3Ò3ðð  #×9Ò9ðð !×5Ò5ðð —-’-ðð —-’-ðð ×+Ò+ðð !×5Ò5ðð —-’-ðð —O‘O×)Ð) røðð  —>‘>×'Ð' Røð!ð" "×7Ò7ð#ð$ —>’>ð%€Dð( ‡F�Fˆ4„LØ
�)‰)‹+×ÐØ
�*‰*�TÓ
×ÐÜ�?‰?×)Ñ)¨$Ó/Ð/ò5 8ñ0 ÙùsF   ‚F4œF-�F4©C,F4ÄF4Ä-AF4Å0F0Å1F4Æ	F2Æ
$F4Æ0F4Æ2F4c                óˆ   € V ^8„  d   QhR\         R\        R\        R\        R\        P                  R\        P                  /# )r4   r5   r;   rq   r’   rS   r6   )r   r   r)   Ú
ItemUpdaterx   )r8   s   "r0   r9   r9   ü   sM   € ÷ 0ñ 0œ,ð 0´Tð 0Ätð 0ÔVZð 0Ôah×asÑasð 0Ôx÷  yHñ  yHñ 0r/   c              ƒ   ó¦  "  € V P                  \        V4      G R j  x€L
 pV'       d   VP                  V8w  d   \        RR4      hVP	                  RR7      P                  4        F  w  rg\        WVV4       K  	  V P                  4       G R j  x€L
  V P                  V4      G R j  x€L
  \        P                  P                  V4      #  L® L> L'5i)Nra   úItem not foundTrc   )rI   r   rq   r   re   rf   rg   rZ   r[   r)   rx   ry   )r5   r;   rq   r’   rS   r¢   rh   ri   s   &&&&&   r0   Úupdate_itemr¨   ü   s£   é € Ø—‘Ô(¨'Ó2×2€Dß�4—?‘? jÔ0Ü˜CÐ!1Ó2Ð2Ø—n‘n°4�nÓ8×>Ñ>Ö@‰
ˆÜ�˜SÖ!ñ Aà
�)‰)‹+×ÐØ
�*‰*�TÓ
×ÐÜ�?‰?×)Ñ)¨$Ó/Ð/ñ 3ñ
 ÙùrŠ   c          
      óL   € V ^8„  d   QhR\         R\        R\        R\        RR/# )r4   r5   r;   rq   r’   r6   Nrl   )r8   s   "r0   r9   r9     s1   € ÷ ñ œ,ð ´Tð Ätð ÔVZð Ð_cñ r/   c              ƒ   óÚ   "  € V P                  \        V4      G R j  x€L
 pV'       d   VP                  V8w  d   \        RR4      hRVn        V P                  4       G R j  x€L
  R #  LJ L5i)Nra   r§   F)rI   r   rq   r   rD   rZ   )r5   r;   rq   r’   r¢   s   &&&& r0   Údelete_itemr«     sU   é € Ø—‘Ô(¨'Ó2×2€Dß�4—?‘? jÔ0Ü˜CÐ!1Ó2Ð2Ø€D„NØ
�)‰)‹+×Òñ	 3ñ ùrŽ   c                ó€   € V ^8„  d   QhR\         R\        R\        R\        R\        R\        R\
        P                  /# )r4   ÚmrO   rN   Úc_countÚ	model_mapÚbt_mapr6   )r   r   r   ÚintÚdictr)   ÚStationMappingOut)r8   s   "r0   r9   r9     s]   € ÷ -ñ -Ô(<ð -Ä-ð -ÔThð -Ôsvð -ô  DHð -ô  RVð -ô  [b÷  [tñ  [tñ -r/   c              ƒ   óð  "  € . pV P                   '       dY   \        V P                   \        4      '       d9   V P                    F'  p VP                  \	        \        V4      4      4       K)  	  MV P                  '       d   V P                  .pV Uu. uF'  p\        V4      V9   g   K  V\        V4      ,          NK)  	  p	p. p
V P                  '       dY   \        V P                  \        4      '       d9   V P                   F'  p V
P                  \	        \        V4      4      4       K)  	  MV P                  '       d   V P                  .p
V
 Uu. uF'  p\        V4      V9   g   K  V\        V4      ,          NK)  	  pp\        P                  ! R/ R V P                  bRV P                  bRV'       d   VP                  MRbRV P                  bRV'       d   VP                   MRbRV'       d   VP"                  MRbRV'       d   VP$                  MRbRV'       d   VP&                  MRbR	\)        V4      ^8X  d
   V^ ,          MRbR
V	'       d   RP+                  V	4      MRbRVbRV	bR\)        V
4      ^8X  d
   V
^ ,          MRbRV'       d   RP+                  V4      MRbRV
bRVbRVbRV P,                  bRV P.                  b #   \         d     EK’  i ; iu upi   \         d     EKì  i ; iu upi 5i)Úmap_idr>   r?   Nr;   r=   r<   r@   rA   Úmodel_idÚmodel_numberú, Ú	model_idsÚmodel_numbersÚbody_type_idÚbody_type_nameÚbody_type_idsÚbody_type_namesÚcheckpoint_countrt   Úis_mandatoryr.   )r¹   Ú
isinstanceÚlistrJ   r   ÚstrÚ	Exceptionr¶   r½   r»   r)   r³   rµ   r>   r?   r;   r=   r<   r@   rA   ÚlenÚjoinrt   rÀ   )r­   rO   rN   r®   r¯   r°   Úm_model_idsÚxÚuidÚm_model_numbersÚm_bt_idsÚ
m_bt_namess   &&&&&&      r0   Ú_build_station_mapping_outrÍ     s�  é € Ø€KØ‡{‡{€{”z !§+¡+¬t×4Ò4Ø—”ˆAðØ×"Ñ"¤4¬¨A«£<Ö0ò ð
 
��ˆØ—z‘z�lˆá6AÓ[±k¨sÄSÈÃXÐQZÑEZÔ*�y¤ S£×*Ð*±k€OÐ[à€HØ‡‡€œ: a§o¡o´t×<Ò<Ø—”ˆAðØ—‘¤¤S¨£V£Ö-ò !ð
 
��ˆØ—N‘NÐ#ˆá.6ÓM©h s¼#¸c»(ÀfÑ:LÔ"�&œ˜S›×"Ð"©h€JÐMä×$Ò$ò Ø�xŠxðà—<’<ð÷ )+�R—_’_°øðð —M’Mð	÷
 *+�a—o’o°øð÷ *+�a—o’o°øð÷ "#�!—+’+¨øð÷  !�—’ døðô $' {Ó#3°qÔ#8�˜Q–¸døð÷ 4C�T—Y‘Y˜Ô/Èøðñ ðñ &ðô %(¨£M°QÔ$6�X˜a–[¸Døð÷ 1;�t—y‘y Ô,Àøðñ ðñ  #ð!ñ" !ð#ð$ —<’<ð%ð& —^’^ð'ð øô' ô Ûðüò
 \øô ô Ûðüò
 Nùs¤   ‚AK6Á#KÁ*K6ÂK6ÂKÂ)KÂ?AK6Ä#KÄ(K6Ä?K6ÅK1Å'K1Å=AK6ÇK6Ç/K6ÈK6È2K6É=K6Ê8K6ËKËK6ËKËK6ËK.Ë)K6Ë-K.Ë.K6c                óZ   € V ^8„  d   QhR\         R\        \        P                  ,          /# r3   )r   r   r)   r³   )r8   s   "r0   r9   r9   B  s%   € ÷ ñ ¤Lð ´T¼'×:SÑ:SÕ5Tñ r/   c              ƒ   ó  "  € V P                  \        \        P                  \        P
                  ! \        P                  4      4      P                  \        \        P                  \        P                  8H  4      P                  \        P                  R 8H  \        P                  R 8H  4      P                  \        P                  4      4      G Rj  x€L
 p\        VP                  4       4      pV P                  \        \        4      4      G Rj  x€L
 pVP!                  4       P                  4        Uu/ uF#  p\#        VP$                  4      VP&                  bK%  	  ppV P                  \        \(        4      4      G Rj  x€L
 pVP!                  4       P                  4        Uu/ uF#  p\#        VP*                  4      VP,                  bK%  	  ppV P                  \        \.        \0        \2        4      P                  \0        \0        P4                  \.        P4                  8H  4      P                  \2        \2        P                  \.        P                  8H  4      P7                  \0        P8                  \.        P:                  4      4      G Rj  x€L
 p	. p
V	P                  4        FD  w  r¼pT
P=                  \?        W¼WÒPA                  VP                  ^ 4      WX4      G Rj  x€L
 4       KF  	  V
#  EL ELâu upi  ELyu upi  Ls L#5i©TN)!rE   r   r   r;   r	   Úcountr   r’   rÆ   rq   rv   rD   Úgroup_byr²   rH   r!   rG   rÃ   r¶   r·   r"   r»   Únamer   r   r   r>   rF   Úsequence_nort   rJ   rÍ   rI   )r5   Úcounts_resultÚ
counts_mapÚ
models_resÚvmr¯   Úbts_resÚbtr°   rK   rM   r­   rO   rN   s   &             r0   Úlist_station_mappingsrÛ   B  s#  é € ØŸ*™*ÜÔ"×.Ñ.´·
²
Ô;K×;SÑ;SÓ0TÓUß	‰ÔÔ 0× ;Ñ ;Ô?R×?]Ñ?]Ñ ]Ó	^ß	‰Ô"×,Ñ,°Ñ4Ô6F×6PÑ6PÐTXÑ6XÓ	Yß	‰Ô%×1Ñ1Ó	2ó	÷ €Mô �m×'Ñ'Ó)Ó*€Jà—z‘z¤&Ô);Ó"<Ó=×=€JØ=G×=OÑ=OÓ=Q×=UÑ=UÔ=WÓXÑ=W°r”�R—[‘[Ó! 2§?¡?Ò2Ñ=W€IÐXà—J‘Jœv¤nÓ5Ó6×6€GØ6=·o±oÓ6G×6KÑ6KÔ6MÓNÑ6M°Œc�"—/‘/Ó" B§G¡GÒ+Ñ6M€FÐNà—:‘:ÜÔ#¤]Ô4HÓIß	‰Œmœ]×5Ñ5Ô9M×9XÑ9XÑXÓ	Yß	‰Ô"Ô$8×$DÑ$DÔH\×HhÑHhÑ$hÓ	iß	‰”-×+Ñ+Ô-A×-LÑ-LÓ	Mó	÷ €Fð €CØ—J‘J–L‰ˆˆqØ�
‰
Ô3°A¸1¿n¹nÈQÏ]É]Ð\]Ó>^Ð`iÓr×rÖsñ !à€Jò/ò >ùÚXâ6ùÚNññ sùst   ‚CLÃK1Ã>LÄK4Ä$LÄ7)K7Å #LÆK<Æ$LÆ()K?ÇB?LÊLÊALË"L
Ë#LË4LË7LË?LÌLc                ód   € V ^8„  d   QhR\         R\        P                  R\        P                  /# rR   )r   r)   ÚStationMappingCreater³   )r8   s   "r0   r9   r9   ]  s3   € ÷ (Rñ (R¤\ð (R¼×8TÑ8Tð (RÔY`×YrÑYrñ (Rr/   c              ƒ   óœ  "  € VP                   ;'       g    .  Uu. uF  p\        V4      NK  	  ppV'       g)   VP                  '       d   \        VP                  4      .p\        V4      ^8X  d   \	        V^ ,          4      MRpVP
                  ;'       g    .  Uu. uF  p\        V4      NK  	  ppV'       g)   VP                  '       d   \        VP                  4      .p\        V4      ^8X  d   \	        V^ ,          4      MRp\        \        P                  ! 4       VP                  VP                  VVVVVP                  VP                  R7	      pV P                  V4       V P                  4       G Rj  x€L
  V P!                  \"        VP                  4      G Rj  x€L
 pV P!                  \$        VP                  4      G Rj  x€L
 p	V P'                  \)        \*        P,                  ! \.        P0                  4      4      P3                  \4        \4        P6                  \.        P6                  8H  4      P9                  \4        P                  VP                  8H  \4        P:                  R8H  \.        P:                  R8H  4      4      G Rj  x€L
 p
V
P=                  4       ;'       g    ^ pV P'                  \)        \>        4      4      G Rj  x€L
 pVPA                  4       PC                  4        Uu/ uF#  p\        VP                  4      VPD                  bK%  	  ppV P'                  \)        \F        4      4      G Rj  x€L
 pVPA                  4       PC                  4        Uu/ uF#  p\        VP                  4      VPH                  bK%  	  pp\K        WxW›VV4      G Rj  x€L
 # u upi u upi  EL6 EL ELì EL* Lìu upi  L‚u upi  L(5i)é   N)	rµ   r>   r;   r¶   r¹   r»   r½   rt   rÀ   T)&r¹   rÃ   r¶   rÅ   r   r½   r»   r   rW   rX   r>   r;   rt   rÀ   rY   rZ   rI   r   r   rE   r   r	   rÑ   r   r’   rÆ   r   rq   rv   rD   Úscalarr!   rG   rH   r·   r"   rÓ   rÍ   )r5   rS   rÈ   Úreq_model_idsÚprimary_model_idÚ
req_bt_idsÚprimary_bt_idr­   rO   rN   Úcount_resultr®   r×   rØ   r¯   rÙ   rÚ   r°   s   &&                r0   Úcreate_station_mappingræ   ]  sä  é € Ø&)§m¡m×&9Ð&9°rÐ&9Ó;Ñ&9 ”S˜–VÑ&9€MÐ;ß˜SŸ\Ÿ\˜\Ü˜SŸ\™\Ó*Ð+ˆÜ14°]Ó1CÀqÔ1H”t˜M¨!Õ,Ô-ÈdÐà#&×#4Ñ#4×#:Ð#:¸Ð#:Ó<Ñ#:˜Q”#�a–&Ñ#:€JÐ<ß˜#×*×*Ð*Ü˜#×*Ñ*Ó+Ð,ˆ
Ü+.¨z«?¸aÔ+?”D˜ A�Ô'ÀT€MäÜ�zŠz‹|Ø—>‘>Ø—O‘OØ!ØØ"Ø Ø—>‘>Ø×%Ñ%ô
	€Að ‡F�Fˆ1„IØ
�)‰)‹+×ÐØ�v‰v”m S§^¡^Ó4×	4€BØ�f‰fÔ)¨3¯?©?Ó;×;€AàŸ™ÜŒt�zŠzÔ*×2Ñ2Ó3Ó4ß	‰Ô!Ô#6×#AÑ#AÔEU×E`ÑE`Ñ#`Ó	aß	‰Ô"×.Ñ.°#·/±/ÑAÔCV×C`ÑC`ÐdhÑChÔjz÷  kEñ  kEð  IMñ  kMó  
Nó÷ €Lð
 ×!Ñ!Ó#×(Ð( q€Gà—z‘z¤&Ô);Ó"<Ó=×=€JØ=G×=OÑ=OÓ=Q×=UÑ=UÔ=WÓXÑ=W°r”�R—[‘[Ó! 2§?¡?Ò2Ñ=W€IÐXà—J‘Jœv¤nÓ5Ó6×6€GØ6=·o±oÓ6G×6KÑ6KÔ6MÓNÑ6M°Œc�"—/‘/Ó" B§G¡GÒ+Ñ6M€FÐNä+¨A°1¸yÈ&ÓQ×QÐQùòO <ùò
 =ò" Ú	4Ú;òñ >ùÚXá6ùÚNáQùsÆ   ‚O›N&¯OÁAOÂOÂN+Â1OÃB-OÅ:N0Å;'OÆ"N3Æ#'OÇ
N6ÇCOÊN9ÊOÊ+$OËN<Ë$OË4)N>Ì#OÍ OÍ$OÍ%)OÎOÎ!O
Î"OÎ3OÎ6OÎ9OÎ<OÎ>OÏOc                óp   € V ^8„  d   QhR\         R\        R\        P                  R\        P                  /# )r4   r5   rµ   rS   r6   )r   r   r)   ÚStationMappingUpdater³   )r8   s   "r0   r9   r9   ˆ  sC   € ÷ -Rñ -R¤\ð -R¼4ð -RÄg×FbÑFbð -RÔgn÷  hAñ  hAñ -Rr/   c              ƒ   ób  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RR4      hVP                  eU   VP                   Uu. uF  p\	        V4      NK  	  ppWSn        \        V4      ^8X  d   \        V^ ,          4      MR Vn        M:VP                  e-   VP                  Vn        \	        VP                  4      .Vn        VP                  eU   VP                   Uu. uF  p\	        V4      NK  	  ppWcn        \        V4      ^8X  d   \        V^ ,          4      MR Vn	        M:VP                  e-   VP                  Vn	        \	        VP                  4      .Vn        VP                  e   VP                  Vn
        VP                  e   VP                  Vn        V P                  4       G R j  x€L
  V P                  V4      G R j  x€L
  V P                  \        VP                  4      G R j  x€L
 pV P                  \         VP"                  4      G R j  x€L
 pV P%                  \'        \(        P*                  ! \,        P.                  4      4      P1                  \2        \2        P4                  \,        P4                  8H  4      P7                  \2        P"                  VP"                  8H  \2        P8                  R8H  \,        P8                  R8H  4      4      G R j  x€L
 p	V	P;                  4       ;'       g    ^ p
V P%                  \'        \<        4      4      G R j  x€L
 pVP?                  4       PA                  4        Uu/ uF#  p\	        VP                  4      VPB                  bK%  	  ppV P%                  \'        \D        4      4      G R j  x€L
 pVP?                  4       PA                  4        Uu/ uF#  p\	        VP                  4      VPF                  bK%  	  pp\I        W7WŠVV4      G R j  x€L
 #  ELçu upi u upi  ELR EL< EL ELò EL0 Lòu upi  Lˆu upi  L.5i)Nra   zStation mapping not foundT)%rI   r   r   r¹   rÃ   rÅ   r   r¶   r½   r»   rt   rÀ   rZ   r[   r   r>   r   r;   rE   r   r	   rÑ   r   r’   rÆ   r   rq   rv   rD   rà   r!   rG   rH   r·   r"   rÓ   rÍ   )r5   rµ   rS   r­   rÈ   rá   rã   rO   rN   rå   r®   r×   rØ   r¯   rÙ   rÚ   r°   s   &&&              r0   Úupdate_station_mappingrê   ˆ  s*  é € Ø�f‰fÔ)¨6Ó2×2€AßÜ˜CÐ!<Ó=Ð=à
‡}�}Ò Ø),¯ªÓ7© Aœ˜Qž©ˆÐ7Ø#ŒÜ/2°=Ó/AÀQÔ/F”T˜-¨Õ*Ô+ÈDˆ�
Ø	�‰Ò	!Ø—\‘\ˆŒ
Ü˜3Ÿ<™<Ó(Ð)ˆŒà
×ÑÒ$Ø&)×&7Ò&7Ó8Ñ&7 ”c˜!–fÑ&7ˆ
Ð8Ø$ŒÜ03°J³À1Ô0Dœ˜j¨�mÔ,È$ˆ�Ø	×	Ñ	Ò	%Ø×)Ñ)ˆŒÜ˜s×/Ñ/Ó0Ð1ˆŒà
‡~�~Ò!Ø—~‘~ˆŒØ
×ÑÒ#Ø×)Ñ)ˆŒà
�)‰)‹+×ÐØ
�*‰*�Q‹-×Ðà�v‰v”m Q§\¡\Ó2×	2€BØ�f‰fÔ)¨1¯=©=Ó9×9€AàŸ™ÜŒt�zŠzÔ*×2Ñ2Ó3Ó4ß	‰Ô!Ô#6×#AÑ#AÔEU×E`ÑE`Ñ#`Ó	aß	‰Ô"×.Ñ.°!·-±-Ñ?ÔAT×A^ÑA^ÐbfÑAfÔhx÷  iCñ  iCð  GKñ  iKó  
Ló÷ €Lð
 ×!Ñ!Ó#×(Ð( q€Gà—z‘z¤&Ô);Ó"<Ó=×=€JØ=G×=OÑ=OÓ=Q×=UÑ=UÔ=WÓXÑ=W°r”�R—[‘[Ó! 2§?¡?Ò2Ñ=W€IÐXà—J‘Jœv¤nÓ5Ó6×6€GØ6=·o±oÓ6G×6KÑ6KÔ6MÓNÑ6M°Œc�"—/‘/Ó" B§G¡GÒ+Ñ6M€FÐNä+¨A°1¸yÈ&ÓQ×QÐQòY 	3ùò
 8ùò 9ò Úâ	2Ú9òñ >ùÚXá6ùÚNáQùsÝ   ‚P/œP�P/©(P/ÁPÁ%BP/Ã-PÄB=P/Æ>PÆ?P/ÇPÇ'P/Ç?PÈ 'P/È'PÈ(CP/Ë,PË-P/Ì$P/Ì,PÌ-$P/Í)P!Í:#P/ÎP&Î$P/Ï)P(Ï+P/Ï>P-Ï?P/ÐP/ÐP/ÐP/ÐP/ÐP/ÐP/Ð!P/Ð(P/c                ó4   € V ^8„  d   QhR\         R\        RR/# )r4   r5   rµ   r6   Nrl   )r8   s   "r0   r9   r9   ¸  s!   € ÷ ñ ¤\ð ¼4ð ÀDñ r/   c              ƒ   óà   "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RR4      hV P                  V4      G R j  x€L
  V P	                  4       G R j  x€L
  R #  LK L  L
5i)Nra   zMapping not found)rI   r   r   ÚdeleterZ   )r5   rµ   r­   s   && r0   Údelete_station_mappingrî   ¸  sW   é € Ø�f‰fÔ)¨6Ó2×2€AßÜ˜CÐ!4Ó5Ð5Ø
�)‰)�A‹,×ÐØ
�)‰)‹+×Òñ	 	3ñ Ùùs8   ‚A.œA(�A.© A.Á	A*Á
A.Á!A,Á"A.Á*A.Á,A.c                óf   € V ^8„  d   QhR\         R\        R\        \        P                  ,          /# )r4   r5   r>   r6   )r   r   r   r)   r³   )r8   s   "r0   r9   r9   À  s,   € ÷ ñ ¤Lð ¼dð ÄtÌG×LeÑLeÕGfñ r/   c              ƒ   ó6  "  € V P                  \        \        P                  \        P
                  ! \        P                  4      4      P                  \        \        P                  \        P                  8H  4      P                  \        P                  R 8H  \        P                  R 8H  4      P                  \        P                  4      4      G Rj  x€L
 p\        VP                  4       4      pV P                  \        \        4      4      G Rj  x€L
 pVP!                  4       P                  4        Uu/ uF#  p\#        VP$                  4      VP&                  bK%  	  ppV P                  \        \(        4      4      G Rj  x€L
 pVP!                  4       P                  4        Uu/ uF#  p\#        VP*                  4      VP,                  bK%  	  p	pV P                  \        \.        \0        \2        4      P                  \0        \0        P4                  \.        P4                  8H  4      P                  \2        \2        P                  \.        P                  8H  4      P                  \.        P4                  V8H  4      P7                  \.        P8                  4      4      G Rj  x€L
 p
. pV
P                  4        FD  w  rÍpTP;                  \=        WÍWãP?                  VP                  ^ 4      Wi4      G Rj  x€L
 4       KF  	  V#  EL/ ELóu upi  ELŠu upi  Ls L#5irÐ   ) rE   r   r   r;   r	   rÑ   r   r’   rÆ   rq   rv   rD   rÒ   r²   rH   r!   rG   rÃ   r¶   r·   r"   r»   rÓ   r   r   r   r>   rF   rt   rJ   rÍ   rI   )r5   r>   rÕ   rÖ   r×   rØ   r¯   rÙ   rÚ   r°   rK   rM   r­   rO   rN   s   &&             r0   Úget_station_templatesrñ   À  s1  é € ØŸ*™*ÜÔ"×.Ñ.´·
²
Ô;K×;SÑ;SÓ0TÓUß	‰ÔÔ 0× ;Ñ ;Ô?R×?]Ñ?]Ñ ]Ó	^ß	‰Ô"×,Ñ,°Ñ4Ô6F×6PÑ6PÐTXÑ6XÓ	Yß	‰Ô%×1Ñ1Ó	2ó	÷ €Mô �m×'Ñ'Ó)Ó*€Jà—z‘z¤&Ô);Ó"<Ó=×=€JØ=G×=OÑ=OÓ=Q×=UÑ=UÔ=WÓXÑ=W°r”�R—[‘[Ó! 2§?¡?Ò2Ñ=W€IÐXà—J‘Jœv¤nÓ5Ó6×6€GØ6=·o±oÓ6G×6KÑ6KÔ6MÓNÑ6M°Œc�"—/‘/Ó" B§G¡GÒ+Ñ6M€FÐNà—:‘:ÜÔ#¤]Ô4HÓIß	‰Œmœ]×5Ñ5Ô9M×9XÑ9XÑXÓ	Yß	‰Ô"Ô$8×$DÑ$DÔH\×HhÑHhÑ$hÓ	iß	‰Ô#×.Ñ.°*Ñ<Ó	=ß	‰Ô&×1Ñ1Ó	2ó÷ €Fð €CØ—J‘J–L‰ˆˆqØ�
‰
Ô3°A¸1¿n¹nÈQÏ]É]Ð\]Ó>^Ð`iÓr×rÖsñ !à€Jò1ò >ùÚXâ6ùÚNññ sùst   ‚CLÃLÃ>LÄLÄ$LÄ7)LÅ #LÆLÆ$LÆ()LÇCLÊ!LÊ"ALË3L
Ë4LÌLÌLÌLÌLc                óà   € V ^8„  d   QhR\         R\        \        ,          R\        \        \        ,          \        \
        ,          \        \        ,          \        \
        ,          3,          /# ©r4   r5   Úchassisr6   ©r   r   r    Útupler   rÃ   )r8   s   "r0   r9   r9   ß  sL   € ÷ *@ñ *@Üð*@Ü'¬Õ6ð*@ä
Œ8”D�>œ8¤C�=¬(´4­.¼(Ä3½-ÐGÕHñ*@r/   c              ƒ  óÚ  "  € V'       g   R# VP                   pRpRpVP                  '       d)   V P                  \        VP                  4      G Rj  x€L
 pV'       g¯   V P	                  \        \        4      P                  \        P                  VP                  8H  4      4      G Rj  x€L
 P                  4       P                  4       pV'       d;   VP                  '       d)   V P                  \        VP                  4      G Rj  x€L
 pV'       g'   V'       d   VP                   '       d   VP                   pV'       d3   V P                  \        V4      G Rj  x€L
 pV'       d   VP                  pRpRpV'       d[   VP                  '       dI   VP                  pV P                  \        VP                  4      G Rj  x€L
 p	V	'       d   V	P                   pW#Wx3#  EL� EL8 LÜ LŠ L&5i)zÝ
Resolve (model_id, model_number, body_type_id, body_type_name) for a given chassis.
1. Direct model_id on chassis -> vehicle_model_master
2. dealer_order_vehicle / dealer_order_vehicle_chassis -> model_id & body_type_id
N)NNNN)r¶   Údealer_order_vehicle_idrI   r#   rE   r   r$   rv   Ú
chassis_norG   ÚfirstÚorder_vehicle_idr!   r·   r»   r"   rÓ   )
r5   rô   r¶   r·   ÚdovÚdov_chassisrØ   r»   r¼   rÚ   s
   &&        r0   Ú_resolve_chassis_specsrþ   ß  si  é € ÷ Ø%Ð%à×Ñ€HØ€Là
€CØ×&×&Ð&Ø—F‘FÔ-¨w×/NÑ/NÓO×OˆçØŸZ™ZÜÔ,Ó-ß‰UÔ,×7Ñ7¸7×;MÑ;MÑMÓNó
÷ 
÷ ‰7‹9—U‘U“Wð 	÷ ˜;×7×7Ð7ØŸ™Ô1°;×3OÑ3OÓP×PˆCçŸ §§ Ø—<‘<ˆçØ—6‘6Ô,¨hÓ7×7ˆßØŸ?™?ˆLà€LØ€Nß
ˆs××ÐØ×'Ñ'ˆØ—6‘6œ.¨#×*:Ñ*:Ó;×;ˆßØŸW™WˆNà <Ð?Ð?ò5 Pò
ñ
 Qñ 8ñ <ùs¡   ‚,G+¯#G+ÁGÁG+ÁAG+Â*G"Â+'G+ÃG+Ã%#G+ÄG%Ä	G+ÄG+ÄG+Ä/G+ÅG+ÅG'ÅG+Å)G+ÆG+Æ/G+ÇG)ÇG+ÇG+Ç"G+Ç%G+Ç'G+Ç)G+c          	      ó    € V ^8„  d   QhR\         R\        \        ,          R\        \        \        ,          \        \
        ,          3,          /# ró   rõ   )r8   s   "r0   r9   r9     s;   € ÷ (ñ (Üð(Ü'¬Õ6ð(ä
Œ8”D�>œ8¤C�=Ð(Õ)ñ(r/   c              ƒ   óB   "  € \        W4      G R j  x€L
 w   r#pW43#  L5ir+   )rþ   )r5   rô   Ú_r»   r¼   s   &&   r0   Ú_resolve_chassis_body_typer    s+   é € ô 0FÀbÓ/R×)RÑ&€A€q˜ØÐ'Ð'ñ *Sùs   ‚‘’c                óp   € V ^8„  d   QhR\         R\        P                  R\        R\        P                  /# ©r4   r5   rS   Úuser_idr6   )r   r)   ÚInspectStartRequestr   ÚInspectStartResponse)r8   s   "r0   r9   r9     s>   € ÷ |ñ |Üð|Ü"×6Ñ6ð|ÜAEð|ä×!Ñ!ñ|r/   c              ƒ  ó¾  "  € V P                  \        \        4      P                  \        P                  VP                  8H  4      4      G Rj  x€L
 P                  4       P                  4       pV'       g   \        RR4      hV P                  \        VP                  4      G Rj  x€L
 pV'       g   \        RR4      hV P                  \        V4      G Rj  x€L
 pV'       dk   VP                  R8X  d=   \        WP                  R4      G Rj  x€L
 pVP                  V9  d   \        RR4      hMVP                  R 9  d   \        RR4      hVP                  VP                  8H  ;'       d%    VP                   RJ;'       d    VP"                  RJ pV'       gÁ   V P                  \        \$        4      P                  \$        P&                  VP&                  8H  \$        P                  VP                  8H  \$        P(                  R	8H  \$        P*                  R
8H  4      4      G Rj  x€L
 P                  4       P                  4       pV'       g   \        RR4      hV P                  \-        R4      RRVP&                   RVP                   2/4      G Rj  x€L
  \/        W4      G Rj  x€L
 w  ršr¼\        \0        \2        4      P5                  \2        \2        P6                  \0        P6                  8H  4      P                  \0        P                  VP                  8H  4      pV'       d­   \9        V4      pVP                  \;        \=        \>        P@                  ! \>        PB                  ! \0        PD                  4      ^ 4      ^ 8H  \0        PF                  R8H  4      \0        PF                  V8H  \0        PD                  PI                  V.4      4      4      pMfVP                  \=        \>        P@                  ! \>        PB                  ! \0        PD                  4      ^ 4      ^ 8H  \0        PF                  R8H  4      4      pV	'       d­   \9        V	4      pVP                  \;        \=        \>        P@                  ! \>        PB                  ! \0        PJ                  4      ^ 4      ^ 8H  \0        PL                  R8H  4      \0        PL                  V	8H  \0        PJ                  PI                  V.4      4      4      pMfVP                  \=        \>        P@                  ! \>        PB                  ! \0        PJ                  4      ^ 4      ^ 8H  \0        PL                  R8H  4      4      pVPO                  \0        PP                  4      pV P                  V4      G Rj  x€L
 PS                  4       pV'       gv   . pV
'       d   VPU                  RV
 24       V'       d   VPU                  RV 24       V'       d   RRP5                  V4       R2MRp\        RRVPV                   RV 24      h. p\Y        4       pV EF`  w  ppVP6                  V9   d   K  VP[                  VP6                  4       V P                  \        \\        4      P                  \\        P6                  VP6                  8H  \\        P&                  VP&                  8H  \\        P                  VP                  8H  4      PO                  \_        \\        P`                  Pc                  R!4      ^ 3^R7      \\        Pd                  4      4      G Rj  x€L
 P                  4       P                  4       pV'       d   TpMi\]        \f        Ph                  ! 4       VP6                  VP&                  VP                  VP                  V\k        4       RRRR7
      pV P[                  V4       V P                  \        \>        Pl                  ! 4       4      Po                  \p        4      P5                  \r        \r        Pt                  \p        Pt                  8H  4      P                  \r        P6                  VP6                  8H  \p        Pv                  R8H  4      4      G Rj  x€L
 Py                  4       ;'       g    ^ p^ pV'       d‹   V P                  \        \>        Pl                  ! 4       4      Po                  \z        4      P                  \z        P|                  VP|                  8H  4      4      G Rj  x€L
 Py                  4       ;'       g    ^ pTPU                  \~        P€                  ! VP|                  VP6                  VP‚                  VP„                  VP†                  ;'       g    RVVR7      4       EKc  	  V P‰                  4       G Rj  x€L
  Rp ^ RIEHFp V! W4      G Rj  x€L
 P�                  4       p\~        P–                  ! VP&                  VP                  VPV                  V	V
VVVVR7	      #  E	Lº E	Le E	L6 E	L ELí EL� ELq EL” ELù ELµ EL$ L‰ Lr  \�         d#   p\’        P•                  RT 24        Rp?LŠRp?ii ; i5i)"uq   Scan chassis at station â†’ get/create instances for all mapped templates matching station, body type, and model.Nra   úChassis not foundúStation not foundÚQA_INSPECTORÚQAé�  z(Chassis has not arrived at your station.ÚARRIVALÚ
AT_STATIONz*SELECT pg_advisory_xact_lock(hashtext(:k))Úkz	qa-start:Ú:zModel: zBody Type: z (r¸   Ú)Ú z%No QA checksheets mapped to station 'Ú')Úelse_ÚPENDINGÚIN_PROGRESS)
Úinstance_idr;   Ú
chassis_idrù   r>   Úinspector_idÚinspection_dateÚstatusÚoverall_resultÚstation_qa_statusT)r  r;   r=   r<   r  Útotal_itemsÚresponded_items©Úresolve_chassis_order_specz2Failed to resolve order spec in start_inspection: )	r  rù   r?   r¶   r·   r»   r¼   Ú	instancesÚ
order_spec©ÚADMINÚQA_SUPERVISOR)ÚPASSEDÚFAILED)LrE   r   r    rv   rù   rG   rú   r   rI   r   r>   r'   Ú	role_coder(   r  Úcurrent_station_idÚstation_arrived_atÚstation_completed_atr&   r  Ú
event_typer  r   rþ   r   r   rÆ   r;   rÃ   r   r
   r	   ÚcoalesceÚjsonb_array_lengthr½   r»   Úcontainsr¹   r¶   rF   rt   rH   rJ   r?   ÚsetrY   r   r   r  Úin_Ú
created_atrW   rX   r1   rÑ   Úselect_fromr   r   rq   rD   rà   r   r  r)   ÚInstanceSummaryr=   r<   r  rZ   Ú.app.modules.chassis_tracker.order_spec_servicer"  re   rÄ   ÚloggerÚwarningr  )r5   rS   r  rô   ÚstationÚuserÚassignedÚis_at_stationÚ
active_logr¶   r·   r»   r¼   Úmapping_queryÚbt_strÚ	model_strÚmappingsÚextra_partsÚ
extra_infor#  Úseen_templatesÚmappingÚtemplateÚexistingÚinstr  r   Úorder_spec_datar"  Úes   &&&                           r0   Ústart_inspectionrL    sg  é € ð —Z‘ZÜŒ}Ó×#Ñ#¤M×$<Ñ$<ÀÇÁÑ$NÓOó÷ ç�wƒy—‘“ð ÷ Ü˜CÐ!4Ó5Ð5à—F‘Fœ=¨#¯.©.Ó9×9€GßÜ˜CÐ!4Ó5Ð5ð —‘œ
 GÓ,×,€DßØ�>‰>˜^Ô+Ü1°"·l±lÀDÓI×IˆHØ�~‰~ XÔ-Ü# CÐ)SÓTÐTð .à�^‰^Ð#=Ô=Ü Ð%OÓPÐPð 	×"Ñ" c§n¡nÑ4÷ 	1ð 	1Ø×&Ñ&¨dÐ2÷	1ð 	1à×(Ñ(¨DÐ0ð ÷
 ØŸJ™JÜÔ$Ó%×+Ñ+Ü!×,Ñ,°×0BÑ0BÑBÜ!×,Ñ,°·±Ñ>Ü!×,Ñ,°	Ñ9Ü!×(Ñ(¨LÑ8ó	ó
÷ 
÷ ‰7‹9—U‘U“Wð 	÷ Ü Ð%OÓPÐPð �*‰*”TÐFÓGØ˜Y w×'9Ñ'9Ð&:¸!¸C¿N¹NÐ;KÐLÐMóO÷ Oð Oô BXÐXZÓAd×;dÑ8€H˜Lô 	Ô#Ô%9Ó:ß	‰Ô"Ô$8×$DÑ$DÔH\×HhÑHhÑ$hÓ	iß	‰Ô#×.Ñ.°#·.±.Ñ@Ó	Að ÷
 Ü�\Ó"ˆØ%×+Ñ+ÜÜÜ—M’M¤$×"9Ò"9Ô:N×:\Ñ:\Ó"]Ð_`ÓaÐefÑfÜ(×5Ñ5¸Ñ=óô %×1Ñ1°\ÑAÜ$×2Ñ2×;Ñ;¸V¸HÓEóó	
‰ð &×+Ñ+ÜÜ—’œd×5Ò5Ô6J×6XÑ6XÓYÐ[\Ó]ÐabÑbÜ$×1Ñ1°TÑ9óó
ˆ÷ Ü˜“Mˆ	Ø%×+Ñ+ÜÜÜ—M’M¤$×"9Ò"9Ô:N×:XÑ:XÓ"YÐ[\Ó]ÐabÑbÜ(×1Ñ1°TÑ9óô %×-Ñ-°Ñ9Ü$×.Ñ.×7Ñ7¸¸ÓDóó	
‰ð &×+Ñ+ÜÜ—’œd×5Ò5Ô6J×6TÑ6TÓUÐWXÓYÐ]^Ñ^Ü$×-Ñ-°Ñ5óó
ˆð "×*Ñ*Ô+?×+JÑ+JÓK€MØ—j‘j Ó/×/×4Ñ4Ó6€HçØˆßØ×Ñ ¨¨Ð7Ô8ßØ×Ñ ¨^Ð,<Ð=Ô>ß7B�r˜$Ÿ)™) KÓ0Ð1°Ñ3Èˆ
Ü˜CÐ#HÈ×I]ÑI]ÐH^Ð^_Ð`jÐ_kÐ!lÓmÐmà€IÜ“U€NÜ%Ñˆ�Ø×Ñ >Ô1ÙØ×Ñ˜8×/Ñ/Ô0àŸ*™*ÜÔ'Ó(×.Ñ.Ü$×0Ñ0°H×4HÑ4HÑHÜ$×/Ñ/°7×3EÑ3EÑEÜ$×/Ñ/°3·>±>ÑAó÷ ‰hÜÔ*×9Ñ9×=Ñ=Ð>RÓSÐUVÐWÐ_`ÔaÜ$×/Ñ/óó	
÷ 	
÷ ‰7‹9—U‘U“Wð 	÷ Ø‰Dä'Ü ŸJšJ›LØ$×0Ñ0Ø"×-Ñ-Ø"×-Ñ-ØŸ>™>Ø$Ü $£Ø Ø(Ø"/ôˆDð �F‰F�4ŒLð  ŸZ™ZÜ”4—:’:“<Ó ×,Ñ,Ô-=Ó>ß‰TÔ%Ô':×'EÑ'EÔIY×IdÑIdÑ'dÓeß‰UÜ#×/Ñ/°8×3GÑ3GÑGÜ ×*Ñ*¨dÑ2óó
÷ 
÷ ‰6‹8÷ð ð ð 	ð ˆßØ%'§Z¡ZÜ”t—z’z“|Ó$×0Ñ0Ô1EÓFß‘Ô+×7Ñ7¸4×;KÑ;KÑKÓLó&÷  ÷ ‰v‹x÷ð ð ð ð
 	×Ñœ×0Ò0Ø×(Ñ(Ø ×,Ñ,Ø"×0Ñ0Ø"×0Ñ0Ø"×4Ñ4×AÐA¸	Ø#Ø+ô
÷ 	ñe &ðx �)‰)‹+×Ðà€OðQÝ]Ù!;¸BÓ!H×H×TÑTÓVˆô ×'Ò'Ø×%Ñ%Ø×%Ñ%Ø×)Ñ)ØØ!Ø!Ø%ØØ"ô
ð 
ò]ò :ò
 -ò Jò
òOò <eòb 0ò$	
ò:
ò ñ ñ
 IøÜô QÜ�‰ÐKÈAÈ3ÐO×PÑPûðQüsƒ  ‚AiÁhÁ'iÁ7/iÂ&hÂ'iÂ3%iÃhÃiÃ%*iÄhÄAiÅ/iÆiÆBiÈ'hÈ('iÉAiÊhÊiÊ)hÊ*FiÑEiÖ	hÖ
iÖ$	iÖ.i×
i×&EiÜ'h Ü('iÝDiá.h#á/iâiâA-iäh&äiäAiå9&iæh)æ iæ'h- æ8h+æ9h- ç>ièièièièièièièiè iè#iè&iè)iè+h- è-iè8iéiéiéic                óP   € V ^8„  d   QhR\         R\        R\        P                  /# )r4   r5   r  r6   )r   r   r)   ÚInstanceDetailOut)r8   s   "r0   r9   r9   Ò  s,   € ÷ bñ b¤,ð b¼Tð bÄg×F_ÑF_ñ br/   c              ƒ   ó˜   "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RRV R24      hVP                  '       d)   V P                  \        VP                  4      G R j  x€L
 MR pVP
                  '       d)   V P                  \        VP
                  4      G R j  x€L
 MR pVP                  '       d)   V P                  \        VP                  4      G R j  x€L
 MR p\        W4      G R j  x€L
 w  rgr‰. p
VP                  '       dž   V P                  \        \        4      P                  \        P                  VP                  8H  \        P                  R8H  4      P                  \        P                   4      4      G R j  x€L
 pVP#                  4       P%                  4       p
. p V P                  \        \&        4      P                  \&        P(                  V8H  4      P                  \&        P*                  4      4      G R j  x€L
 P#                  4       P%                  4       p/ pV Fc  pVP3                  VP4                  . 4      P7                  \8        P:                  ! VP<                  VP>                  VP*                  R7      4       Ke  	  / p V P                  \        \@        4      P                  \@        P(                  V8H  4      4      G R j  x€L
 P#                  4       P%                  4        Uu/ uF  pVPB                  VPD                  bK  	  pp. pV
 EF¹  pV P                  \        \F        4      P                  \F        PB                  VPB                  8H  \F        P                  R8H  4      P                  \F        P                   4      4      G R j  x€L
 pVP#                  4       P%                  4       p. pV EF”  pV P                  \        \H        4      P                  \H        P(                  V8H  \H        P4                  VP4                  8H  4      4      G R j  x€L
 P#                  4       PK                  4       pTP7                  \8        PL                  ! RJ/ R	VP4                  bR
VPN                  e   VPN                  M^bRVPP                  bRVPR                  ;'       g    RbRVPT                  ;'       g    RbRVPV                  bRVPX                  bR\[        VP\                  4      bRVP^                  bRVP`                  bRVPb                  bRVPd                  bRVPf                  bRVPh                  ;'       g    / bRVPj                  ;'       g    . bRVPl                  bRV'       d   VPn                  MR bRV'       d   VPp                  MR bRV'       d   VPr                  MR bRV'       d-   \u        VPv                  \x        4      '       d   VPv                  M/ bRV'       d   VPz                  MR bR V'       d   VP|                  MR bR!V'       d   VP~                  MR bR"VP                  VP4                  . 4      b 4       EK—  	  TP7                  \8        P€                  ! VPB                  VP‚                  ;'       g    RVP„                  e   VP„                  M^ VP                  VPB                  4      VR#7      4       EK¼  	  . pV'       Ed   VP†                  Ee   VP
                  '       Edñ    \        \H        \F        \        Pˆ                  4      P‹                  \F        \F        P4                  \H        P4                  8H  4      P‹                  \        \        P(                  \H        P(                  8H  4      P‹                  \        \        P                  \        P                  8H  4      P                  \        P
                  VP
                  8H  \        P†                  VP†                  8  \H        Pp                  P�                  RK4      \�        \H        P|                  R 8H  \H        P|                  R$8g  4      4      P                  \        P†                  \F        P                   4      pV P                  V4      G R j  x€L
 P%                  4       pV EFâ  w  ppp. p V P                  \        \&        4      P                  \&        P(                  VP(                  8H  \&        P4                  VP4                  8H  4      P                  \&        P*                  4      4      G R j  x€L
 P#                  4       P%                  4       p V  Uu. uF:  p\8        P:                  ! VP<                  VP>                  VP*                  R7      NK<  	  ppTP7                  \8        PL                  ! RJ/ R	VP4                  bR
R&VPN                  ;'       g    ^ 2bRR'T R(VPP                  ;'       g    R 2P‘                  4       bRVPR                  ;'       g    RbRVPT                  ;'       g    RbRVPV                  bRVPX                  bR\[        VP\                  4      bRVP^                  bRVP`                  bRVPb                  bRVPd                  bRVPf                  bRVPh                  ;'       g    / bRVPj                  ;'       g    . bRVPl                  bRVPn                  bRVPp                  bRVPr                  bR\u        VPv                  \x        4      '       d   VPv                  M/ bRVPz                  bR VP|                  ;'       g    R)bR!VP~                  bR*RbR+VbR,VPn                  bR"Vb 4       EKå  	  V'       d_   \’        P”                  ! \’        P–                  R-VP(                   24      p"VP™                  ^ \8        P€                  ! V"R.R/R0RVR17      4       R3p$R p%VP                  '       dØ   VP
                  '       dÆ    \š        Pœ                  ! WP
                  VP                  4      G R j  x€L
 w  p&p'T&p$\š        Pž                  ! WP
                  VP                  4      G R j  x€L
 p(V('       d3   V(Pp                  RL9   d"   V(P                   ;'       g    V(P¢                  p%M\¥        VR4R 4      '       d   VP¢                  p%R3p*V$'       gœ   VP                  '       dŠ   V UU+u. uF7  p\¥        VR*R34      '       d   K  VP¦                  ;'       g    .  F  p+V+NK  	  K9  	  p,pp+V,'       d=   \$        ;QJ d    R6 V, 4       F  '       d   K   R3M	  RM! R6 V, 4       4      '       d   Rp*R p-V'       d&    ^ R7ITHUp. V.! W4      G R j  x€L
 P­                  4       p-\8        P®                  ! RJ/ R9VP(                  bR:VP                  bR;V'       d   VP°                  '       d   VP°                  MRbR<V'       d   VP²                  MVP²                  ;'       g    R bR=V'       d   VPˆ                  MR bR>VbR?V	bR@V'       d   VP´                  MR bRAV'       d   VP¶                  MR bRBVP¸                  ;'       g    R)bRCVPº                  ;'       g    R)bRDVP¼                  bREV*bRFV$bRGV%bRHVbRIV-b #  ELÅ ELv EL= EL ELò EL_ ELÞ  \,         d'   p\.        P1                  RT RT 24        R p?ELìR p?ii ; i ELEu upi   \,         d'   p\.        P1                  RT RT 24        R p?EL4R p?ii ; i ELº EL5 ELÅ EL$u upi   \,         d$   p!\.        P1                  R%T! 24        R p!?!ELîR p!?!ii ; i  \,         d$   p#\.        P1                  R2T# 24        R p#?#ELÈR p#?#ii ; i ELy ELD  \,         d$   p)\.        P1                  R5T) 24        R p)?)ELR p)?)ii ; iu up+pi  EL_  \,         d$   p\.        P1                  R8T 24        R p?ELxR p?ii ; i5i)MNra   zQA checksheet instance 'z' not found.Tz(Failed to fetch photo rows for instance z: )Úphoto_idÚ	photo_urlÚuploaded_atz-Failed to fetch section remarks for instance r’   r“   r”   r•   r  r–   ÚMAJORr—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   Úresponse_idr  Úmeasured_valueÚsub_point_valuesÚobservationÚrework_statusÚafter_rework_observationÚphotos)rq   rs   rr   Úremarkrf   ÚDONEz(Failed to fetch carried-forward photos: zCF-z[Carried from z] r  Úis_carried_forwardÚcarried_from_stationÚoriginal_response_idzcf-sec:u>   âš ï¸� Carried-Forward Defects (Rework from Upstream Stations)ÚCFzQCheckpoints that failed at upstream stations and require rework and verification.)rq   rs   rr   rC   r]  rf   z4Failed to resolve upstream carried-forward defects: FÚcompleted_atz%Failed to check QA clearance status: c              3   ó<   "  € T F  qP                   R Jx € K  	  R # 5ir+   ©r  )Ú.0Úits   & r0   Ú	<genexpr>Ú&get_instance_detail.<locals>.<genexpr>—  s   é € ÐMÁ¸"§	¡	°Õ 5Ãùs   ‚r!  z5Failed to resolve order spec in get_instance_detail: r  r;   r=   rù   r?   r·   r¼   r@   rA   r  r  ÚremarksÚcan_clear_chassis_outÚis_chassis_out_clearedÚchassis_out_cleared_atru   r$  r.   )ÚNOT_OKÚFAIL)Ú	QA_PASSEDÚRELEASED)_rI   r   r   r;   r   r  r    r>   r   rþ   rE   r   r   rv   rD   rF   rt   rG   rH   r   r  rR  rÄ   r8  r9  Ú
setdefaultr’   rJ   r)   ÚResponsePhotoOutrP  rQ  r   rq   r[  r   r   rú   ÚItemWithResponser“   r”   r•   r–   r—   r˜   Úboolr™   rš   r›   rœ   r�   rž   rŸ   r    r¡   rT  r  rU  rÁ   rV  r²   rW  rX  rY  ÚSectionWithResponsesrs   rr   rÔ   r?   rÆ   r3  r   ÚstriprW   Úuuid5ÚNAMESPACE_DNSÚinsertr   Úis_qa_cleared_at_stationÚopen_handoff_fromÚreleased_atra  Úgetattrrf   r7  r"  re   rN  r=   rù   r@   rA   r  r  rh  )/r5   r  rI  rG  rô   r:  r¶   r·   r»   r¼   ru   rz   Ú
photo_rowsrK  Úphotos_by_itemÚphÚsection_remarksÚrr{   r|   r}   rf   Úitems_with_responser¢   ÚrespÚcarried_forward_itemsÚupstream_stmtÚupstream_failuresÚu_respÚu_itemÚ	u_st_nameÚu_photosÚu_photo_rowsÚph_errÚ	cf_sec_idÚcf_errÚ
is_clearedÚ
cleared_atÚcleared_flagr  ÚhÚcl_errÚ	can_clearre  Únative_itemsrJ  r"  s/   &&                                             r0   Úget_instance_detailr–  Ò  s>  é € Ø—‘Ô,¨kÓ:×:€DßÜ˜CÐ#;¸K¸=ÈÐ!UÓVÐVàGK×GW×GWÐGW�R—V‘VÔ0°$×2BÑ2BÓC×CÐCÐ]a€HØ>B¿o¿o¸o�B—F‘Fœ=¨$¯/©/Ó:×:Ð:ÐSW€GØ>B¿o¿o¸o�B—F‘Fœ=¨$¯/©/Ó:×:Ð:ÐSW€GÜAWÐXZÓAd×;dÑ8€H˜Là€HØ××ÐØ "§
¡
ÜÔ&Ó'×-Ñ-Ü#×/Ñ/°4×3CÑ3CÑCÜ#×-Ñ-°Ñ5ó÷ ‰hÔ*×5Ñ5Ó6ó	!
÷ 
ˆð #×*Ñ*Ó,×0Ñ0Ó2ˆà€JðVØŸJ™JÜ”?Ó#×)Ñ)¬/×*EÑ*EÈÑ*TÓU×^Ñ^Ô_n×_zÑ_zÓ{ó
÷ 
ç‰7‹9—S‘S“Uð 	ð €NÛˆØ×!Ñ! "§*¡*¨bÓ1×8Ñ8Ü×$Ò$¨b¯k©kÀRÇ\Á\Ð_a×_mÑ_mÔnö	
ñ ð
 €Oð[à35·:±:Ü”Ó'×-Ñ-¬o×.IÑ.IÈ[Ñ.XÓYó4÷ .ç‰w‹yŸ™›ð-ó
ñ- qˆA�L‰L˜!Ÿ(™(Ò"ñ -ð 	ð 
ð €LÜˆØŸZ™ZÜÔ#Ó$×*Ñ*Ü ×+Ñ+¨s¯~©~Ñ=Ü ×*Ñ*¨dÑ2ó÷ ‰hÔ'×2Ñ2Ó3ó	
÷ 
ˆð ×$Ñ$Ó&×*Ñ*Ó,ˆà ÐÜˆDØŸ*™*ÜÔ+Ó,×2Ñ2Ü(×4Ñ4¸ÑCÜ(×0Ñ0°D·L±LÑ@óó÷ ÷
 ‰w‹yŸ™›ð ð  ×&Ñ&¤w×'?Ò'?ò (ØŸšð(à(,¯©Ò(@˜ŸšÀaøð(ð Ÿ.š.ð(ð !%× 4Ñ 4× :Ð :¸øð	(ð
 "&×!6Ñ!6×!AÐ!A¸'øð(ð %)×$<Ò$<ð(ð (,×'BÒ'Bð(ô &*¨$×*CÑ*CÔ%Dð(ð Ÿ.š.ð(ð Ÿ.š.ð(ð !%× 4Ò 4ð(ð &*×%>Ò%>ð(ð Ÿ.š.ð(ð !×,Ñ,×2Ð2°øð(ð  Ÿ?™?×0Ð0¨bøð(ð  '+×&@Ò&@ð!(÷" 15˜D×,Ò,¸$øð#(÷$ '+�t—{’{°øð%(÷& 7;˜t×2Ò2Àøð'(÷( <@ÄJÈt×OdÑOdÔfj×DkÒDk ×!6Ò!6Ðrtøð)(÷* 15˜D×,Ò,¸$øð+(÷, 59˜d×0Ò0¸døð-(÷. KO¨×)FÒ)FÐTXøð/(ð0 &×)Ñ)¨$¯,©,¸Ô;ð1(÷ ñ ðF 	×ÑœG×8Ò8Ø—~‘~Ø×)Ñ)×/Ð/¨RØ),¯©Ò)C�s—~’~ÈØ"×&Ñ& s§~¡~Ó6Ø%ô
÷ 	ñ[ ðl Ðß€w�7×&Ñ&Ó2°t··±ðL	\äÔ+Ô-=¼}×?YÑ?YÓZß‘Ô&Ô(8×(@Ñ(@ÔDX×D`ÑD`Ñ(`Óaß‘Ô*Ô,@×,LÑ,LÔPd×PpÑPpÑ,pÓqß‘”m¤]×%=Ñ%=ÔAU×A`ÑA`Ñ%`Óaß‘Ü(×3Ñ3°t·±ÑFÜ!×-Ñ-°×0CÑ0CÑCÜ(×/Ñ/×3Ñ3Ð4FÓGÜÜ,×:Ñ:¸dÑBÜ,×:Ñ:¸fÑDóó	÷ ‘œ-×3Ñ3Ô5E×5PÑ5PÓQð ð  (*§z¡z°-Ó'@×!@× EÑ EÓ GÐä->Ñ)�˜ 	Ø�ðXØ*,¯*©*ÜœÓ/×5Ñ5Ü+×7Ñ7¸6×;MÑ;MÑMÜ+×3Ñ3°v·~±~ÑEó÷ #™(¤?×#>Ñ#>Ó?ó	+÷ %÷
 ‘w“y§¡£ð !ñ #/ó á".˜Bô  ×0Ò0¸"¿+¹+ÐQS×Q]ÑQ]Ðkm×kyÑky×zÙ".ð ð  ð &×,Ñ,¬W×-EÒ-Eò .Ø"ŸNšNð.à! &§.¡.×"5Ð"5°AÐ!6Ñ7ð.ð !/¨y¨k¸¸F×<LÑ<L×<RÐ<RÐPRÐ;SÐT×ZÑZÔ\ð.ð %+×$:Ñ$:×$@Ð$@¸bøð	.ð
 &,×%<Ñ%<×%GÐ%GÀøð.ð )/×(BÒ(Bð.ð ,2×+HÒ+Hð.ô *.¨f×.IÑ.IÔ)Jð.ð %×.Ò.ð.ð %×.Ò.ð.ð %+×$:Ò$:ð.ð *0×)DÒ)Dð.ð %×.Ò.ð.ð !'× 2Ñ 2× 8Ð 8°bøð.ð  &×0Ñ0×6Ð6°Bøð.ð  +1×*FÒ*Fð!.ð" !'× 2Ò 2ð#.ð$ "Ÿ=š=ð%.ð& $*×#8Ò#8ð'.ô( AKÈ6×KbÑKbÔdh×@iÒ@i V×%<Ò%<Ðoqøð).ð* !'× 2Ò 2ð+.ð, #)×"6Ñ"6×"CÐ"C¸)øð-.ð. .4×-LÒ-Lð/.ñ0 (,ð1.ñ2 *3ð3.ð4 *0×);Ò);ð5.ñ6 $ð7.÷ ñ! .?÷\ %Ü ŸJšJ¤t×'9Ñ'9¸WÀT×EUÑEUÐDVÐ;WÓX�	Ø×#Ñ# A¤w×'CÒ'CØ(Ø!aØ#Ø sØ'+Ø/ô(ô ð €JØ€JØ‡‡€˜4Ÿ?Ÿ?˜?ð		MÜ$(×$AÒ$AÀ"ÇoÁoÐW[×WfÑWfÓ$g×g‰OˆL˜!Ø%ˆJÜ×,Ò,¨R·±À$Ç/Á/ÓR×RˆAß�Q—X‘XÐ!:Ô:ØŸ]™]×<Ð<¨a¯n©n‘
Ü˜˜~¨t×4Ò4Ø!×.Ñ.�
ð €Iß˜$Ÿ/Ÿ/˜/Ù&2ô  A¡l˜s¼'À#ÐG[Ð]b×:cœÐor×oxÑox×o~Ðo~Ð|~Òo~Ðhj›Ño~™¡lˆñ  AßŸC›CÑMÁÓMŸCŸCšCÑMÁÓM×MÒMØˆIà€Oßð	XÝaÙ%?ÀÓ%L×L×XÑXÓZˆOô ×$Ò$ò Ø×$Ò$ðà×$Ò$ð÷ 2:¸h×>T×>TÐ>T�h×,Ò,Ð[]øð÷ *1�7×%Ò%°t·±×7NÐ7NÈ$øð	÷
 .5�W×)Ò)¸$øðñ "ðñ &ð÷ )1�(×$Ò$°døð÷ '/�×"Ò"°Døðð ×*Ñ*×7Ð7¨iøðð ×0Ñ0×=Ð=°Iøðð —’ðñ (ðñ  *ðñ  *ðñ  ð!ñ" #ð#ð ò_ ;ò DÚ:Ú:Ú;dò
ò
øô ô VÜ�‰ÐAÀ+ÀÈbÐQRÐPSÐT×UÒUûðVúò.ùò
øô
 ô [Ü�‰ÐFÀ{ÀmÐSUÐVWÐUXÐY×ZÒZûð[úò

òò| "Aò
%ùò øô !ô XÜ—N‘NÐ%MÈfÈXÐ#V×WÒWûðXûôV ô 	\Ü�N‰NÐQÐRXÐQYÐZ×[Ò[ûð	\úò hâRøô
 ô 	MÜ�N‰NÐBÀ6À(ÐK×LÒLûð	Müó
 Aò  MøÜô 	XÜ�N‰NÐRÐSTÐRUÐV×WÒWûð	Xüsª  ‚AA
œ{!�AA
©!AA
Á#AA
Á.{$Á/AA
Â#AA
Â*{'Â+AA
Ã#AA
Ã&{*Ã'AA
Ã;{-Ã<BAA
Æ{0Æ$AA
Æ7A{6 È{3È {6 È6A-AA
Ê$A|2 Ë%|*Ë&"|2 Ì |-Ì(|2 Ì*BAA
Î,}&Î-BAA
Ð4})Ð5BAA
Ò=AA
ÓBAA
ÕAA
Õ3AA
ÖAA
Ö#AA
Ö:AA
×6AA
ØAA
ØAA
Ø6A.AA
Ú%AAA
Û7!AA
ÜF~( â'},â(~( ãB}7å}/å$}7å0A }2æ0}7æ2>~( ç1~( è&~( è5~( éB~( ë~( ë+B~( í28~( î+A~( ð	AA
ðAA
ð2. ñ ñ!7 òò ò%# ó	 óAA
ó ó6	AA
ô AA
ôAA
ôA@ô1A@õA@õAA
õ*AA
õ>AA
öAA
ö&A@ ö7A@ö8A@ ÷
4AA
÷?AA
øAA
ø(AA
ùAA
ùAA
ù0AA
ú!AA
ú)AA
û "AA
û$AA
û'AA
û*AA
û-AA
û0AA
û3{6 û6|'ü|"üAA
ü"|'ü'AA
ü*|2 ü-|2 ü2}#ü=}ýAA
ý}#ý#AA
ý)AA
ý,~( ý/}7ý2}7ý7~%þ~ þ~( þ ~%þ%~( þ(þ3ÿAA
ÿÿAA
ÿ ÿ ÿA@ÿ*A@Á@AA
Á@A@Á@	AA
Á@A@ Á@AAÁ@$AAÁ@<AA
ÁAAAÁAAA
c          
      óh   € V ^8„  d   QhR\         R\        R\        P                  R\        R\        /# ©r4   r5   r  rS   r  r6   )r   r   r)   ÚResponseBulkRequestr²   )r8   s   "r0   r9   r9   ·  sH   € ÷ Jañ JaÜðJaÜ#'ðJaÜ.5×.IÑ.IðJaÜTXðJaä	ñJar/   c              ƒ   óä  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RR4      hVP                   EF¿  pVP                  '       dÏ   V P                  \
        VP                  4      G R j  x€L
 pV'       d�   VP                  R9   d   RVn        RVn        M#VP                  '       d   VP                  Vn        VP                  '       d   VP                  Vn        M5VP                  '       d$   VP                  '       g   VP                  Vn        Kä  V P                  \        VP                  4      G R j  x€L
 pV'       dä   VP                  '       dÒ   VP                  eÄ    \        VP                  4      pRp	VP                  e   V\        VP                  4      8  d   Rp	VP                   e   V\        VP                   4      8”  d   Rp	V	'       dP   VP                  R9   d?   RVn        VP                  '       g&   RV R	VP                   R
VP                    R2Vn	        V P'                  \)        \
        4      P+                  \
        P,                  V8H  \
        P                  VP                  8H  4      4      G R j  x€L
 P/                  4       P1                  4       p
V
'       d°   VP                  V
n        VP                  V
n        VP2                  e   VP2                  V
n        VP                  V
n	        VP4                  V
n        VP                  '       d   VP                  V
n        VP                  '       d   VP                  V
n        EK)  EK,  \        \6        P8                  ! 4       TVP                  VP                  VP                  VP2                  ;'       g    / VP                  VP4                  VP                  VP                  R7
      pV P;                  V4       EKÂ  	  RVn        V P?                  4       G R j  x€L
  RR\A        VP                  4       R2R\C        V4      /#  EL. ELÓ EL  \"        \$        3 d     EL/i ; i ELÖ LN5i)Nra   úInstance not foundÚOKr\  FTrl  z"Out of tolerance: Measured value (z) is outside allowable limits (z to z).)
rT  r  r’   r  rU  rV  rW  Ú	na_reasonrX  rY  r  ÚmessagezSaved z
 responsesr  )rœ  ÚPASS)"rI   r   r   Ú	responsesr_  r   r  rX  rY  rW  r   r’   r™   rU  Úfloatrš   r›   Ú
ValueErrorÚ	TypeErrorrE   r   rv   r  rG   rú   rV  r�  rW   rX   rY   r  rZ   rÅ   rÃ   )r5   r  rS   r  rI  Ú	item_respÚorigÚitem_objÚnum_vÚ
is_outsiderH  rƒ  s   &&&&        r0   Úsubmit_responses_bulkr©  ·  sÌ  é € ð —‘Ô,¨kÓ:×:€DßÜ˜CÐ!5Ó6Ð6à—]•]ˆ	Ø×)×)Ð)ØŸ™Ô 4°i×6TÑ6TÓU×UˆDßØ×#Ñ# ~Ô5Ø"&�D”KØ)/�DÕ&Ø×,×,Ð,Ø)2×)@Ñ)@�DÔ&Ø×5×5Ð5Ø4=×4VÑ4V�DÕ1Ø×*×*Ð*°4×3P×3PÐ3PØ4=×4IÑ4I�DÔ1Ùð Ÿ™Ô 0°)×2CÑ2CÓD×Dˆß˜×5×5Ð5¸)×:RÑ:RÒ:^ðÜ˜i×6Ñ6Ó7�Ø"�
Ø×%Ñ%Ò1°e¼eÀH×DVÑDVÓ>WÔ6WØ!%�JØ×%Ñ%Ò1°e¼eÀH×DVÑDVÓ>WÔ6WØ!%�Jß )×"2Ñ"2°nÔ"DØ'/�IÔ$Ø$×0×0Ð0Ø2TÐUZÐT[Ð[zð  |D÷  |Nñ  |Nð  {Oð  OSð  T\÷  Tfñ  Tfð  Sgð  gið  1j˜	Ô-ð Ÿ*™*ÜÔ'Ó(×.Ñ.Ü$×0Ñ0°KÑ?Ü$×,Ñ,°	×0AÑ0AÑAóó
÷ 
÷
 ‰7‹9—U‘U“Wð 	÷ Ø'×.Ñ.ˆHŒOØ&/×&>Ñ&>ˆHÔ#Ø×)Ñ)Ò5Ø,5×,FÑ,F�Ô)Ø#,×#8Ñ#8ˆHÔ Ø!*×!4Ñ!4ˆHÔØ×&×&Ð&Ø)2×)@Ñ)@�Ô&Ø×1×1Ð1Ø4=×4VÑ4V�×1ò 2ô (Ü ŸJšJ›LØ'Ø!×)Ñ)Ø ×'Ñ'Ø(×7Ñ7Ø!*×!;Ñ!;×!AÐ!A¸rØ%×1Ñ1Ø#×-Ñ-Ø'×5Ñ5Ø)2×)KÑ)KôˆDð �F‰F�4�Lñ #ðB +€DÔØ
�)‰)‹+×ÐØ˜¤ C§M¡MÓ 2Ð3°:Ð>ÀÌsÐS^ÓO_Ð`Ð`òO ;ò Vò Eøô ¤	Ð*ô Úðúò
ñD ùsÎ   ‚Q0œQ
�Q0©AQ0Á:QÁ;Q0Â1Q0Â9"Q0Ã#Q0Ä Q0Ä6Q0ÅQÅ	Q0ÅQ0Å'Q0Å6A2QÇ))QÈ%QÈ8AQ0ÊQ+Ê'Q0Ê>A4Q0Ì3"Q0ÍA$Q0Î;A$Q0ÐQ.Ð +Q0ÑQ0ÑQ0ÑQ(Ñ$Q0Ñ'Q(Ñ(Q0Ñ.Q0c          
      ó|   € V ^8„  d   QhR\         R\        R\        P                  R\        R\        P                  /# r˜  )r   r   r)   ÚSignoffRequestÚSignoffResponse)r8   s   "r0   r9   r9     sG   € ÷ {ñ {Üð{Ü#'ð{Ü.5×.DÑ.Dð{ÜOSð{ä×Ññ{r/   c              ƒ   ó  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RR4      hVP                  Vn        VP                  Vn        \        4       Vn        W4n        VP                  '       d   VP                  Vn	        VP                  '       d   VP                  Vn
        V P                  \        V4      G R j  x€L
 pV'       d   VP                  '       d   VP                  MRp\        \        P                  ! 4       VRVVVRVP                  \        4       R7	      pV P!                  V4       RpVP                  R8X  Ed   VP"                  '       Edò   V P                  \$        VP&                  4      G R j  x€L
 p	\)        W	4      G R j  x€L
 w  r«rË\+        \,        4      P/                  \,        P"                  VP"                  8H  \,        P0                  R8H  4      pV'       d­   \3        V4      pVP/                  \5        \7        \8        P:                  ! \8        P<                  ! \,        P>                  4      ^ 4      ^ 8H  \,        P@                  R 8H  4      \,        P@                  V8H  \,        P>                  PC                  V.4      4      4      pMfVP/                  \7        \8        P:                  ! \8        P<                  ! \,        P>                  4      ^ 4      ^ 8H  \,        P@                  R 8H  4      4      pV
'       d­   \3        V
4      pVP/                  \5        \7        \8        P:                  ! \8        P<                  ! \,        PD                  4      ^ 4      ^ 8H  \,        PF                  R 8H  4      \,        PF                  V
8H  \,        PD                  PC                  V.4      4      4      pMfVP/                  \7        \8        P:                  ! \8        P<                  ! \,        PD                  4      ^ 4      ^ 8H  \,        PF                  R 8H  4      4      pV PI                  V4      G R j  x€L
 PK                  4       PM                  4       pRpV FÅ  pV PI                  \+        \        4      P/                  \        PN                  VPN                  8H  \        P&                  VP&                  8H  \        P"                  VP"                  8H  \        P                  R8H  4      4      G R j  x€L
 PK                  4       PQ                  4       pV'       d   KÃ  Rp M	  V'       d*   \S        WP&                  VP"                  V4      G R j  x€L
 pMRpVP"                  '       d5   \T        PV                  ! WP&                  VP"                  V4      G R j  x€L
 MR pV'       d*   \T        PX                  ! V VPZ                  4      G R j  x€L
 MR pV P]                  4       G R j  x€L
  \^        P`                  ! VPb                  VP                  VP
                  TT\e        T;'       d    T4      TR	VP                   2V'       d   R
,           R7      # R,           R7      #  ELK ELŸ ELá ELÑ EL9 EL EL% LÞ L­ L•5i)Nra   r›  úQA InspectorÚ	INSPECTOR)	Ú
signoff_idr  Úsignoff_typeÚsigned_by_user_idÚsigned_by_nameÚ	signed_byÚrolerh  Ú	signed_atFr(  TzChecksheet signed off as z+. Inventory deducted for station BOM parts.r  )r  r  r  Úinventory_deductedÚall_mandatory_passedÚcan_releaseÚnext_station_namerž  )3rI   r   r   rK   r  r  r1   ra  Ú	passed_byÚrework_notesrh  r'   rÓ   r   rW   rX   rY   r>   r    r  rþ   r   r   rv   rÀ   rÃ   r   r
   r	   r/  r0  r½   r»   r1  r¹   r¶   rE   rG   rH   r;   rú   Ú_deduct_inventory_on_qa_passr   Úset_qa_outcomer?   Úto_station_idrZ   r)   r¬  r  rs  )r5   r  rS   r  rI  r;  Úsigner_nameÚsignoffr·  rô   r¶   r  Úchassis_body_type_idÚmandatory_queryr@  rA  Úmandatory_mappingsÚ
all_passedr­   Úm_instÚhandoffÚ	next_names   &&&&                  r0   Úsignoff_instancerÉ    s  é € ð —‘Ô,¨kÓ:×:€DßÜ˜CÐ!5Ó6Ð6àŸ*™*€DÔØ ŸZ™Z€DÔÜ›€DÔØ„NØ
××ÐØ×,Ñ,ˆÔØ
‡{‡{€{Ø—{‘{ˆŒð —‘œ
 GÓ,×,€Dß#¨¯	¯	¨	�$—)’)°~€KÜ!Ü—:’:“<ØØ Ø!Ø"ØØØ—‘Ü“&ô
€Gð ‡F�Fˆ7„OàÐð ‡z�z�XÕ $§/§/¡/ØŸ™œ}¨d¯o©oÓ>×>ˆÜ5KÈBÓ5X×/XÑ,ˆÐ)ä Ô!5Ó6×<Ñ<Ü ×+Ñ+¨t¯©Ñ>Ü ×-Ñ-°Ñ5ó
ˆ÷  ÜÐ-Ó.ˆFØ-×3Ñ3ÜÜÜŸš¤d×&=Ò&=Ô>R×>`Ñ>`Ó&aÐcdÓeÐijÑjÜ,×9Ñ9¸TÑAóô )×5Ñ5Ð9MÑMÜ(×6Ñ6×?Ñ?ÀÀÓIóó	‰Oð .×3Ñ3ÜÜ—M’M¤$×"9Ò"9Ô:N×:\Ñ:\Ó"]Ð_`ÓaÐefÑfÜ(×5Ñ5¸Ñ=óóˆO÷ Ü˜H›ˆIØ-×3Ñ3ÜÜÜŸš¤d×&=Ò&=Ô>R×>\Ñ>\Ó&]Ð_`ÓaÐefÑfÜ,×5Ñ5¸Ñ=óô )×1Ñ1°XÑ=Ü(×2Ñ2×;Ñ;¸Y¸KÓHóó	‰Oð .×3Ñ3ÜÜ—M’M¤$×"9Ò"9Ô:N×:XÑ:XÓ"YÐ[\Ó]ÐabÑbÜ(×1Ñ1°TÑ9óóˆOð %'§J¡J¨Ó$?×?×HÑHÓJ×NÑNÓPÐàˆ
Û#ˆAØŸJ™JÜÔ+Ó,×2Ñ2Ü(×4Ñ4¸¿¹ÑEÜ(×3Ñ3°t·±ÑFÜ(×3Ñ3°t·±ÑFÜ(×7Ñ7¸8ÑCó	ó÷ ÷ ‰w‹yŸ™›ð ÷ ‘6Ø"�
Ùñ $÷ ä'CØ—O‘O T§_¡_°kó(÷ "Ðøð ˆ
ð ^b×]l×]lÐ]l”D×'Ò'¨¯O©O¸T¿_¹_ÈjÓY×YÐYÐrv€GßFM”d×'Ò'¨¨G×,AÑ,AÓB×BÐBÐSW€IØ
�)‰)‹+×Ðä×"Ò"Ø×$Ñ$Ø×*Ñ*Ø×0Ñ0Ø-Ø'Ü˜×/Ð/ ZÓ0Ø#Ø+¨C¯J©J¨<Ð8ß=OÐ9õ
ôð ð VXõ
ôð ò[ ;ò -ò& ?Ú/Xò\ @òò"ñ ZÙBÙùsþ   ‚ZœY'�Z©A7ZÂ!*ZÃY*ÃZÃZÃ*A>ZÅ)#ZÆY-ÆZÆY0Æ E3ZÌD&ZÐ:Y3Ð;B<ZÓ7Y6Ó8%ZÔ"ZÔ0$ZÕY9ÕZÕ./ZÖY<ÖZÖ,$Z×Y>×Z×*Z ×+AZØ0ZÙZÙ*ZÙ-ZÙ0ZÙ3ZÙ6ZÙ9ZÙ<ZÙ>ZÚ Zc                óŠ   € V ^8„  d   QhR\         R\        R\        R\        R\        \        ,          R\        P
                  /# )r4   r5   r>   r  r  rh  r6   )r   r   r   rÃ   r)   ÚClearanceForChassisOutResponse)r8   s   "r0   r9   r9   ‚  sP   € ÷ Kñ KÜðKÜ"&ðKÜ48ðKÜCGðKÜRZÔ[^ÕR_ðKä×+Ñ+ñKr/   c           	   ƒ   ó�  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RR4      hV P                  \        V4      G R j  x€L
 pV'       g   \        RR4      hV P                  \        V4      G R j  x€L
 pV'       d`   VP
                  R8X  d2   \        WP                  R4      G R j  x€L
 pW9  d   \        RR4      hMVP
                  R9  d   \        RR4      hV P                  \        \        4      P                  \        P                  V8H  \        P                  V8H  4      4      G R j  x€L
 P                  4       P                  4       p	V	'       g   \        R	R
4      hV	 EF”  p
V P                  \        \         P"                  ! 4       4      P%                  \&        4      P)                  \*        \*        P,                  \&        P,                  8H  4      P                  \*        P.                  V
P.                  8H  \&        P0                  R8H  4      4      G R j  x€L
 P3                  4       ;'       g    ^ pV P                  \        \         P"                  ! 4       4      P%                  \4        4      P                  \4        P6                  V
P6                  8H  \4        P8                  P;                  R 4      4      4      G R j  x€L
 P3                  4       ;'       g    ^ pWË8  g   EK„  \        R	RV RV R24      h	  \<        P>                  ! \@        PB                  4      pV	 F@  p
RV
n"        V
PF                  '       d   V
PF                  R8X  d   RV
n#        WÚn$        W:n%        KB  	  \L        PN                  ! YYT;'       g    RR7      G R j  x€L
 w  rïV PQ                  4       G R j  x€L
  V'       d   VPR                  '       d   VPR                  MV'       d   VPT                  MRp\V        PX                  ! RRVPZ                   R2VPZ                  VVR7      #  EL ELâ EL³ EL ELú EL ELk L¢ LŠ5i)Nra   r
  r	  r  r  i“  z;You are not authorized to grant clearance for this station.z%Not authorized to grant QA clearance.r  z@No QA inspection records found for this chassis at this station.TzCannot grant clearance: Only Ú/z* checklist items completed for checksheet.r(  r  z$QA Clearance granted for Chassis Out)rh  r®  ÚCLEAREDz(QA clearance granted for Chassis Out at Ú.)r  rž  r?   r�  Ú
cleared_byr%  ).rI   r   r   r    r'   r*  r(   r  rE   r   r   rv   r  r>   rG   rH   r	   rÑ   r5  r   rÆ   r   rq   r;   rD   rà   r   r  r  Úisnotr   r,   r   r-   r  r  ra  r»  r   ÚreleaserZ   rÓ   Úusernamer)   rË  r?   )r5   r>   r  r  rh  r:  rô   r;  r<  r#  rI  r  r   r,   rÇ  Únext_st_nameÚ	user_names   &&&&&            r0   Ú"grant_qa_clearance_for_chassis_outrÖ  ‚  sw  é € ð —F‘Fœ=¨*Ó5×5€GßÜ˜CÐ!4Ó5Ð5à—F‘Fœ=¨*Ó5×5€GßÜ˜CÐ!4Ó5Ð5à—‘œ
 GÓ,×,€DßØ�>‰>˜^Ô+Ü1°"·l±lÀDÓI×IˆHØÔ)Ü# CÐ)fÓgÐgð *à�^‰^Ð#=Ô=Ü Ð%LÓMÐMà—z‘zÜÔ#Ó$×*Ñ*Ü ×+Ñ+¨zÑ9Ü ×+Ñ+¨zÑ9ó	
ó÷ ÷
 �wƒy—‘“ð ÷ Ü˜CÐ!cÓdÐdäˆØŸZ™ZÜ”4—:’:“<Ó ×,Ñ,Ô-=Ó>ß‰TÔ%Ô':×'EÑ'EÔIY×IdÑIdÑ'dÓeß‰UÜ#×/Ñ/°4×3CÑ3CÑCÜ ×*Ñ*¨dÑ2óó
÷ 
÷ ‰6‹8÷ð ð ð 	ð "$§¡Ü”4—:’:“<Ó ×,Ñ,Ô-AÓBß‰UÜ$×0Ñ0°D×4DÑ4DÑDÜ$×+Ñ+×1Ñ1°$Ó7óó"
÷ 
÷ ‰6‹8÷ð ð ð 	ð ×(ÜØØ/°Ð/@ÀÀ+ÀÐNxÐyóð ñ' ô0 �,Š,”x—|‘|Ó
$€CÛˆØ!)ˆÔØ×"×"Ð" d×&9Ñ&9¸YÔ&FØ"*ˆDÔØÔØ Žñ ô #'§,¢,Ø
˜
°W×5fÐ5fÐ@fô#÷ Ñ€Gð �)‰)‹+×Ðç" t§y§y y�—’Ï°t·}²}ÐR`€IÜ×1Ò1ØØ:¸7×;OÑ;OÐ:PÐPQÐRØ×)Ñ)ØØôð òE 6ò 6ò -ò Jòò
ò
ñ,ñ ùså   ‚QœP-�Q©%QÁP0ÁQÁ%QÂ P3ÂQÂ*QÂ7P6Â8BQÄ?P9Å 'QÅ(CQÈ,P<È-QÉBQËP?ËQË.QË:BQÎQÎQÎ QÎ9QÎ:QÏQÏQÏ,AQÐ0QÐ3QÐ6QÐ9QÐ<QÐ?QÑQÑQc          
      óT   € V ^8„  d   QhR\         R\        R\        R\        R\        /# )r4   r5   r  r>   r  r6   )r   r   rs  )r8   s   "r0   r9   r9   Ð  s4   € ÷ -ñ -Üð-Ü"&ð-Ü48ð-ÜGKð-ä	ñ-r/   c              ƒ  óÄ  "  € V P                  \        \        4      P                  \        P                  V8H  \        P
                  V8H  \        P                  \        P                  8  4      4      G Rj  x€L
 P                  4       P                  4       pV'       g   R# RpV EF/  pVP                  VP                  ,
          pV^ 8:  d   K*  V P                  \        \        4      P                  \        P                  VP                  8H  4      4      G Rj  x€L
 P                  4       P                  4       pV'       d   \        \        R4      VP                  V,
          4      Vn        \!        \"        P$                  ! 4       VP                  RVRVVP                  \'        4       R7      p	V P)                  V	4       VP                  Vn        RpEK2  	  V#  ELe LÃ5i)zBDeduct inventory for BOM parts at this station when all QA passes.NFÚ0ÚCONSUMPTIONÚQA_STATION_PASS)Úlog_idÚrm_idÚtransaction_typeÚquantityÚreference_typeÚreference_idÚbalance_afterr4  T)rE   r   r%   rv   r  r>   Úconsumed_qtyrß  rG   rH   r   rÝ  rú   Úmaxr   Úcurrent_qtyr   rW   rX   r1   rY   )
r5   r  r>   r  Úbom_rowsÚdeductedÚsnapÚ
deduct_qtyÚinvÚlogs
   &&&&      r0   r½  r½  Ð  sq  é € ð —j‘jÜÔ!Ó"×(Ñ(Ü×)Ñ)¨ZÑ7Ü×)Ñ)¨ZÑ7Ü×+Ñ+Ô.@×.IÑ.IÑIó	
ó÷ ÷ �wƒy—‘“ð ÷ Ùà€HÜˆØ—]‘] T×%6Ñ%6Õ6ˆ
Ø˜Œ?Ùð —Z‘ZÜ”;Ó×%Ñ%¤k×&7Ñ&7¸4¿:¹:Ñ&EÓFó
÷ 
ç‰7‹9—U‘U“Wð 	÷ Ü!¤'¨#£,°·±À*Õ0LÓMˆCŒOä Ü—z’z“|Ø—j‘jØ!.Ø#Ø0Ø(Ø!Ÿo™oÜ›6ô	ˆCð �F‰F�3ŒKð !ŸM™MˆÔØ‹ñ7 ð: €OòSñ$
ùs2   ‚A4G Á6GÁ7'G ÂA;G ÄGÄ'G ÅBG ÇG c          	      ór   € V ^8„  d   QhR\         R\        R\        R\        \        P
                  ,          /# )r4   r5   rù   r>   r6   )r   rÃ   r   r   r)   ÚShortageOut)r8   s   "r0   r9   r9     s7   € ÷ #ñ #Üð#Ü"%ð#Ü37ð#ä	Œ'×
Ñ
Õñ#r/   c              ƒ   óF  "  € V P                  \        \        4      P                  \        P                  V8H  4      4      G R j  x€L
 P                  4       P                  4       pV'       g   \        RR4      hV P                  \        \        \        4      P                  \        \        P                  \        P                  8H  4      P                  \        P                  VP                  8H  \        P                  V8H  4      P                  \        P                  P!                  4       4      4      G R j  x€L
 pVP#                  4        UUu. uF»  w  rV\$        P&                  ! VP(                  VP                  VP                  VP                  VP*                  VP,                  VP.                  VP0                  VP.                  VP0                  ,
          VP2                  VP4                  VP                  VP6                  R7      NK½  	  upp#  ELÒ Lßu uppi 5i)Nra   r	  ©Úshortage_idr  r>   rÝ  Úrm_nameÚrm_codeÚrequired_qtyÚ
fitted_qtyÚ	short_qtyr  rh  Únoted_atÚresolved_at)rE   r   r    rv   rù   rG   rú   r   r   r   rÆ   rÝ  r  r>   rF   rö  ÚdescrH   r)   rí  rð  rÓ   Úpart_noró  rô  r  rh  r÷  )r5   rù   r>   rô   rK   ÚsÚrms   &&&    r0   Úget_shortagesrü    s†  é € ð —Z‘ZÜŒ}Ó×#Ñ#¤M×$<Ñ$<À
Ñ$JÓKó÷ ç�wƒy—‘“ð ÷ Ü˜CÐ!4Ó5Ð5à—:‘:ÜŒ}œhÓ'ß	‰ŒhœŸ™¬-×*=Ñ*=Ñ=Ó	>ß	‰Ü×$Ñ$¨×(:Ñ(:Ñ:Ü×$Ñ$¨
Ñ2ó

÷ 
‰”-×(Ñ(×-Ñ-Ó/Ó	0ó÷ €Fð2 —z‘z”|ôñ $‰eˆaô 	×ÒØŸ™Ø—|‘|Ø—|‘|Ø—'‘'Ø—G‘GØ—J‘JØŸ™Ø—|‘|Ø—n‘n q§|¡|Õ3Ø—8‘8Ø—I‘IØ—Z‘ZØŸ™÷	
ñ $òð ò!ñùóùs>   ‚AH!ÁHÁ'H!Á-CH!Ä9HÄ:H!ÅCHÈH!ÈH!ÈH!c                óp   € V ^8„  d   QhR\         R\        P                  R\        R\        P                  /# r  )r   r)   ÚShortageCreater   rí  )r8   s   "r0   r9   r9   )  s8   € ÷ )ñ )Üð)Ü"×1Ñ1ð)Ü<@ð)ä×Ññ)r/   c              ƒ   óF  "  € V P                  \        \        4      P                  \        P                  VP                  8H  4      4      G R j  x€L
 P                  4       P                  4       pV'       g   \        RR4      hV P                  \        VP                  4      G R j  x€L
 pV'       g   \        RR4      h\        \        P                  ! 4       VP                  VP                  VP                  VP                   VP"                  V\%        4       VP&                  R7	      pV P)                  V4       V P+                  4       G R j  x€L
  V P-                  V4      G R j  x€L
  \.        P0                  ! VP2                  VP                  VP                  VP                  VP4                  VP6                  VP                   VP"                  VP                   VP"                  ,
          VP8                  VP&                  VP:                  R7      #  ELÉ ELt LÎ L·5i)Nra   r	  zRM not found)	rð  r  r>   rÝ  ró  rô  Únoted_byrö  rh  )rð  r  r>   rÝ  rñ  rò  ró  rô  rõ  r  rh  rö  )rE   r   r    rv   rù   rG   rú   r   rI   r   rÝ  r   rW   rX   r  r>   ró  rô  r1   rh  rY   rZ   r[   r)   rí  rð  rÓ   rù  r  rö  )r5   rS   r  rô   rû  rú  s   &&&   r0   Úcreate_shortager  )  s~  é € ð —Z‘ZÜŒ}Ó×#Ñ#¤M×$<Ñ$<ÀÇÁÑ$NÓOó÷ ç�wƒy—‘“ð ÷ Ü˜CÐ!4Ó5Ð5à�v‰v”h §	¡	Ó*×	*€BßÜ˜C Ó0Ð0äÜ—J’J“LØ×%Ñ%Ø—>‘>Ø�i‰iØ×%Ñ%Ø—>‘>ØÜ“Ø—‘ô
	€Að ‡F�Fˆ1„IØ
�)‰)‹+×ÐØ
�*‰*�Q‹-×Ðä×ÒØ—M‘MØ—<‘<Ø—<‘<Ø�g‰gØ—‘Ø—
‘
Ø—^‘^Ø—<‘<Ø—.‘. 1§<¡<Õ/Ø�x‰xØ—	‘	Ø—‘ôð ò3ò 
+ñ  ÙùsV   ‚AH!ÁHÁ'H!Á7/H!Â&HÂ'H!Â3BH!ÅHÅH!Å'HÅ(B0H!ÈH!ÈH!ÈH!c                óp   € V ^8„  d   QhR\         R\        R\        P                  R\        P                  /# )r4   r5   rð  rS   r6   )r   r   r)   ÚShortageUpdaterí  )r8   s   "r0   r9   r9   U  s8   € ÷ ñ ÜðÜ#'ðÜ.5×.DÑ.Dðä×Ññr/   c              ƒ   óD  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RR4      hVP                  e   VP                  Vn        VP                  e   VP                  Vn        V P                  4       G R j  x€L
  V P                  V4      G R j  x€L
  V P                  \        VP                  4      G R j  x€L
 p\        P                  ! VP                  VP                  VP                  VP                  V'       d   VP                  MR V'       d   VP                  MR VP                   VP                  VP                   VP                  ,
          VP"                  VP                  VP$                  VP&                  R7      #  ELz EL Lü LÖ5i)Nra   úShortage not foundrï  )rI   r   r   rô  rh  rZ   r[   r   rÝ  r)   rí  rð  r  r>   rÓ   rù  ró  r  rö  r÷  )r5   rð  rS   rú  rû  s   &&&  r0   Úupdate_shortager  U  s  é € ð �f‰f”] KÓ0×0€AßÜ˜CÐ!5Ó6Ð6Ø
‡~�~Ò!Ø—~‘~ˆŒØ
‡{�{ÒØ—K‘KˆŒ	Ø
�)‰)‹+×ÐØ
�*‰*�Q‹-×ÐØ�v‰v”h §¡Ó(×	(€BÜ×ÒØ—M‘MØ—<‘<Ø—<‘<Ø�g‰gß�—’ 4ß �—
’
 dØ—^‘^Ø—<‘<Ø—.‘. 1§<¡<Õ/Ø�x‰xØ—	‘	Ø—‘Ø—M‘Môð ò 	1ò ÙÙ	(ùsY   ‚F œF�F ©AF ÂFÂF ÂFÂ 'F ÃFÃAF ÄF Ä%A2F ÆF ÆF ÆF c                ó\   € V ^8„  d   QhR\         R\        R\        R\        P                  /# )r4   r5   rð  r  r6   )r   r   r)   rí  )r8   s   "r0   r9   r9   s  s2   € ÷ ñ ÜðÜ#'ðÜ26ðä×Ññr/   c              ƒ   óþ  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RR4      hRVn        W#n        \        4       Vn        VP                  Vn        V P                  4       G R j  x€L
  V P                  V4      G R j  x€L
  V P                  \        VP                  4      G R j  x€L
 p\        P                  ! VP                  VP                   VP"                  VP                  V'       d   VP$                  MR V'       d   VP&                  MR VP                  VP                  \)        R4      VP                  VP*                  VP,                  VP                  R7      #  ELW EL Lê LÄ5i)Nra   r  ÚRESOLVEDrÙ  rï  )rI   r   r   r  Úresolved_byr1   r÷  ró  rô  rZ   r[   r   rÝ  r)   rí  rð  r  r>   rÓ   rù  r   rh  rö  )r5   rð  r  rú  rû  s   &&&  r0   Úresolve_shortager  s  s  é € ð �f‰f”] KÓ0×0€AßÜ˜CÐ!5Ó6Ð6Ø€A„HØ„MÜ“F€A„MØ—>‘>€A„LØ
�)‰)‹+×ÐØ
�*‰*�Q‹-×ÐØ�v‰v”h §¡Ó(×	(€BÜ×ÒØ—M‘MØ—<‘<Ø—<‘<Ø�g‰gß�—’ 4ß �—
’
 dØ—^‘^Ø—<‘<Ü˜#“,Ø�x‰xØ—	‘	Ø—‘Ø—M‘Môð ò 	1ò ÙÙ	(ùsY   ‚E=œE3�E=©AE=Á5E6Á6E=ÂE9Â'E=Â6E;Â7AE=Ã?E=ÄA E=Å6E=Å9E=Å;E=c                óD   € V ^8„  d   QhR\         R\        P                  /# r3   )r   r)   ÚQADashboardResponse)r8   s   "r0   r9   r9   ”  s    € ÷ 0ñ 0œ|ð 0´×0KÑ0Kñ 0r/   c              ƒ   ó<  "  € V P                  \        \        4      P                  \        P                  R 8H  \        P
                  R 8H  4      P                  \        P                  4      4      G Rj  x€L
 P                  4       P                  4       p. p^ ;p;rEV EFÒ  pV P                  \        \        P                  ! 4       4      P                  \        4      P                  \        P                  VP                  8H  \        P                  R8H  4      4      G Rj  x€L
 P!                  4       ;'       g    ^ pV P                  \        \        P                  ! 4       4      P                  \        4      P                  \        P                  VP                  8H  \        P                  R8H  4      4      G Rj  x€L
 P!                  4       ;'       g    ^ pV P                  \        \        P                  ! 4       4      P                  \        4      P                  \        P                  VP                  8H  \        P                  R8H  4      4      G Rj  x€L
 P!                  4       ;'       g    ^ p	V P                  \        \        P                  ! 4       4      P                  \        4      P                  \        P                  VP                  8H  \        P                  R8H  4      4      G Rj  x€L
 P!                  4       ;'       g    ^ p
W7V,           ,          pWI,          pWZ,          pVP#                  \$        P&                  ! VP                  VP(                  VVV	V
R7      4       EKÕ  	  \$        P*                  ! VVVVR7      #  EL ELq ELØ EL? L¥5i)TNr  r  r(  r)  )r>   r?   ÚpendingÚin_progressÚpassedÚfailed)Útotal_pendingÚtotal_passedÚtotal_failedÚstations)rE   r   r   rv   rD   Úrequires_qarF   rÔ   rG   rH   r	   rÑ   r5  r   r>   r  rà   rJ   r)   ÚQAStationSummaryr?   r  )r5   r  Ústation_summariesr  r  r  rO   r  r  r  r  s   &          r0   Úget_qa_dashboardr  ”  sß  é € Ø—j‘jÜŒ}Ó×#Ñ#¤M×$;Ñ$;¸tÑ$CÄ]×E^ÑE^ÐbfÑEfÓgß	‰”-×+Ñ+Ó	,ó÷ ÷ �wƒy—‘“ð ð
 ÐØ23Ð3€MÐ3�LäˆØŸ™Ü”4—:’:“<Ó ×,Ñ,Ô-AÓBß‰UÔ'×2Ñ2°b·m±mÑCÔEY×EkÑEkÐoxÑExÓyó
÷ 
÷ ‰6‹8÷ð ð ð 	ð
  ŸZ™ZÜ”4—:’:“<Ó ×,Ñ,Ô-AÓBß‰UÔ'×2Ñ2°b·m±mÑCÔEY×EkÑEkÐo|ÑE|Ó}ó
÷ 
÷ ‰6‹8÷ð ð ð 	ð
 Ÿ
™
Ü”4—:’:“<Ó ×,Ñ,Ô-AÓBß‰UÔ'×2Ñ2°b·m±mÑCÔEY×EkÑEkÐowÑEwÓxó
÷ 
÷ ‰6‹8÷ð ð ð 	ð
 Ÿ
™
Ü”4—:’:“<Ó ×,Ñ,Ô-AÓBß‰UÔ'×2Ñ2°b·m±mÑCÔEY×EkÑEkÐowÑEwÓxó
÷ 
÷ ‰6‹8÷ð ð ð 	ð
 	 ;Õ.Õ.ˆØÕˆØÕˆà× Ñ ¤×!9Ò!9Ø—}‘}ØŸ™ØØ#ØØô"
÷ 	ñ3 ôD ×&Ò&Ø#Ø!Ø!Ø"ô	ð òUò
ò

ò

ñ

ùsw   ‚A1NÁ3NÁ4B,NÄ NÄ!NÄ:BNÆ<NÆ=NÇBNÉNÉNÉ2BNË4NË5NÌBNÎNÎNÎNÎNc                óf   € V ^8„  d   QhR\         R\        R\        \        P                  ,          /# )r4   r5   rù   r6   )r   rÃ   r   r)   ÚChassisQAHistoryItem)r8   s   "r0   r9   r9   Ê  s,   € ÷ *ñ *¤\ð *¼sð *ÄtÌG×LhÑLhÕGiñ *r/   c              ƒ   óÈ  "  € V P                  \        \        4      P                  \        P                  V8H  4      4      G R j  x€L
 P                  4       P                  4       pV'       g   \        RRV R24      hV P                  \        \        4      P                  \        P                  VP                  8H  4      P                  \        P                  P                  4       4      4      G R j  x€L
 P                  4       P                  4       p. pV EF´  pV P                  \        VP                   4      G R j  x€L
 pV P                  \"        VP$                  4      G R j  x€L
 pV P                  \        \&        4      P                  \&        P(                  VP(                  8H  4      4      G R j  x€L
 P                  4       P                  4       p\+        R V 4       4      p	\+        R V 4       4      p
\+        R V 4       4      pTP-                  \.        P0                  ! VP(                  VP                   V'       d   VP2                  MRV'       d   VP4                  MRVP$                  V'       d   VP6                  MRVP8                  VP:                  VP<                  \?        V4      V	V
VVP@                  R	7      4       EK·  	  V#  EL� ELã ELš ELu EL(5i)
Nra   z	Chassis 'z' not foundc              3   óJ   "  € T F  qP                   R 8X  g   K  ^x € K  	  R# 5i)rœ  Nrc  ©rd  r�  s   & r0   rf  Ú)get_chassis_qa_history.<locals>.<genexpr>à  ó   é € Ð@¡)˜Q¯x©x¸4Ñ/?—q’q£)ùó   ‚#™
#c              3   óJ   "  € T F  qP                   R 8X  g   K  ^x € K  	  R# 5i)rl  Nrc  r  s   & r0   rf  r   á  s   é € ÐE¡9˜a·±¸HÑ0DŸš£9ùr"  c              3   óJ   "  € T F  qP                   R 8X  g   K  ^x € K  	  R# 5i)ÚNANrc  r  s   & r0   rf  r   â  r!  r"  ÚUnknownr  )r  r;   r=   r<   r>   r?   r  r  r  r  Úok_itemsÚnot_ok_itemsÚna_itemsra  )!rE   r   r    rv   rù   rG   rú   r   r   r  rF   r4  rø  rH   rI   r   r;   r   r>   r   r  ÚsumrJ   r)   r  r=   r<   r?   r  r  r  rÅ   ra  )r5   rù   rô   r#  rM   rI  ÚtplrO   r   Úok_countÚ	nok_countÚna_counts   &&          r0   Úget_chassis_qa_historyr/  Ê  s.  é € Ø—Z‘ZÜŒ}Ó×#Ñ#¤M×$<Ñ$<À
Ñ$JÓKó÷ ç�wƒy—‘“ð ÷ Ü˜C 9¨Z¨L¸Ð!DÓEÐEà—z‘zÜÔ#Ó$ß	‰Ô#×.Ñ.°'×2DÑ2DÑDÓ	Eß	‰Ô&×1Ñ1×6Ñ6Ó8Ó	9ó÷ ÷ �wƒy—‘“ð	 ð €CÜˆØ—F‘FÔ/°×1AÑ1AÓB×BˆØ—6‘6œ-¨¯©Ó9×9ˆàŸ:™:ÜÔ'Ó(×.Ñ.Ô/C×/OÑ/OÐSW×ScÑScÑ/cÓdó
÷ 
ç‰7‹9—S‘S“Uð 	ô Ñ@¡)Ó@Ó@ˆÜÑE¡9ÓEÓEˆ	ÜÑ@¡)Ó@Ó@ˆà�
‰
”7×/Ò/Ø×(Ñ(Ø×(Ñ(ß/2˜#×+Ò+¸	ß/2˜#×+Ò+¸Ø—‘ß,.˜Ÿš°IØ ×0Ñ0Ø×.Ñ.Ø"×4Ñ4Ü˜I›ØØ"ØØ×*Ñ*ô
÷ 	ñ ð8 €JòSòò CÚ9ò
ùsq   ‚AK"ÁKÁ'K"Á-BK"Ã3KÃ4AK"Ä?KÅ 'K"Å'KÅ(AK"Æ7KÆ8B#K"ÉK"É<AK"ËK"ËK"ËK"ËK"c          
      óh   € V ^8„  d   QhR\         R\        R\        P                  R\        R\        /# r˜  )r   r   r)   ÚInstanceRemarksInr²   )r8   s   "r0   r9   r9   ÷  s:   € ÷ ñ ÜðÜ#'ðÜ.5×.GÑ.GðÜRVðä	ñr/   c           
   ƒ  ót  "  € V P                  \        V4      G Rj  x€L
 pV'       g   \        RR4      hVP                  ;'       g    RP	                  4       ;'       g    RVn        VP
                   EF  pVP                  ;'       g    RP	                  4       pV P                  \        \        4      P                  \        P                  V8H  \        P                  VP                  8H  4      4      G Rj  x€L
 P                  4       P                  4       pV'       d   V'       d   WcuVn        Vn        KÆ  V'       d)   V P!                  \        WP                  WcR7      4       Kö  V'       g   EK  V P#                  V4      G Rj  x€L
  EK  	  V P%                  4       G Rj  x€L
  RR/#  EL“ L¸ L* L5i)zYSave the checksheet remark and per-section remarks (empty text removes a section remark).Nra   r›  r  )r  rq   r[  Ú
updated_byÚsavedT)rI   r   r   rh  ru  ru   r[  rE   r   r   rv   r  rq   rG   rú   r3  rY   rí   rZ   )r5   r  rS   r  rI  Úsrr   Úrows   &&&&    r0   Úsave_instance_remarksr7  ÷  s@  é € ð —‘Ô,¨kÓ:×:€DßÜ˜CÐ!5Ó6Ð6Ø—K‘K×%Ð% 2×,Ñ,Ó.×6Ð6°$€D„LØ�l�lˆØ—	‘	—�˜R×&Ñ&Ó(ˆØ—Z‘Z¤¤Ó 7× =Ñ =Ü×'Ñ'¨;Ñ6¼×8RÑ8RÐVX×VcÑVcÑ8có!
ó ÷ ç‰G‹I—e‘e“gð 	÷ —CØ)-Ð&ˆCŒJ˜žßØ�F‰F”?¨{Ç}Á}Ð]aÔvÖwßŠSØ—)‘)˜C“.× Ó ñ ð �)‰)‹+×ÐØ�Tˆ?Ðò! ;ññ !Ùùsu   ‚F8œF/�F8©F8ÁF8Á *F8ÂA.F8Ã9F2Ã:'F8Ä"F8Ä*F8Å-F8Å5F8Æ	F4Æ
F8Æ&F6Æ'	F8Æ2F8Æ4F8Æ6F8c                óD   € V ^8„  d   QhR\         R\        P                  /# r3   )r   r)   ÚSupervisorDashboardResponse)r8   s   "r0   r9   r9     s$   € ÷ ]ñ ]¤|ð ]¼×8[Ñ8[ñ ]r/   c              ƒ   óÎ  "  € V P                  \        \        4      P                  \        P                  R 8H  \        P
                  R 8H  4      P                  \        P                  4      4      G Rj  x€L
 P                  4       P                  4       p. p\        V4      p\        4       pV EF  pV P                  \        \        4      P                  \        \        P                  \        P                  8H  4      P                  \        P                   VP                   8H  \        P"                  R8H  \        P                  R 8H  4      4      G Rj  x€L
 P                  4       P                  4       p. pV Fo  pVP%                  VP                  4       VP'                  \(        P*                  ! VP                  VP,                  VP.                  VP0                  R7      4       Kq  	  V P                  \        \2        P4                  ! 4       4      P7                  \8        4      P                  \8        P                   VP                   8H  \8        P:                  R8H  4      4      G Rj  x€L
 P=                  4       ;'       g    ^ p	V P                  \        \2        P4                  ! 4       4      P7                  \8        4      P                  \8        P                   VP                   8H  \8        P:                  R8H  4      4      G Rj  x€L
 P=                  4       ;'       g    ^ p
V P                  \        \2        P4                  ! 4       4      P7                  \8        4      P                  \8        P                   VP                   8H  \8        P:                  P?                  RR.4      4      4      G Rj  x€L
 P=                  4       ;'       g    ^ pV P                  \        \@        PB                  4      P                  \@        PD                  VP                   8H  4      PG                  ^
4      4      G Rj  x€L
 P                  4       P                  4       pVP'                  \(        PH                  ! VP                   VPJ                  VPL                  VP                  VP
                  V\        V4      \O        V4      V	V
VR7      4       EK  	  V P                  \        \8        \@        \        \        4      P                  \@        \@        PP                  \8        PP                  8H  4      P                  \        \        P                   \8        P                   8H  4      PS                  \        \        P                  \8        PT                  8H  4      P                  \8        PV                  PY                  4       4      PG                  ^d4      4      G Rj  x€L
 P                  4       p. p\        4       p\        4       p^ p^ p^ p^ pV EFá  w  pprXVP%                  VPP                  4       VP:                  R8X  d   V^,          pM$VP:                  R8X  d   V^,          pM	V^,          pVPP                  VP                   3pVV9   d   Kƒ  VP%                  V4       R	p \Z        P\                  ! V VPP                  VP                   4      G Rj  x€L
 w  ppV'       d
   V^,          pV P                  \        \2        P4                  ! 4       4      P7                  \`        4      P                  \b        \b        Pd                  \`        Pd                  8H  4      P                  \b        Pf                  VPf                  8H  \`        P                  R 8H  4      4      G Rj  x€L
 P=                  4       ;'       g    ^ pV P                  \        \2        P4                  ! 4       4      P7                  \h        4      P                  \h        Pj                  VPj                  8H  4      4      G Rj  x€L
 P=                  4       ;'       g    ^ pV P                  \        \2        P4                  ! 4       4      P7                  \h        4      P                  \h        Pj                  VPj                  8H  \h        Pl                  R
8H  4      4      G Rj  x€L
 P=                  4       ;'       g    ^ pRpVPn                  '       d=   V Pq                  \r        VPn                  4      G Rj  x€L
 pV'       d   VPt                  pV Uu/ uF  pVP                   VPJ                  bK  	  p pVPD                  '       d   VPD                  VP                   8H  MR	p!VPD                  '       d   V Pq                  VPD                  4      MRp"TP'                  \(        Pv                  ! R#/ RVPj                  bRVPP                  bRVPB                  bRT;'       g    VPx                  bRRbRVPz                  ;'       g    VP|                  bRVP                   bRVPJ                  bRVPL                  bRVP                  bRVP:                  ;'       g    VP~                  bRVbRV!bRV"bRV'       d   VP,                  MRbRV'       d   VP.                  MRbRVbRVbRVbRVPV                  ;'       g    VP€                  b 4       EKä  	  V P                  \        \h        \`        \8        \@        \        \        4      P                  \`        \`        P‚                  \h        P‚                  8H  4      P                  \8        \8        Pj                  \h        Pj                  8H  4      P                  \@        \@        PP                  \8        PP                  8H  4      P                  \        \        P                   \8        P                   8H  4      PS                  \        \        P                  \8        PT                  8H  4      P                  \…        \h        Pl                  R
8H  \h        P†                  R 8H  4      4      P                  \h        P€                  PY                  4       4      PG                  ^d4      4      G Rj  x€L
 P                  4       p#. p$V# EF‘  w  p%p&pprXV P                  \        \ˆ        PŠ                  4      P                  \ˆ        Pj                  V%Pj                  8H  \ˆ        P‚                  V%P‚                  8H  4      4      G Rj  x€L
 P                  4       P                  4       p'T$P'                  \(        PŒ                  ! V%PŽ                  V%Pj                  VPB                  VPJ                  V&P�                  V&P’                  ;'       g    RV%Pl                  V%P”                  e   \—        V%P”                  4      MRV%P˜                  V'       d   VP,                  MRV'       d   VP.                  MR\O        V'4      V%Pš                  V%P€                  R 7      4       EK”  	  \(        Pœ                  ! \        V4      VVV\        V$4      V\        V4      VR!7      p(\(        Pž                  ! V(VV$VR"7      #  EL" ELE EL1 EL˜ E
Lñ E
Ls ELÙ ELã  \^         d    TP:                  R8H  p ELûi ; i EL< ELµ EL ELËu upi  ELJ EL»5i)$TNr  )r  rÓ   Úemployee_codeÚemailr(  r)  r  r  )r>   r?   Ústation_coderÔ   r  Úassigned_inspectorsÚactive_chassis_countÚactive_chassis_listÚpassed_countÚfailed_countÚpending_countFrl  r  r  rù   Ú
model_nameÚ	body_typeÚcustomer_namer>   r?   r=  Ústation_sequenceÚoverall_qa_statusr�  Úis_current_stationÚcurrent_station_nameÚinspector_nameÚinspector_codeÚcheckpoints_totalÚcheckpoints_completedÚdefects_countÚ
updated_atrS  )rT  r  rù   r?   r•   r–   r  rU  rW  rK  rL  Ú
photo_urlsrX  r4  )Útotal_active_chassisr  r  r  Útotal_defectsÚcleared_for_chassis_outÚactive_inspectorsÚmonitored_stations)ÚkpisÚchassis_statusesÚdefectsÚstation_allocationsr.   )PrE   r   r   rv   rD   r  rF   rÔ   rG   rH   rÅ   r2  r'   rÆ   r   r  r>   rµ  rY   rJ   r)   ÚAssignedInspectorBriefrÓ   r;  r<  r	   rÑ   r5  r   r  rà   r3  r    rù   r+  ÚlimitÚStationAllocationItemr?   r=  rÂ   r  Ú	outerjoinr  rP  rø  r   ry  rÄ   r   r   rq   r;   r   r  r  r¶   rI   r!   r·   ÚChassisLiveQaStatusÚ
light_typeÚ	dealer_idÚ	client_idr  r4  r’   r   Ú
is_flaggedr   rQ  ÚDefectDetailItemrT  r•   r–   rU  r¡  rW  rX  ÚSupervisorDashboardKpisr9  ))r5   r  rZ  rV  Úactive_inspectors_setrO   Úassigned_inspectors_rowsÚassigned_listÚuÚ
passed_cntÚ
failed_cntÚpending_cntÚactive_chassis_nosÚrecent_instancesrX  Úseen_chassis_stationsÚtotal_active_chassis_setr  r  r  rT  rI  ÚchÚkeyr‘  r  r  Úresponses_cntÚdefects_cntrD  Úmdlrú  Ústation_name_mapÚis_currÚcurr_station_nameÚdefect_rowsÚdefects_listrƒ  re  rQ  rW  s)   &                                        r0   Úget_supervisor_dashboardr{    s¾  é € à—j‘jÜŒ}Óß	‰Œ}×&Ñ&¨$Ñ.´×0IÑ0IÈTÑ0QÓ	Rß	‰”-×+Ñ+Ó	,ó÷ ÷ �wƒy—‘“ð	 ð ÐÜ˜X›ÐÜ›EÐäˆà*,¯*©*Ü”:Óß‰TÔ'Ô)>×)FÑ)FÌ*×J\ÑJ\Ñ)\Ó]ß‰UÜ%×0Ñ0°B·M±MÑAÜ%×*Ñ*¨dÑ2Ü%×/Ñ/°4Ñ7óó+
÷ %
÷ ‰7‹9—S‘S“Uð 	!ð ˆÛ)ˆAØ!×%Ñ% a§i¡iÔ0Ø× Ñ ¤×!?Ò!?ØŸ	™	Ø—V‘VØŸo™oØ—g‘gô	"ö ñ *ð ŸJ™JÜ”4—:’:“<Ó ×,Ñ,Ô-AÓBß‰UÔ'×2Ñ2°b·m±mÑCÔEY×EkÑEkÐowÑEwÓxó
÷ 
÷ ‰6‹8÷ð ð ð 	ð
 ŸJ™JÜ”4—:’:“<Ó ×,Ñ,Ô-AÓBß‰UÔ'×2Ñ2°b·m±mÑCÔEY×EkÑEkÐowÑEwÓxó
÷ 
÷ ‰6‹8÷ð ð ð 	ð
  ŸZ™ZÜ”4—:’:“<Ó ×,Ñ,Ô-AÓBß‰UÔ'×2Ñ2°b·m±mÑCÔEY×EkÑEk×EoÑEoÐqzð  }Jð  qKó  FLó  Mó
÷ 
÷ ‰6‹8÷ð ð ð 	ð %'§J¡JÜ”=×+Ñ+Ó,ß‰U”=×3Ñ3°r·}±}ÑDÓEß‰U�2‹Yó%
÷ 
÷ ‰7‹9—S‘S“Uð	 	ð 	×"Ñ"¤7×#@Ò#@Ø—}‘}ØŸ™ØŸ™ØŸ™ØŸ™Ø -Ü!$Ð%7Ó!8Ü $Ð%7Ó 8Ø#Ø#Ø%ô$
÷ 	ñ[ ðx !Ÿj™jÜÔ#¤]´MÄ:ÓNß	‰Œmœ]×5Ñ5Ô9M×9XÑ9XÑXÓ	Yß	‰Œmœ]×5Ñ5Ô9M×9XÑ9XÑXÓ	Yß	‰”:œz×1Ñ1Ô5I×5VÑ5VÑVÓ	Wß	‰Ô&×1Ñ1×6Ñ6Ó8Ó	9ß	‰ˆs‹ó÷ ÷ �sƒuð ð ÐÜ›EÐÜ"›uÐØ€LØ€LØ€MØÐä+‰ˆˆb�"Ø ×$Ñ$ R§]¡]Ô3Ø×!Ñ! XÔ-Ø˜AÕ‰LØ×#Ñ# xÔ/Ø˜AÕ‰Là˜QÕˆMð �}‰}˜bŸm™mÐ,ˆØÐ'Ô'ÙØ×!Ñ! #Ô&ð ˆð	@Ü$(×$AÒ$AÀ"ÀbÇmÁmÐUW×UbÑUbÓ$c×c‰OˆL˜!÷ Ø# qÕ(Ð#ð  ŸZ™ZÜ”4—:’:“<Ó ×,Ñ,Ô-=Ó>ß‰TÔ%Ô':×'EÑ'EÔIY×IdÑIdÑ'dÓeß‰UÔ&×2Ñ2°d×6FÑ6FÑFÔHX×HbÑHbÐfjÑHjÓkó
÷ 
÷ ‰6‹8÷	ð ð ð	 	ð  "Ÿz™zÜ”4—:’:“<Ó ×,Ñ,Ô-AÓBß‰UÔ'×3Ñ3°t×7GÑ7GÑGÓHó 
÷ 
÷ ‰6‹8÷ð ð ð 	ð
  ŸZ™ZÜ”4—:’:“<Ó ×,Ñ,Ô-AÓBß‰UÔ'×3Ñ3°t×7GÑ7GÑGÔI]×IdÑIdÐhpÑIpÓqó
÷ 
÷ ‰6‹8÷ð ð ð 	ð ˆ
Ø�;�;ˆ;ØŸ™Ô1°2·;±;Ó?×?ˆCßØ ×-Ñ-�
ñ CKÓKÁ(¸Q˜AŸL™L¨!¯.©.Ò8Á(ÐÐKØ>@×>S×>SÐ>S�2×(Ñ(¨B¯M©MÒ9ÐY^ˆØKM×K`×K`ÐK`Ð,×0Ñ0°×1FÑ1FÔGÐfjÐà×Ñ¤× ;Ò ;ò !
Ø×(Ò(ð!
à—}’}ð!
ð —}’}ð!
ð "×2Ð2 R§]¡]øð	!
ñ
 ð!
ð Ÿ,™,×6Ð6¨"¯,©,øð!
ð —}’}ð!
ð Ÿšð!
ð Ÿšð!
ð  Ÿ^š^ð!
ð #×4Ñ4×KÐK¸×8KÑ8Køð!
ñ $ð!
ñ  'ð!
ñ "3ð!
÷ &'˜1Ÿ6š6¨Døð!
÷  /0˜1Ÿ?š?°Tøð!!
ñ" *ð#!
ñ$ #0ð%!
ñ& &ð'!
ð( —‘×9Ð9¨$¯/©/øð)!
÷ 	ñk ,ðZ Ÿ™ÜÔ#Ô%5Ô7KÌ]Ô\iÔkuÓvß	‰ÔÔ 0× 8Ñ 8Ô<P×<XÑ<XÑ XÓ	Yß	‰Ô"Ô$8×$DÑ$DÔH\×HhÑHhÑ$hÓ	iß	‰Œmœ]×5Ñ5Ô9M×9XÑ9XÑXÓ	Yß	‰Œmœ]×5Ñ5Ô9M×9XÑ9XÑXÓ	Yß	‰”:œz×1Ñ1Ô5I×5VÑ5VÑVÓ	Wß	‰ŒsÔ'×.Ñ.°(Ñ:Ô<P×<[Ñ<[Ð_cÑ<cÓdÓ	eß	‰Ô&×1Ñ1×6Ñ6Ó8Ó	9ß	‰ˆs‹ó
÷ 
÷ �sƒuð ð €LÜ%0Ñ!ˆˆb�$˜˜BØŸJ™JÜ”?×,Ñ,Ó-×3Ñ3Ü×+Ñ+¨t×/?Ñ/?Ñ?Ü×'Ñ'¨4¯<©<Ñ7óó
÷ 
÷
 ‰7‹9—S‘S“Uð 	ð 	×ÑœG×4Ò4Ø×(Ñ(Ø×(Ñ(Ø—}‘}ØŸ™Ø×.Ñ.Ø×0Ñ0×;Ð;°GØ—;‘;Ø9=×9LÑ9LÒ9Xœ5 ×!4Ñ!4Ô5Ð^bØ×(Ñ(ß%&˜1Ÿ6š6¨Dß./˜1Ÿ?š?°TÜ˜JÓ'Ø×,Ñ,Ø—‘ô
÷ 	ñ &1ô2 ×*Ò*Ü Ð!9Ó:Ø!Ø!Ø#Ü˜,Ó'Ø 7ÜÐ3Ó4Ø-ô	€Dô ×.Ò.ØØ)ØØ/ô	ð òmò%
ò*
ò

ò

ò
ò*òF døÜô 	@Ø ×2Ñ2°hÑ>‹Lð	@úò
ò
ò

ò @ùò
 Lò8
ò
ùsª  ‚A1{%Á3zÁ4C{%ÅzÅD{%É*zÉ+{%ÊB{%ÌzÌ{%Ì B{%Î0z!Î1{%Ï
A'{%Ð1z$Ð2F{%×z'×C{%Ú/z-Ûz*Ûz-Û{%ÛB;{%Þ{Þ{%Þ,A0{%à{à{%à6B{%â8{â9{%ã{%ã)#{%ä{ä{%ä{%ä) {å	A {%æ
A*{%ç5#{%èA{%é.{%ê{%ê$*{%ëG{%ò{òB{%ô'{"ô(B{%ö-A{%÷1{%øB{%ú{%ú{%ú{%ú!{%ú${%ú'{%ú*z-ú-{û{%û
{û{%û{%û{%û{%û{%û"{%c                óD   € V ^8„  d   QhR\         R\        P                  /# r3   )r   r)   ÚInspectorAnalyticsResponse)r8   s   "r0   r9   r9   ô  s$   € ÷ nñ n¤lð n´w×7YÑ7Yñ nr/   c              ƒ   óV  "  € V P                  \        \        4      P                  \	        \        P
                  P                  R R.4      \        P                  P                  \        \        P                  4      P                  \        P                  R8H  4      4      \        P                  P                  \        \        P                  4      P                  \        P                  P                  R4      4      4      4      4      P                  \        P                  4      4      G Rj  x€L
 P                  4       P!                  4       p. p^ p^ p^ p^ ;p;rxV EFÎ  p	\	        \        P                  V	P                  8H  \        P"                  V	P                  8H  4      p
V P                  \        \$        P&                  ! 4       4      P)                  \        4      P                  V
4      4      G Rj  x€L
 P+                  4       ;'       g    ^ pV P                  \        \$        P&                  ! 4       4      P)                  \        4      P                  V
\        P,                  R8H  4      4      G Rj  x€L
 P+                  4       ;'       g    ^ pV P                  \        \$        P&                  ! 4       4      P)                  \        4      P                  V
\        P,                  R8H  4      4      G Rj  x€L
 P+                  4       ;'       g    ^ pV P                  \        \$        P&                  ! 4       4      P)                  \.        4      P1                  \        \        P2                  \.        P2                  8H  4      P                  V
4      4      G Rj  x€L
 P+                  4       ;'       g    ^ pV P                  \        \4        P6                  \$        P&                  ! 4       4      P)                  \.        4      P1                  \        \        P2                  \.        P2                  8H  4      P1                  \4        \4        P8                  \.        P8                  8H  4      P                  V
\.        P:                  R8H  4      P=                  \4        P6                  4      4      G Rj  x€L
 P!                  4       p\?        R V 4       4      p\?        R V 4       4      p\?        R	 V 4       4      pVV,           V,           pV P                  \        \@        PB                  4      P1                  \        \        PD                  \@        PD                  8H  4      P                  \        P                  V	P                  8H  \        P                  R8H  \        PF                  R
8H  4      4      G Rj  x€L
 P                  4       P!                  4       pV P                  \        \$        PH                  ! \        PJ                  4      4      P                  V
4      4      G Rj  x€L
 P+                  4       pV^ 8”  d   \M        WË,          ^d,          ^4      MRpW;,          pWL,          pVV,          pVV,          pVV,          pVV,          pTPO                  \P        PR                  ! R/ RV	P                  bRV	P                  bRV	PT                  bRV	P
                  bRV	PV                  bR\Y        V4      bRVbRVbRVbRVbRVbRVbRVbRVbRVbRT;'       g    V	PZ                  b 4       EKÑ  	  V^ 8”  d   \M        WC,          ^d,          ^4      MRp\P        P\                  ! \_        V4      VVVVVVR7      p\P        P`                  ! VVR7      #  ELc ELž EL  EL¢ EL ELó ELñ EL…5i)r  r'  r  Nr(  r)  rl  c              3   ól   "  € T F*  w  rT;'       g    R P                  4       R8X  g   K&  Vx € K,  	  R# 5i)r  ÚCRITICALN©Úupper©rd  ÚclsÚcs   &  r0   rf  Ú*get_inspector_analytics.<locals>.<genexpr>&  s*   é € ÐW¡\™6˜3°c·i°i¸R×5FÑ5FÓ5HÈJÑ5V—Q’Q£\ùó   ‚4’4ª
4c              3   ól   "  € T F*  w  rT;'       g    R P                  4       R8X  g   K&  Vx € K,  	  R# 5i)r  rS  Nr�  rƒ  s   &  r0   rf  r†  '  ó*   é € ÐS¡L™&˜#°S·Y°Y¸B×4EÑ4EÓ4GÈ7Ñ4R—A’A£Lùr‡  c              3   ól   "  € T F*  w  rT;'       g    R P                  4       R8X  g   K&  Vx € K,  	  R# 5i)r  ÚMINORNr�  rƒ  s   &  r0   rf  r†  (  r‰  r‡  Tg      Y@r  rÓ   r;  r*  r<  Úassigned_stationsÚtotal_inspectedr  r  Ú	pass_rateÚtotal_checkpointsrS  Úcritical_defectsÚmajor_defectsÚminor_defectsÚlast_active)Útotal_inspectorsÚtotal_inspectionsÚplant_pass_rateÚtotal_defects_caughtr�  r‘  r’  )ÚsummaryÚ
inspectorsr.   )1rE   r   r'   rv   r   r*  r3  r  r   rµ  r   r  rÑ  rF   rÓ   rG   rH   r»  r	   rÑ   r5  rà   r  r   rÆ   r  r   r–   r’   r  rÒ   r*  r   r?   r>   rD   rä  rP  ÚroundrJ   r)   ÚInspectorMetricItemr;  r<  rÂ   Úlast_login_atÚInspectorAnalyticsSummaryrÅ   r}  )r5   Úinspectors_rowsÚinspector_metricsÚtotal_plant_inspectionsÚtotal_plant_passedr—  Úcrit_cntÚmaj_cntÚmin_cntri  Úuser_inst_clauser�  Úpassed_inspectedÚfailed_inspectedr�  Úuser_defectsÚu_critÚu_majÚu_minÚu_total_defectsÚstation_namesÚlast_inst_timerŽ  r–  r˜  s   &                        r0   Úget_inspector_analyticsr¯  ô  s�  é € àŸZ™ZÜŒzÓ× Ñ ÜÜ×$Ñ$×(Ñ(¨.¸/Ð)JÓKÜ×"Ñ"×&Ñ&¤vÔ.C×.KÑ.KÓ'L×'RÑ'RÔSh×SmÑSmÐquÑSuÓ'vÓwÜ×"Ñ"×&Ñ&¤vÔ.B×.OÑ.OÓ'P×'VÑ'VÔWk×WxÑWx×W~ÑW~ð  @Dó  XEó  (Fó  Góó	
÷ ‰(”:—?‘?Ó
#ó÷ ÷ �wƒy—‘“ð ð ÐØÐØÐØÐØ#$Ð$€HÐ$ˆwäˆäÔ3×@Ñ@ÀAÇIÁIÑMÔOc×OmÑOmÐqr×qzÑqzÑOzÓ{Ðà!#§¡Ü”4—:’:“<Ó ×,Ñ,Ô-AÓB×HÑHÐIYÓZó"
÷ 
ç‰6‹8÷ð àð 	ð #%§*¡*Ü”4—:’:“<Ó ×,Ñ,Ô-AÓB×HÑHÐIYÔ[o×[~Ñ[~ð  CKñ  \Kó  Ló#
÷ 
ç‰6‹8÷ð àð 	ð #%§*¡*Ü”4—:’:“<Ó ×,Ñ,Ô-AÓB×HÑHÐIYÔ[o×[~Ñ[~ð  CKñ  \Kó  Ló#
÷ 
ç‰6‹8÷ð àð 	ð $&§:¡:Ü”4—:’:“<Ó ×,Ñ,Ô-AÓBß‰TÔ&Ô(<×(HÑ(HÔL`×LlÑLlÑ(lÓmß‰UÐ#Ó$ó$
÷ 
÷ ‰6‹8÷	ð ð ð	 	ð !Ÿj™jÜÔ#×4Ñ4´d·j²j³lÓCß‰[Ô-Ó.ß‰TÔ&Ô(<×(HÑ(HÔL`×LlÑLlÑ(lÓmß‰TÔ"Ô$4×$<Ñ$<Ô@T×@\Ñ@\Ñ$\Ó]ß‰UÐ#Ô%9×%@Ñ%@ÀHÑ%LÓMß‰XÔ&×7Ñ7Ó8ó
÷ 
÷ ‰3‹5ð 	ô ÑW¡\ÓWÓWˆÜÑS¡LÓSÓSˆÜÑS¡LÓSÓSˆØ  5�.¨5Õ0ˆð  "Ÿz™zÜ”=×-Ñ-Ó.ß‰TÔ'Ô)>×)IÑ)IÌ]×MeÑMeÑ)eÓfß‰UÔ(×0Ñ0°A·I±IÑ=Ô?T×?YÑ?YÐ]aÑ?aÔcx÷  dCñ  dCð  GKñ  dKó  Ló 
÷ 
÷ ‰7‹9—S‘S“Uð	 	ð !#§
¡
Ü”4—8’8Ô0×;Ñ;Ó<Ó=×CÑCÐDTÓUó!
÷ 
ç‰6‹8ð 	ð M\Ð^_ÔL_”EÐ+Õ=ÀÕCÀaÔHÐejˆ	àÕ2ÐØÕ.ÐØ Õ/ÐØ�FÕˆØ�5ÕˆØ�5Õˆà× Ñ ¤×!<Ò!<ò "
Ø—I’Ið"
à—’ð"
ð Ÿ/š/ð"
ð —k’kð	"
ð
 —'’'ð"
ô # =Ô1ð"
ñ ,ð"
ñ *ð"
ñ *ð"
ñ  ð"
ñ 0ð"
ñ *ð"
ñ $ð"
ñ  ð"
ñ  ð"
ð  '×9Ð9¨!¯/©/øð!"
÷ 	ñu ðZ YpÐrsÔXs”eÐ/ÕIÈCÕOÐRSÔTÐy~€Oä×/Ò/Ü˜_Ó-Ø1Ø'Ø1Ø!ØØô€Gô ×-Ò-ØØ$ôð òSò(
ò
ò
ò
ò
ò
ò
ùs°   ‚D,^)Ä.^Ä/C^)Ç6^Ç7^)ÈA'^)É7^É8^)ÊA'^)Ë8^Ë9^)ÌB^)Î^Î^)Î4C9^)Ò-^ Ò.D^)Ö2^#Ö3A.^)Ø!^&Ø"E0^)Þ^)Þ^)Þ^)Þ^)Þ ^)Þ#^)Þ&^)r+   )aÚ__doc__rW   Úloggingr   r   Údecimalr   Útypingr   r   r   Ú	getLoggerÚ__name__r8  Ú
sqlalchemyr   r	   r
   r   r   r   Úsqlalchemy.ext.asyncior   Úfastapir   Úapp.models.qa_modelsr   r   r   r   r   r   r   r   Úapp.models.rm_modelsr   r   r   r   Úapp.models.station_work_modelsr   r   r   Úapp.modules.station_workr   Úapp.models.yard_modelsr    r!   Úapp.models.dealer_modelsr"   r#   r$   Úapp.models.procurement_modelsr%   Úapp.models.production_modelsr&   Úapp.models.core_modelsr'   Úapp.modules.station_work.routesr(   r  r)   r1   rP   r\   rj   rn   r   rƒ   r‰   r�   r£   r¨   r«   rÍ   rÛ   ræ   rê   rî   rñ   rþ   r  rL  r–  r©  rÉ  rÖ  r½  rü  r  r  r  r  r/  r7  r{  r¯  r.   r/   r0   Ú<module>rÃ     s>  ðñó Û ß 'Ý ß !Ý à	×	Ò	˜8Ó	$€ç :× :Ý /Ý !÷	÷ 	ó 	÷ VÓ Uß bÑ bÝ )ß Dß bÑ bÝ <Ý :Ý -Ý @Ý ò&õõ6õ6õ*õ2õl2õ$2õõ0õ<0õõ-õ`õ6(RõV-Rõ`õõ>*@õZ(õ|õ~bõJJaõZ{÷|Kõ\-õf#õL)õXõ<õB0õl*õZõ4]÷Fnr/   