+
    `Øj/G ã                   óZ  € ^ RI t ^ RIt^ RIHtHtHt ^ RIHtHt ^ RIH	t	 ^ RI
HtHtHtHt ^ RIHt ^ RIHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHt ^ R	I H!t!H"t" ^ R
I#H$t$ ^ RI%H&t& ^ RI'H(t( ^ RI)H*t* R R lt+R R lt,^ RI-t-]-P                  ! R4      t.R R lt/RRRRRRRR/t0R R lt1R R  lt2RqR! R" llt3R# R$ lt4R% R& lt5R' R( lt6RqR) R* llt7R+ R, lt8R- R. lt9R/ R0 lt:R1 R2 lt;R3 R4 lt<R5 R6 lt=R7 R8 lt>R9 R: lt?R; R< lt@RrR= R> lltAR? R@ ltBRA RB ltCRC RD ltDRE RF ltERG RH ltFRI RJ ltGRsRK RL lltHRM RN ltIRO RP ltJRQ RR ltKRS RT ltLRU RV ltMRW RX ltNRY RZ ltOR[ R\ ltPR] R^ ltQR_ R` ltRRa Rb ltSRc Rd ltTRe Rf ltURg Rh ltVRi Rj ltWRk Rl ltXRm Rn ltYRo Rp ltZR# )té    N)ÚdatetimeÚdateÚtimezone)ÚListÚOptional©ÚHTTPException)ÚselectÚfuncÚor_Úand_©ÚAsyncSession)ÚYardCheckpointMasterÚMovementChecklistItemMasterÚYardQaChecklistItemMasterÚVehicleModelMasterÚChassisMasterÚChassisMovementLogÚChassisMovementChecklistResultÚChassisQaChecklistResultÚStoreHandoverPartMasterÚChassisStoreHandoverÚChassisStoreHandoverPartÚChassisStatusLog)ÚChassisStationLog)ÚTransportMasterÚCustomerMaster©ÚStationMaster)Ú
LoginUsers)Úschemas)Úresolve_chassis_order_specc                ó0   € V ^8„  d   QhR\         R\         /# )é   Ú	fuel_typeÚreturn©Ústr)Úformats   "Ú:/var/www/html/audi_dev/backend/app/modules/yard/service.pyÚ__annotate__r,      s   € ÷ @ñ @œSð @¤Sñ @ó    c                 óH   € T ;'       g    R P                  4       R8X  d   R# R# )Ú ÚCNGÚBARÚL)Úupper)r&   s   &r+   Úfuel_qty_unitr4      s#   € Ø—_�_ "×+Ñ+Ó-°Ô6ˆ5Ð?¸CÐ?r-   c                óF   € V ^8„  d   QhR\         \        ,          R\        /# )r%   Úminsr'   )r   Úintr)   )r*   s   "r+   r,   r,      s   € ÷ ñ ”x¤•}ð ¬ñ r-   c                 óh   € V e   V ^ 8  d   R# V ^<,          pV ^<,          pV^ 8”  d	   V RV R2# V R2# )NÚ0mzh Úm© )r6   ÚhoursÚrems   &  r+   Ú_fmt_minutesr>      sH   € Ø‚|�t˜a”xÙØ�B�J€EØ
��)€CØˆq„yØ�˜˜3˜%˜qÐ!Ð!ØˆU�!ˆ9Ðr-   zAsia/Kolkatac                óF   € V ^8„  d   QhR\         \        ,          R\        /# )r%   Údtr'   )r   r   r)   )r*   s   "r+   r,   r,   )   s   € ÷ 3ñ 3œ¤Õ*ð 3¬sñ 3r-   c                ó¸   € V '       g   R# V P                   f    \        P                  P                  V 4      p V P	                  \
        4      P                  R4      # )zIFormat UTC datetime into Indian Standard Time (IST) 12-hour AM/PM format.r/   z%I:%M %p)ÚtzinfoÚpytzÚutcÚlocalizeÚ
astimezoneÚISTÚstrftime)r@   s   &r+   Úformat_ist_timerI   )   s@   € çÙØ	‡y�yÒÜ�X‰X×Ñ˜rÓ"ˆØ�=‰=œÓ×&Ñ& zÓ2Ð2r-   Ú
CHASSIS_INz
Chassis InÚWIPzIn Production (WIP)ÚREADY_FOR_DISPATCHzReady for Dispatch (FVI)Ú
DISPATCHEDÚ
Dispatchedc                ó6   € V ^8„  d   QhR\         R,          RR/# )r%   Úfile_urlNr'   r(   )r*   s   "r+   r,   r,   :   s   € ÷ ñ ¤ t¥ð °ñ r-   c                 ó|  € V '       d   V P                  R 4      '       g   R# \        P                  P                  \        P                  P	                  \        P
                  ! 4       V P                  R4      4      4      p\        P                  P                  \        P                  P	                  \        P
                  ! 4       R4      4      pVP                  V\        P                  ,           4      '       d@   \        P                  P                  V4      '       d   \        P                  ! V4       R# R# R# )z	/uploads/NÚ/Úuploads)
Ú
startswithÚosÚpathÚabspathÚjoinÚgetcwdÚlstripÚsepÚisfileÚremove)rP   Ú	file_pathÚuploads_roots   &  r+   Úremove_upload_filer`   :   s°   € ß˜8×.Ñ.¨{×;Ò;ÙÜ—‘—‘¤§¡§¡¬R¯YªY«[¸(¿/¹/È#Ó:NÓ OÓP€IÜ—7‘7—?‘?¤2§7¡7§<¡<´·	²	³¸YÓ#GÓH€LØ×Ñ˜L¬2¯6©6Õ1×2Ò2´r·w±w·~±~Ài×7PÒ7PÜ
�	Š	�)Öñ 8QÑ2r-   c                óD   € V ^8„  d   QhR\         R\        P                  /# ©r%   Údbr'   )r   r"   ÚYardMastersOut)r*   s   "r+   r,   r,   C   s    € ÷ +ñ +œ,ð +¬7×+AÑ+Añ +r-   c              ƒ   óœ  "  € V P                  \        \        4      P                  \        P                  R 8H  4      P                  \        P                  4      4      G Rj  x€L
 P                  4       P                  4       pV P                  \        \        4      P                  \        P                  R 8H  4      P                  \        P                  4      4      G Rj  x€L
 P                  4       P                  4       pV P                  \        \        4      P                  \        P                  R 8H  4      P                  \        P                  4      4      G Rj  x€L
 P                  4       P                  4       pV P                  \        \        4      P                  \        P                  R 8H  4      P                  \        P                  4      4      G Rj  x€L
 P                  4       P                  4       pV P                  \        \        4      P                  \        P                  R 8H  4      P                  \        P                  4      4      G Rj  x€L
 P                  4       P                  4       p\        ;QJ d    R V 4       F  '       g   K   R M	  RM! R V 4       4      pV'       gç   \!        R V 4       ^ R7      p\        \"        P$                  ! 4       V^,           RRR R7      pV P'                  V4       V P)                  4       G Rj  x€L
  V P                  \        \        4      P                  \        P                  R 8H  4      P                  \        P                  4      4      G Rj  x€L
 P                  4       P                  4       p\*        P,                  ! WVWER	7      #  ELX ELÜ EL` ELä ELh L« LJ5i)
TNc              3   óv   "  € T F/  qP                   P                  4       P                  4       R9   x € K1  	  R# 5i)úbattery serial no.N)rg   zbattery serial no)Ú	part_nameÚlowerÚstrip©Ú.0Úps   & r+   Ú	<genexpr>Úget_masters.<locals>.<genexpr>Z   s-   é € Ð|Ñm{ÐhiŸ™×*Ñ*Ó,×2Ñ2Ó4Ð8cÖcÓm{ùs   ‚79Fc              3   óL   "  € T F  qP                   ;'       g    ^ x € K  	  R# 5i)r   N)Úsr_nork   s   & r+   rn   ro   \   s   é € Ð;©N q—g‘g—l�l ”l«Nùs   ‚$™$)ÚdefaultzBattery Serial No.ÚALL©Úpart_idrq   rh   Úfuel_applicabilityÚ	is_active)ÚcheckpointsÚmovement_itemsÚqa_itemsÚmodelsÚhandover_parts)Úexecuter
   r   Úwhererw   Úorder_byÚsequence_noÚscalarsÚallr   r   r   Úmodel_numberr   rq   ÚanyÚmaxÚuuidÚuuid4ÚaddÚcommitr"   rd   )	rc   rx   ry   rz   r{   r|   Úhas_battery_snÚmax_srÚbattery_parts	   &        r+   Úget_mastersr�   C   sÏ  é € ØŸ™ÜÔ#Ó$×*Ñ*Ô+?×+IÑ+IÈTÑ+QÓRß	‰Ô&×2Ñ2Ó	3ó÷ ÷ �wƒy—‘“ð ð ŸJ™JÜÔ*Ó+×1Ñ1Ô2M×2WÑ2WÐ[_Ñ2_Ó`ß	‰Ô-×9Ñ9Ó	:ó÷ ÷ �wƒy—‘“ð ð —j‘jÜÔ(Ó)×/Ñ/Ô0I×0SÑ0SÐW[Ñ0[Ó\ß	‰Ô+×7Ñ7Ó	8ó÷ ÷ �wƒy—‘“ð ð —J‘JÜÔ!Ó"×(Ñ(Ô);×)EÑ)EÈÑ)MÓNß	‰Ô$×1Ñ1Ó	2ó÷ ÷ �wƒy—‘“ð ð ŸJ™JÜÔ&Ó'×-Ñ-Ô.E×.OÑ.OÐSWÑ.WÓXß	‰Ô)×/Ñ/Ó	0ó÷ ÷ �wƒy—‘“ð ÷ “SÑ|Ñm{Ó|—S—S’SÑ|Ñm{Ó|Ó|€NßÜÑ;©NÓ;ÀQÔGˆÜ.Ü—J’J“LØ˜1•*Ø*Ø$Øô
ˆð 	�‰ˆ|ÔØ�i‰i‹k×ÐØ "§
¡
ÜÔ*Ó+×1Ñ1Ô2I×2SÑ2SÐW[Ñ2[Ó\ß‰XÔ-×3Ñ3Ó4ó!
÷ 
÷ ‰7‹9—S‘S“Uð 	ô
 ×!Ò!ØÈØôð òOòòòòñ" 	ñ
ùs–   ‚AOÁ!N9Á"A>OÃ N<Ã!A>OÅN?Å A>OÇOÇA>OÉOÉ*OÊ	OÊOÊ:A"OÌOÌA"OÍ?O
Î :OÎ<OÎ?OÏOÏOÏOÏ
Oc                ó>   € V ^8„  d   QhR\         R\        R,          /# )r%   rc   ÚstatusN)r   r)   )r*   s   "r+   r,   r,   q   s"   € ÷ !Uñ !Uœ<ð !U´°tµñ !Ur-   c              ƒ   óÌ  "  € ^ RI HpHp ^ RIHp \        \        P                  \        P                  \        P                  \        P                  \        P                  \        P                  \        P                  \        P                  \        P                  \        P                   \        P"                  \$        P&                  P)                  R4      \*        P,                  P)                  R4      \.        P0                  P)                  R4      VP0                  P)                  R4      \2        P0                  P)                  R4      \4        P6                  ! \4        P8                  ! VP:                  4      4      P)                  R4      \4        P6                  ! \4        P8                  ! VP<                  4      4      P)                  R	4      4      P?                  \*        \        P@                  \*        P@                  8H  4      P?                  \$        \        PB                  \$        PD                  8H  4      P?                  \.        \        PF                  \.        PH                  8H  4      P?                  V\        PJ                  VPJ                  8H  4      P?                  \2        \        PL                  \2        PL                  8H  4      P?                  V\        P                  VP                  8H  4      P?                  V\        P                  VP                  8H  4      PO                  \        P                  \$        P&                  \*        P,                  \.        P0                  VP0                  \2        P0                  4      PQ                  \        P                  PS                  4       \        PT                  PS                  4       4      pV'       d#   VPW                  \        P                  V8H  4      pV PY                  V4      G R
j  x€L
 pVP[                  4       P]                  4        Uu. uF"  p\^        P`                  ! R/ \c        V4      B NK$  	  up#  LOu upi 5i)r   ©ÚCustomerSuppliedPartÚChassisArrivalDocument)ÚClientMasterÚcurrent_station_nameÚ
model_nameÚdealer_nameÚclient_nameÚtransport_nameÚ	csp_countÚ	doc_countNr;   )2Úapp.models.yard_modelsr’   r“   Úapp.models.sales_modelsr”   r
   r   Ú
chassis_idÚ
chassis_nor&   Úyard_locationÚarrival_dateÚarrival_remarkÚda_lite_statusÚda_lite_photo_urlÚcurrent_statusÚtracking_statusÚstation_completed_atr    Ústation_nameÚlabelr   rƒ   r   Únamer   r   ÚcountÚdistinctÚcsp_idÚdoc_idÚ	outerjoinÚmodel_idÚcurrent_station_idÚ
station_idÚ	dealer_idÚcustomer_idÚ	client_idÚtransport_idÚgroup_byr   ÚdescÚ
created_atr~   r}   Úmappingsr‚   r"   ÚChassisListItemÚdict)rc   r�   r’   r“   r”   ÚstmtÚresultÚrows   &&      r+   Úlist_chassisrÀ   q   s  é € ßSÝ4äÜ×$Ñ$¤m×&>Ñ&>Ä×@WÑ@WÜ×'Ñ'Ü×&Ñ&¬×(DÑ(DÄm×FbÑFbÔdq÷  eDñ  eDô  FS÷  Fbñ  FbÜ×)Ñ)Ü×.Ñ.Ü×&Ñ&×,Ñ,Ð-CÓDÜ×+Ñ+×1Ñ1°,Ó?Ü×Ñ×%Ñ% mÓ4Ø×Ñ×#Ñ# MÓ2Ü× Ñ ×&Ñ&Ð'7Ó8Ü�JŠJ”t—}’}Ð%9×%@Ñ%@ÓAÓB×HÑHÈÓUÜ�JŠJ”t—}’}Ð%;×%BÑ%BÓCÓD×JÑJÈ;ÓWó	
÷ 
‰Ô%¤}×'=Ñ'=ÔAS×A\ÑA\Ñ'\Ó	]ß	‰”=¤-×"BÑ"BÄm×F^ÑF^Ñ"^Ó	_ß	‰”>¤=×#:Ñ#:¼n×>XÑ>XÑ#XÓ	Yß	‰�<¤×!8Ñ!8¸L×<RÑ<RÑ!RÓ	Sß	‰”?¤M×$>Ñ$>Ä/×B^ÑB^Ñ$^Ó	_ß	‰Ð'¬×)AÑ)AÐEY×EdÑEdÑ)dÓ	eß	‰Ð)¬=×+CÑ+CÐG]×GhÑGhÑ+hÓ	iß	‰Ü×$Ñ$¤m×&@Ñ&@ÔBT×BaÑBaÔcq×cvÑcvð  yE÷  yJñ  yJô  L[÷  L`ñ  L`ó

÷ 
‰”-×,Ñ,×1Ñ1Ó3´]×5MÑ5M×5RÑ5RÓ5TÓ	Uð3 	÷6 Ø�z‰zœ-×6Ñ6¸&Ñ@ÓAˆØ—:‘:˜dÓ#×#€FØ<B¿O¹OÓ<M×<QÑ<QÔ<SÓTÑ<S°SŒG×#Ò#Ñ0¤d¨3£iÔ0Ñ<SÑTÐTñ $ùÚTùs$   ‚PQ$ÐQÐ$Q$Ð2(QÑQ$ÑQ$c                óp   € V ^8„  d   QhR\         R\        P                  R\        P                  R\
        /# ©r%   rc   ÚpayloadÚuser_idr'   )r   r"   ÚChassisCreater†   ÚUUIDr   )r*   s   "r+   r,   r,   •   s6   € ÷ 1ñ 1œ\ð 1´G×4IÑ4Ið 1ÔTX×T]ÑT]ð 1Ôboñ 1r-   c           
   ƒ   ó4  "  € VP                   ;'       g    R P                  4       P                  4       pV'       g   \        RRR7      h\	        V4      ^8w  g   VP                  4       '       g   \        RRR7      hV P                  \        \        4      P                  \        P                  ! \        P                   4      VP                  4       8H  4      4      G Rj  x€L
 P                  4       pV'       d   \        RRR7      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P0                  bRVP2                  bRVP4                  bRVP6                  bRRbRVb pV P9                  V4       V P;                  4       G Rj  x€L
  \=        \        P                  ! 4       VP>                  RRVRRR7      pV P9                  V4       V PA                  4       G Rj  x€L
  V PC                  V4      G Rj  x€L
  \E        VP                   4      Vn"        V#  EL¯ L” L> L'5i)r/   é�  zChassis number is required©Ústatus_codeÚdetailz8Chassis number must be exactly 6 alphanumeric charactersNz/Chassis with this number is already in the yardrž   rŸ   r°   r&   Ú
light_typeÚvoltager    r¶   r³   rµ   Úsource_typeÚbuild_order_idÚfuel_receiving_qtyr¡   Úremarksr¦   rJ   Ú
created_byÚYARDzChassis Inward Received©Úlog_idrž   Úfrom_statusÚ	to_statusÚ
changed_byÚscan_locationrÑ   r;   )#rŸ   rj   r3   r	   ÚlenÚisalnumr}   r
   r   r~   r   ri   Úscalar_one_or_noner†   r‡   r°   r&   rÌ   rÍ   r    r¶   r³   rµ   rÎ   rÏ   rÐ   r¡   rÑ   rˆ   Úflushr   rž   r‰   Úrefreshr4   )rc   rÃ   rÄ   rŸ   ÚexistingÚchassisÚ
status_logs   &&&    r+   Úcreate_chassisrâ   •   sf  é € Ø×$Ñ$×*Ð*¨×1Ñ1Ó3×9Ñ9Ó;€JßÜ¨Ð4PÔQÐQÜ
ˆ:ƒ˜!Ô :×#5Ñ#5×#7Ò#7Ü¨Ð4nÔoÐoà—j‘jÜŒ}Ó×#Ñ#¤D§J¢J¬}×/GÑ/GÓ$HÈJ×L\ÑL\ÓL^Ñ$^Ó_ó÷ çÑÓð ÷ Ü¨Ð4eÔfÐfäò Ü—:’:”<ðáðð ×!Ò!ðð ×#Ò#ð	ð
 ×%Ò%ðð —’ðð ×+Ò+ðð ×)Ò)ðð ×#Ò#ðð ×#Ò#ðð ×'Ò'ðð ×-Ò-ðð #×5Ò5ðð ×)Ò)ðð —’ðñ  %ð!ñ" ð#€Gð& ‡F�Fˆ7„OØ
�(‰(‹*×Ðä!Ü�zŠz‹|Ø×%Ñ%ØØØØØ)ô€Jð ‡F�Fˆ:Ôà
�)‰)‹+×ÐØ
�*‰*�WÓ
×ÐÜ)¨'×*;Ñ*;Ó<€GÔØ€NòUñ4 ñ Ùùs[   ‚:J½2JÁ0A0JÃ JÃ!JÃ;DJÇ=JÇ>AJÉJÉJÉ.JÉ/!JÊJÊJÊJc                ó„   € V ^8„  d   QhR\         R\        P                  R\        P                  R\        P
                  /# ©r%   rc   rž   rÃ   r'   )r   r†   rÆ   r"   ÚUpdateArrivalRequestÚ
