+
    @J˜j‚  ã                  óÄ  € ^ RI 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 ^ RIHtHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t* ^ RI+H,t, ]! ]! ]! R4      4      .R7      t-R¬t.RRRRRRRRRRRR/t/R]R]R]R] R]!R]"/t0RR]'R3RR]%R3R R]R!3R"R]R#3R$R]R%3R&R] R'3R(R]!R)3R*R]"R+3R,R-]*R.3R/R0]R13R2R3](R43R5R6])R73R8R9]R:3R;R<]&R=3R>R?]$R@3RARB]RC3RDRE]#RF3.t1/ RRG]'Pd                  RHRIRJ]'Pf                  RKRLRM]'Ph                  RNRO]Pj                  ! ]'Pl                  ^ 4      RPRQ3./bRRG]%Pn                  RHRRRJ]%Pp                  RKRSRM]%Pr                  RNRT]Pj                  ! ]%Pt                  ^ 4      RPRQ3RU]Pj                  ! ]%Pv                  ^ 4      RVRQ3./bR RG]Px                  RHRWRJ]Pz                  RKRXRM]P|                  RNRY]Pj                  ! ]P~                  ^ 4      RPRQ3./bR"RG]P€                  RHRZRJ]P‚                  RKR[RM]P|                  RNRO]Pj                  ! ]Pl                  ^ 4      RPRQ3./bR$RG]P„                  RHR\RJ]P†                  RKR]RM]P|                  RNR^]Pj                  ! ]Pˆ                  ^ 4      RPRQ3./bR&RG] PŠ                  RHR_RJ] PŒ                  RKR`RM] P|                  RNRa]Pj                  ! ] PŒ                  ^ 4      RVRQ3./bR(RG]!PŽ                  RHR_RJ]!PŒ                  RKRbRM]!P|                  RNRa]Pj                  ! ]!PŒ                  ^ 4      RVRQ3./bR*RG]"P„                  RHRcRJ]"P�                  RKRdRM]"P|                  RN. /bR,RG]*P’                  RHReRJ]*P”                  RKR[RM]*P|                  RNRf]Pj                  ! ]*P–                  ]*Pl                  ^ 4      RPRQ3./bR/RG]P˜                  RHRgRJ]Pš                  RKRhRM]Pœ                  RNRi]Pj                  ! ]P–                  ^ 4      RPRQ3./bR2RG](Pž                  RHRjRJ](P                   RKRkRM](P¢                  RNRl]Pj                  ! ](P¤                  ^ 4      RVRQ3./bR5RHRmRJ])P¦                  RKRnRM])P¨                  RNRo])Pª                  RpRq3./bR8RHRjRJ]P                   RKRnRM]P¨                  RNRr]P¬                  RPRQ3./bR;RG]&P®                  RHRsRJ]&P°                  RKRtRM]&P|                  RNRu]Pj                  ! ]&P²                  ]&Pl                  ^ 4      RPRQ3./bR>RG]$P˜                  RHRvRJ]$P´                  RKRwRM]$P¶                  RNRx]Pj                  ! ]$P–                  ^ 4      RPRQ3./bRARG]P¸                  RHRyRJ]Pº                  RKRzRM]Pº                  RNR{]P¼                  RVRQ3./bRDRG]#P¾                  RHR|RJ]#PÀ                  RKR}RM]#PÀ                  RNR~]#PÂ                  RPRQ3R]#PÄ                  RPRQ3./btcR€ tdR� R‚ lteRƒ R„ ltfR… R† ltgR‡ Rˆ lthR‰ RŠ ltiR­RŒ R� lltjR­RŽ R� lltkR� tlR‘ tmR’ R“ ltnR” toR• tpR– tqR— trR˜ tsR™ Rš ltt]-Pë                  R›4      Rœ R� l4       tv]-Pë                  Rž4      RŸ R  l4       tw]-Pë                  R¡4      ]! R¢R£7      ]! R‹R£7      ]! R‹R£7      ]! R‹^^R¤7      ]! R‹R¥R¦R¤7      3R§ R¨ ll4       tx]-Pë                  R©4      ]! R‹R£7      ]! R‹R£7      3Rª R« ll4       tyR‹# )®é    )Úannotations)Ú
monthrange)ÚdateÚdatetimeÚtimeÚ	timedelta)Ú	Annotated)Ú	APIRouterÚDependsÚHTTPExceptionÚQuery)ÚdescÚfunc)r   ÚSession)Úrequire_access)Úget_db)ÚDeliveryAcceptanceÚETenderCaseÚEMDÚFinancialEvaluationÚGeMProcurementCaseÚGlobalTenderCaseÚLPCProcurementCaseÚOpenMarketCaseÚOtherProcurementCaseÚPaymentTrackingÚPerformanceSecurityÚProcurementCaseÚPurchaseOrderÚRequisitionÚSampleRegisterÚTechnicalEvaluationÚ	TenderBid)ÚProcurementStatusÚ	dashboard)ÚdependenciesÚGEMÚE_TENDERÚGLOBAL_TENDERÚLPCÚOPEN_MARKETÚOTHERzGeM Procurementze-TenderingzGlobal TenderzLocal Purchase CommitteezOpen Market ProcurementzOther ProcurementÚrequisitionsúRequisition Registerú/lifecycle/requisitionsúprocurement-caseszProcurement Case Registerz/lifecycle/procurement-casesz	gem-casesz/lifecycle/gem-casesze-tender-casesz/lifecycle/e-tender-caseszglobal-tender-casesz/lifecycle/global-tender-casesz	lpc-casesz/lifecycle/lpc-caseszopen-market-casesz/lifecycle/open-market-caseszother-procurement-casesz"/lifecycle/other-procurement-casesÚtendersúTender/Bid Registerú/lifecycle/tendersÚemdszEMD Registerz/lifecycle/emdsÚsamplesúSample Registerú/lifecycle/samplesútechnical-evaluationszTechnical Evaluationz /lifecycle/technical-evaluationsúfinancial-evaluationszFinancial Evaluationz /lifecycle/financial-evaluationsúpurchase-ordersúPurchase Orderú/lifecycle/purchase-ordersúperformance-securitieszPerformance Securityz!/lifecycle/performance-securitiesúdelivery-acceptanceúDelivery/Acceptancez/lifecycle/delivery-acceptanceÚpaymentsúPayment Trackerú/lifecycle/paymentsÚdate_columnÚdistribution_titlez"Distribution as per EstablishmentsÚdistribution_columnÚstatus_titlezApproval StatusÚstatus_columnÚmetricszEstimated CostÚcurrencyÚsumzProcurement Mode DistributionzCase StatuszApproved Estimated CostzApproved QuantityÚnumberzGeM Type Distributionz
GeM StatuszGeM Order ValuezTechnical Evaluation StatuszTender StatuszVendor Country DistributionzGlobal Tender StatuszBid Value INRzQuotation Count Distributionz
LPC StatuszQuotations ReceivedzOpen Market Statusz#Other Procurement Type DistributionzOther Procurement StatuszTender Type DistributionzTender ValuezEMD Form DistributionzRefund Statusz
EMD AmountzBidder DistributionzEvaluation StatuszSample QuantityzEvaluator DistributionzResult StatuszAverage ScoreÚdecimalÚavgzQuoted AmountzVendor DistributionzOrder StatuszPO ValuezSecurity Form DistributionzRelease StatuszSecurity AmountzDelivery Status DistributionzAcceptance StatuszAccepted QuantityzInvoice Status DistributionzPayment StatuszInvoice AmountzPaid Amountc                óB   € \        V R 4      '       d   V P                  # T # ©Úvalue)ÚhasattrrP   rO   s   &Ú//var/www/html/proc/backend/app/api/dashboard.pyÚ_valuerS   ÷   s   € Ü! %¨×1Ò1ˆ5�;‰;Ð<°uÐ<ó    c               ó$   € V ^8„  d   QhRRRRRR/# )é   Údbr   Ú
start_dateúdate | NoneÚend_date© )Úformats   "rR   Ú__annotate__r]   û   s!   € ÷ ñ �Wð °ð Èñ rT   c                óL  € V P                  V4      pV'       dB   VP                  VP                  \        P                  ! V\
        P                  4      8¬  4      pV'       dB   VP                  VP                  \        P                  ! V\
        P                  4      8*  4      pV# ©N)ÚqueryÚfilterÚ
