+
    `Øj@  ã                   ó¢   € R t ^ RIHtHtHtHt ^ RIHtHt ^ RIH	t	 ^ RI
HtHtHt ^ RIHt ^ RIHt ^ RIHt ^t^tR R	 ltR
 R ltR R ltR# )a|  
Sales dashboard: live pipeline position of every chassis plus period figures.

Live figures (pipeline, holds, ready for dispatch) describe the plant right now. Period
figures (arrivals, dispatches, dealers, model mix, activity) use the selected date range.
Stations come from station_master in sequence order, so the pipeline follows the plant
layout configured in the database.
)ÚdateÚdatetimeÚtimeÚtimezone)ÚselectÚfunc)ÚAsyncSession)ÚChassisMasterÚChassisStatusLogÚVehicleModelMaster)ÚChassisStationLog)ÚStationMaster)ÚCustomerMasterc                ó^   € V ^8„  d   QhR\         R\         R\        \        \        3,          /# )é   ÚstartÚendÚreturn)r   Útupler   )Úformats   "Ú=/var/www/html/audi_dev/backend/app/modules/sales/dashboard.pyÚ__annotate__r      s+   € ÷ ñ œ$ð ¤Tð ¬e´H¼hÐ4FÕ.Gñ ó    c                 óÖ   € \         P                  ! V \        P                  \        P
                  R 7      \         P                  ! V\        P                  \        P
                  R 7      3# ))Útzinfo)r   Úcombiner   Úminr   ÚutcÚmax)r   r   s   &&r   Ú_period_boundsr      s@   € ä×Ò˜¤§¡´·±Ô>Ü×Ò˜œdŸh™h¬x¯|©|Ô<ðð r   c                ó0   € V ^8„  d   QhR\         R\        /# )r   Údbr   )r   Úint)r   s   "r   r   r      s   € ÷ pñ p”\ð p´3ñ pr   c              ‡   óê   "  € V P                  \        \        P                  ! 4       4      P	                  \
        4      P                  ! V!  4      G R j  x€L
 P                  4       ;'       g    ^ #  L5i©N)Úexecuter   r   ÚcountÚselect_fromr	   ÚwhereÚscalar)r!   Ú
conditionss   &*r   Ú_countr+      sN   é € Ø—*‘*œV¤D§J¢J£LÓ1×=Ñ=¼mÓL×RÒRÐT^Ñ_Ó`×`×hÑhÓj×oÐoÐnoÐoÑ`ùs   ‚AA3ÁA1ÁA3Á.A3c                óH   € V ^8„  d   QhR\         R\        R\        R\        /# )r   r!   r   r   r   )r   r   Údict)r   s   "r   r   r   "   s.   € ÷ bñ bœlð b´4ð b¼dð bÄtñ br   c              ƒ   óL  "  € \        W4      w  r4\        P                  R 8g  pR\        V \        P                  R8H  4      G Rj  x€L
 R\        V \        P                  R8H  4      G Rj  x€L
 R\        V \        P                  R8H  V4      G Rj  x€L
 R\        V \        P                  R	8H  4      G Rj  x€L
 R
\        V \        P
                  P                  W4      4      G Rj  x€L
 R\        V \        P                  P                  W44      4      G Rj  x€L
 /p\        V P                  \        \        P                  \        P                  ! \        P                  ! \        P                   4      4      4      P#                  \        P$                  R8H  \        P&                  R8H  4      P)                  \        P                  4      4      G Rj  x€L
 P+                  4       4      pV P                  \        \,        4      P#                  \,        P.                  P1                  R4      4      P3                  \,        P4                  4      4      G Rj  x€L
 P7                  4       P+                  4       pRRRRRVR,          /.p	T	V U