ChassisOut)r*   s   "r+   r,   r,   É   s9   € ÷ ñ œ\ð ´t·y±yð Ì7×KgÑKgð Ôls×l~Ñl~ñ r-   c              ƒ   ó˜  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RRR7      hVP                  Vn        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                  4      Vn	        V#  L§ L; L$5i©Né”  úChassis not foundrÉ   )Úgetr   r	   r¡   Úremarkr¢   r    r‰   rÞ   r4   r&   )rc   rž   rÃ   rà   s   &&& r+   Úupdate_arrivalrí   É   s£   é € Ø—F‘Fœ=¨*Ó5×5€GßÜ¨Ð4GÔHÐHà"×/Ñ/€GÔØ$Ÿ^™^€GÔØ×ÑÒ(Ø '× 5Ñ 5ˆÔà
�)‰)‹+×ÐØ
�*‰*�WÓ
×ÐÜ)¨'×*;Ñ*;Ó<€GÔØ€Nñ 6ñ Ùùs9   ‚C
œC�C
©A!C
Â
CÂC
Â#CÂ$!C
ÃC
ÃC
c                óP   € V ^8„  d   QhR\         R\        P                  R\        /# )r%   rc   rž   r'   )r   r†   rÆ   r¼   )r*   s   "r+   r,   r,   Ù   s%   € ÷ 8ñ 8¤ð 8¼4¿9¹9ð 8Ìñ 8r-   c              ƒ   ó,	  "  € ^ RI HpHp V P                  \        V4      G Rj  x€L
 pV'       g   \        RRR7      h\        VP                  4      Vn        VP                  '       dn   V P                  \        \        P                  4      P                  \        P                  VP                  8H  4      4      G Rj  x€L
 P                  4       Vn        V P                  \        \         4      P                  \         P"                  V8H  4      4      G Rj  x€L
 P%                  4       P'                  4       pV P                  \        \(        4      P                  \(        P"                  V8H  4      P+                  \(        P,                  4      4      G Rj  x€L
 P%                  4       P'                  4       pV P                  \        \.        4      P                  \.        P"                  V8H  4      4      G Rj  x€L
 P                  4       pV'       Edp   V P                  \        \0        4      P                  \0        P2                  VP2                  8H  4      4      G Rj  x€L
 P%                  4       P'                  4       Vn        VP6                  '       dn   V P                  \        \8        P:                  4      P                  \8        P<                  VP6                  8H  4      4      G Rj  x€L
 P                  4       Vn        VP@                  '       dn   V P                  \        \8        P:                  4      P                  \8        P<                  VP@                  8H  4      4      G Rj  x€L
 P                  4       Vn!        V P                  \        V4      P                  VP"                  V8H  4      P+                  VP,                  4      4      G Rj  x€L
 P%                  4       P'                  4       pV P                  \        V4      P                  VP"                  V8H  4      P+                  VP,                  4      4      G Rj  x€L
 P%                  4       P'                  4       p	RVRVRVR	VR
VRV	/#  ELT EL¼ ELf ELê EL‹ EL' EL� EL! L¹ LH5i)r   r‘   Nré   rê   rÉ   rà   Ú
qa_resultsÚ	movementsÚstore_handoverÚ	documentsÚcsp)"rœ   r’   r“   rë   r   r	   r4   r&   r°   r}   r
   r   rƒ   r~   rÜ   r–   r   rž   r�   r‚   r   r   r¹   r   r   Úhandover_idÚpartsÚstore_manager_approved_byr!   rª   rÄ   Ústore_manager_approved_by_nameÚyard_supervisor_approved_byÚ yard_supervisor_approved_by_name)
rc   rž   r’   r“   rà   rð   rñ   Úhandoverró   Úcspss
   &&        r+   Úget_chassis_detailrý   Ù   sŸ  é € ßSØ—F‘Fœ=¨*Ó5×5€GßÜ¨Ð4GÔHÐHä)¨'×*;Ñ*;Ó<€GÔØ××ÐØ$&§J¡JÜÔ%×2Ñ2Ó3×9Ñ9Ô:L×:UÑ:UÐY`×YiÑYiÑ:iÓjó%
÷ 
çÑÓð 	Ôð Ÿ
™
ÜÔ'Ó(×.Ñ.Ô/G×/RÑ/RÐV`Ñ/`Óaó÷ ç�wƒy—‘“ð ð —z‘zÜÔ!Ó"×(Ñ(Ô);×)FÑ)FÈ*Ñ)TÓUß	‰Ô$×/Ñ/Ó	0ó÷ ÷ �wƒy—‘“ð ð
 —j‘jÜÔ#Ó$×*Ñ*Ô+?×+JÑ+JÈjÑ+XÓYó÷ çÑÓð ÷ €xØ "§
¡
ÜÔ+Ó,×2Ñ2Ô3K×3WÑ3WÐ[c×[oÑ[oÑ3oÓpó!
÷ 
ç‰7‹9—S‘S“Uð 	Œð
 ×-×-Ð-Ø=?¿Z¹ZÜ”z—‘Ó'×-Ñ-¬j×.@Ñ.@ÀH×DfÑDfÑ.fÓgó>÷ 8ç!Ñ!Ó#ð Ô3ð ×/×/Ð/Ø?A¿z¹zÜ”z—‘Ó'×-Ñ-¬j×.@Ñ.@ÀH×DhÑDhÑ.hÓió@÷ :ç!Ñ!Ó#ð Ô5ð —z‘zÜÐ%Ó&×,Ñ,Ð-C×-NÑ-NÐR\Ñ-\Ó]×fÑfÐg}÷  hIñ  hIó  	Jó÷ ç�wƒy—‘“ð ð —*‘*ÜÐ#Ó$×*Ñ*Ð+?×+JÑ+JÈjÑ+XÓY×bÑbÐcw÷  dCñ  dCó  	Dó÷ ç�wƒy—‘“ð 	ð
 	�7Ø�jØ�YØ˜(Ø�YØˆtðð ò_ 6ò
òòò
ò

ò8ò
:ññùsÑ   ‚"R¤Q8¥R±BRÂ?Q;Ã ARÄQ>ÄA>RÆRÆA!RÇ9RÇ:RÈARÉ RÉ!6RÊARË-R
Ë.(RÌARÍ,RÍ-A)RÏRÏA2RÑ	RÑ
/RÑ;RÑ>RÒRÒRÒRÒ
RÒRÒRÒRc                ó¾   € V ^8„  d   QhR\         R\        P                  R\        R,          R\        R,          R\        P                  R\        R,          R\        /# )	r%   rc   rž   r�   NÚda_lite_remarksrÄ   r¤   r'   )r   r†   rÆ   r)   r   )r*   s   "r+   r,   r,     sj   € ÷ ñ ÜðÜ"&§)¡)ðÜ58¸4µZðÜRUÐX\ÕR\ðÜgk×gpÑgpðô FIð  LPõ  FPðäñr-   c              ƒ   óÔ  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RRR7      hV'       d:   VP                  4       P	                  4       pVR9  d   \        RRR7      hW&n        MVP
                  '       g   RVn        Ve   W6n        VeH   VP                  '       d   VP                  R9   d   WVn	        MWVn        VP                  R9   d   WVn	        \        P                  ! \        P                  4      Vn        WFn        V P!                  4       G R j  x€L
  V P#                  V4      G R j  x€L
  \%        VP&                  4      Vn        V#  ELE L< L%5i)	Nré   rê   rÉ   ÚOKrÈ   z+da_lite_status must be OK, HOLD, or PENDING)r  ÚHOLDÚPENDING)rK   rL   rM   )rë   r   r	   r3   rj   r£   rÿ   r¤   r¦   Údispatch_photo_urlr   Únowr   rD   Úda_lite_checked_atÚda_lite_checked_byr‰   rÞ   r4   r&   )rc   rž   r�   rÿ   rÄ   r¤   rà   s   &&&&&& r+   Úupdate_da_liter    s!  é € ð —F‘Fœ=¨*Ó5×5€GßÜ¨Ð4GÔHÐHßØ—‘“×%Ñ%Ó'ˆØÐ2Ô2Ü¨CÐ8eÔfÐfØ!'ÕØ×#×#Ð#Ø!%ˆÔàÒ"Ø"1ÔàÒ$Ø×$×$Ð$¨×)@Ñ)@ÐDoÔ)oØ):Õ&à(9Ô%Ø×&Ñ&Ð*UÔUØ->Ô*Ü!)§¢¬h¯l©lÓ!;€GÔØ!(ÔØ
�)‰)‹+×ÐØ
�*‰*�WÓ
×ÐÜ)¨'×*;Ñ*;Ó<€GÔØ€Nò5 6ñ. ÙùsK   ‚E(œE!�E(©E(¾A
E(Â	&E(Â0A7E(Ä'E$Ä(E(Å E&Å!E(Å$E(Å&E(c                óp   € V ^8„  d   QhR\         R\        P                  R\        P                  R\        /# ©r%   rc   rž   rÄ   r'   ©r   r†   rÆ   r   )r*   s   "r+   r,   r,   4  s4   € ÷ ñ ÜðÜ"&§)¡)ðÜ6:·i±iðäñr-   c              ƒ   ó  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RRR7      hVP                  0pVP                  VP                  8X  d   R Vn        R Vn        \
        P                  ! \        P                  4      Vn	        W#n
        V P                  4       G R j  x€L
  V F  p\        V4       K  	  V P                  V4      G R j  x€L
  \        VP                  4      Vn        V#  Lß LO L$5irè   )rë   r   r	   r¤   r  r   r  r   rD   r  r  r‰   r`   rÞ   r4   r&   )rc   rž   rÄ   rà   Ú
photo_urlsÚ	photo_urls   &&&   r+   Údelete_da_lite_photor  4  sÒ   é € ð —F‘Fœ=¨*Ó5×5€GßÜ¨Ð4GÔHÐHà×+Ñ+Ð,€JØ×!Ñ! W×%>Ñ%>Ô>Ø%)ˆÔ"Ø $€GÔÜ!)§¢¬h¯l©lÓ!;€GÔØ!(ÔØ
�)‰)‹+×ÐÛˆ	Ü˜9Ö%ñ  à
�*‰*�WÓ
×ÐÜ)¨'×*;Ñ*;Ó<€GÔØ€Nñ 6ñ ñ ùs9   ‚DœC<�D©BDÂ.C>Â/,DÃD Ã!DÃ>DÄ Dc                óz   € V ^8„  d   QhR\         R\        P                  R\        \        P
                  ,          /# )r%   rc   rž   Úentries)r   r†   rÆ   Úlistr"   ÚQaChecklistEntry)r*   s   "r+   r,   r,   I  s2   € ÷ +ñ +¤,ð +¼D¿I¹Ið +ÔPTÔU\×UmÑUmÕPnñ +r-   c              ƒ   ó@  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RRR7      hV EF3  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^ ,          MR p\        V4      ^8”  d*   VR,           F  pV P                  V4      G R j  x€L
  K  	  Vf<   \        \        P                  ! 4       WP                  R7      pV P                  V4       R
 F   p\!        WH4      p	V	f   K  \#        WhV	4       K"  	  EK6  	  V P                  \	        \$        P&                  ! \(        P                  4      4      P                  \(        P*                  R8H  4      4      G R j  x€L
 P-                  4       p
V P/                  4       G R j  x€L
  V P                  \	        \$        P&                  ! \
        P0                  4      4      P                  \
        P                  V8H  \3        \
        P4                  P7                  R 4      \9        \
        P:                  P7                  R 4      \
        P:                  R8g  4      4      4      4      G R j  x€L
 P-                  4       pVP<                  R8X  d   V
^ 8”  d   Wº8¼  d   R	Vn        V P?                  4       G R j  x€L
  R #  ELï ELu EL ELE EL" L` L5i)Nré   rê   rÉ   :é   NN)Ú	result_idrž   Úitem_idTr/   ÚYARD_PENDING_CHECKÚYARD_CHECKED)
Úyard_okÚyard_remarkÚbhagirath_okÚbhagirath_remarkÚfvi_okÚ
fvi_remarkÚfvi_rework_okÚfvi_rework_remarkÚfvi_rework_pending_okÚfvi_rework_pending_remark) rë   r   r	   r}   r
   r   r~   rž   r  r�   r‚   rÚ   Údeleter†   r‡   rˆ   ÚgetattrÚsetattrr   r«   r   rw   Ú
scalar_onerÝ   r  r   r  Úisnotr   r  r¥   r‰   )rc   rž   r  rà   ÚentryÚrowsr¿   Ú	extra_rowÚfieldÚvalueÚtotal_itemsÚfilleds   &&&         r+   Úupsert_qa_checklistr0  I  s  é € Ø—F‘Fœ=¨*Ó5×5€GßÜ¨Ð4GÔHÐHäˆØ—j‘jÜÔ+Ó,×2Ñ2Ü(×3Ñ3°zÑAÜ(×0Ñ0°E·M±MÑAóó
÷ 
÷
 ‰7‹9—S‘S“Uð 	÷ ˆd�1Žg 4ˆÜˆt‹9�qŒ=Ø! "ŸX˜X�	Ø—i‘i 	Ó*×*Ò*ñ &ð Š;Ü*´T·Z²Z³\Èj×boÑboÔpˆCØ�F‰F�3ŒKó
ˆEô ˜EÓ)ˆEØÔ Ü˜ EÖ*ô
ñ ð0 Ÿ™¤F¬4¯:ª:Ô6O×6WÑ6WÓ+XÓ$Y×$_Ñ$_Ô`y÷  aDñ  aDð  HLñ  aLó  %Mó  N÷  N÷  Zñ  Zó  \€KØ
�(‰(‹*×ÐØ—J‘JÜŒt�zŠzÔ2×<Ñ<Ó=Ó>×DÑDÜ$×/Ñ/°:Ñ=ÜÜ(×0Ñ0×6Ñ6°tÓ<ÜÔ-×9Ñ9×?Ñ?ÀÓEÔG_×GkÑGkÐoqÑGqÓróó	
ó÷ ÷ �zƒ|ð ð ×ÑÐ!5Ô5¸+È¼/ÈfÔNcØ!/ˆÔà
�)‰)‹+×ÒòU 6ò

ò +ò NÚññ ùs‘   ‚LœL�L©A0LÂLÂ'LÃ;LÃ=LÃ>ALÅA4LÇLÇ%LÇ5LÇ6CLÊ9LÊ:A
LÌLÌLÌLÌLÌLÌLÌLÌLc                óp   € V ^8„  d   QhR\         R\        P                  R\        P                  R\
        /# rä   )r   r†   rÆ   r"   ÚMovementLogCreater   )r*   s   "r+   r,   r,   w  s3   € ÷ ñ œ|ð ¼¿¹ð ÌW×MfÑMfð Ôk}ñ r-   c              ƒ   ó(  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RRR7      h\        P                  ! 4       p\        \        P                  ! 4       VVP                  VP                  VP                  4       VP                  4       VP                  VP                  VP                  R7	      pV P                  V4       V P!                  4       G R j  x€L
  VP"                   F]  pV P                  \%        \        P                  ! 4       VP&                  VP(                  VP*                  VP,                  R7      4       K_  	  V P/                  4       G R j  x€L
  V P1                  V4      G R j  x€L
  V#  ELm L§ L$ L5i)Nré   rê   rÉ   )	Úmovement_idrž   Úcheckpoint_idÚresponsible_personÚmovement_dateÚin_timeÚfuel_qtyrì   Úsignature_name)r  r4  r  Úis_okÚ
value_text)rë   r   r	   r   r  r   r†   r‡   r5  r6  r   Útimer9  rì   r:  rˆ   rÝ   Úchecklist_itemsr   r4  r  r;  r<  r‰   rÞ   )rc   rž   rÃ   rà   r  Ú	log_entryÚitems   &&&    r+   Úadd_movement_logrA  w  s'  é € Ø—F‘Fœ=¨*Ó5×5€GßÜ¨Ð4GÔHÐHä
�,Š,‹.€CÜ"Ü—J’J“LØØ×+Ñ+Ø"×5Ñ5Ø—h‘h“jØ—‘“
Ø×!Ñ!Ø�~‰~Ø×-Ñ-ô
€Ið ‡F�Fˆ9ÔØ
�(‰(‹*×Ðà×'Ô'ˆØ
�‰Ô-Ü—j’j“l°	×0EÑ0EØ—L‘L¨¯
©
¸t¿¹ô
ö 	ñ (ð �)‰)‹+×ÐØ
�*‰*�YÓ
×ÐØÐò7 6ñ" ñ ÙùsL   ‚FœF	�F©B;FÃ$FÃ%BFÅ)FÅ*FÆFÆFÆFÆFÆFc                óp   € V ^8„  d   QhR\         R\        P                  R\        P                  R\
        /# rä   )r   r†   rÆ   r"   ÚStoreHandoverUpdater   )r*   s   "r+   r,   r,   –  s8   € ÷ #ñ #¤Lð #¼d¿i¹ið #ÔRY×RmÑRmð #ô  sGñ #r-   c              ƒ   ó€  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RRR7      hV P                  \	        \
        4      P                  \
        P                  V8H  4      4      G R j  x€L
 P                  4       pVf2   \        \        P                  ! 4       VR7      pV P                  V4       VP                  R0R7      pVP                  4        F  w  rg\        WFV4       K  	  V P                  4       G R j  x€L
  VP                    Fé  pV P                  \	        \"        4      P                  \"        P$                  VP$                  8H  \"        P&                  VP&                  8H  4      4      G R j  x€L
 P                  4       p	V	fG   \#        \        P                  ! 4       VP$                  VP&                  R7      p	V P                  V	4       VP(                  V	n        VP*                  V	n        Kë  	  V P-                  4       G R j  x€L
  V P/                  V4      G R j  x€L
  V P                  \	        \"        4      P                  \"        P$                  VP$                  8H  4      4      G R j  x€L
 P1                  4       P3                  4       Vn        V#  EL� EL8 EL¨ EL0 Lœ L… L75i)Nré   rê   rÉ   )rõ   rž   rö   )Úexclude)r  rõ   ru   )rë   r   r	   r}   r
   r   r~   rž   rÜ   r†   r‡   rˆ   Ú
model_dumpÚitemsr&  rÝ   rö   r   rõ   ru   r�   Úqtyr‰   rÞ   r�   r‚   )
rc   rž   rÃ   rà   rû   Úheader_fieldsr,  r-  Úpartr¿   s
   &&&       r+   Úupsert_store_handoverrK  –  s  é € Ø—F‘Fœ=¨*Ó5×5€GßÜ¨Ð4GÔHÐHà—j‘jÜÔ#Ó$×*Ñ*Ô+?×+JÑ+JÈjÑ+XÓYó÷ çÑÓð ð ÒÜ'´D·J²J³LÈZÔXˆØ
�‰ˆxÔà×&Ñ&°¨yÐ&Ó9€MØ%×+Ñ+Ö-‰ˆÜ� Ö'ñ .à
�(‰(‹*×Ðà—”ˆØ—Z‘ZÜÔ+Ó,×2Ñ2Ü(×4Ñ4¸×8LÑ8LÑLÜ(×0Ñ0°D·L±LÑ@óó
÷ 
÷
 ÑÓð 	ð Š;Ü*´T·Z²Z³\Èx×OcÑOcÐmq×myÑmyÔzˆCØ�F‰F�3ŒKØ—[‘[ˆŒ
Ø—(‘(ˆŽñ ð �)‰)‹+×ÐØ
�*‰*�XÓ
×ÐØŸJ™JÜÔ'Ó(×.Ñ.Ô/G×/SÑ/SÐW_×WkÑWkÑ/kÓló÷ ç�wƒy—‘“ð „Nð €OòE 6òò ò
ñ Ùñùs…   ‚J>œJ,�J>©AJ>Á7J/Á8BJ>Ä
J2ÄA:J>ÆJ5ÆBJ>ÈJ8ÈJ>È4J:È5AJ>ÊJ<Ê(J>Ê/J>Ê2J>Ê5J>Ê8J>Ê:J>Ê<J>c          
      ó|   € V ^8„  d   QhR\         R\        P                  R\        R\        P                  R\        /# )r%   rc   rž   ÚrolerÄ   r'   )r   r†   rÆ   r)   r¼   )r*   s   "r+   r,   r,   ¼  s<   € ÷ 0ñ 0¤\ð 0¼t¿y¹yð 0ÔPSð 0Ô^b×^gÑ^gð 0Ôlpñ 0r-   c              ƒ   ó  "  € V P                  \        \        4      P                  \        P                  V8H  4      4      G R j  x€L
 P                  4       pV'       g   \        RRR7      h\        P                  ! \        P                  4      pVR8X  d   W4n        WTn        MAVR8X  d   W4n        WTn        M-VR
9   d   W4n        WTn        W4n        WTn        M\        RRR7      hV P                  4       G R j  x€L
  RR	/#  L¼ L
5i)Nré   zRStore handover not found for this chassis. Please save the handover details first.rÉ   ÚYARD_SUPERVISORÚ	STORE_MGRrÈ   zInvalid approval role.ÚmessagezApproved successfully©ÚADMINÚCLIENT_ADMIN)r}   r
   r   r~   rž   rÜ   r	   r   r  r   rD   rù   Úyard_supervisor_approved_atr÷   Ústore_manager_approved_atr‰   )rc   rž   rM  rÄ   rû   r  s   &&&&  r+   Úapprove_store_handoverrW  ¼  sð   é € Ø—j‘j¤Ô(<Ó!=×!CÑ!CÔDX×DcÑDcÐgqÑDqÓ!rÓs×s÷  Hñ  Hó  J€HßÜ¨ð  5Iô  Jð  	Jä
�,Š,”x—|‘|Ó
$€CØÐ Ô Ø/6Ô,Ø/2Õ,Ø	�Ô	Ø-4Ô*Ø-0Õ*Ø	Ð*Ô	*Ø/6Ô,Ø/2Ô,Ø-4Ô*Ø-0Õ*ä¨Ð4LÔMÐMà
�)‰)‹+×ÐØÐ.Ð/Ð/ñ) tñ& ùs+   ‚ADÁDÁDÁBDÃ8DÃ9	DÄDc                ó<   € V ^8„  d   QhR\         R\        R\        /# ©r%   rc   Úuserr'   ©r   r!   r¼   )r*   s   "r+   r,   r,   Ô  s!   € ÷ #3ñ #3¬,ð #3¼jð #3ÌTñ #3r-   c           	   ƒ   ó`  "  € VP                   pV'       g   R ^ R. /# VP                  4       p\        \        P                  \
        P                  \
        P                  \
        P                  \        P                  P                  R4      4      P                  \
        \        P                  \
        P                  8H  4      P                  \        \
        P                  \        P                  8H  4      pVR8X  d0   VP                  \        P                   P#                  R4      4      pMœVR9   d0   VP                  \        P$                  P#                  R4      4      pMfVR9   dZ   ^ RIHp VP                  V! \        P                   P#                  R4      \        P$                  P#                  R4      4      4      pMR ^ R. /# V P+                  V4      G Rj  x€L
 pVP-                  4       P/                  4        Uu. uF  p\1        V4      NK  	  ppR \3        V4      RV/#  LIu upi 5i)r«   Ú	handoversr–   rO  N©r   ©rP  ÚSTORE_KEEPERrR  )Ú	role_coder3   r
   r   rž   r   rŸ   r¡   r&   r   rƒ   r©   rX   r¯   r°   r~   rU  Úis_rV  Ú
sqlalchemyr   r}   rº   r‚   r¼   rÚ   ©rc   rZ  rM  r½   r   r¾   Úrr*  s   &&      r+   Úget_pending_store_handoversrf  Ô  s¶  é € Ø�>‰>€DßØ˜˜K¨Ð,Ð,à�:‰:‹<€Dô 	Ü ×+Ñ+Ü×$Ñ$Ü×&Ñ&Ü×#Ñ#Ü×+Ñ+×1Ñ1°,Ó?ó	
÷ 
‰ŒmÔ1×<Ñ<Ä×@XÑ@XÑXÓ	Yß	‰Ô%¤}×'=Ñ'=ÔAS×A\ÑA\Ñ'\Ó	]ð 	ð Ð Ô Ø�z‰zÔ.×JÑJ×NÑNÈtÓTÓU‰Ø	Ð.Ô	.Ø�z‰zÔ.×HÑH×LÑLÈTÓRÓS‰Ø	Ð*Ô	*Ý"Ø�z‰zÙÜ$×@Ñ@×DÑDÀTÓJÜ$×>Ñ>×BÑBÀ4ÓHóó
‰ð ˜˜K¨Ð,Ð,à—:‘:˜dÓ#×#€FØ#Ÿ_™_Ó.×2Ñ2Ô4Ó5Ñ4˜ŒD�ŽGÑ4€DÐ5Ø”S˜“Y ¨TÐ2Ð2ñ $ùÚ5ùs$   ‚GH.ÇH'Ç$H.ÈH)ÈH.È)H.c                ó<   € V ^8„  d   QhR\         R\        R\        /# rY  r[  )r*   s   "r+   r,   r,   ú  s!   € ÷ '3ñ '3¬,ð '3¼jð '3ÌTñ '3r-   c           	   ƒ   ó  "  € VP                   pV'       g   R ^ R. /# VP                  4       p\        \        P                  \
        P                  \
        P                  \
        P                  \        P                  P                  R4      \        P                  \        P                  4      P                  \
        \        P                  \
        P                  8H  4      P                  \        \
        P                   \        P                   8H  4      pVR8X  d.   VP#                  \        P$                  VP&                  8H  4      pM–VR9   d.   VP#                  \        P(                  VP&                  8H  4      pMbVR9   dV   ^ RIHp VP#                  V! \        P$                  VP&                  8H  \        P(                  VP&                  8H  4      4      pMR ^ R. /# VP/                  \        P0                  P3                  4       P5                  4       4      pV P7                  V4      G Rj  x€L
 pVP9                  4       P;                  4        Uu. uF  p\=        V4      NK  	  ppR \?        V4      RV/#  LIu upi 5i)r«   r]  r–   rO  r^  Nr_  rR  ) ra  r3   r
   r   rž   r   rŸ   r¡   r&   r   rƒ   r©   rU  rV  rX   r¯   r°   r~   rù   rÄ   r÷   rc  r   r   Úhandover_dater¸   Ú	nullslastr}   rº   r‚   r¼   rÚ   rd  s   &&      r+   Úget_history_store_handoversrk  ú  sç  é € Ø�>‰>€DßØ˜˜K¨Ð,Ð,à�:‰:‹<€Dô 	Ü ×+Ñ+Ü×$Ñ$Ü×&Ñ&Ü×#Ñ#Ü×+Ñ+×1Ñ1°,Ó?Ü ×<Ñ<Ü ×:Ñ:ó	