created_atr   Úcombiner   ÚminÚmax)rW   ÚmodelrX   rZ   r`   s   &&&& rR   Ú_range_queryrg   û   sn   € Ø�H‰H�U‹O€EßØ—‘˜U×-Ñ-´×1AÒ1AÀ*ÌdÏhÉhÓ1WÑWÓXˆßØ—‘˜U×-Ñ-´×1AÒ1AÀ(ÌDÏHÉHÓ1UÑUÓVˆØ€LrT   c               ó   € V ^8„  d   QhRR/# )rV   Ú
module_keyÚstrr[   )r\   s   "rR   r]   r]     s   € ÷ -ñ - ñ -rT   c                ó€   a € \        V 3R  l\         4       R4      pV'       g   \        RRR7      hV\        S ,          3# )c              3  óF   <"  € T F  q^ ,          S8X  g   K  Vx € K  	  R# 5i©r   Nr[   )Ú.0Úmoduleri   s   & €rR   Ú	<genexpr>Ú"_module_details.<locals>.<genexpr>  s   øé € ÐK©˜f¸!µ9À
Ñ3J—6’6«ùs   ƒ!—
!Ni”  zUnknown dashboard module©Ústatus_codeÚdetail)ÚnextÚMODULESr   ÚMODULE_CONFIG)ri   ro   s   f rR   Ú_module_detailsrx     s6   ø€ ÜÔK­ÓKÈTÓR€FßÜ¨Ð4NÔOÐOØ”= Õ,Ð,Ð,rT   c               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )rV   Úperiodrj   rX   rY   rZ   Úmonthú
int | NoneÚyearÚreturnz$tuple[date | None, date | None, str]r[   )r\   s   "rR   r]   r]     sL   € ÷ Tñ TØðTàðTð ðTð ð	Tð
 ðTð *ñTrT   c                óü  € \         P                  ! 4       pV R 8X  d   R# V R8X  dv   V'       g   V'       g   \        RRR7      hV'       d   V'       d   W8”  d   \        RRR7      hV'       d   V'       d   WVR RVR 23# V'       d
   VRR	VR 23# RVR
VR 23# V R8X  d;   T;'       g    VP                  p\        V^^4      \        V^^4      \	        V4      3# V R9   d�   V R8X  d   VP
                  MT;'       g    VP
                  pV R8X  d   VP                  MT;'       g    VP                  p\        Wg4      ^,          p\        Wg^4      p	V	\        WgV4      V	P                  R4      3# \        RRR7      h)ÚallNÚrangei�  z*Choose a From or To date for a date range.rr   z'From date cannot be later than To date.z%d %b %Yz - zFrom zUntil r}   Úcurrent_monthz%B %Yz Unknown dashboard filter period.)NNzAll time>   r{   r‚   )r   Útodayr   r}   rj   r{   r   Ústrftime)
rz   rX   rZ   r{   r}   rƒ   Úselected_yearÚselected_monthÚlast_dayÚstarts
   &&&&&     rR   Ú_analytics_periodr‰     sm  € ô �JŠJ‹L€EØ�„Ø%Ð%Ø�Ôß§(Ü¨CÐ8dÔeÐeßŸ( zÔ'<Ü¨CÐ8aÔbÐbßŸ(Ø¨J°xÐ+@ÀÀHÈXÐCVÐ)WÐWÐWßØ˜t u¨Z¸Ð,AÐ%BÐBÐBØ�X ¨°Ð':Ð;Ð;Ð;Ø�ÔØ×*Ð* §
¡
ˆÜ�M 1 aÓ(¬$¨}¸bÀ"Ó*EÄsÈ=ÓGYÐYÐYØÐ+Ô+Ø(.°/Ô(A˜ŸšÈ×H\ÐH\ÐQV×Q\ÑQ\ˆØ&,°Ô&?˜Ÿ
š
Àd×FXÐFXÈeÏjÉjˆÜ˜mÓ<¸QÕ?ˆÜ�]°AÓ6ˆØ”d˜=¸(ÓCÀUÇ^Á^ÐT[ÓE\Ð\Ð\Ü
 CÐ0RÔ
SÐSrT   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rV   rW   r   ÚconfigÚdictrX   rY   rZ   r[   )r\   s   "rR   r]   r]   +  s2   € ÷ ñ Øðð ðð ð	ð
 ñrT   c                óà  € V P                  V4      pV\        J d3   VP                  \        P                  P	                  \
        4      4      pVP                  R 4      pVe6   \        P                  ! V\        P                  ! VP                  4      4      M\        P                  ! VP                  4      pV'       d   VP                  Ws8¬  4      pV'       d   VP                  Wt8*  4      pV# )rC   )r`   r   ra   Úprocurement_modeÚin_ÚACTIVE_PROCUREMENT_MODESÚgetr   Úcoalescer   rb   )rW   rf   r‹   rX   rZ   r`   rC   Ú
event_dates   &&&&&   rR   Ú_analytics_queryr”   +  s¹   € ð �H‰H�U‹O€EØ”ÓØ—‘œ_×=Ñ=×AÑAÔBZÓ[Ó\ˆØ—*‘*˜]Ó+€KØLWÒLc”—’˜{¬D¯IªI°e×6FÑ6FÓ,GÔHÔim×irÒirÐsx÷  tDñ  tDó  jE€JßØ—‘˜ZÑ5Ó6ˆßØ—‘˜ZÑ3Ó4ˆØ€LrT   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rV   r`   ÚSQLAlchemyQueryÚlabelrj   ÚkindÚ	aggregater[   )r\   s   "rR   r]   r]   >  s/   € ÷ Fñ F�?ð F¨3ð FÀ#ð FÐRUñ FrT   c                óB  € VR 8X  d   \         P                  ! V4      pM3VR8X  d   \         P                  ! V4      M\         P                  ! V4      pV P	                  \         P
                  ! V^ 4      4      P                  4       pRTR\        T;'       g    ^ 4      RV/# )ÚcountrM   r—   rP   r˜   )r   r›   rM   rJ   Úwith_entitiesr’   ÚscalarÚfloat)r`   r—   Ú
