+
    âÔ‹j4  ã                  óT  € ^ 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) ^ RI*H+t+ ]! ]! ]! R4      4      .R7      t,R¦t-RRRRRRRRRR/t.R]R]R]R] R]!/t/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+R,]R-3R.R/]'R03R1R2](R33R4R5]R63R7R8]%R93R:R;]#R<3R=R>]R?3R@RA]"RB3.t0/ RRC]&Pb                  RDRERF]&Pd                  RGRHRI]&Pf                  RJRK]Ph                  ! ]&Pj                  ^ 4      RLRM3./bRRC]$Pl                  RDRNRF]$Pn                  RGRORI]$Pp                  RJRP]Ph                  ! ]$Pr                  ^ 4      RLRM3RQ]Ph                  ! ]$Pt                  ^ 4      RRRM3./bRRC]Pv                  RDRSRF]Px                  RGRTRI]Pz                  RJRU]Ph                  ! ]P|                  ^ 4      RLRM3./bR RC]P~                  RDRVRF]P€                  RGRWRI]Pz                  RJRK]Ph                  ! ]Pj                  ^ 4      RLRM3./bR"RC]P‚                  RDRXRF]P„                  RGRYRI]Pz                  RJRZ]Ph                  ! ]P†                  ^ 4      RLRM3./bR$RC] Pˆ                  RDR[RF] PŠ                  RGR\RI] Pz                  RJR]]Ph                  ! ] PŠ                  ^ 4      RRRM3./bR&RC]!PŒ                  RDR[RF]!PŠ                  RGR^RI]!Pz                  RJR]]Ph                  ! ]!PŠ                  ^ 4      RRRM3./bR(RC])PŽ                  RDR_RF])P�                  RGRWRI])Pz                  RJR`]Ph                  ! ])P’                  ])Pj                  ^ 4      RLRM3./bR+RC]P”                  RDRaRF]P–                  RGRbRI]P˜                  RJRc]Ph                  ! ]P’                  ^ 4      RLRM3./bR.RC]'Pš                  RDRdRF]'Pœ                  RGReRI]'Pž                  RJRf]Ph                  ! ]'P                   ^ 4      RRRM3./bR1RDRgRF](P¢                  RGRhRI](P¤                  RJRi](P¦                  RjRk3./bR4RDRdRF]Pœ                  RGRhRI]P¤                  RJRl]P¨                  RLRM3./bR7RC]%Pª                  RDRmRF]%P¬                  RGRnRI]%Pz                  RJRo]Ph                  ! ]%P®                  ]%Pj                  ^ 4      RLRM3./bR:RC]#P”                  RDRpRF]#P°                  RGRqRI]#P²                  RJRr]Ph                  ! ]#P’                  ^ 4      RLRM3./bR=RC]P´                  RDRsRF]P¶                  RGRtRI]P¶                  RJRu]P¸                  RRRM3./bR@RC]"Pº                  RDRvRF]"P¼                  RGRwRI]"P¼                  RJRx]"P¾                  RLRM3Ry]"PÀ                  RLRM3./btaRz tbR{ R| ltcR} R~ ltdR R€ lteR� R‚ ltfRƒ R„ ltgR§R† R‡ llthR§Rˆ R‰ lltiRŠ tjR‹ tkRŒ R� ltlRŽ tmR� tnR� toR‘ tpR’ tqR“ R” ltr],Pç                  R•4      R– R— l4       tt],Pç                  R˜4      R™ Rš l4       tu],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       tv],Pç                  R£4      ]! R…R�7      ]! R…R�7      3R¤ R¥ ll4       twR…# )¨é    )Ú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ÚPaymentTrackingÚPerformanceSecurityÚProcurementCaseÚPurchaseOrderÚRequisitionÚSampleRegisterÚTechnicalEvaluationÚ	TenderBid)ÚProcurementStatusÚ	dashboard)ÚdependenciesÚGEMÚE_TENDERÚGLOBAL_TENDERÚLPCÚOPEN_MARKETzGeM Procurementze-TenderingzGlobal TenderzLocal Purchase CommitteezOpen Market 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-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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)ÚhasattrrN   rM   s   &Ú//var/www/html/proc/backend/app/api/dashboard.pyÚ_valuerQ   ë   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   "rP   Ú__annotate__r[   ï   s!   € ÷ ñ �Wð °ð Èñ rR   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)rU   ÚmodelrV   rX   r^   s   &&&& rP   Ú_range_queryre   ï   sn   € Ø�H‰H�U‹O€EßØ—‘˜U×-Ñ-´×1AÒ1AÀ*ÌdÏhÉhÓ1WÑWÓXˆßØ—‘˜U×-Ñ-´×1AÒ1AÀ(ÌDÏHÉHÓ1UÑUÓVˆØ€LrR   c               ó   € V ^8„  d   QhRR/# )rT   Ú