÷ 
‰ŒmÔ1×<Ñ<Ä×@XÑ@XÑXÓ	Yß	‰Ô%¤}×'=Ñ'=ÔAS×A\ÑA\Ñ'\Ó	]ð 	ð Ð Ô Ø�z‰zÔ.×JÑJÈdÏlÉlÑZÓ[‰Ø	Ð.Ô	.Ø�z‰zÔ.×HÑHÈDÏLÉLÑXÓY‰Ø	Ð*Ô	*Ý"Ø�z‰zÙÜ$×@Ñ@ÀDÇLÁLÑPÜ$×>Ñ>À$Ç,Á,ÑNóó
‰ð ˜˜K¨Ð,Ð,à�=‰=Ô-×;Ñ;×@Ñ@ÓB×LÑLÓNÓO€Dà—:‘:˜dÓ#×#€FØ#Ÿ_™_Ó.×2Ñ2Ô4Ó5Ñ4˜ŒD�ŽGÑ4€DÐ5Ø”S˜“Y ¨TÐ2Ð2ñ $ùÚ5ùs$   ‚H,I?È.I8È/$I?ÉI:É'I?É:I?c                óp   € V ^8„  d   QhR\         R\        P                  R\        P                  R\        /# r
  r  )r*   s   "r+   r,   r,   $  s4   € ÷  ñ  ¤\ð  ¼t¿y¹yð  ÔSW×S\ÑS\ð  Ôanñ  r-   c              ƒ   óö  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RRR7      hVP                  R8X  d   \        RRR7      hVP                  R8X  d   \        RRR7      hVP                  '       g   \        RR	R7      hRVn        \
        P                  ! \        P                  4      Vn	        W#n
        V P                  \        \        4      P                  \        P                  V8H  \        P                   P#                  R 4      4      P%                  \        P&                  P)                  4       4      P+                  ^4      4      G R j  x€L
 P-                  4       pV'       d)   \
        P                  ! 4       P/                  4       Vn        V P1                  4       G R j  x€L
  V P3                  V4      G R j  x€L
  \5        VP6                  4      Vn        V#  ELÔ L’ L> L'5i)
Nré   rê   rÉ   ÚHANDED_TO_PRODUCTIONrÈ   z!Already handed over to productionr  z)Yard QA checklist is not fully filled yetzpDA-Lite receiving photo is mandatory before handing over to production. Please upload the receiving photo first.)rë   r   r	   r¥   r¤   r   r  r   rD   Úhanded_to_production_atÚhanded_to_production_byr}   r
   r   r~   rž   Úout_timerb  r   r¹   r¸   ÚlimitrÜ   r=  r‰   rÞ   r4   r&   )rc   rž   rÄ   rà   Úopen_legs   &&&  r+   Úhandover_to_productionrt  $  s‹  é € Ø—F‘Fœ=¨*Ó5×5€GßÜ¨Ð4GÔHÐHØ×ÑÐ!7Ô7Ü¨Ð4WÔXÐXØ×ÑÐ!5Ô5Ü¨Ð4_Ô`Ð`Ø×$×$Ð$ÜØð Fô
ð 	
ð
 4€GÔÜ&.§l¢l´8·<±<Ó&@€GÔ#Ø&-Ô#ð —j‘jÜÔ!Ó"ß	‰Ô!×,Ñ,°