expressionr˜   r™   Ú
calculatorrP   s   &&&&&  rR   Ú_metricr¡   >  sz   € Ø�GÔÜ—Z’Z 
Ó+‰
à-6¸%Ô-?”T—X’X˜jÔ)ÄTÇXÂXÈjÓEYˆ
Ø×Ñ¤§¢¨j¸!Ó <Ó=×DÑDÓF€EØ�U˜G¤U¨5¯:¨:°AÓ%6¸ÀÐEÐErT   Nc               ó    € V ^8„  d   QhRRRR/# )rV   r`   r–   Úlimitr|   r[   )r\   s   "rR   r]   r]   G  s   € ÷ ñ �oð ¸Zñ rT   c           
     ó¨  € V P                  V\        P                  ! VP                  4      4      P	                  V4      P                  \        P                  ! VP                  4      P                  4       4      P                  V4      P                  4       pV UUu. uF'  w  rVR \        \        V4      ;'       g    R4      RV/NK)  	  upp# u uppi )r—   úNot setr›   )rœ   r   r›   ÚidÚgroup_byÚorder_byr   r£   r€   rj   rS   )r`   rf   Úcolumnr£   Úrowsr—   r›   s   &&&&   rR   Ú
_breakdownr«   G  s¡   € à×Ñ˜F¤D§J¢J¨u¯x©xÓ$8Ó9ß	‰�&Ó	ß	‰”$—*’*˜UŸX™XÓ&×+Ñ+Ó-Ó	.ß	‰ˆu‹ß	‰‹ð 	ñ !ôá ‰LˆEð 
”#”f˜U“m×0Ð0 yÓ1°7¸EÓBÙ òð ùó s   Â-Cc          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	rV   r`   r–   r—   rj   ÚrouteÚprimaryÚ	secondaryz
str | Noner[   )r\   s   "rR   r]   r]   U  s0   € ÷ ñ �?ð ¨3ð °sð ÀSð ÐU_ñ rT   c                óô  € . pV P                   ^ ,          R,          pV P                  \        VP                  4      4      P	                  ^4      P                  4        F–  p\        WsR4      ;'       g    V RVP                   2pV'       d   \        \        WtR4      4      MRp	TP                  RTR\        V4      R\        T	;'       g    R4      RVR	VP                  P                  4       /4       K˜  	  V# )
r   ÚentityNz #ro   ÚtitleÚsubtitleÚ r­   Ú
updated_at)Úcolumn_descriptionsr¨   r   rµ   r£   r€   Úgetattrr¦   rS   Úappendrj   Ú	isoformat)
r`   r—   r­   r®   r¯   Úentriesrf   Úrowr²   r³   s
   &&&&&     rR   Ú_latestr¼   U  sÔ   € Ø€GØ×%Ñ% aÕ(¨Õ2€EØ�~‰~œd 5×#3Ñ#3Ó4Ó5×;Ñ;¸AÓ>×BÑBÖDˆÜ˜ dÓ+×CÐC°%°¸¸3¿6¹6¸(Ð/Cˆß<E”6œ' #°$Ó7Ô8È4ˆØ�‰à˜%Øœ˜U›ØœC § ¨BÓ/Ø˜Ø˜cŸn™n×6Ñ6Ó8ðö	
ñ Eð €NrT   c                ó6   € V '       d   V P                  4       # R # r_   )r¹   rO   s   &rR   Ú_isor¾   g  s   € ß %ˆ5�?‰?ÓÐ/¨4Ð/rT   c                ó>   € \        \        V 4      ;'       g    R 4      # )úNot Recorded)rj   rS   rO   s   &rR   Ú_status_textrÁ   k  s   € ÜŒv�e‹}×.Ð. Ó/Ð/rT   c               ó    € V ^8„  d   QhRRRR/# )rV   rW   r   Úprocurement_case_idÚintr[   )r\   s   "rR   r]   r]   o  s   € ÷ ñ �wð ¸Cñ rT   c                ó¼   € V P                  V4      P                  VP                  V8H  4      P                  \	        VP
                  4      4      P                  4       # r_   )r`   ra   rÃ   r¨   r   rµ   Úfirst)rW   rf   rÃ   s   &&&rR   Ú_linked_latestrÇ   o  sD   € à
�‰�‹ß	‰�×)Ñ)Ð-@Ñ@Ó	Aß	‰”$�u×'Ñ'Ó(Ó	)ß	‰‹ð	rT   c                óJ  € V'       d?   VP                   ;'       g!    VP                  ;'       g    VP                  pV'       d   V# \        V\        4      '       d   VP
                  # \        V\        4      '       d   VP                  # \        V\        4      '       d   VP                  # \        V\        4      '       d!   VP                  ;'       g    VP                  # \        V\        4      '       d!   VP                  ;'       g    VP                  # V P                  # r_   )Úbid_published_dateÚpublication_dateÚtender_dateÚ