u. uF9  p
RV
P8                  RV
P:                  RVP=                  V
P                  ^ 4      /NK;  	  up
,          p	V	RRRRRVR,          /RR RRRVR,          /.,          p	\        P
                  P                  W4      pV P                  \        \>        P@                  \>        PB                  \>        PD                  \>        PF                  \        P                  ! \        P                   4      PI                  R4      \        P                  ! \        P                   4      PK                  \        P                  R8H  4      PI                  R4      \        P                  ! \        P                   4      PK                  \        P                  R 8H  4      PI                  R4      4      PM                  \        \        PN                  \>        P@                  8H  4      P#                  V4      P)                  \>        P@                  \>        PB                  \>        PD                  \>        PF                  4      P3                  \        P                  ! \        P                   4      PQ                  4       4      PS                  \T        4      4      G Rj  x€L
 P+                  4       pV Uu. uFo  pRVP@                  RVPB                  RRPM                  R VPD                  VPF                  3 4       4      RVPV                  RVPX                  RVPZ                  /NKq  	  ppV P                  \        \        P\                  ! \^        P`                  R4      PI                  R 4      \        P                  ! 4       PI                  R!4      4      Pc                  \        4      Pe                  \^        \^        Pf                  \        Pf                  8H  4      P#                  V4      P)                  R 4      P3                  \        P                  ! 4       PQ                  4       4      4      G Rj  x€L
 P+                  4       p\i        R" V 4       4      pR#TR$V Uu. uFJ  pR VPj                  RVPl                  R%V'       d$   \o        VPl                  ^d,          V,          4      M^ /NKL  	  up/pV P                  \        \p        \        Pr                  4      PM                  \        \        P                   \p        P                   8H  4      P#                  \p        Pt                  P                  W44      4      P3                  \p        Pt                  PQ                  4       4      PS                  \v        4      4      G Rj  x€L
 P+                  4       pV UUu. uF:  w  ppR&VR'VPx                  R(VPz                  RVP|                  R)VPt                  /NK<  	  pppR*R+VR,V/R-VR.V	R/VR0VR1V/#  EL+ EL	 ELæ ELÄ EL– ELh EL¯ EL1u up
i  ELku upi  ELßu upi  L™u uppi 5i)2Ú
DISPATCHEDÚin_yardÚ
CHASSIS_INNÚin_productionÚWIPÚda_lite_holdÚHOLDÚready_for_dispatchÚREADY_FOR_DISPATCHÚarrived_in_periodÚdispatched_in_periodÚARRIVALÚ
AT_STATIONTÚcodeÚYARDÚlabelÚYardr&   ÚRFDzReady for dispatchzDispatched (period)ÚchassisÚon_holdÚ
dispatchedÚ	dealer_idÚnameÚlocationz, c              3   ó8   "  € T F  q'       g   K  Vx € K  	  R # 5ir$   © )Ú.0Úps   & r   Ú	<genexpr>Ú"build_dashboard.<locals>.<genexpr>T   s   é € Ð!DÑ->¨Ã!§!¢!Ó->ùs   ‚	�
zModel not setÚmodelÚnc              3   ó8   "  € T F  qP                   x € K  	  R # 5ir$   )rN   )rI   Úrs   & r   rK   rL   b   s   é € Ð*¡˜A—C–C£ùs   ‚ÚtotalÚmodelsÚpercentÚ
chassis_noÚfrom_statusÚ	to_statusÚatÚperiodr   r   ÚkpisÚpipelineÚtop_dealersÚ	model_mixÚrecent_activity)?r   r	   Útracking_statusr+   Úda_lite_statusÚarrival_dateÚbetweenÚdispatched_atr-   r%   r   r   Ú
station_idr   r&   ÚdistinctÚ
chassis_idr(   Ú
event_typeÚstatusÚgroup_byÚallr   Ú	is_activeÚis_Úorder_byÚsequence_noÚscalarsÚstation_codeÚstation_nameÚgetr   Úcustomer_idrE   ÚcityÚstater>   ÚfilterÚjoinrD   ÚdescÚlimitÚTOP_DEALER_LIMITrA   rB   rC   Úcoalescer   Úmodel_numberr'   Ú	outerjoinÚmodel_idÚsumrM   rN   Úroundr
   rT   Ú
changed_atÚACTIVITY_LIMITrU   rV   Úscan_location)r!   r   r   Úperiod_fromÚ	period_toÚnot_dispatchedrY   Ú
at_stationÚstationsrZ   ÚsÚ	in_periodÚdealer_rowsrP   r[   Úmix_rowsÚ	mix_totalr\   Úactivity_rowsÚlogrT   r]   s   &&&                   r   Úbuild_dashboardr�   "   sµ  é € Ü+¨EÓ7Ñ€KÜ"×2Ñ2°lÑB€Nð 	œ ¤M×$AÑ$AÀ\Ñ$QÓR×RØœv b¬-×*GÑ*GÈ5Ñ*PÓQ×QØœf R¬×)EÑ)EÈÑ)OÐQ_Ó`×`Ø¤F¨2¬}×/LÑ/LÐPdÑ/dÓ$e×eØ¤6¨"¬m×.HÑ.H×.PÑ.PÐQVÓ.\Ó#]×]Ø¤f¨R´×1LÑ1L×1TÑ1TÐU`Ó1lÓ&m× mð€Dô ˜RŸZ™ZÜÔ ×+Ñ+¬T¯ZªZ¼¿ºÔFW×FbÑFbÓ8cÓ-dÓeß	‰Ô ×+Ñ+¨yÑ8Ô:K×:RÑ:RÐVbÑ:bÓ	cß	‰Ô#×.Ñ.Ó	/ó÷ ÷ �sƒuó	€Jð
 —j‘jÜŒ}Ó×#Ñ#¤M×$;Ñ$;×$?Ñ$?ÀÓ$EÓF×OÑOÔP]×PiÑPiÓjó÷ ç�wƒy—‘“ð ð ˜ ¨&°'¸4À	½?ÐKÐL€HØáóáˆAð 