Ñ:Ô<N×<WÑ<W×<[Ñ<[Ð\`Ó<aÓ	bß	‰Ô$×/Ñ/×4Ñ4Ó6Ó	7ß	‰ˆq‹ó	÷ ÷
 ÑÓð ÷ Ü$ŸLšL›N×/Ñ/Ó1ˆÔà
�)‰)‹+×ÐØ
�*‰*�WÓ
×ÐÜ)¨'×*;Ñ*;Ó<€GÔØ€Nò? 6ñ&ñ ÙùsX   ‚G9œG0�G9©AG9ÂCG9Å G3Å!G9Å;;G9Æ6G5Æ7G9ÇG7Ç!G9Ç3G9Ç5G9Ç7G9c                ó0   € V ^8„  d   QhR\         R\        /# )r%   rc   Úreport_date)r   r   )r*   s   "r+   r,   r,   G  s   € ÷ :ñ :œ<ð :´dñ :r-   c              ƒ   ó:  "  € \        \        P                  \        P                  P                  R 4      \        P                  \        P                  \        P                  \        P                  P                  R4      \        P                  P                  R4      \        P                  \        P                  P                  R4      \        P                  \        P                  4      P!                  \        \        P"                  \        P"                  8H  4      P!                  \        \        P$                  \        P&                  8H  4      P!                  \        \        P(                  \        P(                  8H  4      P+                  \        P,                  V8H  4      P/                  \        P0                  4      pV P3                  V4      G Rj  x€L
 pVP5                  4       P7                  4        Uu. uF  p\9        V4      NK  	  up#  L;u upi 5i)r–   Úfuel_receivingr—   r™   N)r
   r   rŸ   r   rƒ   r©   r&   rÌ   r    rÐ   r   rª   rÑ   r   r£   rÍ   r¯   r°   r³   r´   r¶   r~   r¡   r   r¹   r}   rº   r‚   r¼   )rc   rv  r½   r¾   r¿   s   &&   r+   Údaily_reportry  G  sf  é € äÜ×$Ñ$Ô&8×&EÑ&E×&KÑ&KÈLÓ&YÜ×#Ñ#¤]×%=Ñ%=Ü×'Ñ'Ü×,Ñ,×2Ñ2Ð3CÓDÜ×Ñ×%Ñ% mÓ4Ü×!Ñ!¤?×#7Ñ#7×#=Ñ#=Ð>NÓ#OÜ×(Ñ(¬-×*?Ñ*?ó	
÷ 
‰Ô%¤}×'=Ñ'=ÔAS×A\ÑA\Ñ'\Ó	]ß	‰”>¤=×#:Ñ#:¼n×>XÑ>XÑ#XÓ	Yß	‰”?¤M×$>Ñ$>Ä/×B^ÑB^Ñ$^Ó	_ß	‰Œ}×)Ñ)¨[Ñ8Ó	9ß	‰”-×*Ñ*Ó	+ð 	ð  —:‘:˜dÓ#×#€FØ!'§¡Ó!2×!6Ñ!6Ô!8Ó9Ñ!8˜#ŒD�ŽIÑ!8Ñ9Ð9ñ $ùÚ9ùs$   ‚GHÇHÇ$HÇ=HÈHÈHc                óH   € V ^8„  d   QhR\         R\        R\        R\        /# )r%   rc   ÚstartÚendr·   )r   r   r)   )r*   s   "r+   r,   r,   \  s(   € ÷ +ñ +œ\ð +´$ð +¼Tð +ÌSñ +r-   c           
   ƒ   ó¤  "  € R R RRRR/P                  VR 4      p\        P                  ! V\        P                  4      P                  R4      p\        V\        P                  ! \        P                  4      P                  R4      \        P                  ! 4       P                  \        P                  R8H  4      P                  R4      \        P                  ! 4       P                  \        P                  R8H  4      P                  R4      \        P                  ! 4       P                  \        P                  R	8H  4      P                  R
4      4      P                  \        P                  V8¬  \        P                  V8*  4      P                  V4      P                  V4      pV P                  V4      G Rj  x€L
 P!                  4       P#                  4       p\        \$        P                  4      P                  \'        \$        P(                  R8H  \+        \$        P,                  P/                  R4      \$        P,                  R8g  4      4      4      P1                  4       pV P                  V4      G Rj  x€L
 P#                  4        U	u0 uF  q™^ ,          kK  	  p
p	. pV EF  p	\3        V	4      p\        \        P                  4      P                  \        P                  ! V\        P                  4      VR,          8H  4      pV P                  V4      G Rj  x€L
 P#                  4        Uu0 uF  qî^ ,          kK  	  pp\5        Wú,          4      pVR,          ;'       g    ^ pVVR&   VV,
          VR&   V'       d"   \7        VR,          V,          ^d,          ^4      MRVR&   VP9                  V4       EK  	  V#  EL ELJu up	i  L­u upi 5i)ÚdayÚweekÚmonthÚperiodÚtotal_inwardedr  Ú
da_lite_okr  Úda_lite_holdrn  Úhanded_to_productionNFr/   Úrework_countÚstraight_pass_countç        Ústraight_pass_pct)rë   r   Ú
date_truncr   r¡   r©   r
   r«   rž   Úfilterr£   r¥   r~   r·   r   r}   rº   r‚   r   r   r   r   r!  r(  r¬   r¼   rÚ   ÚroundÚappend)rc   r{  r|  r·   rŠ  ÚbucketÚtotals_stmtr*  Úrework_stmtr¿   Úrework_chassis_idsÚoutputÚdÚbucket_chassis_stmtre  Ú
bucket_idsr†  Útotals   &&&&              r+   Úperiod_summaryr—  \  sü  é € Ø˜ ¨°¸ÐA×EÑEÀhÐPUÓV€JÜ�_Š_˜Z¬×)CÑ)CÓD×JÑJÈ8ÓT€Fô 	ØÜ�JŠJ”}×/Ñ/Ó0×6Ñ6Ð7GÓHÜ�JŠJ‹L×Ñ¤× <Ñ <ÀÑ DÓE×KÑKÈLÓYÜ�JŠJ‹L×Ñ¤× <Ñ <ÀÑ FÓG×MÑMÈnÓ]Ü�JŠJ‹L×Ñ¤× <Ñ <Ð@VÑ VÓW×]Ñ]Ð^tÓuó	
÷ 
‰Œ}×)Ñ)¨UÑ2´M×4NÑ4NÐRUÑ4UÓ	Vß	‰�&Ó	ß	‰�&Ó	ð ð —*‘*˜[Ó)×)×3Ñ3Ó5×9Ñ9Ó;€Dô 	Ô'×2Ñ2Ó3ß	‰ŒsÜ$×2Ñ2°eÑ;ÜÔ)×;Ñ;×AÑAÀ$ÓGÔIa×IsÑIsÐwyÑIyÓzó
ó 
÷ 
‰‹ð ð 46·:±:¸kÓ3J×-J×,OÑ,OÔ,QÓRÑ,Q S˜aŸ&˜&Ñ,QÐÐRà€FÜˆÜ�‹Iˆä$¤]×%=Ñ%=Ó>×DÑDÜ�OŠO˜J¬×(BÑ(BÓCÀqÈÅ{ÑRó
Ðð ,.¯:©:Ð6IÓ+J×%J×$OÑ$OÔ$QÓRÑ$Q˜q˜—d�dÑ$Qˆ
ÐRÜ˜:Õ:Ó;ˆØÐ"Õ#×(Ð( qˆØ(ˆˆ.ÑØ#(¨<Õ#7ˆÐ
Ñ ßW\¤¨Ð*?Õ(@À5Õ(HÈCÕ'OÐQRÔ!SÐbeˆÐ
ÑØ�‰�a×ñ ð €Mò7 *ò .KùÒRñ &KùÒRùs\   ‚F7OÆ9N>Æ:B=OÉ7OÉ8OÊOÊA>OÌO	ÌOÌ0OÍ>OÎ ?OÏOÏOÏOc                óP   € V ^8„  d   QhR\         R\        R\        P                  /# ©r%   rc   rŸ   r'   )r   r)   r"   ÚChassisLookupOut)r*   s   "r+   r,   r,   Š  s'   € ÷ 1ñ 1œ\ð 1´sð 1¼w×?WÑ?Wñ 1r-   c              ƒ  óæ  "  € T;'       g    RP                  4       pV P                  \        \        4      P	                  \
        P                  ! \        P                  4      VP                  4       8H  4      4      G Rj  x€L
 P                  4       pV'       g   \        P                  ! RVRR7      # RpVP                  '       di   V P                  \        \        P                  4      P	                  \        P                  VP                  8H  4      4      G Rj  x€L
 P                  4       pV P                  \        \        P                  \        P                   \"        P$                  \"        P&                  4      P)                  \"        \"        P*                  \        P*                  8H  4      P	                  \"        P,                  VP,                  8H  4      4      G Rj  x€L
 P/                  4       pV'       g   Rp. pM˜V Uu. uF€  pVP$                  RJ g7   VP&                  '       g   K'  VP&                  P                  4       '       g   KI  \        P0                  ! VP                  VP                   VP&                  R7      NK‚  	  ppV'       d   RMR	p\        P                  ! R
VP                  VVP2                  VP4                  VVP6                  VR7      #  ELc ELÉ ELu upi 5i)uï   
Presence + QA summary for a chassis number, used by the Dealer Portal (and Sales)
when a chassis is keyed against an order line â€” deliberately does not surface
station-by-station movement, just: do we have it, and is the yard QA clean.
r/   NFÚ	NOT_FOUND)ÚfoundrŸ   Ú	qa_statusr  )Ú	zone_nameÚcheckpoint_textrì   ÚREMARKSr  T)r�  rŸ   rƒ   r£   r¤   rž  r¦   Ú
qa_remarks)rj   r}   r
   r   r~   r   ri   rŸ   rÜ   r"   rš  r°   r   rƒ   r   rŸ  r   r   r  r  rX   r  rž   r‚   ÚChassisQaRemarkOutr£   r¤   r¦   )rc   rŸ   rà   rƒ   Úqa_rowsrž  rÑ   re  s   &&      r+   Úlookup_chassisr¥  Š  sN  é € ð ×"Ð" ×)Ñ)Ó+€JØ—Z‘ZÜŒ}Ó×#Ñ#¤D§J¢J¬}×/GÑ/GÓ$HÈJ×L\ÑL\ÓL^Ñ$^Ó_ó÷ çÑÓð ÷ Ü×'Ò'¨eÀ
ÐVaÔbÐbà€LØ××ÐØ Ÿj™jÜÔ%×2Ñ2Ó3×9Ñ9Ô:L×:UÑ:UÐY`×YiÑYiÑ:iÓjó
÷ 
çÑÓð 	ð —Z‘ZÜÜ%×/Ñ/Ô1J×1ZÑ1ZÜ$×,Ñ,Ô.F×.RÑ.Ró	
÷ 
‰Ô&Ô(@×(HÑ(HÔLe×LmÑLmÑ(mÓ	nß	‰Ô'×2Ñ2°g×6HÑ6HÑHÓ	Ió÷ ÷ �sƒuð ÷ Øˆ	Ø‰ñ ó
á�Ø�y‰y˜EÓ! a§m¥mô wà89¿¹×8KÑ8K×8Mô wŒG×&Ò&°·±Èa×N_ÑN_Ðhi×huÑhu×vÙð 	ð 
÷
 ")‘I¨dˆ	ä×#Ò#ØØ×%Ñ%Ø!Ø×-Ñ-Ø!×3Ñ3ØØ×/Ñ/Øô	ð 	òCò
òùò
ùsi   ‚A>K1Â K#ÂK1Â,K1ÃAK1ÄK&ÄCK1Ç%K)Ç&K1È 	K1È	$K,È2K,É;K,ÊAK1Ë&K1Ë)K1Ë,K1c                óP   € V ^8„  d   QhR\         R\        R\        P                  /# r™  )r   r)   r"   ÚChassisTrackingOut)r*   s   "r+   r,   r,   ¾  s,   € ÷ uñ u¤ð u¼#ð uÄ'×B\ÑB\ñ ur-   c              ƒ   ót  "  € T;'       g    R P                  4       pV P                  \        \        4      P	                  \
        P                  ! \        P                  4      VP                  4       8H  4      4      G Rj  x€L
 P                  4       pV'       g   \        P                  ! RVR7      # RpVP                  '       di   V P                  \        \        P                  4      P	                  \        P                  VP                  8H  4      4      G Rj  x€L
 P                  4       pV P                  \        \        P                  \        P                   \        P"                  \        P$                  \        P&                  \(        P*                  P-                  R4      \        P.                  \        P0                  \        P2                  \        P4                  \6        P8                  P-                  R4      4      P;                  \6        \        P<                  \6        P>                  8H  4      P;                  \(        \        P$                  \(        P$                  8H  4      P	                  \        P@                  VP@                  8H  4      PC                  \        P0                  PE                  4       4      4      G Rj  x€L
 pVPG                  4       PI                  4        Uu. uF"  p\        PJ                  ! R./ \M        V4      B NK$  	  ppRpRpRp	Rp
RpRpVPN                  '       Ed$   V PQ                  \(        VPN                  4      G Rj  x€L
 pV'       Edò   VP*                  p\R        PT                  ! \V        PX                  4      pVPZ                  '       dj   VP\                  '       gX   Rp
VP*                   R2p	\_        ^ \a        WâPZ                  ,
          Pc                  4       ^<,          4      4      p\e        V4      pM‰VP\                  '       dx   R	p
VP*                   R
2p	VPZ                  ;'       g    VP\                  p\_        ^ \a        VP\                  V,
          Pc                  4       ^<,          4      4      p\e        V4      pT P                  \        \(        4      P	                  \(        Pf                  R8H  \(        Ph                  VPh                  ;'       g    ^ 8„  4      PC                  \(        Ph                  4      Pk                  ^4      4      G Rj  x€L
 P                  4       pV'       d   VP*                  pM3RpM0VPl                  R8X  d   Rp	Rp
MVPl                  R8X  d   Rp	Rp
MRp	Rp
T	;'       g+    \n        PQ                  VPl                  VPl                  4      pRpRpRpRpVPN                  '       dg   X'       d_   VPp                  '       dM   V
R8X  dF   Rp^ RI9H:p VPw                  WP@                  VPN                  4      G Rj  x€L
 w  ppV'       d   RMRp\        P                  ! R./ RRbRVP@                  bRVP                  bRVbRVPx                  bRVPz                  bRVP|                  bRVPl                  bRVbRVPN                  bR VbR!V	bR"V
bR#VbR$VbR%VbR&VPZ                  bR'VP\                  bR(VbR)VbR*VbR+VbR,VbR-V'       d$   \        W4      G Rj  x€L
 P�                  4       b # Rb #  ELŸ EL EL\u upi  ELÓ EL EL	 L/5i)/r/   NF)r�  rŸ   r¨   Úchanged_by_nameÚNOT_STARTEDÚINú INÚOUTú OUTTúReady for DispatchrL   ÚREADYrM   rN   zAwaiting Station 1r  ÚNOT_REQUIRED©ÚflowÚPASSEDr�  rž   rŸ   r–   r&   r¡   r£   r¦   Úfriendly_statusr±   r•   Úcurrent_station_statusÚstation_stateÚdwell_minutesÚdwell_formattedÚnext_station_nameÚstation_arrived_atr§   ÚtimelineÚqa_requiredÚ
qa_clearedrž  Ú	qa_reasonÚ
order_specr;   )Arj   r}   r
   r   r~   r   ri   rŸ   rÜ   r"   r§  r°   r   rƒ   r   rÕ   rÖ   r×   r²   Ústation_coder    r¨   r©   Ú	scan_modeÚ
changed_atrÙ   rÑ   r!   rª   r¯   rØ   rÄ   rž   r   Úascrº   r‚   ÚTrackingLogOutr¼   r±   rë   r   r  r   rD   r»  r§   r…   r7   Útotal_secondsr>   rw   r€   rr  r¦   ÚFRIENDLY_TRACKING_STATUSÚrequires_qaÚapp.modules.station_workr³  Úis_qa_cleared_at_stationr&   r¡   r£   r#   rF  )rc   rŸ   rà   r–   Úlogs_resultr¿   r¼  r•   rº  Ústation_status_labelr·  r¸  r¹  Úcurr_stÚnow_tÚarrÚnext_strµ  r½  r¾  rž  r¿  r³  s   &&                     r+   Úget_tracking_inforÑ  ¾  sM  é € Ø×"Ð" ×)Ñ)Ó+€JØ—Z‘ZÜŒ}Ó×#Ñ#¤D§J¢J¬}×/GÑ/GÓ$HÈJ×L\ÑL\ÓL^Ñ$^Ó_ó÷ çÑÓð ÷ Ü×)Ò)°À*ÔMÐMà€JØ××ÐØŸJ™JÜÔ%×2Ñ2Ó3×9Ñ9Ô:L×:UÑ:UÐY`×YiÑYiÑ:iÓjó
÷ 
çÑÓð 	ð Ÿ
™
ÜÜ×#Ñ#Ü×(Ñ(Ü×&Ñ&Ü×'Ñ'Ü×)Ñ)Ü×&Ñ&×,Ñ,¨^Ó<Ü×&Ñ&Ü×'Ñ'Ü×*Ñ*Ü×$Ñ$Ü�O‰O×!Ñ!Ð"3Ó4ó	
÷ 
‰”:Ô/×:Ñ:¼j×>PÑ>PÑPÓ	Qß	‰”=Ô"2×"=Ñ"=Ä×AYÑAYÑ"YÓ	Zß	‰Ô×*Ñ*¨g×.@Ñ.@Ñ@Ó	Aß	‰Ô"×-Ñ-×1Ñ1Ó3Ó	4ó#÷ €Kð& @K×?SÑ?SÓ?U×?YÑ?YÔ?[Ó\Ñ?[¸”×&Ò&Ñ3¬¨c«Ô3Ñ?[€HÐ\àÐØÐØÐØ!€MØ€MØ€Oà×!×!Ñ!ØŸ™œ}¨g×.HÑ.HÓI×Iˆßˆ7Ø#*×#7Ñ#7Ð Ü—L’L¤§¡Ó.ˆEØ×)×)Ð)°'×2N×2NÐ2NØ $�Ø*1×*>Ñ*>Ð)?¸sÐ'CÐ$Ü # A¤s¨E×4NÑ4NÕ,N×+]Ñ+]Ó+_ÐbdÕ+dÓ'eÓ f�Ü".¨}Ó"=‘Ø×-×-Ð-Ø %�Ø*1×*>Ñ*>Ð)?¸tÐ'DÐ$Ø×0Ñ0×PÐP°G×4PÑ4P�Ü # A¤s¨G×,HÑ,HÈ3Õ,N×+]Ñ+]Ó+_ÐbdÕ+dÓ'eÓ f�Ü".¨}Ó"=�àŸZ™ZÜ”}Ó%ß‘”}×.Ñ.°$Ñ6¼×8QÑ8QÐU\×UhÑUh×UmÐUmÐlmÑ8nÓoß‘œ-×3Ñ3Ó4ß‘�q“ó	÷ ÷
 "Ñ!Ó#ð ÷ Ø$+×$8Ñ$8Ñ!à$8Ð!øØ	×	 Ñ	 Ð$8Ô	8Ø3ÐØ‰Ø	×	 Ñ	  LÔ	0Ø+ÐØ$‰à3ÐØ!ˆà*×|Ð|Ô.F×.JÑ.JÈ7×KbÑKbÐdk×d{Ñd{Ó.|€Oà€KØ€JØ€IØ€IØ×!×!Ð!§g°'×2E×2EÐ2EÈ-Ð[_ÔJ_ØˆÝ1Ø&*×&CÑ&CÀB×HZÑHZÐ\c×\vÑ\vÓ&w× wÑˆ
�Iß *‘H°	ˆ	ä×%Ò%ò Ùðà×%Ò%ðð ×%Ò%ðñ ð	ð
 ×#Ò#ðð ×)Ò)ðð ×-Ò-ðð  ×/Ò/ðñ (ðð #×5Ò5ðñ 2ðñ  4ðñ $ðñ $ðñ (ðñ  ,ð!ð" #×5Ò5ð#ð$ %×9Ò9ð%ñ& ð'ñ(  ð)ñ* ð+ñ, ð-ñ. ð/÷0 T[Ô4°RÓA×A×MÑMÔOð1ð ñ0 aeð1ð òuò
òùò& ]ò Jò ò: !xñ6 Bùsí   ‚A>\8Â \Â\8Â+\8ÃA\8Ä\"ÄF,\8Ë	\%Ë
$\8Ë.(\(ÌA\8Í\-Í\8Í(A\8Î*\8Î<A(\8Ð%#\8Ñ	B)\8Ó3<\8Ô/\0Ô0\8Õ
A\8ÖA\8×\8× \8×28\8Ø*\3Ø+\8Ø:B=\8Û8\8Ü\6Ü\8Ü"\8Ü%\8Ü(\8Ü0\8Ü3\8Ü6\8c                ó„   € V ^8„  d   QhR\         R\        P                  R\        P                  R\        P
                  /# rÂ   )r   r"   ÚSupervisorScanInputr†   rÆ   ÚSupervisorScanResponse)r*   s   "r+   r,   r,   6  sB   € ÷ ]
ñ ]
Üð]
Ü&×:Ñ:ð]
ÜEIÇYÁYð]
ä×#Ñ#ñ]
r-   c              ƒ   óè  "  € VP                   ;'       g    R P                  4       pRV9   dE   VP                  R4      R<,          P                  R4      ^ ,          P                  R4      ^ ,          pV P                  \	        \
        4      P                  \        P                  ! \
        P                   4      VP                  4       8H  4      4      G Rj  x€L
 P                  4       pV'       g   \        RRV R2R7      hVP                  R	8X  d   \        R
RVP                    R2R7      h\        P                  ! \        P                  4      pV P                  \	        \         4      P                  \         P"                  R8H  4      P%                  \         P&                  4      4      G Rj  x€L
 P)                  4       P+                  4       pV'       g   \        R
RR7      hV Uu/ uF  qwP,                  VbK  	  ppV Uu. uF  qwP,                  NK  	  p	pRp
VP,                  '       d2   VP/                  VP,                  4      p
V
'       g   \        RRR7      hMøVP0                  '       d3   VP0                  V9   d"   VP2                  f   W„P0                  ,          p
M´VP0                  '       dš   VP0                  V9   d‰   VP2                  e{   V	P5                  VP0                  4      pV^,           \7        V4      8  d   Wk^,           ,          p
MA\        R
RVP                    RW„P0                  ,          P8                   R2R7      hV^ ,          p
RpVP:                  '       di   V P                  \	        \<        P>                  4      P                  \<        P:                  VP:                  8H  4      4      G Rj  x€L
 P                  4       pV	P5                  V
P,                  4      pV^ 8”  d   Wm^,
          ,          MRpV^,           \7        V4      8  d   Wm^,           ,          MRpVP0                  V
P,                  8X  dh   VP2                  eZ   V'       d   VP8                  MRp\A        VP2                  4      p\        R
RVP                    RV
P8                   RV RV R2	R7      hVP0                  V
P,                  8H  ;'       d%    VPB                  RJ;'       d    VP2                  RJ pV P                  \	        \D        4      P                  \D        PF                  VPF                  8H  \D        P,                  V
P,                  8H  \D        PH                  R8H  \D        PJ                  R8H  4      4      G Rj  x€L
 P)                  4       PM                  4       pVRJ;'       gF    VP0                  V
P,                  8H  ;'       d%    VPB                  RJ;'       d    VP2                  RJ pV'       EgH   VEfC   VP0                  '       d‰   VP0                  V
P,                  8w  dn   VP2                  f`   VP/                  VP0                  4      pV'       d   VP8                  MRp\        R
RVP                    RV RV RV
P8                   R2	R7      hV P                  \	        \D        4      P                  \D        PF                  VPF                  8H  \D        P,                  V
P,                  8H  \D        PH                  R8H  4      P%                  \D        PN                  PQ                  4       4      PS                  ^4      4      G Rj  x€L
 P)                  4       PM                  4       pVRJ;'       g0    VP0                  V
P,                  8H  ;'       d    VP2                  RJpV'       d’   VP0                  V
P,                  8X  d   VP2                  '       d   VP2                  MV'       d   VPN                  MRpV'       d   R\A        V4       2MR p\        R
RVP                    RV
P8                   V R2R7      hV'       g   VEe   V
PT                  '       d[   ^ RI+H,p VP[                  WPF                  V
P,                  4      G Rj  x€L
 w  ppV'       g   \        R
RV
P8                   R 2R7      hVPB                  ;'       g    V'       d   VPN                  MTp\]        ^ \_        VV,
          Pa                  4       ^<,          4      4      p\c        V4      pV'       d   R!Vn%        VVn2        \E        \f        Ph                  ! 4       VPF                  V
P,                  RTTVPj                  ;'       g    R"R!TVPl                  ;'       g    R#V 2R$7
      pV Po                  V4       WTn        V	P5                  V
P,                  4      p V \7        V4      ^,
          8H  p!V!'       d    R%Vn        R%p"Rp#R&V
P8                   R'V R(2p$MKR)Vn        VV ^,           ,          p%V%P8                  p#V
P8                   R*2p"R+V
P8                   R,V R-V" R.V# R/2	p$\q        \f        Ph                  ! 4       VPF                  V
P,                  V
Pr                  VPj                  ;'       g    R"V
P8                   R02T"TV
P8                  VPl                  ;'       g    R1V R/2R27
      p&V Po                  V&4       V Pu                  4       G Rj  x€L
  \v        Px                  ! R3VPF                  VP                   VV
P,                  V
P8                  V"VVV#V!V$R47      # V'       dz   VPT                  '       dh   ^ RI+H,p VP[                  WPF                  VP,                  4      G Rj  x€L
 w  ppV'       g)   \        R
RVP                    R5VP8                   R2R7      hV P                  \	        \D        4      P                  \D        PF                  VPF                  8H  \D        PH                  R8H  \D        PJ                  R8H  4      4      G Rj  x€L
 P)                  4       P+                  4       p'V' FJ  p(R!V(n%        \]        ^ \_        VV(PN                  ,
          Pa                  4       ^<,          4      4      V(n2        KL  	  \E        \f        Ph                  ! 4       VPF                  V
P,                  RTTVPj                  ;'       g    R"RVPl                  ;'       g    R6R77	      p)V Po                  V)4       V
P,                  Vn        WTn!        RVn        R)Vn        V	P5                  V
P,                  4      p V \7        V4      ^,
          8H  p!V!'       g   VV ^,           ,          P8                  MRp#\q        \f        Ph                  ! 4       VPF                  V
P,                  V
Pr                  VPj                  ;'       g    R"VP                  V
P8                   R02TV
P8                  VPl                  ;'       g    R6R27
      p&V Po                  V&4       V Pu                  4       G Rj  x€L
  \v        Px                  ! R8VPF                  VP                   VV
P,                  V
P8                  V
P8                   R02^ R9V#V!RVP                    R:V
P8                   R;2R47      #  ELö ELu upi u upi  EL E	L^ EL” ELT ELã ELN ELª L›5i)=r/   z/track/Ú?Ú#Nré   ú	Chassis 'z' not found in database.rÉ   rM   rÈ   z' is already DISPATCHED.Tz(No active stations configured in system.z'Selected station not found or inactive.z	Chassis #z& has already completed final station (z) and is READY FOR DISPATCH.r¯  z already completed z at z. Next station is Ú.ÚARRIVALÚ
AT_STATIONzactive stationz is currently inside z (IN). Please mark OUT of z before scanning into Ú
COMPLETIONr²  zCannot mark Chassis Out of zQ: QA inspection is pending. 'Chassis Out' will only be enabled after QA approval.Ú	COMPLETEDÚQR_SCANzStation OUT: )
rÕ   rž   r²   Ú
event_typeÚ
scanned_atÚ
scanned_byrÂ  r�   Úelapsed_minutesrÑ   rL   zFinal station 'z' completed in z. Status: READY FOR DISPATCH!rK   r®  zCompleted at z in z
. Status: z (Next: Ú)r¬  zSupervisor Scan OUT ()
rÕ   rž   r²   rÁ  rÂ  rÖ   r×   rØ   rÙ   rÑ   ÚSCAN_OUT)Úactionrž   rŸ   r–   r²   r¨   r�   râ  Úelapsed_displayrº  Úis_final_stationrQ  zA has not arrived at your station. It is awaiting QA clearance at zSupervisor Scan IN)	rÕ   rž   r²   rß  rà  rá  rÂ  r�   rÑ   ÚSCAN_INr9   z checked IN at z. Dwell counter started.éÿÿÿÿ)=rŸ   rj   Úsplitr}   r
   r   r~   r   ri   rÜ   r	   r¦   r   r  r   rD   r    rw   r   r€   r�   r‚   r²   rë   r±   r§   ÚindexrÚ   r¨   r°   r   rƒ   rI   r»  r   rž   rß  r�   Úfirstrà  r¸   rr  rÈ  rÉ  r³  rÊ  r…   r7   rÆ  r>   râ  r†   r‡   rÂ  rÑ   rˆ   r   rÁ  r‰   r"   rÔ  )*rc   rÃ   rÄ   rŸ   rà   r  ÚstationsÚsÚstation_mapÚstation_idsÚtarget_stationÚcur_idxr–   Ú
target_idxÚprev_stationÚnext_stationÚ	next_nameÚtime_strÚis_currently_in_at_targetÚopen_logrÍ  Ú	curr_nameÚcompleted_logÚis_already_completedÚcomp_dtr³  ÚclearedÚreasonÚ
arrived_atrâ  ræ  Úcomp_logÚcurr_seq_idxrç  Ústatus_textrº  ÚmsgrÐ  rá   Úprevious_open_logsÚprevÚarrival_logs*   &&&                                       r+   Úsupervisor_station_scanr  6  s£  é € ð ×$Ñ$×*Ð*¨×1Ñ1Ó3€JØ�JÔØ×%Ñ% iÓ0°Õ4×:Ñ:¸3Ó?ÀÕB×HÑHÈÓMÈaÕPˆ
à—Z‘ZÜŒ}Ó×#Ñ#¤D§J¢J¬}×/GÑ/GÓ$HÈJ×L\ÑL\ÓL^Ñ$^Ó_ó÷ çÑÓð ÷ Ü¨°iÀ
¸|ÐKcÐ4dÔeÐeà×Ñ ,Ô.Ü¨°iÀ×@RÑ@RÐ?SÐSkÐ4lÔmÐmä
�,Š,”x—|‘|Ó
$€Cà—j‘jÜŒ}Ó×#Ñ#¤M×$;Ñ$;¸tÑ$CÓD×MÑMÌm×NgÑNgÓhó÷ ç�wƒy—‘“ð ÷ Ü¨Ð4^Ô_Ð_á,4Ó5©H q—<‘< ’?©H€KÐ5Ù)1Ó2© A—<”<©€KÐ2à€NØ××ÐØ$Ÿ™¨×);Ñ);Ó<ˆßÜ¨CÐ8aÔbÐbð ð ×%×%Ð%¨'×*DÑ*DÈÔ*SÐX_×XtÑXtÒX|à(×)CÑ)CÕD‰NØ×'×'Ð'¨G×,FÑ,FÈ+Ô,UÐZa×ZvÑZvò  [Cà!×'Ñ'¨×(BÑ(BÓCˆGØ˜�{œS ›]Ô*Ø!)°A­+Õ!6‘ä#Ø #Ø& w×'9Ñ'9Ð&:Ð:`Ðal÷  nHñ  nHõ  bI÷  bVñ  bVð  aWð  Wsð  tôð ð & a�[ˆNà€JØ××ÐØŸJ™JÜÔ%×2Ñ2Ó3×9Ñ9Ô:L×:UÑ:UÐY`×YiÑYiÑ:iÓjó
÷ 
çÑÓð 	ð ×"Ñ" >×#<Ñ#<Ó=€JØ/9¸A¬~�8¨�NÖ+À4€LØ/9¸A­~ÄÀHÃÔ/M�8¨�NÖ+ÐSW€Lð ×!Ñ! ^×%>Ñ%>Ô>À7×C_ÑC_ÒCkß1=�L×-Ò-ÐCWˆ	Ü" 7×#?Ñ#?Ó@ˆÜØØ˜w×1Ñ1Ð2Ð2EÀn×FaÑFaÐEbÐbfÐgoÐfpð  qCð  DMð  CNð  NOð  Pô
ð 	
ð 	×"Ñ" n×&?Ñ&?Ñ?÷ 	1ð 	1Ø×&Ñ&¨dÐ2÷	1ð 	1à×(Ñ(¨DÐ0ð ð —j‘jÜÔ Ó!×'Ñ'Ü×(Ñ(¨G×,>Ñ,>Ñ>Ü×(Ñ(¨N×,EÑ,EÑEÜ×(Ñ(¨IÑ5Ü×$Ñ$¨Ñ4ó		
ó÷ ÷ �wƒy—‘“ð ð 	˜Ð÷ 	
ð 	
à×&Ñ&¨.×*CÑ*CÑC÷ 5ð 5Ø×*Ñ*°$Ð6÷5ð 5à×,Ñ,°Ð4ð ÷ %Ð$¨Ó)9à×%×%Ð%¨'×*DÑ*DÈ×HaÑHaÔ*aÐfm÷  gCñ  gCò  gKØ!—o‘o g×&@Ñ&@ÓAˆGß07˜×,Ò,Ð=MˆIÜØØ" 7×#5Ñ#5Ð"6Ð6KÈIÈ;ÐVpÐqzÐp{ð  |Rð  Sa÷  Snñ  Snð  Roð  opð  qôð ð  "Ÿz™zÜÔ$Ó%×+Ñ+Ü!×,Ñ,°×0BÑ0BÑBÜ!×,Ñ,°×0IÑ0IÑIÜ!×,Ñ,°Ñ<ó÷ ‰hÔ(×3Ñ3×8Ñ8Ó:Ó;¿E¹EÀ!»Hó 
÷ 
÷ ‰7‹9—U‘U“Wð 	ð  Ð%÷ vð vØ×*Ñ*¨n×.GÑ.GÑG×tÐtÈG×LhÑLhÐptÐLtð 	÷
  ð ×.Ñ.°.×2KÑ2KÔKÐPW×Pl×PlÐPlð ×,Ò,ç2?�m×.Ò.ÀTð ÷
 =D˜œo¨gÓ6Ð7Ñ8ÈˆHÜØØ" 7×#5Ñ#5Ð"6Ð6IÈ.×JeÑJeÐIfÐgoÐfpÐpqÐrôð ÷
 ! HÓ$8à×%×%Ð%Ý5Ø$(×$AÑ$AÀ"×FXÑFXÐZh×ZsÑZsÓ$t×t‰OˆG�VßÜ#Ø #Ø8¸×9TÑ9TÐ8Uð  Vgð  hôð ð
 ×/Ñ/×]Ð]Ï8°H×4GÒ4GÐY\ˆ
Ü˜a¤ c¨JÕ&6×%EÑ%EÓ%GÈ"Õ%LÓ!MÓNˆÜ& Ó7ˆçØ)ˆHŒOØ'6ˆHÔ$ä$Ü—:’:“<Ø×)Ñ)Ø%×0Ñ0Ø#ØØØ×'Ñ'×4Ð4¨9ØØ+Ø—O‘O×HÐH¨°Ð6GÐ'Hô
ˆð 	�‰ˆxÔà'*Ô$à"×(Ñ(¨×)BÑ)BÓCˆØ(¬C°«M¸AÕ,=Ñ=ÐçØ&:ˆGÔ#Ø.ˆKØ 4ÐØ# N×$?Ñ$?Ð#@ÀÐP_ÐO`Ð`}Ð~‰Cà&+ˆGÔ#Ø˜|¨aÕ/Õ0ˆGØ '× 4Ñ 4ÐØ+×8Ñ8Ð9¸Ð>ˆKØ! .×"=Ñ"=Ð!>¸dÀ?ÐBSÐS]Ð^iÐ]jÐjrð  tEð  sFð  FGð  HˆCä%Ü—:’:“<Ø×)Ñ)Ø%×0Ñ0Ø'×4Ñ4Ø×'Ñ'×4Ð4¨9Ø)×6Ñ6Ð7°sÐ;Ø!ØØ(×5Ñ5Ø—O‘O×QÐQÐ)>¸Ð>OÈqÐ'Qô
ˆ
ð 	�‰ˆzÔà�i‰i‹k×Ðä×-Ò-ØØ×)Ñ)Ø×)Ñ)Ø!Ø%×0Ñ0Ø'×4Ñ4ØØ+Ø+Ø/Ø-Øô
ð 	
÷" ˜L×4×4Ð4Ý5Ø$(×$AÑ$AÀ"×FXÑFXÐZf×ZqÑZqÓ$r×r‰OˆG�VßÜ#Ø #Ø& w×'9Ñ'9Ð&:Ð:{ð  }I÷  }Vñ  }Vð  |Wð  WXð  Yôð ð
 %'§J¡JÜÔ$Ó%×+Ñ+Ü!×,Ñ,°×0BÑ0BÑBÜ!×,Ñ,°	Ñ9Ü!×(Ñ(¨LÑ8óó%
÷ 
÷ ‰7‹9—S‘S“Uð 	ó 'ˆDØ%ˆDŒKÜ#& q¬#¨s°T·_±_Õ/D×.SÑ.SÓ.UÐXZÕ.ZÓ*[Ó#\ˆDÖ ñ 'ô (Ü—:’:“<Ø×)Ñ)Ø%×0Ñ0Ø ØØØ×'Ñ'×4Ð4¨9ØØ—O‘O×;Ð;Ð';ô

ˆð 	�‰ˆ{Ôà%3×%>Ñ%>ˆÔ"Ø%(Ô"Ø'+ˆÔ$Ø"'ˆÔà"×(Ñ(¨×)BÑ)BÓCˆØ(¬C°«M¸AÕ,=Ñ=ÐßK[˜H \°AÕ%5Õ6×CÒCÐauÐä%Ü—:’:“<Ø×)Ñ)Ø%×0Ñ0Ø'×4Ñ4Ø×'Ñ'×4Ð4¨9Ø×/Ñ/Ø'×4Ñ4Ð5°SÐ9ØØ(×5Ñ5Ø—O‘O×;Ð;Ð';ô
ˆ
ð 	�‰ˆzÔà�i‰i‹k×Ðä×-Ò-ØØ×)Ñ)Ø×)Ñ)Ø!Ø%×0Ñ0Ø'×4Ñ4Ø$×1Ñ1Ð2°#Ð6ØØ Ø/Ø-Ø × 2Ñ 2Ð3°?À>×C^ÑC^ÐB_Ð_wÐxô
ð 	
òSòùò 6ùÚ2ò6
ò.ò:
ò: uòx 	ò* sò
ñ^ 	ùs»  ‚C{2Ã{Ã{2Ã0B?{2Æ/{Æ0'{2Ç{2Ç){Ç>{2È{È8{2É{2É1A{2Ê5B5{2Í+A{2Ï {ÏB{2ÑA0{2Ó{2Ó&B{2Ö {Ö*{2Ö, {2×{2×#{2×;{2ØA{2ÙC/{2Ý{!Ý*{2Ý9 {2Þ{2Þ1,{2ß{2ß2{2àA{2á
{2á!/{2â{$â{2â -{2ã{2ãB${2å<{2æD{2ê$/{2ë0{2ì{'ìA{2í{2í-/{2î{*î{2î,B{2ñ{-ñB4{2ó9{2ôC{2÷.9{2ø(,{2ù{0ùA7{2û{2û{2û{2û!{2û${2û'{2û*{2û-{2û0{2c                óZ   € V ^8„  d   QhR\         R\        \        P                  ,          /# rb   )r   r   r"   ÚSupervisorStationSummary)r*   s   "r+   r,   r,   V  s%   € ÷ !ñ !¤lð !´t¼G×<\Ñ<\Õ7]ñ !r-   c              ƒ   ó  "  € V P                  \        \        4      P                  \        P                  R 8H  4      P                  \        P                  4      4      G Rj  x€L
 P                  4       P                  4       p. pV EFò  pV P                  \        \        P                  ! \        P                  4      4      P                  \        P                  VP                  8H  \        P                  P!                  R4      \        P"                  P%                  R4      \        P&                  R8H  4      4      G Rj  x€L
 P)                  4       ;'       g    ^ pV P                  \        \        P                  ! \        P                  4      4      P                  \        P                  VP                  8H  \        P"                  P!                  R4      \        P&                  R8H  4      4      G Rj  x€L
 P)                  4       ;'       g    ^ pTP+                  \,        P.                  ! VP                  VP0                  VP2                  VP                  ;'       g    ^ VVWE,           R7      4       EKõ  	  V#  EL ELA L�5i)TNrK   )r²   r¨   rÁ  r€   Úin_countÚ	out_countÚtotal_count)r}   r
   r    r~   rw   r   r€   r�   r‚   r   r«   r   rž   r±   r²   r»  r(  r§   rb  r¦   Úscalarr�  r"   r
  r¨   rÁ  )rc   rí  r¾   Ústr  r  s   &     r+   Úget_supervisor_stationsr  V  sè  é € Ø—j‘jÜŒ}Ó×#Ñ#¤M×$;Ñ$;¸tÑ$CÓD×MÑMÌm×NgÑNgÓhó÷ ç�wƒy—‘“ð ð €FÜˆØŸ*™*Ü”4—:’:œm×6Ñ6Ó7Ó8×>Ñ>Ü×0Ñ0°B·M±MÑAÜ×0Ñ0×6Ñ6°tÓ<Ü×2Ñ2×6Ñ6°tÓ<Ü×-Ñ-°Ñ6ó	ó
÷ 
÷ ‰6‹8÷ð ð ð 	ð Ÿ:™:Ü”4—:’:œm×6Ñ6Ó7Ó8×>Ñ>Ü×0Ñ0°B·M±MÑAÜ×2Ñ2×8Ñ8¸Ó>Ü×-Ñ-°Ñ6óó
÷ 
÷ ‰6‹8÷ð ð ð 	ð 	�‰”g×6Ò6Ø—}‘}ØŸ™ØŸ™ØŸ™×+Ð+¨!ØØØ Õ,ô
÷ 	ñ% ð6 €MòAò
ñ
ùsK   ‚AJÁ!I?Á"CJÅJÅJÅBJÇ7JÇ8JÈAJÉ#JÊJÊJc                óz   € V ^8„  d   QhR\         R\        P                  R\        \        P
                  ,          /# )r%   rc   r²   r'   )r   r†   rÆ   r   r"   ÚSupervisorStationChassisItem)r*   s   "r+   r,   r,   z  s8   € ÷ Zñ ZÜðZÜ"&§)¡)ðZä	Œ'×
.Ñ
.Õ/ñZr-   c              ƒ   ó„  "  € V P                  \        V4      G R j  x€L
 pV'       g   \        RRR7      hV P                  \	        \        4      P                  \        P                  R8H  4      P                  \        P                  4      4      G R j  x€L
 P                  4       P                  4       pV Uu. uF  qDP                  NK  	  ppVP                  V9   d   VP                  VP                  4      MR"pRpVR"8w  d1   V^,           \        V4      8  d   W6^,           ,          P                  pV P                  \	        \        \         P"                  4      P%                  \         \        P&                  \         P&                  8H  4      P                  \        P(                  V8H  \        P*                  R8H  4      P                  \        P,                  P/                  4       4      4      G R j  x€L
 P                  4       p\0        P2                  ! \4        P6                  4      p	. p
V EFr  w  r¼VP,                  pV'       gç   V P                  \	        \8        P:                  4      P                  \8        P<                  VP<                  8H  \8        P                  V8H  \8        P>                  R8H  4      P                  \8        P:                  P/                  4       4      PA                  ^4      4      G R j  x€L
 PC                  4       pT;'       g    VPD                  ;'       g    T	pVPF                  pV'       gê   V P                  \	        \8        P:                  \8        PH                  4      P                  \8        P<                  VP<                  8H  \8        P                  V8H  \8        P>                  R8H  4      P                  \8        P:                  P/                  4       4      PA                  ^4      4      G R j  x€L
 PK                  4       pV'       d   VP:                  pV'       gC   R	pVP                   R
2p\M        ^ \O        W�,
          PQ                  4       ^<,          4      4      pMARpVP                   R2p\M        ^ \O        Wý,
          PQ                  4       ^<,          4      4      p\S        VPT                  4      pRpRpR pV'       dA   VR	8X  d:   ^ RI+H,p VP[                  WP<                  V4      G R j  x€L
 w  ppV'       d   RMRpV
P]                  \^        P`                  ! R#/ RVP<                  bRVPb                  bRVbRVPd                  bRVbRVbRVbRVbRVbR\g        V4      bRVPh                  bRVbRV	bRVbRVbR VbR!Vb 4       EKu  	  V
#  ELŽ ELu upi  EL¿ ELº EL´ Lµ5i)$Nré   úStation not foundrÉ   Tr¯  rK   rÚ  rÜ  r«  r¬  r­  r®  r±  r²  r´  r  rž   rŸ   r–   r&   r·  Ústation_statusr   Úcompleted_atrâ  ræ  r£   rº  Úserver_timer½  r¾  rž  r¿  ré  r;   )5rë   r    r	   r}   r
   r~   rw   r   r€   r�   r‚   r²   rë  rÚ   r¨   r   r   rƒ   r¯   r°   r±   r¦   r»  r¸   r   r  r   rD   r   rà  rž   rß  rr  rÜ   r¹   r§   râ  rì  r…   r7   rÆ  ÚboolrÈ  rÉ  r³  rÊ  r�  r"   r  rŸ   r&   r>   r£   )rc   r²   Ústationrí  rî  rð  Úcurr_idxÚnext_st_namer*  r  rG  Úcmr–   Úarr_timeÚlog_arrÚ	comp_timeÚlog_compÚstateÚ	st_statusÚelapsedÚqa_reqÚqa_clrÚqa_statÚqa_rsnr³  s   &&                       r+   Úget_supervisor_station_chassisr)  z  sÑ  é € ð —F‘Fœ=¨*Ó5×5€GßÜ¨Ð4GÔHÐHà—j‘jÜŒ}Ó×#Ñ#¤M×$;Ñ$;¸tÑ$CÓD×MÑMÌm×NgÑNgÓhó÷ ç�wƒy—‘“ð ñ *2Ó2© A—<”<©€KÐ2à8?×8JÑ8JÈkÔ8Yˆ{× Ñ  ×!3Ñ!3Ô4Ð_a€HØ'€LØ�2„~˜( Q�,¬¨X«Ô6Ø¨1¥Õ-×:Ñ:ˆà—*‘*ÜŒ}Ô0×=Ñ=Ó>ß	‰Ô%¤}×'=Ñ'=ÔAS×A\ÑA\Ñ'\Ó	]ß	‰Ü×,Ñ,°
Ñ:Ü×)Ñ)¨UÑ2ó

÷ 
‰”-×2Ñ2×7Ñ7Ó9Ó	:ó÷ ÷ �sƒuð 	ô �,Š,”x—|‘|Ó
$€CØ€EÜ‰ˆØ×(Ñ(ˆßØŸZ™ZÜÔ(×3Ñ3Ó4×:Ñ:Ü%×0Ñ0°B·M±MÑAÜ%×0Ñ0°JÑ>Ü%×0Ñ0°IÑ=ó÷ ‘(Ô,×7Ñ7×<Ñ<Ó>Ó?ÇÁÀaÃó÷ ÷ "Ñ!Ó#ð ð ×6Ð6 "§-¡-×6Ð6°3ˆHà×+Ñ+ˆ	ßØ Ÿj™jÜÔ(×3Ñ3Ô5F×5VÑ5VÓW×]Ñ]Ü%×0Ñ0°B·M±MÑAÜ%×0Ñ0°JÑ>Ü%×0Ñ0°LÑ@ó÷ ‘(Ô,×7Ñ7×<Ñ<Ó>Ó?ÇÁÀaÃó÷ ÷ ‰u‹wð ÷ Ø$×/Ñ/�	çØˆEØ"×/Ñ/Ð0°Ð4ˆIÜ˜!œS #¥.×!?Ñ!?Ó!AÀBÕ!FÓGÓH‰GàˆEØ"×/Ñ/Ð0°Ð5ˆIÜ˜!œS )Õ"6×!EÑ!EÓ!GÈ"Õ!LÓMÓNˆGä�g×)Ñ)Ó*ˆØˆØ ˆØˆß�e˜t”mÝ5Ø#'×#@Ñ#@ÀÇ]Á]ÐT^Ó#_×_‰NˆF�Fß"(‘h¨iˆGà�‰”W×9Ò9ò 
Ø—}’}ð
à—}’}ð
ñ "ð
ð —l’lð	
ñ
  ð