isinstancer   Útender_publication_dater   Úgem_bid_dater   Úapproval_dater   Úrecommendation_dateÚlpc_meeting_dater   Úmarket_survey_dateÚmode_selection_date)ÚcaseÚtenderÚtype_recordÚ
date_values   &&& rR   Ú_publication_daterØ   x  sÝ   € ßØ×.Ñ.×_Ð_°&×2IÑ2I×_Ð_ÈV×M_ÑM_ˆ
ßØÐÜ�+œ{×+Ò+Ø×2Ñ2Ð2Ü�+Ô1×2Ò2Ø×'Ñ'Ð'Ü�+Ô/×0Ò0Ø×(Ñ(Ð(Ü�+Ô1×2Ò2Ø×.Ñ.×NÐN°+×2NÑ2NÐNÜ�+œ~×.Ò.Ø×-Ñ-×JÐJ°×1JÑ1JÐJØ×#Ñ#Ð#rT   c                óÖ   € V '       d?   V P                   ;'       g!    V P                  ;'       g    V P                  pV'       d   V# \        V\        4      '       d   VP
                  # R # r_   )Úbid_closed_dateÚclosing_dateÚtechnical_bid_opening_daterÌ   r   Úbid_submission_end_date)rÕ   rÖ   r×   s   && rR   Ú_submission_daterÞ   Š  sQ   € ßØ×+Ñ+×gÐg¨v×/BÑ/B×gÐgÀf×FgÑFgˆ
ßØÐÜ�+œ{×+Ò+Ø×2Ñ2Ð2ÙrT   c                óF  € \         P                  ! 4       p\        \        VR R4      ;'       g"    \        VR R4      ;'       g    V P                  4      pVP                  4       P                  RR4      pVR9   d   R# V'       d	   WE8  d   R# VR	9   d   R# V'       d   R# R# )
ÚstatusNÚ_Ú ÚClosedúIn EvaluationÚ	PublishedúNot Published>   ÚclosedÚ	cancelledÚ	completedúre tenderedúre-tendered>   Ú	submittedúin progressúmode selectionúapproval pendingúin tendering process)r   rƒ   rÁ   r·   Úcase_statusÚlowerÚreplace)rÔ   rÕ   rÖ   rÊ   Úsubmission_daterƒ   Ú
raw_statusÚ
normalizeds   &&&&&   rR   Ú_bid_statusr÷   ”  s‰   € Ü�JŠJ‹L€EÜœg f¨h¸Ó=×yÐyÄÈÐV^Ð`dÓAe×yÐyÐim×iyÑiyÓz€JØ×!Ñ!Ó#×+Ñ+¨C°Ó5€JØÐWÔWÙß˜?Ô2ÙØÐoÔoÙßÙÙrT   c                óÒ   € V P                   '       g   R # V'       dK   VP                  '       g7   VP                  '       g%   VP                  '       g   VP                  '       d   R# R# ©ÚExemptedÚ	SubmittedúNot Submitted)Úemd_applicableÚemd_noÚemd_unique_idÚemd_dateÚamount)rÔ   Úemds   &&rR   Ú_emd_statusr  £  s=   € Ø××ÐÙß
�—
—
�
˜c×/×/Ð/°3·<·<°<À3Ç:Ç:À:ÙÙrT   c                óü   € V P                   '       g   R # V'       d`   VP                  '       g%   VP                  '       g   VP                  '       d*   VP                  '       d   \        VP                  4      # R# R# rù   )Úpbg_applicableÚsecurity_numberÚsecurity_dater  Úrelease_statusrÁ   )rÔ   Úsecuritys   &&rR   Ú_performance_security_statusr
  «  sW   € Ø××ÐÙß�X×-×-Ð-°×1G×1GÐ1GÈ8Ï?Ï?È?Ø8@×8O×8OÐ8OŒ|˜H×3Ñ3Ó4Ð`ÐU`Ð`ÙrT   c               ó$   € V ^8„  d   QhRRRRRR/# )rV   Úcounterzdict[str, int]Úkeyrj   r~   ÚNoner[   )r\   s   "rR   r]   r]   ³  s!   € ÷ +ñ +˜ð +¨Sð +°Tñ +rT   c                ó<   € V P                  V^ 4      ^,           W&   R# rm   )r‘   )r  r  s   &&rR   Ú
_incrementr  ³  s   € Ø—;‘;˜s AÓ&¨Õ*€GƒLrT   z/requisitionsc               ó   € V ^8„  d   QhRR/# ©rV   rW   ú#Annotated[Session, Depends(get_db)]r[   )r\   s   "rR   r]   r]   ¸  s   € ÷ Pñ PØ+ñPrT   c                ó²  € V P                  \        4      pVP                  4       pVP                  \        P                  \
        P                  8H  4      P                  4       pVP                  \        P                  \
        P                  8H  4      P                  4       p\        W#,
          V,
          ^ 4      pVP                  \        P                  ! \        P                  ! \        P                  ! \        P                  ^ 4      4      ^ 4      4      P                  4       pVP                  \        P                  ! \        P                  R4      P!                  R4      \        P                  ! \        P"                  4      P!                  R4      \        P                  ! \        P                  ! \        P                  ! \        P                  ^ 4      4      ^ 4      P!                  R4      4      P%                  \        P                  ! \        P                  R4      4      P'                  \        P                  ! \        P                  ! \        P                  ! \        P                  ^ 4      4      ^ 4      P)                  4       4      P+                  4       pV P                  \,        \.        4      P1                  \.        \.        P2                  \,        P"                  8H  4      P'                  \)        \        P                  ! \.        P4                  \,        P6                  \,        P8                  4      4      4      P;                  ^
4      P+                  4       p. p	V Fø  w  r«V'       d    \=        VP>                  ;'       g    ^ 4      M^ pV'       d    \=        VP@                  ;'       g    ^ 4      M^ pT	PC                  RV
PD                  RV
PF                  RV'       d   VPH                  MRR	V'       d-   VP4                  '       d   VP4                  PK                  4       MR
RTRTR\        WÍ,
          ^ 4      RV'       d   VPL                  MR/4       Kú  	  RRTRTRTRTR\=        T;'       g    ^ 4      /RRRRRRVRR/RRRRRVRR/RRRRRVRR/RRRR RVRR!/.R"V UUUu. uF*  w  rïpR\O        V4      RTR\=        T;'       g    ^ 4      /NK,  	  upppR#T	R$VP'                  \)        \        PP                  4      4      P;                  ^4      P+                  4        Uu. uF—  pR%VP"                  R&VPR                  R'VPT                  ;'       g    R(RVP                  ;'       g    RR\=        VP                  ;'       g    ^ 4      R)\W        VP                  4      R*VPP                  PK                  4       /NK™  	  up/# u upppi u upi )+r   r¥   Úbudget_headr›   r  Úvendor_nameÚpo_noÚ
invoice_norü   Úinvoice_dateNÚinvoice_amountÚpaid_amountÚoutstanding_amountÚpayment_statuszInvoice PendingÚsummaryÚreceivedÚapprovedÚrejectedÚpendingÚtotal_amountrà   r  r—   zTotal Requisitions ReceivedÚdescriptionz)All requisitions entered in the register.úApproved Requisitionsz,Requisitions cleared for procurement action.úRejected Requisitionsz2Requisitions returned or rejected during scrutiny.úPending Requisitionsz)Requisitions still moving through review.Úbudget_headsÚvendor_payment_statusÚrecentr¦   Úrequisition_noÚreceived_fromr´   Úapproval_statusrµ   ),r`   r    r›   ra   r-  r$   r   r!  re   rœ   r   r’   rJ   Úestimated_costr�   r  r—   r¦   r§   r¨   r   r€   r   r   Ú	outerjoinÚpo_idr  Úpo_daterb   r£   rž   r  r  r¸   r  r  r  r¹   r  rj   rµ   r+  r,  rS   )rW   r`   Útotalr   r!  r"  r#  Úbudget_rowsÚvendor_payment_rowsr)  ÚorderÚpaymentÚinvoicedÚpaidr  r›   r  r»   s   &                 rR   Úrequisition_dashboardr9  ·  sÂ  € ð �H‰H”[Ó!€EØ�K‰K‹M€EØ�|‰|œK×7Ñ7Ô;L×;UÑ;UÑUÓV×\Ñ\Ó^€HØ�|‰|œK×7Ñ7Ô;L×;UÑ;UÑUÓV×\Ñ\Ó^€HÜ�%Õ" XÕ-¨qÓ1€GØ×&Ñ&¤t§}¢}´T·X²X¼d¿mºmÌK×LfÑLfÐhiÓ>jÓ5kÐmnÓ'oÓp×wÑwÓy€Lð 	×ÑÜ�MŠMœ+×1Ñ1°9Ó=×CÑCÀMÓRÜ�JŠJ”{—~‘~Ó&×,Ñ,¨WÓ5Ü�MŠMœ$Ÿ(š(¤4§=¢=´×1KÑ1KÈQÓ#OÓPÐRSÓT×ZÑZÐ[cÓdó	
÷
 
‰”$—-’-¤× 7Ñ 7¸ÓCÓ	Dß	‰”$—-’-¤§¢¬¯ª´{×7QÑ7QÐSTÓ)UÓ VÐXYÓZ×_Ñ_ÓaÓ	bß	‰‹ð ð 	�‰”¤Ó0ß	‰”?¤O×$9Ñ$9¼]×=MÑ=MÑ$MÓ	Nß	‰”$”t—}’}¤_×%AÑ%AÄ=×CXÑCXÔZg×ZrÑZrÓsÓtÓ	uß	‰ˆr‹ß	‰‹ð ð ÐÛ-‰ˆß9@”5˜×/Ñ/×4Ð4°1Ô5Àaˆß29Œu�W×(Ñ(×-Ð-¨AÔ.¸qˆØ×$Ñ$à˜u×0Ñ0Ø˜Ÿ™Ø·G˜g×0Ò0ÀØÇGÐPW×Pd×PdÐPd × 4Ñ 4× >Ñ >Ô @ÐjnØ  (Ø˜tØ$¤c¨(­/¸1Ó&=Ø ¿G '×"8Ò"8ÐIZð	ö	
ñ .ð" 	Ø˜Ø˜Ø˜Ø�wØœE ,×"3Ð"3°!Ó4ð
ð 	Ø�J Ð)FÈÐQVÐXeð  hSð  TØ�J Ð)@À'È8ÐUbð  eSð  TØ�J Ð)@À'È8ÐUbð  eYð  ZØ�I˜wÐ(>ÀÈÐR_ð  bMð  Nð	
ð 	ñ /:õ
ñ /:Ñ*� Fð	 œs ;Ó/Ø˜Øœ% § ¨!Ó,óñ
 /:ó
ð 	 Ð!6Øð —~‘~¤d¬;×+AÑ+AÓ&BÓC×IÑIÈ!ÓL×PÑPÔRó
ñ S�ð �c—f‘fØ  #×"4Ñ"4Ø ×!2Ñ!2×!8Ð!8°bØ˜sŸ™×;Ð;°)Øœ% × 2Ñ 2× 7Ð 7°aÓ8Ø!¤6¨#×*=Ñ*=Ó#>Ø˜cŸn™n×6Ñ6Ó8óñ Sñ
ð/#ð #ùô
ùò
s   Ò.0WÔ,0WÕWÕ3WÖ;Wz/procurement-typesc               ó   € V ^8„  d   QhRR/# r  r[   )r\   s   "rR   r]   r]     s   € ÷ I!ñ I!Ø+ñI!rT   c                óZ  € . p\          EF}  pV P                  \        4      P                  \        P                  V8H  4      P                  \        \        P                  4      4      P                  4       pR ^ R^ R^ R^ /pR^ R^ R^ /pR^ R^ /p/ pR^ R^ R^ /p. p	\        V,          p
V EFÒ  p\        W
VP                  4      p\        V \        VP                  4      p\        V \        VP                  4      p\        V \        VP                  4      p\        V \        VP                  4      p\        V \         VP                  4      p\#        W½V4      p\%        WÜ4      p\'        W½VVV4      p\)        W¾4      pV'       d   RMRpV'       d   \+        VP,                  4      MR	p\/        VV4      p\1        VV4       \1        VV4       \1        VV4       \1        VV4       \1        TVV9   d   TMR4       T	P3                  R
VP                  RVP4                  RVP6                  R\9        V4      R\9        V4      RTRTRTRV'       d   VP:                  MRRVRVRVP                  P=                  4       /4       EKÕ  	  TP3                  RTR\>        V,          R\A        V4      RVPC                  4        UUu. uF  w  ppRVRV/NK  	  uppRVPC                  4        UUu. uF  w  ppRVRV/NK  	  uppRVPC                  4        UUu. uF  w  ppRVRV/NK  	  uppR\E        VPC                  4       R R7       UUu. uF  w  ppRVRV/NK  	  uppRVPC                  4        UUu. uF  w  ppRVRV/NK  	  uppRV	/	4       EK€  	  RV/# u uppi u uppi u uppi u uppi u uppi )rå   rä   rã   ræ   rû   rü   rú   ÚIssuedz
Not IssuedrÀ   Úcase_idÚcase_norñ   Úbid_publication_daterô   Ú
emd_statusÚ
bid_statusÚpurchase_order_statusÚpurchase_order_noNÚdelivery_acceptance_statusÚperformance_security_statusrµ   r  r—   Útotal_casesr›   c                ó(   € V ^,          ) V ^ ,          3# )é   r[   ©Úitems   &rR   Ú<lambda>Ú-procurement_type_dashboards.<locals>.<lambda>O  s   € Ð`dÐefÕ`gÐ_gÐimÐnoÕipÑ^qrT   )r  ÚcasesÚtypes)#r�   r`   r   ra   rŽ   r¨   r   rµ   r€   ÚPROCUREMENT_TYPE_MODELSrÇ   r¦   r#   r   r   r   r   rØ   rÞ   r÷   r  rÁ   Úacceptance_statusr
  r  r¸   Úprocurement_case_norñ   r¾   r  r¹   ÚPROCUREMENT_TYPE_LABELSÚlenÚitemsÚsorted)rW   Ú