module_keyÚstrrY   )rZ   s   "rP   r[   r[   ø   s   € ÷ -ñ - ñ -rR   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   NrY   )Ú.0Úmodulerg   s   & €rP   Ú	<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)rg   rm   s   f rP   Ú_module_detailsrv   ø   s6   ø€ ÜÔK­ÓKÈTÓR€FßÜ¨Ð4NÔOÐOØ”= Õ,Ð,Ð,rR   c               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )rT   Úperiodrh   rV   rW   rX   Úmonthú
int | NoneÚyearÚreturnz$tuple[date | None, date | None, str]rY   )rZ   s   "rP   r[   r[   ÿ   sL   € ÷ Tñ TØðTàðTð ðTð ð	Tð
 ðTð *ñTrR   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.rp   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>   ry   r€   )r   Útodayr   r{   rh   ry   r   Ústrftime)
rx   rV   rX   ry   r{   r�   Úselected_yearÚselected_monthÚlast_dayÚstarts
   &&&&&     rP   Ú_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ÐSrR   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rT   rU   r   ÚconfigÚdictrV   rW   rX   rY   )rZ   s   "rP   r[   r[     s2   € ÷ ñ Øðð ðð ð	ð
 ñrR   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# )rA   )r^   r   r_   Úprocurement_modeÚin_ÚACTIVE_PROCUREMENT_MODESÚgetr   Úcoalescer   r`   )rU   rd   r‰   rV   rX   r^   rA   Ú
event_dates   &&&&&   rP   Ú_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ˆØ€LrR   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rT   r^   ÚSQLAlchemyQueryÚlabelrh   ÚkindÚ	aggregaterY   )rZ   s   "rP   r[   r[   2  s/   € ÷ Fñ F�?ð F¨3ð FÀ#ð FÐRUñ FrR   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/# )ÚcountrK   r•   rN   r–   )r   r™   rK   rH   Úwith_entitiesr�   ÚscalarÚfloat)r^   r•   Ú
expressionr–   r—   Ú
calculatorrN   s   &&&&&  rP   Ú_metricrŸ   2  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ÐErR   Nc               ó    € V ^8„  d   QhRRRR/# )rT   r^   r”   Úlimitrz   rY   )rZ   s   "rP   r[   r[   ;  s   € ÷ ñ �oð ¸Zñ rR   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~   rh   rQ   )r^   rd   Úcolumnr¡   Úrowsr•   r™   s   &&&&   rP   Ú
_breakdownr©   ;  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/# )	rT   r^   r”   r•   rh   ÚrouteÚprimaryÚ	secondaryz
str | NonerY   )rZ   s   "rP   r[   r[   I  s0   € ÷ ñ �?ð ¨3ð °sð ÀSð ÐU_ñ rR   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 #rm   ÚtitleÚsubtitleÚ r«   Ú
updated_at)Úcolumn_descriptionsr¦   r   r³   r¡   r~   Úgetattrr¤   rQ   Úappendrh   Ú	isoformat)
r^   r•   r«   r¬   r­   Úentriesrd   Úrowr°   r±   s
   &&&&&     rP   Ú_latestrº   I  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ð €NrR   c                ó6   € V '       d   V P                  4       # R # r]   )r·   rM   s   &rP   Ú_isor¼   [  s   € ß %ˆ5�?‰?ÓÐ/¨4Ð/rR   c                ó>   € \        \        V 4      ;'       g    R 4      # )úNot Recorded)rh   rQ   rM   s   &rP   Ú_status_textr¿   _  s   € ÜŒv�e‹}×.Ð. Ó/Ð/rR   c               ó    € V ^8„  d   QhRRRR/# )rT   rU   r   Úprocurement_case_idÚintrY   )rZ   s   "rP   r[   r[   c  s   € ÷ ñ �wð ¸Cñ rR   c                ó¼   € V P                  V4      P                  VP                  V8H  4      P                  \	        VP
                  4      4      P                  4       # r]   )r^   r_   rÁ   r¦   r   r³   Úfirst)rU   rd   rÁ   s   &&&rP   Ú_linked_latestrÅ   c  sD   € à