ñ %ð
ñ  ð
ñ #ð
ñ $ð
ô )¨Ô1ð
ð ×,Ò,ð
ñ +ð
ñ ð
ñ ð
ñ ð
ñ  ð!
ñ" ð#
÷ 	ñU ðz €Lòo 6òùò 3òòòñ2 `ùs¤   ‚W œV*�W ©A+W ÂV-Â$W Â9V0ÃD)W Ç6V5Ç7DW Ë>V8Ë?W ÌW Ì.W ÍCW ÐV;ÐW Ð"W Ð6CW ÔV>Ô	W ÔBW Ö-W Ö0W Ö8W Ö;W Ö>W c          
      ó�   € V ^8„  d   QhR\         R\        R\        P                  R\        P
                  R\        P                  /# )r%   rc   rŸ   rÃ   rÄ   r'   )r   r)   r"   ÚTrackingScanInputr†   rÆ   r§  )r*   s   "r+   r,   r,   Ù  sF   € ÷ -3ñ -3Üð-3Ü"%ð-3Ü07×0IÑ0Ið-3ÜTX×T]ÑT]ð-3ä×Ññ-3r-   c              ƒ   óð  "  € T;'       g    R P                  4       pV P                  \        \        4      P	                  \
        P                  ! \        P                  4      VP                  4       8H  4      4      G Rj  x€L
 P                  4       pV'       g   \        RRV R2R7      hVP                  ;'       g    R P                  4       pVR9  d   \        RR	R7      hVP                  pWe8X  d$   \        RR
\        P                  WU4       2R7      hVR8X  d   VR8w  d   \        RRV R2R7      hVR8X  d   VR8w  d   \        RRV R2R7      hVP                  pWTn        VR8X  dM   \        P                   ! \"        P$                  4      Vn        VP(                  '       d   VP(                  Vn        \+        \,        P.                  ! 4       VP0                  TTTVP2                  ;'       g    VR8X  d   RMRVP4                  ;'       g    RVP2                  ;'       g    T 2R7      pV P7                  V4       V P9                  4       G Rj  x€L
  \;        W4      G Rj  x€L
 #  ELï L L	5i)r/   Nré   rØ  z' not foundrÉ   rK   rM   rÈ   z0Invalid target status. Must be WIP or DISPATCHEDzChassis is already marked as rJ   zCannot transition to WIP from 'z'. Expected CHASSIS_IN.z&Cannot transition to DISPATCHED from 'z'. Must be in WIP status first.Ú
PRODUCTIONÚDISPATCHzScanned at rÔ   )rK   rM   )rj   r}   r
   r   r~   r   ri   rŸ   rÜ   r	   r�   r3   r¦   rÇ  rë   r   r  r   rD   Údispatched_atr  r   r†   r‡   rž   ÚlocationrÑ   rˆ   r‰   rÑ  )	rc   rŸ   rÃ   rÄ   rà   Ú
new_statusr¥   Ú
old_statusrá   s	   &&&&     r+   Úupdate_tracking_statusr3  Ù  sS  é € ð ×"Ð" ×)Ñ)Ó+€JØ—Z‘ZÜŒ}Ó×#Ñ#¤D§J¢J¬}×/GÑ/GÓ$HÈJ×L\ÑL\ÓL^Ñ$^Ó_ó÷ çÑÓð ÷ Ü¨°iÀ
¸|È;Ð4WÔXÐXà—.‘.×&Ð& B×-Ñ-Ó/€JØÐ.Ô.Ü¨Ð4fÔgÐgà×,Ñ,€NØÔ#Ü¨Ð6SÔTl×TpÑTpÐq{ó  UIð  TJð  5Kô  Lð  	Lð �UÔØ˜\Ô)Ü¨CÐ:YÐZhÐYið  jAð  9Bô  Cð  CØ�\Ô! n¸Ô&=Ü¨Ð6\Ð]kÐ\lð  mLð  5Mô  Nð  	Nà×(Ñ(€JØ(ÔØ�\Ô!Ü (§¢¬X¯\©\Ó :ˆÔØ×%×%Ð%Ø)0×)CÑ)CˆGÔ&ä!Ü�zŠz‹|Ø×%Ñ%ØØØØ×&Ñ&×_Ð_¸:ÈÔ;N©<ÐT^Ø—‘×QÐQ [°×1AÑ1A×1OÐ1OÀZÐ0PÐ#Qô€Jð ‡F�Fˆ:Ôà
�)‰)‹+×ÐÜ" 2Ó2×2Ð2òSñP Ù2ùs\   ‚A>I6Â I/ÂI6Â#I6Â?C+I6Æ+A
I6Ç6I6ÈI6È).I6ÉI2ÉI6É*I4É+I6É2I6É4I6c                óŒ   € V ^8„  d   QhR\         R\        R,          R\        R,          R\        R,          R\        R,          /# )r%   rc   r{  Nr|  r€  Úyear)r   r   r7   )r*   s   "r+   r,   r,   	  sT   € ÷ Jñ Jœð J¬d°T­kð JÄtÈdÅ{ð JÔbeÐhlÕblð JÔ{~ð  BFõ  |Fñ Jr-   c              ƒ   ó„  "  € V'       g   \         P                  ! 4       pV'       g   \        VP                  ^^4      p\        \        P
                  4      P                  \        \        P                  R8H  \        \        P                  P                  R4      \        P                  R8g  4      4      4      P                  4       pV P                  V4      G Rj  x€L
 P                  4        Uu0 uF  qf^ ,          kK  	  pp\        P                   ! R\"        P$                  4      P'                  R4      p\        V\        P(                  ! \"        P
                  4      P'                  R4      \        P(                  ! 4       P+                  \"        P,                  R8H  4      P'                  R4      4      P                  \"        P$                  V8¬  \"        P$                  V8*  4      P/                  V4      P1                  V4      p	V P                  V	4      G Rj  x€L
 P3                  4       P                  4       p
. pV
 EFÝ  pVR,          p\5        VR	4      '       d   VP7                  R
4      M\9        V4      R,          pVR,          ;'       g    ^ p\        \"        P
                  \"        P,                  4      P                  \        P                   ! R\"        P$                  4      V8H  4      pV P                  V4      G Rj  x€L
 P                  4       pV Uu0 uF  pV^ ,          kK  	  ppV Uu0 uF  pV^,          R8X  g   K  V^ ,          kK  	  ppV'       d   \;        V4      MVR,          ;'       g    ^ p\;        VV,          4      pVV8”  d   Tp\=        ^ VV,
          4      pV^ 8”  d   \?        VV,          ^d,          ^4      MRpV^ 8”  d   \?        RV,
          ^4      MRpVPA                  R\9        V4      R,          RVRVRVRVRVRVRV/4       EKà  	  \        \B        PD                  P'                  R4      \"        P$                  \        P(                  ! \"        P
                  4      P'                  R4      \        P(                  ! 4       P+                  \"        P,                  R8H  4      P'                  R4      4      PG                  \B        \"        PH                  \B        PJ                  8H  4      P                  \"        P$                  V8¬  \"        P$                  V8*  4      P/                  \B        PD                  \"        P$                  4      P1                  \B        PD                  \"        P$                  PM                  4       4      pV P                  V4      G Rj  x€L
 P3                  4       P                  4       p/ pV EFã  pVR,          ;'       g    RpVV9  d   . VV&   VR,          ;'       g    ^ pVR,          ;'       g    ^ p \        \"        P
                  4      PG                  \B        \"        PH                  \B        PJ                  8H  4      P                  VR,          '       d   \B        PD                  VR,          8H  M\B        PD                  PO                  R4      \"        P$                  VR,          8H  4      p!V P                  V!4      G Rj  x€L
 P                  4        Uu0 uF  pV^ ,          kK  	  p"p\;        V"V,          4      pVV 8”  d   T p\=        ^ V V,
          4      p#V^ 8”  d   \?        V V,          ^d,          ^4      MRpV^ 8”  d   \?        RV,
          ^4      MRpVV,          PA                  R\9        VR,          4      RVRVRVRV RVRV#/4       EKæ  	  . p$VPQ                  4        F°  w  pp%\S        R V% 4       4      p&\S        R V% 4       4      p'\S        R V% 4       4      p(\S        R V% 4       4      p)V&^ 8”  d   \?        V'V&,          ^d,          ^4      MRp*V&^ 8”  d   \?        RV*,
          ^4      MRp+V$PA                  RVRRV&RV*RV+RV'RV(RV)/RV%/4       K²  	  RVR V$R!\9        V4      R"\9        V4      /#  ELÁu upi  EL‰ EL¡u upi u upi  EL ELÎu upi 5i)#r  TNr/   r€  r�  Útotal_checked_cowlr  Úda_lite_hold_countrH   z%b-%y:Né   Nrˆ  g      Y@:Né
   NÚmonth_labelÚloss_pctr‰  Ústopped_cowlÚrework_statusÚtotal_hold_pendingr—   zSpare stockr¡   r   c              3   ó2   "  € T F  qR ,          x € K  	  R# 5i)r7  Nr;   ©rl   re  s   & r+   rn   Úpod_report.<locals>.<genexpr>z  s   é € ÐE¹9°aÐ0×1Ò1»9ùó   ‚c              3   ó2   "  € T F  qR ,          x € K  	  R# 5i)r=  Nr;   rA  s   & r+   rn   rB  {  s   é € Ð?±Y°˜N×+Ò+³YùrC  c              3   ó2   "  € T F  qR ,          x € K  	  R# 5i)r>  Nr;   rA  s   & r+   rn   rB  |  s   é € Ð?±Y°˜?×+Ò+³YùrC  c              3   ó2   "  € T F  qR ,          x € K  	  R# 5i)r?  Nr;   rA  s   & r+   rn   rB  }  s   é € ÐJÁ	¸1Ð!5×6Ò6Ã	ùrC  Úsummaryr*  Úmonthly_summaryÚdealer_breakdownÚ
start_dateÚend_date)*r   Útodayr5  r
   r   rž   r~   r   r   r   r!  r(  r¬   r}   r‚   r   rŠ  r   r¡   r©   r«   r‹  r£   r·   r   rº   ÚhasattrrH   r)   rÚ   r…   rŒ  r�  r   rª   r¯   r³   r´   r¸   rb  rG  Úsum),rc   r{  r|  r€  r5  r�  r¿   r‘  Úmonth_bucketÚmonthly_stmtÚmonthly_rowsrH  re  Ú	period_dtr;  Útotal_checkedÚchassis_in_month_stmtÚchassis_month_resÚcÚmonth_chassis_idsÚhold_chassis_idsr=  r>  r?  r<  r‰  Údealer_stmtÚdealer_rowsÚdealer_groupsÚdrÚdnameÚtotÚstoppedÚdealer_date_chassis_stmtÚdealer_date_idsÚhold_pendingrI  Ú	rows_listÚtot_checkedÚtot_stoppedÚ
tot_reworkÚtot_hold_pendingÚoverall_loss_pctÚoverall_straight_pass_pcts,   &&&&&                                       r+   Ú
pod_reportrj  	  sƒ  é € ßÜ�jŠj‹lˆßÜ�S—X‘X˜q !Ó$ˆô 	Ô'×2Ñ2Ó3ß	‰ŒsÜ$×2Ñ2°dÑ:ÜÔ)×;Ñ;×AÑAÀ$ÓGÔIa×IsÑIsÐwyÑIyÓzó
ó 
÷ 
‰‹ð ð 46·:±:¸kÓ3J×-J×,OÑ,OÔ,QÓRÑ,Q S˜aŸ&˜&Ñ,QÐÐRô —?’? 7¬M×,FÑ,FÓG×MÑMÈhÓW€LäØÜ�JŠJ”}×/Ñ/Ó0×6Ñ6Ð7KÓLÜ�JŠJ‹L×Ñ¤× <Ñ <ÀÑ FÓG×MÑMÐNbÓcó	
÷
 
‰Œ}×)Ñ)¨UÑ2´M×4NÑ4NÐRUÑ4UÓ	Vß	‰�,Ó	ß	‰�,Ó	ð ð Ÿ*™* \Ó2×2×<Ñ<Ó>×BÑBÓD€Là€OÜˆØ�h•Kˆ	Ü5<¸YÈ
×5SÒ5S�i×(Ñ(¨Ô1ÔY\Ð]fÓYgÐhjÕYkˆØÐ.Õ/×4Ð4°1ˆä &¤}×'?Ñ'?Ä×A]ÑA]Ó ^× dÑ dÜ�OŠO˜G¤]×%?Ñ%?Ó@ÀIÑMó!
Ðð $&§:¡:Ð.CÓ#D×D×IÑIÓKÐÙ+<Ó=Ñ+< a˜Q˜qŸT˜TÑ+<ÐÐ=Ù*;ÓNÑ*; Q¸qÀ½tÀv¹~œD˜A˜aŸD˜DÑ*;ÐÐNç0@”sÐ+Ô,ÀqÐI]ÕG^×GcÐGcÐbcˆÜÐ-Ð0BÕBÓCˆØ˜<Ô'Ø(ˆMä   L°=Õ$@ÓAÐØERÐUVÔEV”5˜,¨Õ6¸#Õ=¸qÔAÐ\_ˆØ:GÈ!Ô:KœE %¨(Õ"2°AÔ6ÐQVÐà×ÑØ”c˜)“n SÕ)Ø˜;Ø  -Ø˜ØÐ!2Ø˜LØ˜]Ø Ð"4ð	 
÷ 		ñ+ ôD 	Ü×Ñ×%Ñ% mÓ4Ü×&Ñ&Ü�JŠJ”}×/Ñ/Ó0×6Ñ6Ð7KÓLÜ�JŠJ‹L×Ñ¤× <Ñ <ÀÑ FÓG×MÑMÈnÓ]ó		
÷ 
‰”>¤=×#:Ñ#:¼n×>XÑ>XÑ#XÓ	Yß	‰Œ}×)Ñ)¨UÑ2´M×4NÑ4NÐRUÑ4UÓ	Vß	‰”.×%Ñ%¤}×'AÑ'AÓ	Bß	‰”.×%Ñ%¤}×'AÑ'A×'FÑ'FÓ'HÓ	Ið ð Ÿ™ KÓ0×0×:Ñ:Ó<×@Ñ@ÓB€Kà€MÜˆØ�=Õ!×2Ð2 ]ˆØ˜Ô%Ø#%ˆM˜%Ñ àÐ%Õ&×+Ð+¨!ˆØ�^Õ$×)Ð)¨ˆä#)¬-×*BÑ*BÓ#C×#MÑ#MÌnÔ^k×^uÑ^uô  zH÷  zTñ  zTñ  _Tó  $U÷  $[ñ  $[Ø:<¸]×:KÔ:KŒ^× Ñ  B }Õ$5Ò5ÔQ_×QdÑQd×QhÑQhÐimÓQnÜ×&Ñ&¨"¨^Õ*<Ñ<ó$
Ð ð 13·
±
Ð;SÓ0T×*T×)YÑ)YÔ)[Ó\Ñ)[ A˜1˜QŸ4˜4Ñ)[ˆÐ\Ü˜OÐ.@Õ@ÓAˆØ˜7Ô"Ø#ˆMä˜1˜g¨Õ5Ó6ˆØ69¸A´g”5˜' C�-¨3Õ.°Ô2À3ˆØ:=À¼'œE %¨(Õ"2°AÔ6ÀuÐà�eÕ×#Ñ#Ø”C˜˜>Õ*Ó+Ø  #Ø˜ØÐ!2Ø˜GØ˜]Ø  ,ð%
÷ 	ñ+ ð> ÐØ)×/Ñ/Ö1ÑˆˆyÜÑE¹9ÓEÓEˆÜÑ?±YÓ?Ó?ˆÜÑ?±YÓ?Ó?ˆ
ÜÑJÁ	ÓJÓJÐØJUÐXYÌ/œ5 +°Õ";¸sÕ!BÀAÔFÐ_bÐØJUÐXYÌ/¤E¨%Ð2BÕ*BÀAÔ$FÐ_dÐ!à×ÑØ˜5ØØ$ kØÐ,Ø#Ð%>Ø Ø Ø$Ð&6ðð �Ið!
ö 	ñ 2ð, 	˜?ØÐ,Ø”c˜%“jØ”C˜“Hð	ð òm .KùÒRò 3ò EùÚ=ùÚNòF 1ò +UùÒ\ùs¿   ‚%c ¨B4c ÃbÃc Ã1b ÄDc Èb%ÈA5c ÊA4c Ìb(Ìc Ìb+Ì0c Ì6b0Íb0Í$c Í=H1c Ö.b5Ö/7c ×'c Øc ØCc Û*b8Û+c Û?b;ÜFc â c â(c â+c â8c â;c c                óP   € V ^8„  d   QhR\         R\        P                  R\        /# ©r%   rc   rÃ   r'   )r   r"   ÚQaItemCreater   )r*   s   "r+   r,   r,   –  s(   € ÷ ñ œ\ð ´G×4HÑ4Hð ÔMfñ r-   c              ƒ   ó  "  € VP                   ;'       g    ^ pV^ 8X  df   V P                  \        \        P                  ! \
        P                   4      4      4      G Rj  x€L
 P                  4       pT;'       g    ^ ^,           p\        \        P                  ! 4       VP                  P                  4       VP                  P                  4       VRR7      pV P                  V4       V P                  4       G Rj  x€L
  V#  L£ L5i)r   NT)r  rŸ  r   r€   rw   )r€   r}   r
   r   r…   r   rÜ   r†   r‡   rŸ  rj   r   rˆ   r‰   )rc   rÃ   ÚseqÚmax_seqr@  s   &&   r+   Úcreate_qa_itemrq  –  sÇ   é € Ø
×
Ñ
×
"Ð
" €CØ
ˆa„xØŸ™¤F¬4¯8ª8Ô4M×4YÑ4YÓ+ZÓ$[Ó\×\×pÑpÓrˆØ�|ˆ|˜!˜qÕ ˆä$Ü—
’
“Ø×#Ñ#×)Ñ)Ó+Ø×/Ñ/×5Ñ5Ó7ØØô€Dð ‡F�Fˆ4„LØ
�)‰)‹+×ÐØ€Kñ ]ñ ùs+   ‚ADÁDÁ DÁ;BDÃ<DÃ=DÄDc                óp   € V ^8„  d   QhR\         R\        P                  R\        P                  R\
        /# )r%   rc   r  rÃ   r'   )r   r†   rÆ   r"   ÚQaItemUpdater   )r*   s   "r+   r,   r,   ¨  s3   € ÷ ñ œ\ð ´D·I±Ið Ì×H\ÑH\ð Ôazñ r-   c              ƒ   óÈ  "  € ^ RI Hp V P                  \        V4      G Rj  x€L
 pV'       d   VP                  '       g   V! RRR7      hVP
                  e    VP
                  P                  4       Vn        VP                  e    VP                  P                  4       Vn        VP                  e   VP                  Vn        V P                  4       G Rj  x€L
  V#  L» L5i)r   r   Nré   úQA item not foundrÉ   )
Úfastapir	   rë   r   rw   rŸ  rj   r   r€   r‰   )rc   r  rÃ   r	   r@  s   &&&  r+   Úupdate_qa_itemrw  ¨  s²   é € Ý%Ø—‘Ô1°7Ó;×;€Dß�t—~—~�~Ù¨Ð4GÔHÐHà×ÑÒ$Ø ×*Ñ*×0Ñ0Ó2ˆŒØ×ÑÒ*Ø&×6Ñ6×<Ñ<Ó>ˆÔØ×ÑÒ&Ø"×.Ñ.ˆÔà
�)‰)‹+×ÐØ€Kñ <ñ ùs-   ‚ C"¢C£C"¯C"ÁBC"ÃC ÃC"Ã C"c                óD   € V ^8„  d   QhR\         R\        P                  /# )r%   rc   r  ©r   r†   rÆ   )r*   s   "r+   r,   r,   ¹  s   € ÷ *ñ *œ\ð *´D·I±Iñ *r-   c              ƒ   óè   "  € ^ RI Hp V P                  \        V4      G Rj  x€L
 pV'       d   VP                  '       g   V! RRR7      hRVn        V P                  4       G Rj  x€L
  RR/#  LK L
5i)	r   r   Nré   ru  rÉ   FrQ  zQA item deleted)rv  r	   rë   r   rw   r‰   )rc   r  r	   r@  s   &&  r+   Údelete_qa_itemr{  ¹  sa   é € Ý%Ø—‘Ô1°7Ó;×;€Dß�t—~—~�~Ù¨Ð4GÔHÐHà€D„NØ
�)‰)‹+×ÐØÐ(Ð)Ð)ñ <ñ
 ùs,   ‚ A2¢A.£A2¯A2Á$A2Á%A0Á&	A2Á0A2c                óP   € V ^8„  d   QhR\         R\        P                  R\        /# rl  )r   r"   ÚHandoverPartCreater   )r*   s   "r+   r,   r,   Ä  s(   € ÷ ñ ¤<ð ¼'×:TÑ:Tð ÔYpñ r-   c              ƒ   óì  "  € V P                  \        \        P                  ! \        P
                  4      4      4      G R j  x€L
 P                  4       pT;'       g    ^ ^,           p\	        \        P                  ! 4       TVP                  P                  4       VP                  ;'       g    RP                  4       RR7      pV P                  V4       V P                  4       G R j  x€L
  V#  L­ L5i)Nrs   Trt   )r}   r
   r   r…   r   rq   rÜ   r†   r‡   rh   rj   rv   r3   rˆ   r‰   )rc   rÃ   r‹   ÚsrrJ  s   &&   r+   Úcreate_handover_partr€  Ä  sµ   é € Ø—J‘Jœv¤d§h¢hÔ/F×/LÑ/LÓ&MÓNÓO×O×cÑcÓe€FØ
�+ˆ+�A˜Õ	€Bä"Ü—
’
“ØØ×#Ñ#×)Ñ)Ó+Ø#×6Ñ6×?Ð?¸%×FÑFÓHØô€Dð ‡F�Fˆ4„LØ
�)‰)‹+×ÐØ€Kñ Pñ ùs1   ‚A C4ÁC0ÁC4ÁAC4Â.;C4Ã)C2Ã*C4Ã2C4c                óP   € V ^8„  d   QhR\         R\        P                  R\        /# )r%   rc   rž   Údocument_type)r   r†   rÆ   r)   )r*   s   "r+   r,   r,   Ø  s(   € ÷ 2ñ 2Üð2Ü"&§)¡)ð2Ü<?ñ2r-   c	              ƒ   ó$  "  € ^ RI p	^ RIp
^ RIp^ RIHp V P                  \        V4      G Rj  x€L
 pV'       g   \        RRR7      hRpV'       EdÃ   VP                  '       Ed°   V	P                  P                  VP                  4      ^,          ;'       g    RpVP                  4       R8X  d   Rp\        VP                  4      P                  4       P                  RR	4      P                  R
R	4      pVP                  4       P                  RR	4      P                  R
R	4      p^ RIHp VP"                  ! 4       pVP%                  R4      VP%                  R4      ppV	P                  P'                  RRVVV4      pV	P(                  ! VRR7       V R	\+        VP                  4       4       V 2pV	P                  P'                  VV4      p\-        VR4      ;_uu_ 4       pV
P/                  VP0                  V4       RRR4       RV R
V R
V R
V 2pT! \2        P4                  ! 4       TTTV'       d   TMRV'       d   TMRVVRR7	      pV P7                  V4       V P9                  4       G Rj  x€L
  V#  ELJ  + '       g   i     L„; i L5i)r   N©r“   ré   rê   rÉ   z.pngz.pdfÚ Ú_rR   )r   z%Yz%mrS   Úchassis_docsT)Úexist_okÚwbz/uploads/chassis_docs/ÚRECEIVED)	r®   rž   r‚  Údocument_numberÚ
issue_dateÚvalid_untilÚissuing_authorityr^   Úverification_status)rU   Úshutilr=  rœ   r“   rë   r   r	   ÚfilenamerV   Úsplitextri   r)   rŸ   rj   Úreplacer   r  rH   rX   Úmakedirsr7   ÚopenÚcopyfileobjÚfiler†   r‡   rˆ   rÝ   )rc   rž   r‚  r‹  rŒ  r�  rŽ  r—  rÄ   rU   r�  Ú_timer“   rà   r^   ÚextÚsafe_chassis_noÚsafe_doc_typer   r  Úyear_strÚ	month_strÚdir_pathÚfnameÚ	save_pathÚbufÚdocs   &&&&&&&&&                  r+   Úupload_documentr£  Ø  s  é € ÷ %Ó$Ý=à—F‘Fœ=¨*Ó5×5€GßÜ¨Ð4GÔHÐHà€Iß€t�——‘Ø�g‰g×Ñ˜tŸ}™}Ó-¨aÕ0×:Ð:°FˆØ�9‰9‹;˜&Ô ØˆCä˜g×0Ñ0Ó1×7Ñ7Ó9×AÑAÀ#ÀsÓK×SÑSÐTWÐY\Ó]ˆØ%×+Ñ+Ó-×5Ñ5°c¸3Ó?×GÑGÈÈSÓQˆå%Ø�lŠl‹nˆØ!Ÿl™l¨4Ó0°#·,±,¸tÓ2D�)ˆð —7‘7—<‘< 	¨>¸=È(ÐT]Ó^ˆØ
�Š�H tÕ,à"Ð# 1¤S¨¯©«Ó%6Ð$7¸°uÐ=ˆØ—G‘G—L‘L ¨5Ó1ˆ	ä�)˜T×"Ô" cØ×Ñ˜tŸy™y¨#Ô.÷ #ð -¨]¨O¸1¸X¸JÀaÈ	À{ÐRSÐTYÐSZÐ[ˆ	á
 Ü�zŠz‹|ØØ#Ø'ß!+‘:°ß#.‘K°DØ+ØØ&ô
€Cð ‡F�Fˆ3„KØ
�(‰(‹*×ÐØ€JòW 6÷0 #×"úñ$ ùsW   ‚,J®I8¯J»JÁJÁ&2JÂE	JÇ"I;Ç?6JÈ6
JÉ0JÉ1JÉ2JÉ;J	Ê	Jc                óD   € V ^8„  d   QhR\         R\        P                  /# ©r%   rc   r®   ry  )r*   s   "r+   r,   r,     s"   € ÷ Bñ Bœlð B´D·I±Iñ Br-   c              ƒ   ó,  "  € ^ RI Hp V P                  W!4      G Rj  x€L
 pV'       g   \        RRR7      hVP                  pV P                  V4      G Rj  x€L
  V P                  4       G Rj  x€L
  \        V4       RRR\        V4      /#  Lp L8 L"5i)	r   r„  Nré   úDocument not foundrÉ   rQ  zDocument deletedr®   )	rœ   r“   rë   r	   r^   r$  r‰   r`   r)   )rc   r®   r“   r¢  rP   s   &&   r+   Údelete_documentr¨    s}   é € Ý=à—‘Ð-Ó6×