dashboardsÚmoderM  Úbid_status_countsÚemd_status_countsÚpo_status_countsÚdelivery_status_countsÚperformance_security_countsrª   Ú
type_modelrÔ   rÖ   rÕ   r  Úpurchase_orderÚdeliveryr	  rÊ   rô   rA  r@  Ú	po_statusÚdelivery_statusÚperformance_statusr  rP   s   &                          rR   Úprocurement_type_dashboardsrc    sÏ  € ð €Jß(Ð(ˆà�H‰H”_Ó%ß‰V”O×4Ñ4¸Ñ<Ó=ß‰X”dœ?×5Ñ5Ó6Ó7ß‰S‹Uð	 	ð .9¸!¸_ÈaÐQYÐ[\Ð^mÐopÐ,qÐØ-8¸!¸_ÈaÐQ[Ð]^Ð,_ÐØ,4°a¸ÀqÐ+IÐØ13ÐØ7BÀAÀÐXYÐ[eÐghÐ6iÐ#ØˆÜ,¨TÕ2ˆ
äˆDÜ(¨¸¿¹ÓAˆKÜ# B¬	°4·7±7Ó;ˆFÜ  ¤S¨$¯'©'Ó2ˆCÜ+¨B´¸t¿w¹wÓGˆNÜ% bÔ*<¸d¿g¹gÓFˆHÜ% bÔ*=¸t¿w¹wÓGˆHÜ0°¸{ÓKÐÜ.¨vÓCˆOÜ$ T°;Ð@PÐRaÓbˆJÜ$ TÓ/ˆJß$2™¸ˆIßJRœl¨8×+EÑ+EÔFÐXfˆOÜ!=¸dÀHÓ!MÐäÐ(¨*Ô5ÜÐ(¨*Ô5ÜÐ'¨Ô3ÜÐ-¨Ô?ÜÐ2ÐJ\Ð`{ÔJ{Ñ4Fð  BMô  Nà�K‰Kà˜tŸw™wØ˜t×7Ñ7Ø! 4×#3Ñ#3Ø*¬DÐ1AÓ,BØ%¤t¨OÓ'<Ø  *Ø  *Ø+¨YØ'Ç¨×)=Ò)=ÐUYØ0°/Ø1Ð3EØ  $§/¡/×";Ñ";Ó"=ð÷ñ+ ðL 	×Ñà�tØÔ0°Õ6Øœs 5›zØÐPa×PgÑPgÔPiÔjÑPiÁ*À#Àu ¨¨g°uÓ=ÑPiÒjØÐPa×PgÑPgÔPiÔjÑPiÁ*À#Àu ¨¨g°uÓ=ÑPiÒjØ'Ð[k×[qÑ[qÔ[sÔ)tÑ[sÉZÈSÐRW¨7°C¸À%Ó*HÑ[sÒ)tØ,ä&,Ð-C×-IÑ-IÓ-KÑQqÕ&rô/á&r™
˜˜Uð ˜c 7¨EÓ2Ù&rò/ð .Ða|÷  bCñ  bCô  bEô  0Fñ  bEÑS]ÐSVÐX]°¸#¸wÈÓ0Nñ  bEò  0FØ˜ð÷	
ñk )ðJ �ZÐ Ð ùó kùÛjùÛ)tùó/ùó 0Fs   Ê9NË"NÌN"Í N!&Í)N'*z/module/{module_key}r‚   )Údefault)rd  ÚgeÚleiÐ  i4  c               ó4   € V ^8„  d   QhRRRRRRRRRRR	R
RR
/# )rV   ri   rj   rW   r  rz   rX   rY   rZ   r{   r|   r}   r[   )r\   s   "rR   r]   r]   Y  sN   € ÷ ñ Øðà+ðð ðð ð	ð
 ðð ðð ñrT   c                óV  € \        V 4      w  w  rxršp\        W#WEV4      w  rÍp\        WW¼V4      pR TRTRT