�—‘ ¨!¯.©.¸'À:Ç>Á>ÐRS×R^ÑR^Ð`aÓCbÓcÙñõ €Hð Ø	�˜Ð!5°wÀÐEYÕ@ZÐ[Ø	�˜wÐ(=¸wÈÐMcÕHdÐeðõ €Hô
 ×*Ñ*×2Ñ2°5Ó>€IàŸ™ÜÜ×&Ñ&¬×(;Ñ(;¼^×=PÑ=PÔR`×RfÑRfÜ�JŠJ”}×/Ñ/Ó0×6Ñ6°yÓAÜ�JŠJ”}×/Ñ/Ó0×7Ñ7¼×8TÑ8TÐX^Ñ8^Ó_×eÑeÐfoÓpÜ�JŠJ”}×/Ñ/Ó0×7Ñ7¼×8UÑ8UÐYeÑ8eÓf×lÑlÐmyÓzó		
÷ 
‰Œmœ]×4Ñ4¼×8RÑ8RÑRÓ	Sß	‰ˆyÓ	ß	‰”.×,Ñ,¬n×.AÑ.AÄ>×CVÑCVÔXf×XlÑXlÓ	mß	‰”$—*’*œ]×5Ñ5Ó6×;Ñ;Ó=Ó	>ß	‰ÔÓ	 ó÷ ÷ �sƒuð ñ& óñ ˆAð	 ˜Ÿ™¨°·±Ø˜Ÿ	™	Ñ!D¨a¯f©f°a·g±gÑ->Ó!DÓDØ�q—y‘y )¨Q¯Y©Y¸ÀaÇlÁló	
ñ
 ð ð ð —j‘jÜŒt�}Š}Ô/×<Ñ<¸oÓN×TÑTÐU\Ó]Ô_c×_iÒ_iÓ_k×_qÑ_qÐruÓ_vÓwß	‰”]Ó	#ß	‰Ô%Ô'9×'BÑ'BÄm×F\ÑF\Ñ'\Ó	]ß	‰ˆyÓ	ß	‰�'Ó	ß	‰”$—*’*“,×#Ñ#Ó%Ó	&ó÷ ÷ �sƒuð ô Ñ*¡Ó*Ó*€Ià�Øáó
á�ð �a—g‘g˜w¨¯©¨Y×Xa¼¸a¿c¹cÀC½iÈ)Õ>SÔ8TÐghÓiÙñ
ð€Ið Ÿ:™:ÜÔ¤×!9Ñ!9Ó:ß	‰Œmœ]×5Ñ5Ô9I×9TÑ9TÑTÓ	Uß	‰Ô×*Ñ*×2Ñ2°;ÓJÓ	Kß	‰Ô"×-Ñ-×2Ñ2Ó4Ó	5ß	‰Œ~Ó	ó÷ ÷ �sƒuð ñ  -ô	ñ  -‰OˆC�ð ˜*Ø˜3Ÿ?™?Ø˜Ÿ™Ø˜×)Ñ)Ø�#—.‘.ó	
ñ  -ð ñ 	ð 	�7˜E 5¨#Ð.Ø�Ø�HØ�{Ø�YØ˜?ðð òm SÚQÚ`ÚeÚ]Ú mòò
ùòòùòòùò
ñùó	ùs	  ‚Ab$Áa/Á$b$Á)a2
Á*%b$Âa5Â$b$Â4a8Â50b$Ã%a;Ã&0b$Äa>ÄB;b$ÇbÇB b$ÉbÉ5b$Ê	?bËIb$Ô!bÔ"b$Ô8A5bÖ-Db$Ú5bÚ6+b$Û!%b
Ü*b
Ü1Cb$àbàb$àA báb$á2b$á5b$á8b$á;b$á>b$âb$âb$âb$âb$âb$âb$N)Ú__doc__r   r   r   r   Ú
sqlalchemyr   r   Úsqlalchemy.ext.asyncior   Úapp.models.yard_modelsr	   r
   r   Úapp.models.production_modelsr   Úapp.models.rm_modelsr   Úapp.models.sales_modelsr   ry   r�   r   r+   r�   rH   r   r   Ú<module>r—      sC   ðñ÷ 4Ó 3ç #Ý /ç VÑ VÝ :Ý .Ý 2àÐ Ø€õõp÷br   