6€CßÜ¨Ð4HÔIÐIà�}‰}€HØ
�)‰)�C‹.×ÐØ
�)‰)‹+×ÐÜ�xÔ ØÐ)¨8´S¸³[ÐAÐAñ 7ñ
 Ùùs8   ‚B�BžBª-BÁBÁBÁ/BÁ0BÂBÂBc                óD   € V ^8„  d   QhR\         R\        P                  /# r¥  ry  )r*   s   "r+   r,   r,     s   € ÷ ñ œlð ´D·I±Iñ r-   c              ƒ   óì  "  € ^ RI Hp V P                  WA4      G Rj  x€L
 pV'       g   \        RRR7      hVP                  R
9  d   \        RRR7      hVP                  R8X  d    VP
                  '       g   \        RR	R7      hVP                  Vn        VP
                  Vn        W5n        \        P                  ! \        P                  4      Vn        V P                  4       G Rj  x€L
  V#  LÒ L5i)r   r„  Nré   r§  rÉ   ÚREJECTEDrÈ   z#Status must be VERIFIED or REJECTEDzRejection reason is required)ÚVERIFIEDr«  )rœ   r“   rë   r	   r�  Úrejection_reasonÚverified_byr   r  r   rD   Úverified_atrÝ   )rc   r®   rÃ   rÄ   r“   r¢  s   &&&&  r+   Úverify_documentr°    sÂ   é € Ý=Ø—‘Ð-Ó6×
6€CßÜ¨Ð4HÔIÐIØ×"Ñ"Ð*BÔBÜ¨Ð4YÔZÐZØ×"Ñ" jÔ0¸×9Q×9QÐ9QÜ¨Ð4RÔSÐSà%×9Ñ9€CÔØ"×3Ñ3€CÔØ„OÜ—l’l¤8§<¡<Ó0€C„OØ
�(‰(‹*×ÐØ€Jñ 7ñ ùs.   ‚C4�C0žC4ªAC4Á8A1C4Ã)C2Ã*C4Ã2C4c                óD   € V ^8„  d   QhR\         R\        P                  /# )r%   rc   rž   ry  )r*   s   "r+   r,   r,   /  s   € ÷ ñ œð ´4·9±9ñ r-   c              ƒ   ó  "  € ^ RI Hp V P                  \        V4      G Rj  x€L
 pV'       g   \	        RRR7      hV! \
        P                  ! 4       VVP                  VP                  VP                  VP                  VP                  VP                  VP                  RV\        P                  ! \         P"                  4      VP$                  R7      pV P'                  V4       V P)                  4       G Rj  x€L
  V#  LÞ L5i)r   ©r’   Nré   rê   rÉ   rŠ  )r­   rž   Úrm_idÚitem_descriptionÚ	item_codeÚquantity_receivedÚunit_of_measurementrñ  Ústorage_locationr�   Úreceived_byÚreceived_atÚnotes)rœ   r’   rë   r   r	   r†   r‡   r´  rµ  r¶  r·  r¸  rñ  r¹  r   r  r   rD   r¼  rˆ   rÝ   )rc   rž   rÃ   rÄ   r’   rà   rô   s   &&&&   r+   Ú
create_cspr½  /  sÇ   é € Ý;à—F‘Fœ=¨*Ó5×5€GßÜ¨Ð4GÔHÐHá
Ü�zŠz‹|ØØ�m‰mØ ×1Ñ1Ø×#Ñ#Ø!×3Ñ3Ø#×7Ñ7Ø×-Ñ-Ø ×1Ñ1ØØÜ—L’L¤§¡Ó.Ø�m‰mô€Cð ‡F�Fˆ3„KØ
�(‰(‹*×ÐØ€Jñ+ 6ñ( ùs'   ‚ D¢D£D¯CDÃ:DÃ;DÄDc                óD   € V ^8„  d   QhR\         R\        P                  /# )r%   rc   r­   ry  )r*   s   "r+   r,   r,   J  s   € ÷ ñ œð ¬t¯y©yñ r-   c              ƒ   ó  "  € ^ RI Hp V P                  WA4      G Rj  x€L
 pV'       g   \        RRR7      hR	pVP                  V9  d   \        RRV 2R7      hVP                  Vn        VP
                  e   VP
                  Vn        VP                  e   VP                  Vn        VP                  e   VP                  Vn        VP                  e   VP                  Vn        VP                  e   VP                  Vn	        VP                  e   VP                  Vn
        VP                  R8X  d0   W5n        \        P                  ! \        P                  4      Vn        V P#                  4       G Rj  x€L
  V#  ELb L	5i)
r   r³  Nré   z Customer-supplied part not foundrÉ   ÚISSUEDrÈ   zStatus must be one of: )r¬  ÚSTOREDrÀ  ÚRETURNEDÚDAMAGED)rœ   r’   rë   r	   r�   Úquantity_verifiedr¹  Úissued_to_stationÚdamaged_qtyÚdamage_descriptionr¼  Ú	issued_byr   r  r   rD   Ú	issued_atrÝ   )rc   r­   rÃ   rÄ   r’   rô   Úvalid_statusess   &&&&   r+   Ú
update_csprË  J  s6  é € Ý;à—‘Ð+Ó4×
4€CßÜ¨Ð4VÔWÐWàL€NØ‡~�~˜^Ô+Ü¨Ð6MÈnÐM]Ð4^Ô_Ð_à—‘€C„JØ× Ñ Ò,Ø '× 9Ñ 9ˆÔØ×ÑÒ+Ø&×7Ñ7ˆÔØ× Ñ Ò,Ø '× 9Ñ 9ˆÔØ×ÑÒ&Ø!×-Ñ-ˆŒØ×!Ñ!Ò-Ø!(×!;Ñ!;ˆÔØ‡}�}Ò Ø—M‘MˆŒ	à‡~�~˜Ô!ØŒÜ Ÿš¤X§\¡\Ó2ˆŒà
�(‰(‹*×ÐØ€Jò7 5ñ4 ùs'   ‚F�E?žFªEFÅ8FÅ9FÆFc                ó$   € V ^8„  d   QhR\         /# ©r%   rc   r   )r*   s   "r+   r,   r,   p  s   € ÷ 0ñ 0œLñ 0r-   c              ƒ   ó<  "  € ^ RI HpHp ^ RIHp V P                  \        V4      P                  VP                  4      4      G Rj  x€L
 P                  4       P                  4       p. pV EF   pV P                  \        V4      P                  VP                  VP                  8H  4      P                  VP                  4      4      G Rj  x€L
 P                  4       P                  4       p. pV EF  p	V P                  \        \        P                  ! 4       4      P                  V4      P                  VP                   V	P                   8H  4      4      G Rj  x€L
 P#                  4       ;'       g    ^ p
TP%                  \&        P(                  ! V	P                   V	P                  VP*                  V	P,                  V	P.                  V	P                  ;'       g    ^ V	P0                  V	P2                  V	P4                  V
R7
      4       EK  	  TP%                  \&        P6                  ! VP                  VP8                  VP*                  VP                  ;'       g    ^ VP:                  VP4                  VP<                  VR7      4       EK#  	  V#  ELL ELÊ EL?5i)r   )ÚChassisLocationMasterÚStationQaChecklistItemMasterr   N)
r²   Úlocation_idÚlocation_namerÁ  r¨   r€   rÈ  Úis_rework_stationrw   Úqa_items_count©rÑ  Úlocation_coderÒ  r€   Údescriptionrw   r¹   rí  )Úapp.models.location_modelsrÏ  rÐ  Úapp.models.rm_modelsr    r}   r
   r   r€   r�   r‚   r~   rÑ  r   r«   Úselect_fromr²   r'  r�  r"   ÚStationDetailOutrÒ  rÁ  r¨   rÈ  rÓ  rw   ÚLocationOutrÖ  r×  r¹   )rc   rÏ  rÐ  r    Ú	locationsr¾   Úlocrí  Ústn_listÚstnÚqa_counts   &          r+   Úget_locationsrâ  p  s  é € ß^Ý2à—z‘zÜÐ$Ó%×.Ñ.Ð/D×/PÑ/PÓQó÷ ç�wƒy—‘“ð ð €FÜˆØŸ*™*Ü�=Ó!ß‰U�=×,Ñ,°·±Ñ?Ó@ß‰X�m×/Ñ/Ó0ó
÷ 
÷ ‰7‹9—S‘S“Uð	 	ð ˆÜˆCØ Ÿj™jÜ”t—z’z“|Ó$ß‘Ð9Ó:ß‘Ð3×>Ñ>À#Ç.Á.ÑPÓQó÷ ÷ ‰z‹|÷	!ð !ð  !ð	 ð �O‰OœG×4Ò4ØŸ>™>ØŸO™OØ!×/Ñ/Ø ×-Ñ-Ø ×-Ñ-ØŸO™O×0Ð0¨qØŸO™OØ"%×"7Ñ"7ØŸ-™-Ø'ô÷ ñ ð( 	�‰”g×)Ò)ØŸ™Ø×+Ñ+Ø×+Ñ+ØŸ™×,Ð,¨1ØŸ™Ø—m‘mØ—~‘~Øô	
÷ 		ñ9 ðN €MòYò
òùsL   ‚AJÁJÁBJÃJÃBJÅJÅJÅ4A'JÇBJÉ6JÊJÊJc                óD   € V ^8„  d   QhR\         R\        P                  /# ©r%   rc   rÃ   )r   r"   ÚLocationCreate)r*   s   "r+   r,   r,   £  s    € ÷ ñ œlð ´W×5KÑ5Kñ r-   c              ƒ   ó’  "  € ^ RI Hp V P                  \        V4      P	                  VP
                  VP
                  P                  4       P                  4       8H  4      4      G Rj  x€L
 P                  4       pV'       d   \        RRVP
                   R2R7      hT! \        P                  ! 4       VP
                  P                  4       P                  4       VP                  P                  4       VP                  ;'       g    ^ VP                  VP                  e   VP                  MRR7      pV P!                  V4       V P#                  4       G Rj  x€L
  \$        P&                  ! VP(                  VP
                  VP                  VP                  VP                  VP                  VP*                  . R	7      #  ELZ Lk5i)
r   ©rÏ  NrÈ   zLocation code 'z' already existsrÉ   T)rÑ  rÖ  rÒ  r€   r×  rw   rÕ  )rØ  rÏ  r}   r
   r~   rÖ  r3   rj   rÜ   r	   r†   r‡   rÒ  r€   r×  rw   rˆ   rÝ   r"   rÜ  rÑ  r¹   )rc   rÃ   rÏ  rß   r0  s   &&   r+   Úcreate_locationrè  £  so  é € Ý@à—j‘jÜÐ$Ó%×+Ñ+Ð,A×,OÑ,OÐSZ×ShÑSh×SnÑSnÓSp×SvÑSvÓSxÑ,xÓyó÷ çÑÓð ÷ Ü¨°oÀg×F[ÑF[ÐE\Ð\lÐ4mÔnÐná$Ü—J’J“LØ×+Ñ+×1Ñ1Ó3×9Ñ9Ó;Ø×+Ñ+×1Ñ1Ó3Ø×'Ñ'×,Ð,¨1Ø×'Ñ'Ø'.×'8Ñ'8Ò'D�'×#Ò#È$ô€Hð ‡F�Fˆ8ÔØ