RTRVP                  4       RVR,          R\	        WùVR,          ^4      RVR,          R	\	        WùVR
,          4      RVR,           Uu. uF  p\        V.VO5!  NK  	  up/
# u upi )r  r—   r­   Úperiod_labelr›   rD   ÚdistributionrE   rF   rà   rG   rH   )rx   r‰   r”   r›   r«   r¡   )ri   rW   rz   rX   rZ   r{   r}   r  r—   rf   r­   r‹   Úfiltered_startÚfiltered_endri  r`   Úmetrics   &&&&&&&          rR   Úmodule_analyticsrn  X  sÊ   € ô *9¸Ó)DÑ&Ñ€S� Ü1BÀ6ÐW_ÐhlÓ1mÑ.€N ,Ü˜R¨ÀÓM€EàˆsØ�Ø�Ø˜Ø�—‘“Ø˜fÐ%9Õ:Øœ
 5°Ð8MÕ1NÐPQÓRØ˜˜~Õ.Ø”*˜U¨6°/Õ+BÓCØ¸&ÀÖ:KÓLÑ:K°”G˜EÐ+ FÖ+Ñ:KÑLðð ùò Ms   ÂB&*r´   c               ó$   € V ^8„  d   QhRRRRRR/# )rV   rW   r  rX   rY   rZ   r[   )r\   s   "rR   r]   r]   t  s+   € ÷ dñ dØ+ðdàðdð ñdrT   c           %     óV  € \          UUUu/ uF  w  r4rTV\        WW4      bK  	  ppppVR ,          pVR,          pVP                  \        P                  ! \        P
                  ! \        P                  ! \        P                  \        P                  4      4      ^ 4      4      P                  4       p	VP                  \        P                  ! \        P
                  ! \        P                  4      ^ 4      4      P                  4       p
VP                  \        P                  ! \        P
                  ! \        P                  4      ^ 4      4      P                  4       p\        P                  ! 4       pV\        ^R7      ,           pVR,          pVR,          P!                  \"        P$                  P'                  \(        4      4      pVR,          pRRVR,          P+                  4       RVP+                  4       RVR,          P+                  4       R	VP+                  4       RVP+                  4       /R
RRRVP+                  4       /RRRVP!                  \,        P.                  \0        P2                  8H  4      P+                  4       /RRRVP!                  \,        P.                  \0        P4                  8H  4      P+                  4       /RRRVP!                  \,        P.                  P7                  \0        P2                  \0        P4                  .4      4      P+                  4       /.RRRRVP+                  4       /RRRVP!                  \"        P$                  R8H  4      P+                  4       /RRRVP!                  \"        P$                  R8H  4      P+                  4       /RRRVP!                  \"        P$                  R8H  4      P+                  4       /RRRVP!                  \"        P$                  R8H  4      P+                  4       /RRRVP!                  \"        P$                  R8H  4      P+                  4       /RRRVP!                  \"        P$                  R8H  4      P+                  4       /.RRR RVR!,          P!                  \8        P:                  P'                  . RYO4      4      P+                  4       /RR"RVR!,          P!                  \8        P:                  R#8H  4      P+                  4       /RR$RVP!                  \<        P>                  V8¬  \<        P>                  V8*  4      P+                  4       /RR%RVP!                  \<        P>                  V8  4      P+                  4       /RR&RVP!                  \        P@                  V8¬  \        P@                  V8*  4      P+                  4       /.R'\          UUUUu. uFs  w  ppppR(TRTR)VR8X  dG   Wc,          P!                  \"        P$                  P'                  \(        4      4      P+                  4       MWc,          P+                  4       R*V/NKu  	  uppppR+R,\C        V	4      R-\C        V
4      R.\C        V4      R/\C        W«,
          4      /R0R1R2R3\E        VR,          \,        \,        P.                  4      /R1R4R3\E        VR5,          \F        \F        PH                  4      /R1R6R3\E        VR,          \J        \J        PL                  4      /R1R7R3\E        V\        \        PL                  4      /R1R8R3\E        VR9,          \N        \N        PP                  4      /.R:\E        V\        \        PR                  4      R;\E        VR<,          \T        \T        PV                  4      R=\E        VR>,          \X        \X        PV                  4      R?\E        V\"        \"        P$                  ^4      R@\E        VR,          \,        \,        PZ                  ^4      RAVR,          P]                  \J        P^                  Pa                  4       4      Pc                  ^4      Pe                  4        Uu. uF]  pRBVP^                  RCVPf                  RDVPh                  ;'       g    VPj                  ;'       g    RERFVPL                  Pl                  /NK_  	  upRG\o        . \q        VR,          R2RHRIRJ4      O\q        VR5,          R4RKRLRM4      O\q        VR,          R6RNRCRF4      O\q        VR7RORPRQ4      O\q        VRRRSRTR:4      ORU RVRW7      RX,          /# u upppi u uppppi u upi )Zr:   r@   )Údaysr-   r0   r=   ÚcountsÚprocurement_casesr1   Úpurchase_ordersr9  r—   zTotal RequisitionsrP   r%  r&  r'  Úprocurement_dashboardzTotal Procurement Casesz	GeM Casesr'   ze-Tender Casesr(   zGlobal Tender Casesr)   z	LPC Casesr*   zOpen Market Casesr+   zOther Procurement Casesr,   Úcompliance_dashboardzEMD Pending Returnr4   zEMD ForfeitedÚ	ForfeitedzPBG Expiring in 30 DayszPBG ExpiredzContracts Near CompletionÚmodulesr  r›   r­   Ú