�‰�‹ß	‰�×)Ñ)Ð-@Ñ@Ó	Aß	‰”$�u×'Ñ'Ó(Ó	)ß	‰‹ð	rR   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   &&& rP   Ú_publication_daterÖ   l  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Ø×#Ñ#Ð#rR   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   && rP   Ú_submission_daterÜ   ~  sQ   € ßØ×+Ñ+×gÐg¨v×/BÑ/B×gÐgÀf×FgÑFgˆ
ßØÐÜ�+œ{×+Ò+Ø×2Ñ2Ð2ÙrR   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   &&&&&   rP   Ú_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ÙßÙÙrR   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   &&rP   Ú_emd_statusr  —  s=   € Ø××ÐÙß
�—
—
�
˜c×/×/Ð/°3·<·<°<À3Ç:Ç:À:ÙÙrR   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   &&rP   Ú_performance_security_statusr  Ÿ  sW   € Ø××ÐÙß�X×-×-Ð-°×1G×1GÐ1GÈ8Ï?Ï?È?Ø8@×8O×8OÐ8OŒ|˜H×3Ñ3Ó4Ð`ÐU`Ð`ÙrR   c               ó$   € V ^8„  d   QhRRRRRR/# )rT   Úcounterzdict[str, int]Úkeyrh   r|   ÚNonerY   )rZ   s   "rP   r[   r[   §  s!   € ÷ +ñ +˜ð +¨Sð +°Tñ +rR   c                ó<   € V P                  V^ 4      ^,           W&   R# rk   )r�   )r
  r  s   &&rP   Ú
_incrementr  §  s   € Ø—;‘;˜s AÓ&¨Õ*€GƒLrR   z/requisitionsc               ó   € V ^8„  d   QhRR/# ©rT   rU   ú#Annotated[Session, Depends(get_db)]rY   )rZ   s   "rP   r[   r[   ¬  s   € ÷ Pñ PØ+ñPrR   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™   r_   r+  r#   r  r  rc   rš   r   r�   rH   Úestimated_costr›   r  r•   r¤   r¥   r¦   r   r~   r   r   Ú	outerjoinÚpo_idr  Úpo_dater`   r¡   rœ   r  r  r¶   r  r  r  r·   r  rh   r³   r)  r*  rQ   )rU   r^   Útotalr  r  r   r!  Úbudget_rowsÚvendor_payment_rowsr'  ÚorderÚpaymentÚinvoicedÚpaidr  r™   rÿ   r¹   s   &                 rP   Úrequisition_dashboardr7  «  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  rY   )rZ   s   "rP   r[   r[      s   € ÷ I!ñ I!Ø+ñI!rR   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# )é   rY   ©Úitems   &rP   Ú<lambda>Ú-procurement_type_dashboards.<locals>.<lambda>C  s   € Ð`dÐefÕ`gÐ_gÐimÐnoÕipÑ^qrR   )r  ÚcasesÚtypes)#rŽ   r^   r   r_   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)rU   Ú
dashboardsÚmoderK  Ú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ò   r?  r>  Ú	po_statusÚdelivery_statusÚperformance_statusr  rN   s   &                          rP   Úprocurement_type_dashboardsra  ÿ  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)rb  ÚgeÚleiÐ  i4  c               ó4   € V ^8„  d   QhRRRRRRRRRRR	R
RR
/# )rT   rg   rh   rU   r  rx   rV   rW   rX   ry   rz   r{   rY   )rZ   s   "rP   r[   r[   M  sN   € ÷ ñ Øðà+ðð ðð ð	ð
 ðð ðð ñrR   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™   rB   ÚdistributionrC   rD   rÞ   rE   rF   )rv   r‡   r’   r™   r©   rŸ   )rg   rU   rx   rV   rX   ry   r{   r  r•   rd   r«   r‰   Úfiltered_startÚfiltered_endrg  r^   Úmetrics   &&&&&&&          rP   Úmodule_analyticsrl  L  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/# )rT   rU   r  rV   rW   rX   rY   )rZ   s   "rP   r[   r[   h  s+   € ÷ cñ cØ+ðcàðcð ñcrR   c           %     óð  € \          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RVR,          P!                  \8        P:                  P'                  . RWO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      /R.R/R0R1\E        VR,          \,        \,        P.                  4      /R/R2R1\E        VR3,          \F        \F        PH                  4      /R/R4R1\E        VR,          \J        \J        PL                  4      /R/R5R1\E        V\        \        PL                  4      /R/R6R1\E        VR7,          \N        \N        PP                  4      /.R8\E        V\        \        PR                  4      R9\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      R?VR,          P]                  \J        P^                  Pa                  4       4      Pc                  ^4      Pe                  4        Uu. uF]  pR@VP^                  RAVPf                  RBVPh                  ;'       g    VPj                  ;'       g    RCRDVPL                  Pl                  /NK_  	  upRE\o        . \q        VR,          R0RFRGRH4      O\q        VR3,          R2RIRJRK4      O\q        VR,          R4RLRARD4      O\q        VR5RMRNRO4      O\q        VRPRQRRR84      ORS RTRU7      RV,          /# u upppi u uppppi u upi )Xr8   r>   )Údaysr+   r.   r;   ÚcountsÚprocurement_casesr/   Úpurchase_ordersr7  r•   zTotal RequisitionsrN   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*   Úcompliance_dashboardzEMD Pending Returnr2   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_analyticsrm   r,   rR  r4   r3   r0   r9   r=   r<   r  Útechnical_resultsr6   Úfinancial_resultsr7   Úprocurement_modesÚrange_requisitionsÚrecent_tendersr¤   Ú	tender_nor°   r²   rÞ   Úrecent_activityr-   r)  r*  r5   Útender_numberÚbidder_namer1   r:   r  r  r?   r@   r  c                ó   € V R ,          # )r³   rY   rG  s   &rP   rI  Údashboard.<locals>.<lambda>È  s	   € ˜T ,Ö/rR   T)r  Úreverse:Né
   N)ÚPendingzPending ReturnÚHeld)9rt   re   rš   r   r�   rH   r   Úpo_valuer,  r›   r   r  r  r   r�   r   r_   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   rN  r  r!   Úresultr   Úreceived_from_ranger¦   r¤   r   r¡   r~   r‚  r°   Ú	item_namerN   rS  rº   )rU   rV   rX   r  rß   rd   ÚqueriesÚpo_queryÚpayment_queryrŒ  ry  rz  r�   Únext_30_daysÚrequisition_queryÚprocurement_case_queryÚ	pbg_queryr•   r«   Úts   &&&                 rP   r$   r$   g  s2	  € õ !(õá 'Ñˆ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ð"
ð 	ØÐ*¨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Øô

ð õ
ðGNð Nùô!ùõZ

ùò:
s   ‹c$ÖA9c+à0c36à8c36ác36)r&   r'   r(   r)   r*   r]   )xÚ
__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"   Úapp.models.enumsr#   ÚrouterrŽ   rP  rM  rt   Ú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Ð   rÉ   Úbid_typerÿ   Ú
entry_dateÚemd_formrŽ  Úreceipt_dater…  r‘  ÚquantityÚ	evaluatorr’  ÚscoreÚquoted_amountr/  r  rŒ  Úsecurity_formr  Údelivery_daterN  Úaccepted_quantityr  r  r  r  ru   rQ   re   rv   r‡   r’   rŸ   r©   rº   r¼   r¿   rÅ   rÖ   rÜ   rõ   r  r  r  r�   r7  ra  rl  r$   rY   rR   rP   Ú<module>r¼     s	  ðÝ "Ý ß 4Ó 4Ý ç <Ó <ß !ß <å 'Ý !÷÷ ÷ ÷ ó õ$ /á	¡©¸Ó)DÓ!EÐ FÔ	G€àUÐ ð 
ÐØ�Ø�_Ø	Ð%ØÐ,ðÐ ð 
ÐØ�ØÐ%Ø	ÐØ�>ðÐ ð Ð+¨[Ð:SÐTØÐ5°ÐHfÐgØÐ#Ð%7Ð9OÐPØ�} kÐ3NÐOØ˜OÐ-=Ð?_Ð`ØÐ,Ð.@ÐBXÐYØÐ3°^ÐEcÐdØÐ% 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ð!€ð&aØØ�{×3Ñ3ØÐBØ˜{×8Ñ8ØÐ)Ø˜×4Ñ4ØØ˜tŸ}š}¨[×-GÑ-GÈÓKÈZÐY^Ð_ð
ð	ðað Ø�×:Ñ:ØÐ=Ø˜×?Ñ?Ø˜Ø˜×4Ñ4ØØ&¨¯ª°o×6]Ñ6]Ð_`Ó(aÐcmÐotÐuØ  $§-¢-°×0QÑ0QÐSTÓ"UÐW_ÐafÐgð
ð
ðað, ØÐ)×6Ñ6ØÐ5ØÐ1×FÑFØ˜ØÐ+×2Ñ2ØØ §¢Ð.@×.PÑ.PÐRSÓ TÐV`ÐbgÐhð
ð	ð-að@ Ø�{×:Ñ:ØÐ;Ø˜{×FÑFØ˜Ø˜×+Ñ+ØØ˜tŸ}š}¨[×-GÑ-GÈÓKÈZÐY^Ð_ð
ð	ðAaðT ØÐ'×5Ñ5ØÐ;ØÐ/×AÑAØÐ.ØÐ)×0Ñ0ØØ˜dŸmšmÐ,<×,JÑ,JÈAÓNÐPZÐ\aÐbð
ð	ðUaðh ØÐ)×:Ñ:ØÐ<ØÐ1×AÑAØ˜ØÐ+×2Ñ2ØØ" D§M¢MÐ2D×2TÑ2TÐVWÓ$XÐZbÐdiÐjð
ð	ðiað| Ø�~×8Ñ8ØÐ<Ø˜~×=Ñ=ØÐ,Ø˜×.Ñ.ØØ" D§M¢M°.×2PÑ2PÐRSÓ$TÐV^Ð`eÐfð
ð	ð}aðP Ø�y×,Ñ,ØÐ8Ø˜y×1Ñ1Ø˜Ø˜×)Ñ)ØØ˜TŸ]š]¨9×+;Ñ+;¸Y×=UÑ=UÐWXÓYÐ[eÐglÐmð
ð	ðQaðd Ø�s—~‘~ØÐ5Ø˜sŸ|™|Ø˜Ø˜×*Ñ*ØØ˜4Ÿ=š=¨¯©°QÓ7¸ÀUÐKð
ð	ðeaðx Ø�~×2Ñ2ØÐ3Ø˜~×9Ñ9ØÐ+Ø˜×9Ñ9ØØ §¢¨n×.EÑ.EÀqÓ IÈ8ÐUZÐ[ð
ð	ðyaðL ØÐ6ØÐ2×<Ñ<Ø˜ØÐ,×3Ñ3ØØÐ1×7Ñ7¸ÀEÐJð
ððMað^ ØÐ3ØÐ2×>Ñ>Ø˜ØÐ,×3Ñ3ØØÐ1×?Ñ?ÀÈUÐSð
ðð_aðp Ø�}×,Ñ,ØÐ3Ø˜}×8Ñ8Ø˜Ø˜×-Ñ-ØØ˜Ÿš }×'=Ñ'=¸}×?[Ñ?[Ð]^Ó_ÐakÐmrÐsð
ð	ðqaðD ØÐ*×5Ñ5ØÐ:ØÐ2×@Ñ@ØÐ(ØÐ,×;Ñ;ØØ §¢Ð.A×.HÑ.HÈ!Ó LÈjÐZ_Ð`ð
ð	ðEaðX ØÐ)×7Ñ7ØÐ<ØÐ1×CÑCØÐ+ØÐ+×=Ñ=ØØ Ð"4×"FÑ"FÈÐRWÐXð
ð	ðYaðl Ø�×3Ñ3ØÐ;Ø˜×=Ñ=ØÐ(Ø˜×7Ñ7ØØ˜×=Ñ=¸zÈ5ÐQØ˜O×7Ñ7¸ÀUÐKð
ð
ðma€òH=õõ-õ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Ù!¨$Ô/öcó òcrR   