�(‰(‹*×Ðä×ÒØ×(Ñ(Ø×,Ñ,Ø×,Ñ,Ø×(Ñ(Ø×(Ñ(Ø×$Ñ$Ø×&Ñ&Øô	ð 	ò%ñ  ùs3   ‚A&GÁ(GÁ)GÂBGÄAGÅGÅA)GÇGc                ód   € V ^8„  d   QhR\         R\        P                  R\        P                  /# )r%   rc   rÑ  rÃ   )r   r†   rÆ   r"   ÚLocationUpdate)r*   s   "r+   r,   r,   Ä  s+   € ÷ ñ œlð ¼¿¹ð ÌW×McÑMcñ r-   c              ƒ   óˆ  "  € ^ RI Hp V P                  W14      G Rj  x€L
 pV'       g   \        RRR7      hVP                  e    VP                  P                  4       Vn        VP                  e   VP                  Vn        VP                  e   VP                  Vn        VP                  e   VP                  Vn        V P                  4       G Rj  x€L
  \        P                  ! VP                  VP                  VP                  VP                  VP                  VP                  VP                  . R7      #  EL  Lk5i)r   rç  Nré   zLocation not foundrÉ   rÕ  )rØ  rÏ  rë   r	   rÒ  rj   r€   r×  rw   rÝ   r"   rÜ  rÑ  rÖ  r¹   )rc   rÑ  rÃ   rÏ  r0  s   &&&  r+   Úupdate_locationrì  Ä  s  é € Ý@à—V‘VÐ1Ó?×?€HßÜ¨Ð4HÔIÐIà×ÑÒ(Ø!(×!6Ñ!6×!<Ñ!<Ó!>ˆÔØ×ÑÒ&Ø&×2Ñ2ˆÔØ×ÑÒ&Ø&×2Ñ2ˆÔØ×ÑÒ$Ø$×.Ñ.ˆÔà
�(‰(‹*×ÐÜ×ÒØ×(Ñ(Ø×,Ñ,Ø×,Ñ,Ø×(Ñ(Ø×(Ñ(Ø×$Ñ$Ø×&Ñ&Øô	ð 	ò @ñ ùs(   ‚E�D=žEªB*EÃE ÃA)EÅ Ec                ó$   € V ^8„  d   QhR\         /# rÍ  r   )r*   s   "r+   r,   r,   á  s   € ÷ ñ œ|ñ r-   c              ƒ   óŽ  "  € ^ RI Hp ^ RIHp V P	                  \        V4      P                  VP                  P                  4       P                  4       VP                  P                  4       4      4      G Rj  x€L
 P                  4       P                  4       p. pV EF  pV P	                  \        \        P                  ! 4       4      P                  V4      P!                  VP"                  VP"                  8H  4      4      G Rj  x€L
 P%                  4       ;'       g    ^ pTP'                  \(        P*                  ! VP"                  VP,                  RVP.                  VP                  VP                  ;'       g    ^ VP0                  VP2                  VP4                  VP6                  VR7      4       EK  	  V#  ELF Lº5i)r   r   ©rÐ  N©r²   rÑ  rÒ  rÁ  r¨   r€   rÈ  rÓ  rw   Ústandard_cycle_time_minrÔ  )rÙ  r    rØ  rÐ  r}   r
   r   r€   rÄ  Ú
nulls_lastr¨   r�   r‚   r   r«   rÚ  r~   r²   r'  r�  r"   rÛ  rÑ  rÁ  rÈ  rÓ  rw   rñ  )rc   r    rÐ  rí  rß  rà  rá  s   &      r+   Úget_all_stationsró  á  s^  é € Ý2ÝGà—j‘jÜˆ}Ó×&Ñ& }×'@Ñ'@×'DÑ'DÓ'F×'QÑ'QÓ'SÐUb×UoÑUo×UsÑUsÓUuÓvó÷ ç�wƒy—‘“ð ð €HÜˆØŸ*™*Ü”4—:’:“<Ó ß‰[Ð5Ó6ß‰UÐ/×:Ñ:¸c¿n¹nÑLÓMó
÷ 
÷ ‰:‹<÷	ð ð ð	 	ð 	�‰œ×0Ò0Ø—~‘~ØŸ™ØØ×)Ñ)Ø×)Ñ)ØŸ™×,Ð,¨1ØŸ™Ø!×3Ñ3Ø—m‘mØ$'×$?Ñ$?Ø#ô
÷ 	ñ ð* €Oò5ñ
ùs3   ‚A8GÁ:G Á;BGÄGÄ	GÄ"AGÆ AGÇGc                óD   € V ^8„  d   QhR\         R\        P                  /# rä  )r   r"   ÚStationCreate)r*   s   "r+   r,   r,     s$   € ÷ Jñ Jœ\ð J´G×4IÑ4Iñ Jr-   c              ƒ   óÒ  "  € ^ RI p^ RIHp ^ RIHp RpVP
                  '       d8   V P                  W1P
                  4      G Rj  x€L
 pV'       d   VP                  pVP                  P                  4       pVP                  '       dJ   VP                  P                  4       '       d*   VP                  P                  4       P                  4       pMxVP                  RRVP                  4       4      P                  R4      p	V	'       g8   R\        P                  ! 4       P                  R,          P                  4        2p	V	R,          pTp
^pV P!                  \#        VP$                  4      P'                  VP                  V
8H  4      4      G Rj  x€L
 P)                  4       '       d   VR	,           RV 2p
V^,          pKu  T
pV P!                  \#        V4      P+                  VP,                  P/                  4       P1                  4       VP                  P/                  4       4      4      G Rj  x€L
 P3                  4       P5                  4       pVP,                  '       d   VP,                  ^ 8”  d   VP,                  M\7        V4      ^,           p\9        ^ \;        V^,
          \7        V4      4      4      pVP<                  '       d   VP<                  ^ 8”  d   VP<                  MRpT! \        P                  ! 4       VP
                  TTV^,           VP>                  e   VP>                  MR
VP@                  e   VP@                  MR
VPB                  e   VPB                  MR
VR7	      pV PE                  V4       VPG                  VV4       \I        V^R7       F  w  ppVVn        K  	  V PK                  4       G Rj  x€L
  V PM                  V4      G Rj  x€L
  \N        PP                  ! VP$                  VP
                  VVP                  VP                  VP,                  VP>                  VP@                  VPB                  VP<                  ^ R7      #  EL ELË EL/ L¡ LŠ5i)r   Nrç  r   z
[^A-Z0-9]+r†  ÚSTN_:Né   N:Né(   N:Né#   NT)	r²   rÑ  rÁ  r¨   r€   rÈ  rÓ  rw   rñ  ©r{  rð  ))ÚrerØ  rÏ  rÙ  r    rÑ  rë   rÒ  r¨   rj   rÁ  r3   Úsubr†   r‡   Úhexr}   r
   r²   r~   rÜ   r   r€   rÄ  rò  r�   r‚   rÚ   r…   Úminrñ  rÈ  rÓ  rw   rˆ   ÚinsertÚ	enumerater‰   rÞ   r"   rÛ  )rc   rÃ   rü  rÏ  r    rÒ  r0  r¨   Ú	base_codeÚ
clean_nameÚ	candidateÚsuffixrÁ  Úall_stationsÚ
target_seqró  Ú	cycle_minr  Úirî  s   &&                  r+   Úcreate_stationr
    s“  é € ÛÝ@Ý2à€MØ××ÐØŸ™Ð 5×7JÑ7JÓK×KˆßØ$×2Ñ2ˆMà×'Ñ'×-Ñ-Ó/€Lð ××Ð × 4Ñ 4× :Ñ :× <Ò <Ø×(Ñ(×.Ñ.Ó0×6Ñ6Ó8‰	à—V‘V˜M¨3°×0BÑ0BÓ0DÓE×KÑKÈCÓPˆ
ßØ¤§
¢
£× 0Ñ 0°Õ 4× :Ñ :Ó <Ð=Ð>ˆJØ˜s•Oˆ	à€IØ€FØ—‘Üˆ}×'Ñ'Ó(×.Ñ.¨}×/IÑ/IÈYÑ/VÓWó÷ çÑÓöð ! •~Ð& a¨ xÐ0ˆ	Ø�!�ŠØ€Lð Ÿ*™*Üˆ}Ó×&Ñ& }×'@Ñ'@×'DÑ'DÓ'F×'QÑ'QÓ'SÐUb×UoÑUo×UsÑUsÓUuÓvó÷ ç�wƒy—‘“ð ð *1×)<×)<Ð)<À×ATÑATÐWXÔAX�×$Ò$Ô`cÐdpÓ`qÐtuÕ`u€JÜ�Qœ˜J¨�N¬C°Ó,=Ó>Ó?€Jà4;×4S×4SÐ4SÐX_×XwÑXwÐz{ÔX{�×/Ò/ð  CG€IáÜ—:’:“<Ø×'Ñ'Ø!Ø!Ø •NØ+2×+>Ñ+>Ò+J�G×'Ò'ÐPTØ7>×7PÑ7PÒ7\˜'×3Ò3ÐbfØ'.×'8Ñ'8Ò'D�'×#Ò#È$Ø )ô
€Gð ‡F�Fˆ7„Oð ×Ñ˜
 GÔ,Ü˜,¨a×0‰ˆˆ1ØˆŽñ 1ð �)‰)‹+×ÐØ
�*‰*�WÓ
×Ðä×#Ò#Ø×%Ñ%Ø×'Ñ'Ø#Ø×)Ñ)Ø×)Ñ)Ø×'Ñ'Ø×'Ñ'Ø!×3Ñ3Ø×#Ñ#Ø '× ?Ñ ?Øôð òo Lò"òñ6 Ùùsƒ   ‚AQ'ÁQÁQ'Á7Q'Â
Q'Â*A Q'ÄBQ'ÆQÆQ'Æ+BQ'È1Q È21Q'É$EQ'ÏQ#ÏQ'ÏQ%ÏB Q'ÑQ'Ñ Q'Ñ#Q'Ñ%Q'c                ód   € V ^8„  d   QhR\         R\        P                  R\        P                  /# )r%   rc   r²   rÃ   )r   r†   rÆ   r"   ÚStationUpdate)r*   s   "r+   r,   r,   O  s+   € ÷ 9ñ 9œ\ð 9´t·y±yð 9Ì7×K`ÑK`ñ 9r-   c              ƒ   óÂ  "  € ^ RI Hp ^ RIHp V P	                  W14      G Rj  x€L
 pV'       g   \        RRR7      hVP                  e   VP                  Vn        VP                  e    VP                  P                  4       Vn        VP                  e   VP                  Vn	        VP                  e   VP                  Vn
        VP                  e   VP                  Vn        RVP                  9   d!   VP                  pVe
   V^ 8”  d   TMRVn        VP                  Ee2   VP                  VP                  8w  Ed   V P                  \!        V4      P#                  VP                  P%                  4       P'                  4       VP                  P%                  4       4      4      G Rj  x€L
 P)                  4       P+                  4       pV Uu. uF  qˆP,                  V8w  g   K  VNK  	  p	p\/        ^\1        VP                  \3        V	4      ^,           4      4      p
V
^,
          pV	P5                  Wµ4       \7        V	^R7       F  w  rÈWÈn        K  	  V P9                  4       G Rj  x€L
  V P;                  V4      G Rj  x€L
  RpVP                  '       d8   V P	                  WEP                  4      G Rj  x€L
 pV'       d   VP<                  p\>        P@                  ! VP,                  VP                  VVPB                  VP                  VP                  VP                  VP                  VP                  VP                  ^ R	7      #  EL+ EL¤u upi  Lî L× L¢5i)
r   r   rç  Nré   r  rÉ   rñ  rû  rð  )"rÙ  r    rØ  rÏ  rë   r	   rÑ  r¨   rj   rÈ  rÓ  rw   Úmodel_fields_setrñ  r€   r}   r
   r   rÄ  rò  r�   r‚   r²   r…   rÿ  rÚ   r   r  r‰   rÞ   rÒ  r"   rÛ  rÁ  )rc   r²   rÃ   r    rÏ  r  Úvalr  rî  ÚothersÚ
new_targetró  r	  Úloc_namerÞ  s   &&&            r+   Úupdate_stationr  O  s¹  é € Ý2Ý@à—F‘F˜=Ó5×5€GßÜ¨Ð4GÔHÐHà×ÑÒ&Ø%×1Ñ1ˆÔØ×ÑÒ'Ø&×3Ñ3×9Ñ9Ó;ˆÔØ×ÑÒ&Ø%×1Ñ1ˆÔØ× Ñ Ò,Ø$+×$=Ñ$=ˆÔ!Ø×ÑÒ$Ø#×-Ñ-ˆÔØ  G×$<Ñ$<Ô<Ø×-Ñ-ˆØ25²/ÀcÈAÄg©#ÐTXˆÔ'ð ×ÑÓ&¨7×+>Ñ+>À'×BUÑBUÕ+UØ Ÿj™jÜ�=Ó!×*Ñ*¨=×+DÑ+D×+HÑ+HÓ+J×+UÑ+UÓ+WÐYf×YsÑYs×YwÑYwÓYyÓzó
÷ 
ç‰7‹9—S‘S“Uð 	ñ *ÓH™\˜¯\©\¸ZÑ-G—!�!™\ˆÐHÜ˜œC × 3Ñ 3´S¸³[À1µ_ÓEÓFˆ
Ø !•^ˆ
à�‰�jÔ*Ü˜f¨A×.‰DˆAØŽMñ /ð �)‰)‹+×ÐØ
�*‰*�WÓ
×Ðà€HØ××ÐØ—F‘FÐ0×2EÑ2EÓF×FˆßØ×(Ñ(ˆHä×#Ò#Ø×%Ñ%Ø×'Ñ'ØØ×)Ñ)Ø×)Ñ)Ø×'Ñ'Ø×'Ñ'Ø!×3Ñ3Ø×#Ñ#Ø '× ?Ñ ?Øôð òS 6ò(
ùò Iñ Ùñ Gùs}   ‚!M£M¤M°E=MÆ-MÆ.$MÇMÇ)MÇ/A;MÉ*MÉ+MÊMÊMÊMÊ:MÊ;MËBMÍMÍMÍMÍMc                óD   € V ^8„  d   QhR\         R\        P                  /# ©r%   rc   r²   ry  )r*   s   "r+   r,   r,   ‹  s&   € ÷ QVñ QVœ\ð QV´t·y±yñ QVr-   c              ƒ   ó\
  "  € ^ RI HpHp ^ RIHpHp ^ RIHpHpH	pH
p	Hp
Hp ^ RIHpHp ^ RIHp ^ RIHpHpHp V P-                  W!4      G Rj  x€L
 pV'       g   \/        RR	R
7      hV P1                  V! V4      P3                  VP4                  V8H  4      P7                  RR7      4      G Rj  x€L
  V P1                  V! V4      P3                  VP4                  V8H  4      P7                  RR7      4      G Rj  x€L
  V P1                  V! V4      P3                  VP8                  V8H  4      P7                  RR7      4      G Rj  x€L
  V P1                  V! V4      P3                  VP4                  V8H  4      P7                  RR7      4      G Rj  x€L
  V P1                  V! V4      P3                  VP4                  V8H  4      4      G Rj  x€L
  V P1                  V! V4      P3                  VP4                  V8H  4      4      G Rj  x€L
  V P1                  V! V4      P3                  VP4                  V8H  4      4      G Rj  x€L
  V P1                  V! V4      P3                  VP4                  V8H  4      4      G Rj  x€L
  V P1                  V! V4      P3                  VP4                  V8H  4      4      G Rj  x€L
  V P1                  V! VP:                  4      P3                  VP4                  V8H  4      4      G Rj  x€L
 P=                  4       P?                  4       pV'       dÖ   V P1                  V! V
4      P3                  V
P:                  PA                  V4      4      4      G Rj  x€L
  V P1                  V! V	4      P3                  V	P:                  PA                  V4      4      4      G Rj  x€L
  V P1                  V! V4      P3                  VP:                  PA                  V4      4      4      G Rj  x€L
  V P'                  V4      G Rj  x€L
  V PC                  4       G Rj  x€L
  V P1                  V! V4      PE                  VPF                  PI                  4       PK                  4       VPL                  PI                  4       4      4      G Rj  x€L
 P=                  4       P?                  4       p\O        V^R7       F  w  ppVVn#        K  	  V PQ                  4       G Rj  x€L
  RRR\S        V4      /#  ELª ELM EL EL½ ELu EL= EL ELÍ EL• EL] EL EL³ ELo EL+ EL Lÿ L” LD5i)r   )r    ÚRmMaster)rÐ  ÚChassisStationQaResult)ÚQaStationTemplateMapÚQaChecksheetTemplateÚQaChecksheetInstanceÚQaCheckpointResponseÚQaChecksheetSignoffÚQaShortageLog)r   ÚProductionHold)r   )r$  Úupdater
   Nré   r  rÉ   )r²   )r±   rû  rQ  zStation deleted successfullyr²   )*rÙ  r    r  rØ  rÐ  r  Úapp.models.qa_modelsr  r  r  r  r  r  Úapp.models.production_modelsr   r  rœ   r   rc  r$  r   r
   rë   r	   r}   r~   r²   Úvaluesr±   Úinstance_idr�   r‚   Úin_rÝ   r   r€   rÄ  rò  r¨   r  r‰   r)   )rc   r²   r    r  rÐ  r  r  r  r  r  r  r  r   r  r   r$  r   r
   r  Úinstance_idsÚ	remainingr	  rî  s   &&                     r+   Údelete_stationr(  ‹  su  é € ß<ß_÷÷ ÷ OÝ4ß1Ñ1à—F‘F˜=Ó5×5€GßÜ¨Ð4GÔHÐHð �*‰*ÙÐ#Ó$ß	‰Ð#×.Ñ.°*Ñ<Ó	=ß	‰˜4ˆÓ	 ó÷ ð ð
 �*‰*ÙˆxÓß	‰ˆx×"Ñ" jÑ0Ó	1ß	‰˜4ˆÓ	 ó÷ ð ð
 �*‰*Ùˆ}Óß	‰ˆ}×/Ñ/°:Ñ=Ó	>ß	‰ 4ˆÓ	(ó÷ ð ð
 �*‰*Ùˆ~Óß	‰ˆ~×(Ñ(¨JÑ6Ó	7ß	‰˜4ˆÓ	 ó÷ ð ð �*‰*ÙÐ#Ó$×*Ñ*Ð+?×+JÑ+JÈjÑ+XÓYó÷ ð ð �*‰*ÙÐ+Ó,×2Ñ2Ð3O×3ZÑ3ZÐ^hÑ3hÓió÷ ð ð
 �*‰*ÙÐ%Ó&×,Ñ,Ð-C×-NÑ-NÐR\Ñ-\Ó]ó÷ ð ð �*‰*Ùˆ}Ó×#Ñ# M×$<Ñ$<À
Ñ$JÓKó÷ ð ð �*‰*ÙÐ Ó!×'Ñ'Ð(9×(DÑ(DÈ
Ñ(RÓSó÷ ð ð
 Ÿ*™*ÙÐ#×/Ñ/Ó0×6Ñ6Ð7K×7VÑ7VÐZdÑ7dÓeó÷ ç�wƒy—‘“ð ÷ Ø�j‰j™Ð 3Ó4×:Ñ:Ð;N×;ZÑ;Z×;^Ñ;^Ð_kÓ;lÓmÓn×nÐnØ�j‰j™Ð 4Ó5×;Ñ;Ð<P×<\Ñ<\×<`Ñ<`ÐamÓ<nÓoÓp×pÐpØ�j‰j™Ð 4Ó5×;Ñ;Ð<P×<\Ñ<\×<`Ñ<`ÐamÓ<nÓoÓp×pÐpð �)‰)�GÓ
×ÐØ
�(‰(‹*×Ðð —z‘zÙˆ}Ó×&Ñ& }×'@Ñ'@×'DÑ'DÓ'F×'QÑ'QÓ'SÐUb×UoÑUo×UsÑUsÓUuÓvó÷ ç�wƒy—‘“ð ô ˜)¨1×-‰ˆˆ1ØˆŽñ .ð �)‰)‹+×ÐØÐ5°|ÄSÈÃ_ÐUÐUòE 6ò
ò
ò
ò
òòò
òòò
ò 	oÚpÚpò Ùññ ùsZ  ‚AT,ÁS9ÁT,ÁAT,Â/S<Â0A
T,Ã:S?Ã;A
T,ÅTÅA
T,ÆTÆ:T,ÇTÇ:T,ÈTÈ:T,ÉTÉ:T,É<TÉ=:T,Ê7TÊ8AT,Ë<TË='T,Ì%AT,Í'TÍ(AT,Î.TÎ/AT,Ï5T Ï6T,ÐT#ÐT,Ð&T&Ð'A,T,ÒT(ÒAT,Ó%T*Ó&T,Ó<T,Ó?T,ÔT,ÔT,ÔT,ÔT,ÔT,ÔT,ÔT,ÔT,ÔT,ÔT,Ô T,Ô#T,Ô&T,Ô(T,Ô*T,c                óD   € V ^8„  d   QhR\         R\        P                  /# r  ry  )r*   s   "r+   r,   r,   ß  s   € ÷ 	ñ 	¤<ð 	¼T¿Y¹Yñ 	r-   c              ƒ   ó  "  € ^ RI Hp V P                  \        V4      P	                  VP
                  V8H  4      P                  VP                  4      4      G Rj  x€L
 P                  4       P                  4       pV#  L"5i)r   rï  N)
rØ  rÐ  r}   r
   r~   r²   r   r€   r�   r‚   )rc   r²   rÐ  rG  s   &&  r+   Úget_station_qa_itemsr+  ß  si   é € ÝGà—:‘:ÜÐ+Ó,ß	‰Ð+×6Ñ6¸*ÑDÓ	Eß	‰Ð.×:Ñ:Ó	;ó÷ ÷ �wƒy—‘“ð	 
ð €Lñùs   ‚AB ÁA>Á#B c                óD   € V ^8„  d   QhR\         R\        P                  /# rä  )r   r"   ÚStationQaItemCreate)r*   s   "r+   r,   r,   ë  s    € ÷ ñ ¤\ð ¼G×<WÑ<Wñ r-   c           
   ƒ   ó¬  "  € ^ RI Hp T! \        P                  ! 4       VP                  VP
                  ;'       g    RP                  4       VP                  P                  4       VP                  VP                  ;'       g    ^ VP                  e   VP                  MRR7      pV P                  V4       V P                  4       G Rj  x€L
  V#  L5i)r   rï  ÚGeneralNT)r  r²   rŸ  r   Úspecificationr€   rw   )rØ  rÐ  r†   r‡   r²   rŸ  rj   r   r0  r€   rw   rˆ   rÝ   )rc   rÃ   rÐ  r@  s   &&  r+   Úcreate_station_qa_itemr1  ë  s¦   é € ÝGá'Ü—
’
“Ø×%Ñ%Ø×$Ñ$×1Ð1¨	×8Ñ8Ó:Ø×/Ñ/×5Ñ5Ó7Ø×+Ñ+Ø×'Ñ'×,Ð,¨1Ø'.×'8Ñ'8Ò'D�'×#Ò#È$ô€Dð ‡F�Fˆ4„LØ
�(‰(‹*×ÐØ€Kñ ùs   ‚BCÂACÃCÃC)N)r~  )NNNN)[rU   r†   r   r   r   Útypingr   r   rv  r	   rc  r
   r   r   r   Úsqlalchemy.ext.asyncior   rœ   r   r   r   r   r   r   r   r   r   r   r   r   r"  r   r�   r   r   rÙ  r    Úapp.models.core_modelsr!   Úapp.modules.yardr"   Ú.app.modules.chassis_tracker.order_spec_servicer#   r4   r>   rC   rG   rI   rÇ  r`   r�   rÀ   râ   rí   rý   r  r  r0  rA  rK  rW  rf  rk  rt  ry  r—  r¥  rÑ  r  r  r)  r3  rj  rq  rw  r{  r€  r£  r¨  r°  r½  rË  râ  rè  rì  ró  r
  r  r(  r+  r1  r;   r-   r+   Ú<module>r7     s€  ðÛ 	Û ß -Ñ -ß !Ý !ß .Ó .Ý /÷÷ ÷ ó õ ;ß CÝ .Ý -Ý $Ý Uõ@õó Ø
‡m‚m�NÓ#€õ3ð �,Ø	Ð ØÐ4Ø�,ð	Ð õõ+÷\!UõH1õhõ 8÷võ@õ*+õ\õ>#õL0õ0#3õL'3õT õF:÷*+õ\1õhuõp]
õ@	!õHZõ~-3÷`JõZõ$õ"*õõ(2õjBõõ(õ6õL0õfõBõ:õBJõZ9õxQVõh	÷r-   