financialsÚpurchase_order_valueÚinvoice_totalÚ
paid_totalÚoutstandingÚstatus_analyticsro   r.   rT  r6   r5   r2   r;   r?   r>   r  Útechnical_resultsr8   Úfinancial_resultsr9   Úprocurement_modesÚrange_requisitionsÚrecent_tendersr¦   Ú	tender_nor²   r´   rà   Úrecent_activityr/   r+  r,  r7   Útender_numberÚbidder_namer3   r<   r  r  rA   rB   r  c                ó   € V R ,          # )rµ   r[   rI  s   &rR   rK  Údashboard.<locals>.<lambda>Õ  s	   € ˜T ,Ö/rT   T)r  Úreverse:Né
   N)ÚPendingzPending ReturnÚHeld)9rv   rg   rœ   r   r’   rJ   r   Úpo_valuer.  r�   r   r  r  r   rƒ   r   ra   r   rŽ   r�   r�   r›   r    r-  r$   r   r!  Únotin_r   Úrefund_statusr   Úexpiry_dateÚdelivery_due_daterž   r«   r!   Úevaluation_statusr#   rà   r   rP  r  r"   Úresultr   Úreceived_from_ranger¨   r¦   r   r£   r€   r„  r²   Ú	item_namerP   rU  r¼   )rW   rX   rZ   r  rá   rf   ÚqueriesÚpo_queryÚpayment_queryrŽ  r{  r|  rƒ   Únext_30_daysÚrequisition_queryÚprocurement_case_queryÚ	pbg_queryr—   r­   Úts   &&&                 rR   r%   r%   s  sx	  € õ !(õá 'ÑˆC�Eð 	Œ\˜" ZÓ:Ò:Ù 'ð ò ð Ð(Õ)€HØ˜JÕ'€MØ×%Ñ%Ü�Š”d—h’hœtŸ}š}¬]×-CÑ-CÄ]×EaÑEaÓbÓcÐefÓgóç�fƒhð ð "×/Ñ/´·²¼d¿hºhÄ×GeÑGeÓ>fÐhiÓ0jÓk×rÑrÓt€MØ×,Ñ,¬T¯]ª]¼4¿8º8ÄO×D_ÑD_Ó;`ÐbcÓ-dÓe×lÑlÓn€JÜ�JŠJ‹L€EØœ9¨"Ô-Õ-€LØ Õ/ÐØ$Ð%8Õ9×@Ñ@Ä×AaÑAa×AeÑAeÔf~ÓAó  AÐØÐ0Õ1€IàØ˜G NÕ3×9Ñ9Ó;ØÐ!7×!=Ñ!=Ó!?Ø�w˜yÕ)×/Ñ/Ó1Ø˜xŸ~™~Ó/Ø˜×+Ñ+Ó-ð
ð 	 ØÐ*¨GÐ5F×5LÑ5LÓ5NÐOØÐ-¨wÐ8I×8PÑ8PÔQ\×QlÑQlô  qB÷  qKñ  qKñ  RKó  9L÷  9Rñ  9Ró  9Tð  UØÐ-¨wÐ8I×8PÑ8PÔQ\×QlÑQlô  qB÷  qKñ  qKñ  RKó  9L÷  9Rñ  9Ró  9Tð  UØÐ,¨gÐ7H×7OÑ7OÔP[×PkÑPk×PrÑPrô  uF÷  uOñ  uOô  Qb÷  Qkñ  Qkð  tló  Qmó  8n÷  8tñ  8tó  8vð  wð	"
ð 	 ØÐ/°Ð:P×:VÑ:VÓ:XÐYØ�k 7Ð,B×,IÑ,IÌ/×JjÑJjÐnsÑJsÓ,t×,zÑ,zÓ,|Ð}ØÐ&¨Ð1G×1NÑ1NÌ×OoÑOoÐs}ÑO}Ó1~÷  2Eñ  2Eó  2Gð  HØÐ+¨WÐ6L×6SÑ6SÔTc×TtÑTtð  yHñ  UHó  7I÷  7Oñ  7Oó  7Qð  RØ�k 7Ð,B×,IÑ,IÌ/×JjÑJjÐnsÑJsÓ,t×,zÑ,zÓ,|Ð}ØÐ)¨7Ð4J×4QÑ4QÔRa×RrÑRrð  wDñ  SDó  5E÷  5Kñ  5Kó  5Mð  NØÐ/°Ð:P×:WÑ:WÔXg×XxÑXxð  }Dñ  YDó  ;E÷  ;Kñ  ;Kó  ;Mð  Nð"
ð 	ØÐ*¨G°W¸Vµ_×5KÑ5KÌC×L]ÑL]×LaÑLaò  cHó  MIó  6J÷  6Pñ  6Pó  6Rð  SØ�o w°¸µ×0FÑ0FÄs×GXÑGXÐ\gÑGgÓ0h×0nÑ0nÓ0pÐqØÐ/°¸)×:JÑ:JÔK^×KjÑKjÐnsÑKsô  vI÷  vUñ  vUð  Yeñ  veó  ;f÷  ;lñ  ;ló  ;nð  oØ�m W¨i×.>Ñ.>Ô?R×?^Ñ?^ÐafÑ?fÓ.g×.mÑ.mÓ.oÐpØÐ1°7¸H¿O¹OÌM×LkÑLkÐotÑLtô  wD÷  wVñ  wVð  Zfñ  wfó  =g÷  =mñ  =mó  =oð  pð!
ð 	õ -4ö

ñ -4Ñ(��U˜E 5ð �sØ˜ØØÐ-Ô-ð !�×,Ñ,¬_×-MÑ-M×-QÑ-QÔRjÓ-kÓl×rÑrÔtà•\×'Ñ'Ó)Ø˜óñ -4ô

ð 	Ø"¤E¨(£OØœU =Ó1Øœ% 
Ó+Øœ5 Õ!;Ó<ð	
ð 	ØÐ-¨w¼
À7È>ÕCZÔ\gÔit÷  jEñ  jEó  9Fð  GØÐ(¨'´:¸gÀiÕ>PÔR`Ôbp÷  cCñ  cCó  4Dð  EØÐ,¨g´zÀ'È)ÕBTÔV_Ôaj×aqÑaqÓ7rÐsØÐ'¨´*¸XÄ}ÔVc×VjÑVjÓ2kÐlØÐ,¨g´zÀ'ÐJ_ÕB`Ôbtô  wI÷  w[ñ  w[ó  8\ð  ]ð
ð 	œ* ]´OÄ_×EcÑEcÓdØœZ¨Ð0GÕ(HÔJ]Ô_r×_yÑ_yÓzØœZ¨Ð0GÕ(HÔJ]Ô_r×_yÑ_yÓzØœZÐ(>ÄÔQ`×QqÑQqÐstÓuØœj¨°Õ)@Ä+Ì{×OnÑOnÐpqÓrØð ˜YÕ'×0Ñ0´·±×1BÑ1BÓ1DÓE×KÑKÈAÓN×RÑRÔTó
ñ U�ð �a—d‘dØ˜QŸ[™[Ø˜Ÿ™×5Ð5 A§K¡K×5Ð5°2Ø˜!Ÿ(™(Ÿ.™.ó	ñ Uñ
ð 	œ6ðÜ˜ Õ0Ð2HÐJcÐeuð  xGó  Hðä˜ Õ+Ð->Ð@TÐVeÐgtÓuðô ˜ Õ+Ð-BÐDXÐZeÐgoÓpðô ˜Ð#3Ð5QÐSZÐ\iÓjð	ô
 ˜Ð(9Ð;PÐR^Ð`pÓqðñ 0Øô

ð õ
ðIOð Oùô!ùõ\

ùò:
s   ‹dÖ:A9dà:0d&6á+d&6á?d&6)r'   r(   r)   r*   r+   r,   r_   )zÚ
__future__r   Úcalendarr   r   r   r   r   Útypingr	   Úfastapir
   r   r   r   Ú
sqlalchemyr   r   Úsqlalchemy.ormr–   r   Úapp.api.depsr   Úapp.db.sessionr   Úapp.models.procurementr   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   Úapp.models.enumsr$   Úrouterr�   rR  rO  rv   Úrequisition_dater,  r-  r’   r.  rÓ   rŽ   rñ   Úapproved_estimated_costÚapproved_quantityrÎ   Úgem_procurement_typerà   Úgem_order_valuerÍ   Útechnical_evaluation_statusrÏ   Úcountry_of_vendorÚbid_value_inrrÑ   Úquotation_countrÒ   Úother_procurement_typerË   Úbid_typer  Ú
entry_dateÚemd_formr�  Úreceipt_dater‡  r“  ÚquantityÚ	evaluatorr”  ÚscoreÚquoted_amountr1  r  rŽ  Úsecurity_formr  Údelivery_daterP  Úaccepted_quantityr  r  r  r  rw   rS   rg   rx   r‰   r”   r¡   r«   r¼   r¾   rÁ   rÇ   rØ   rÞ   r÷   r  r
  r  r‘   r9  rc  rn  r%   r[   rT   rR   Ú<module>r¿     sz	  ðÝ "Ý ß 4Ó 4Ý ç <Ó <ß !ß <å 'Ý !÷÷ ÷ ÷ õ õ& /á	¡©¸Ó)DÓ!EÐ FÔ	G€à^Ð ð 
ÐØ�Ø�_Ø	Ð%ØÐ,ØÐ ðÐ ð 
ÐØ�ØÐ%Ø	ÐØ�>ØÐ!ðÐ ð Ð+¨[Ð:SÐTØÐ5°ÐHfÐgØÐ#Ð%7Ð9OÐPØ�} kÐ3NÐOØ˜OÐ-=Ð?_Ð`ØÐ,Ð.@ÐBXÐYØÐ3°^ÐEcÐdØÐ 3Ð5IÐKoÐpØÐ% yÐ2FÐGØˆ^˜SÐ"3Ð4ØÐ! >Ð3GÐHØÐ4Ð6IÐKmÐnØÐ4Ð6IÐKmÐnØÐ(¨-Ð9UÐVØÐ5Ð7JÐLoÐpØÐ1Ð3EÐGgÐhØÐ" OÐ5JÐKð#€ð(iØØ�{×3Ñ3ØÐBØ˜{×8Ñ8ØÐ)Ø˜×4Ñ4ØØ˜tŸ}š}¨[×-GÑ-GÈÓKÈZÐY^Ð_ð
ð	ðið Ø�×:Ñ:ØÐ=Ø˜×?Ñ?Ø˜Ø˜×4Ñ4ØØ&¨¯ª°o×6]Ñ6]Ð_`Ó(aÐcmÐotÐuØ  $§-¢-°×0QÑ0QÐSTÓ"UÐW_ÐafÐgð
ð
ðið, ØÐ)×6Ñ6ØÐ5ØÐ1×FÑFØ˜ØÐ+×2Ñ2ØØ §¢Ð.@×.PÑ.PÐRSÓ TÐV`ÐbgÐhð
ð	ð-ið@ Ø�{×:Ñ:ØÐ;Ø˜{×FÑFØ˜Ø˜×+Ñ+ØØ˜tŸ}š}¨[×-GÑ-GÈÓKÈZÐY^Ð_ð
ð	ðAiðT ØÐ'×5Ñ5ØÐ;ØÐ/×AÑAØÐ.ØÐ)×0Ñ0ØØ˜dŸmšmÐ,<×,JÑ,JÈAÓNÐPZÐ\aÐbð
ð	ðUiðh ØÐ)×:Ñ:ØÐ<ØÐ1×AÑAØ˜ØÐ+×2Ñ2ØØ" D§M¢MÐ2D×2TÑ2TÐVWÓ$XÐZbÐdiÐjð
ð	ðiið| Ø�~×8Ñ8ØÐ<Ø˜~×=Ñ=ØÐ,Ø˜×.Ñ.ØØ" D§M¢M°.×2PÑ2PÐRSÓ$TÐV^Ð`eÐfð
ð	ð}iðP ØÐ+×9Ñ9ØÐCØÐ3×JÑJØÐ2ØÐ-×4Ñ4Ø�2ð ðQið` Ø�y×,Ñ,ØÐ8Ø˜y×1Ñ1Ø˜Ø˜×)Ñ)ØØ˜TŸ]š]¨9×+;Ñ+;¸Y×=UÑ=UÐWXÓYÐ[eÐglÐmð
ð	ðaiðt Ø�s—~‘~ØÐ5Ø˜sŸ|™|Ø˜Ø˜×*Ñ*ØØ˜4Ÿ=š=¨¯©°QÓ7¸ÀUÐKð
ð	ðuiðH Ø�~×2Ñ2ØÐ3Ø˜~×9Ñ9ØÐ+Ø˜×9Ñ9ØØ §¢¨n×.EÑ.EÀqÓ IÈ8ÐUZÐ[ð
ð	ðIið\ ØÐ6ØÐ2×<Ñ<Ø˜ØÐ,×3Ñ3ØØÐ1×7Ñ7¸ÀEÐJð
ðð]iðn ØÐ3ØÐ2×>Ñ>Ø˜ØÐ,×3Ñ3ØØÐ1×?Ñ?ÀÈUÐSð
ððoið@ Ø�}×,Ñ,ØÐ3Ø˜}×8Ñ8Ø˜Ø˜×-Ñ-ØØ˜Ÿš }×'=Ñ'=¸}×?[Ñ?[Ð]^Ó_ÐakÐmrÐsð
ð	ðAiðT ØÐ*×5Ñ5ØÐ:ØÐ2×@Ñ@ØÐ(ØÐ,×;Ñ;ØØ §¢Ð.A×.HÑ.HÈ!Ó LÈjÐZ_Ð`ð
ð	ðUiðh ØÐ)×7Ñ7ØÐ<ØÐ1×CÑCØÐ+ØÐ+×=Ñ=ØØ Ð"4×"FÑ"FÈÐRWÐXð
ð	ðiið| Ø�×3Ñ3ØÐ;Ø˜×=Ñ=ØÐ(Ø˜×7Ñ7ØØ˜×=Ñ=¸zÈ5ÐQØ˜O×7Ñ7¸ÀUÐKð
ð
ð}i€òX=õõ-õTõ@õ&F÷÷ò$0ò0õò$ò$òòòõ+ð ‡�ˆOÓôPó ðPðf ‡�Ð Ó!ôI!ó "ðI!ðX ‡�Ð"Ó#ñ  Ô0Ù#¨DÔ1Ù!¨$Ô/Ù d¨q°RÔ8Ù T¨d°tÔ<öó $ðð4 ‡�ˆBƒñ $¨DÔ1Ù!¨$Ô/ödó òdrT   