+
    `Øj9I  ã                   óp  € ^ RI t ^ RIHtHt ^ RIHtHt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HtHtHtHtHtHt ^ R	IHtHtHtHtHtH t  ^ R
I!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+ ^ RI,H-t-H.t.H/t/ ]! 4       t0]! ]4      3R R llt1]0Pe                  R]#R7      ]! ]4      3R R ll4       t3]0Pe                  R4      ]! ]14      ]! ]4      3R R ll4       t4]0Pk                  R]6]$,          R7      ]! ]14      ]! ]4      3R R ll4       t7^ RI8t8^ RIH9t9 ]0Pk                  R]6]%,          R7      ]! ]14      ]! ]4      3R R ll4       t:]0Pk                  R]&R7      ]! ]14      ]! ]4      3R R ll4       t;]0Pk                  R]6]),          R7      ]! ]14      ]! ]4      3R  R! ll4       t<]0Pk                  R"](R7      ]! ]14      ]! ]4      3R# R$ ll4       t=]0Pe                  R]>R7      ]! ]14      ]! ]4      3R% R& ll4       t?^ R'I@HAtA ^ R(IBHCtCHDtD  ! R) R*]A4      tE ! R+ R,]A4      tF]0Pk                  R-]C]E,          R7      ]! ]14      ]! ]4      3R. R/ ll4       tG]0Pk                  R0]C]F,          R7      ]! ]14      ]! ]4      3R1 R2 ll4       tH^ R3IHItI ^ R4I!HJtJ ]0Pk                  R5]C]J,          R7      ]! ]14      ]! ]4      3R6 R7 ll4       tK ! R8 R9]A4      tL]0Pe                  R:4      ]! ]14      ]! ]4      3R; R< ll4       tM]0Pk                  R=]6]*,          R7      ]! ]14      ]! ]4      3R> R? ll4       tNR# )@é    N)ÚdatetimeÚtimezone)Ú	APIRouterÚDependsÚHTTPExceptionÚRequest)ÚAsyncSession)ÚselectÚtextÚupdate)Úget_db)Údecode_token)ÚRmPurchaseOrderÚ
RmPoDetailÚRmReceivingLogÚ	GrnDetailÚPoStatusMasterÚRmMasterÚMonthlyProcurementPlan)ÚVendorPortalLogÚRejectionLogÚASNLogÚ	ASNDetailÚPOTrackingLogÚNCRLog)
ÚVendorLoginRequestÚVendorLoginResponseÚPOListResponseÚScorecardResponseÚPODetailResponseÚASNSubmitRequestÚASNResponseÚASNListResponseÚVendorMonthlyPlanResponseÚVendorMonthlyPlanLineResponse)Úauthenticate_vendorÚlogout_vendorÚlog_vendor_actionc                ó<   € V ^8„  d   QhR\         R\        R\        /# )é   ÚrequestÚdbÚreturn)r   r	   Údict)Úformats   "ÚB/var/www/html/audi_dev/backend/app/modules/vendor_portal/routes.pyÚ__annotate__r1      s'   € ÷ Tñ T¤gð T´<ð TÔVZñ Tó    c              ƒ   óÀ  "  € V P                   P                  R 4      pV'       d   VP                  R4      '       g   \        RRR7      hVP	                  R4      ^,          p\        V4      pVP                  R4      R8w  d   \        RR	R7      hVP                  R
4      pVP                  R4      pVP                  \        V4      G Rj  x€L
 p\        P                  ! \        P                  4      pV'       d;   VP                  '       d)   VP                  P                  '       d   VP                  MEV'       d=   VP                  '       d+   VP                  P                  \        P                  R7      MRp	V'       d   VP                  f   V	'       d   W˜8  d   \        RRR7      hR\        P                   ! V4      R
\        P                   ! V4      /#  EL5i)ÚAuthorizationzBearer i‘  zMissing or invalid token©Ústatus_codeÚdetailÚ Úsub_typeÚvendori“  zNot authorized as a vendorÚ
session_idÚsubN)ÚtzinfozSession expired or invalidÚ	vendor_id)ÚheadersÚgetÚ
startswithr   Úsplitr   r   r   Únowr   ÚutcÚ
expires_atr=   ÚreplaceÚinvalidated_atÚuuidÚUUID)
r+   r,   Úauth_headerÚtokenÚpayloadr;   r>   ÚsessionrC   Úsess_exps
   &&        r0   Úget_current_vendorrO      sŽ  é € Ø—/‘/×%Ñ% oÓ6€Kß˜k×4Ñ4°Y×?Ò?Ü¨Ð4NÔOÐOà×Ñ˜cÓ" 1Õ%€EÜ˜5Ó!€Gà‡{�{�:Ó (Ô*Ü¨Ð4PÔQÐQà—‘˜\Ó*€JØ—‘˜EÓ"€Ià—F‘Fœ?¨JÓ7×7€GÜ
�,Š,”x—|‘|Ó
$€Cß&-°'×2D×2DÐ2DÈ×I[ÑI[×Ib×IbÐIbˆw×!Ò!÷  ^eð  jq÷  j|÷  j|ð  j|Ðjq×j|Ñj|÷  kEñ  kEô  MU÷  MYñ  MYð  kEô  kZð  BF€Hß�g×,Ñ,Ò8¿XÈ(Ì.Ü¨Ð4PÔQÐQàœŸš 9Ó-¨|¼T¿YºYÀzÓ=RÐSÐSò 8ùsB   ‚:G½BGÃGÃ/GÃ<GÄGÄ*GÄ>GÅ3GÆGÆAGz/login)Úresponse_modelc                ó<   € V ^8„  d   QhR\         R\        R\        /# )r*   Úreqr+   r,   )r   r   r	   )r/   s   "r0   r1   r1   '   s'   € ÷ jñ jÔ'ð j´'ð j¼|ñ jr2   c           	   ƒ   ó”   "  € \        W VP                  P                  VP                  P	                  R R4      4      G Rj  x€L
 #  L5i)z
user-agentÚ N)r&   ÚclientÚhostr?   r@   )rR   r+   r,   s   &&&r0   ÚloginrW   &   s7   é € ä$ R¨g¯n©n×.AÑ.AÀ7Ç?Á?×CVÑCVÐWcÐegÓChÓi×iÐiÑiùs   ‚?AÁAÁAz/logoutc                ó0   € V ^8„  d   QhR\         R\        /# ©r*   r:   r,   ©r.   r	   )r/   s   "r0   r1   r1   +   s   € ÷ 2ñ 2œð 2Äñ 2r2   c              ƒ   óJ   "  € \        WR ,          4      G Rj  x€L
  RR/#  L5i)r;   NÚmessagezLogged out successfully)r'   )r:   r,   s   &&r0   Úlogoutr]   *   s)   é € ä
˜ <Õ0Ó
1×1Ð1ØÐ0Ð1Ð1ñ 2ùs   ‚#˜!™	#z/purchase-ordersc                ó0   € V ^8„  d   QhR\         R\        /# rY   rZ   )r/   s   "r0   r1   r1   0   s   € ÷ $ñ $¤tð $Ì|ñ $r2   c              ƒ   ó8  "  € \        WR ,          R4      G Rj  x€L
  ^ RIHp \        VP                  4      P                  VP                  R8H  4      P                  VP                  4      P                  4       pVP                  \        \        \        P                  P                  R4      VP                  P                  P                  R4      4      P                  \        \        P                   \        P"                  8H  4      P%                  V\        P                  VP                  P                  8H  4      P                  \        P&                  V R ,          8H  4      P                  \        P                   R8g  4      P                  \        P(                  R8g  4      P+                  \        P,                  P/                  4       4      4      G Rj  x€L
 pVP1                  4       pV Uu. uF•  pRVP                  P                  R	VP                  P2                  R
VP                  P4                  RVP                  P6                  RVP                  P8                  RVP:                  RVP<                  '       d   RMR/NK—  	  up#  ELw L¹u upi 5i)r>   ÚPO_LIST_VIEWN)ÚRmPoHistoryÚUPDATEDÚstatus_nameÚhas_updatesÚDRAFTÚpo_idÚ	po_numberÚ
order_dateÚexpected_delivery_dateÚtotal_amountÚstatusTF)r(   Úapp.models.rm_modelsra   r
   rf   ÚwhereÚactionÚgroup_byÚsubqueryÚexecuter   r   ÚnameÚlabelÚcÚjoinÚ	status_idÚidÚ	outerjoinr>   ÚcodeÚorder_byÚ
created_atÚdescÚallrg   rh   ri   rj   rc   rd   )r:   r,   ra   Úhas_updates_subqÚresultÚrowsÚrows   &&     r0   Úlist_purchase_ordersr‚   /   sý  é € ä
˜B {Õ 3°^Ó
D×DÐDå0äˆ{× Ñ Ó!ß	‰ˆ{×!Ñ! YÑ.Ó	/ß	‰�+×#Ñ#Ó	$ß	‰‹ð	 ð —:‘:ÜÜÜ×Ñ×%Ñ% mÓ4Ø×Ñ×$Ñ$×*Ñ*¨=Ó9ó	
÷
 
‰Œnœo×7Ñ7¼>×;LÑ;LÑLÓ	Mß	‰Ð#¤_×%:Ñ%:Ð>N×>PÑ>P×>VÑ>VÑ%VÓ	Wß	‰Œ×(Ñ(¨F°;Õ,?Ñ?Ó	@ß	‰Œ×(Ñ(¨DÑ0Ó	1ß	‰Œ~×"Ñ" gÑ-Ó	.ß	‰”/×,Ñ,×1Ñ1Ó3Ó	4ó÷ €Fð �:‰:‹<€Dñ ó
ñ ˆcð �S×(Ñ(×.Ñ.Ø˜×,Ñ,×6Ñ6Ø˜#×-Ñ-×8Ñ8Ø$ c×&9Ñ&9×&PÑ&PØ˜C×/Ñ/×<Ñ<Ø�c—o‘oØ 3§?§? ?™4¸ó	
ñ ñ
ð 
ò3 Eñùò
ùs;   ‚J™JšF?JÇJÇJÇ2BJÊ	JÊJÊJÊJ©Údatez
/scorecardc                ó0   € V ^8„  d   QhR\         R\        /# rY   rZ   )r/   s   "r0   r1   r1   Z   s   € ÷ 
ñ 
¤ð 
Ìñ 
r2   c              ƒ   óœ  "  € ^ RI Hp \        WR,          R4      G Rj  x€L
  \        P                  ! 4       p\        VP
                  VP                  ^4      p\        P                  ! VP
                  VP                  4      ^,          p\        VP
                  VP                  V4      pV! WR,          WF4      G Rj  x€L
 pV.#  L¨ L	5i)r   )Úget_live_scorecardr>   ÚSCORECARD_VIEWN)	Ú!app.modules.vendor_portal.servicer‡   r(   r„   ÚtodayÚyearÚmonthÚcalendarÚ
monthrange)r:   r,   r‡   rŠ   Ú
start_dateÚlast_dayÚend_dateÚ	scorecards   &&      r0   Úview_scorecardr“   Y   sœ   é € åDÜ
˜B {Õ 3Ð5EÓ
F×FÐFä�JŠJ‹L€EÜ�e—j‘j %§+¡+¨qÓ1€JÜ×"Ò" 5§:¡:¨u¯{©{Ó;¸AÕ>€HÜ�E—J‘J §¡¨XÓ6€Há(¨°KÕ-@À*ÓW×W€IØˆ;Ðñ Gñ Xùs"   ‚CŸC B CÃ C
ÃCÃ
Cz/purchase-orders/{po_id}c                óP   € V ^8„  d   QhR\         P                  R\        R\        /# )r*   rf   r:   r,   ©rH   rI   r.   r	   )r/   s   "r0   r1   r1   g   s&   € ÷ ,ñ ,¤§	¡	ð ,´4ð ,Ô[gñ ,r2   c              ƒ   óþ  "  € VP                  \        \        \        P                  P                  R 4      4      P                  \        \        P                  \        P                  8H  4      P                  \        P                  V 8H  4      P                  \        P                  VR,          8H  4      4      G Rj  x€L
 pVP                  4       pV'       g   \        RRR7      hVP                  pVP                  ;'       g    RpVP                  \        \        \         4      P#                  \         \        P$                  \         P$                  8H  4      P                  \        P                  V 8H  4      4      G Rj  x€L
 p. pVP'                  4        FŽ  w  ršVP)                  RV	P*                  RV
P,                  R	V
P.                  R
V
P0                  RV	P2                  RV	P4                  RV	P6                  RV	P8                  RV	P:                  RV	P<                  /
4       K�  	  RVP                  RVP>                  RVP@                  RVPB                  RVPD                  RVPF                  RVRV/#  EL¼ Lù5i)r6   r>   Né”  úPO not foundr5   ÚOPENÚpo_detail_idÚpart_norr   Úunit_of_measurementÚ	order_qtyÚreceived_qtyÚ
unit_priceÚgst_percentÚline_amountÚline_statusrf   rg   rh   ri   rj   Únotesrk   Údetails)$rq   r
   r   r   ry   rs   rx   rv   rw   rm   rf   r>   Úfirstr   r6   r   r   ru   Úrm_idr}   Úappendrš   r›   rr   rœ   r�   rž   rŸ   r    r¡   r¢   rg   rh   ri   rj   r£   )rf   r:   r,   Ú	po_resultÚpo_rowÚpor6   Údetails_resultÚlinesr7   Úrms   &&&        r0   Úget_po_detailsr®   f   sø  é € à—j‘jÜŒ¤× 3Ñ 3× 9Ñ 9¸-Ó HÓIß	‰”>¤?×#<Ñ#<Ä×@QÑ@QÑ#QÓ	Rß	‰Œ×$Ñ$¨Ñ-Ó	.ß	‰Œ×(Ñ(¨F°;Õ,?Ñ?Ó	@ó	÷ €Ið �_‰_Ó€FßÜ¨°NÔCÐCà	×	Ñ	€BØ×$Ñ$×.Ð.¨€KàŸ:™:ÜŒzœ8Ó$ß	‰Œhœ
×(Ñ(¬H¯N©NÑ:Ó	;ß	‰Œz×Ñ 5Ñ(Ó	)ó÷ €Nð €EØ$×(Ñ(Ö*‰
ˆØ�‰Ø˜F×/Ñ/Ø�r—z‘zØ�B—G‘GØ! 2×#9Ñ#9Ø˜×)Ñ)Ø˜F×/Ñ/Ø˜&×+Ñ+Ø˜6×-Ñ-Ø˜6×-Ñ-Ø˜6×-Ñ-ð
ö 	ñ +ð 	�—‘Ø�R—\‘\Ø�b—m‘mØ  "×";Ñ";Ø˜Ÿ™Ø�—‘Ø�+Ø�5ð	ð 	òEñùs2   ‚B:I=Â<I8Â=I=Ã+I=ÄA<I=ÆI;ÆC7I=É;I=z/asnsc                ó0   € V ^8„  d   QhR\         R\        /# rY   rZ   )r/   s   "r0   r1   r1   –   s   € ÷ ñ œDð ÄLñ r2   c              ƒ   óð  "  € VP                  \        \        \        P                  4      P                  \        \        P                  \        P                  8H  4      P                  \        P                  V R ,          8H  4      P                  \        P                  P                  4       4      4      G Rj  x€L
 pVP                  4       pV Uu. uF•  pRVP                  P                  RVP                  P                  RVP                  P                  RVP                  RVP                  P                  RVP                  P                   RVP                  P"                  /NK—  	  up#  L¶u upi 5i)	r>   NÚasn_idÚ
asn_numberrf   rg   Úexpected_dateÚdelivery_moderk   )rq   r
   r   r   rg   ru   rf   rm   r>   rz   r{   r|   r}   r±   r²   r³   r´   rk   )r:   r,   r   r€   r�   s   &&   r0   Ú	list_asnsrµ   •   s  é € à—:‘:ÜŒv”×0Ñ0Ó1ß	‰ŒoœvŸ|™|¬×/DÑ/DÑDÓ	Eß	‰Œv×Ñ 6¨+Õ#6Ñ6Ó	7ß	‰”&×#Ñ#×(Ñ(Ó*Ó	+ó	÷ €Fð �:‰:‹<€Dñ ó
ñ ˆcð �c—j‘j×'Ñ'Ø˜#Ÿ*™*×/Ñ/Ø�S—Z‘Z×%Ñ%Ø˜Ÿ™Ø˜SŸZ™Z×5Ñ5Ø˜SŸZ™Z×5Ñ5Ø�c—j‘j×'Ñ'ó	
ñ ñ
ð 
ñùò
ùs%   ‚B6E6Â8E/Â9E6ÃBE1Å,E6Å1E6z/asns/{asn_id}c                óP   € V ^8„  d   QhR\         P                  R\        R\        /# )r*   r±   r:   r,   r•   )r/   s   "r0   r1   r1   «   s&   € ÷ 3ñ 3œ$Ÿ)™)ð 3¬Tð 3ÔUañ 3r2   c              ƒ   óˆ  "  € ^ RI Hp VP                  \        \        \
        P                  4      P                  V! \        P                  4      4      P                  \
        \        P                  \
        P                  8H  4      P                  \        P                  V 8H  \        P                  VR,          8H  4      4      G Rj  x€L
 pVP                  4       pV'       g   \        RRR7      hVP                  p. pVP                   EF  pVP                  \        \         \"        4      P                  \"        \         P$                  \"        P$                  8H  4      P                  \         P&                  VP&                  8H  4      4      G Rj  x€L
 p	V	P                  4       p
V
'       g   K¦  V
P"                  pVP)                  RVP*                  RVP&                  R	VP,                  R
VP.                  RVP0                  RVP2                  /4       EK  	  RVP                  RVP4                  RVP                  RVP                  RVP6                  RVP8                  RVP:                  RVP<                  RVP>                  RVP@                  RVPB                  RVPD                  RVPF                  RV/#  ELô EL,5i)r   ©Úselectinloadr>   Nr—   zASN not foundr5   Úasn_detail_idrš   r›   rr   Úqty_shippedÚvendor_batch_refr±   r²   rf   rg   r³   r´   Úcourier_nameÚtracking_numberÚvehicle_numberÚdriver_nameÚdriver_phoneÚarrival_windowrk   r¤   )$Úsqlalchemy.ormr¹   rq   r
   r   r   rg   Úoptionsr¤   ru   rf   rm   r±   r>   r¥   r   r   r   r¦   rš   r§   rº   r›   rr   r»   r¼   r²   r³   r´   r½   r¾   r¿   rÀ   rÁ   rÂ   rk   )r±   r:   r,   r¹   r   r�   Úasn_logÚdetails_listÚdÚpo_detail_resÚpo_d_rowr­   s   &&&         r0   Úget_asnrÊ   ª   s  é € å+à—:‘:ÜŒv”×0Ñ0Ó1ß	‰‘œfŸn™nÓ-Ó	.ß	‰ŒoœvŸ|™|¬×/DÑ/DÑDÓ	Eß	‰Œv�}‰} Ñ&¬×(8Ñ(8¸FÀ;Õ<OÑ(OÓ	Pó	÷ €Fð �,‰,‹.€CßÜ¨°OÔDÐDà�j‰j€Gð €LØ�_�_ˆà Ÿj™jÜ”:œxÓ(ß‰T”(œJ×,Ñ,´·±Ñ>Ó?ß‰U”:×*Ñ*¨a¯n©nÑ<Ó=ó
÷ 
ˆð
 !×&Ñ&Ó(ˆß‰8Ø×"Ñ"ˆBØ×ÑØ §¡Ø §¡Ø˜2Ÿ:™:Ø˜Ÿ™Ø˜qŸ}™}Ø" A×$6Ñ$6ð!÷ ñ ð( 	�'—.‘.Ø�g×(Ñ(Ø�—‘Ø�S—]‘]Ø˜×.Ñ.Ø˜×.Ñ.Ø˜×,Ñ,Ø˜7×2Ñ2Ø˜'×0Ñ0Ø�w×*Ñ*Ø˜×,Ñ,Ø˜'×0Ñ0Ø�'—.‘.Ø�<ðð òCò 
ùs2   ‚CKÃJ<Ã	KÃ%B.KÆJ?ÆKÆ2DKÊ?Kc                ó<   € V ^8„  d   QhR\         R\        R\        /# )r*   rR   r:   r,   )r!   r.   r	   )r/   s   "r0   r1   r1   á   s(   € ÷ 5Nñ 5NÔ*ð 5N´Dð 5NÔ\hñ 5Nr2   c              ƒ   óÌ  "  € ^ RI Hp VP                  \        \        4      P                  \        P                  V P                  8H  \        P                  VR,          8H  4      4      G Rj  x€L
 pVP                  4       pV'       g   \        RRR7      hVP                  \        \        4      P                  \        P                  V P                  8H  \        P                  R8H  4      4      G Rj  x€L
 pVP                  4       P                  4       pRpV F  p	R	V	n        R
pK  	  V'       d   RMRp
VP                  \        \        4      P                  \        P                  V
8H  4      4      G Rj  x€L
 pVP                  4       pV'       dk   VP                  \!        \        4      P                  \        P                  VP                  8H  4      P#                  VP$                  R7      4      G Rj  x€L
  V! V4      G Rj  x€L
 p\        VVR,          V P                  V P&                  V P(                  V P*                  V P,                  V P.                  V P0                  V P2                  RR7      pVP5                  V4       VP7                  4       G Rj  x€L
  V P8                   FK  p\;        VP<                  VP>                  VP@                  VPB                  R7      pVP5                  V4       KM  	  VPE                  4       G Rj  x€L
  \G        W!R,          RRVP<                  4      G Rj  x€L
  RRRVP<                  /#  ELâ EL^ ELÝ EL^ ELQ L½ LL L'5i)r   )Úgenerate_asn_numberr>   Nr—   zPO not found or unauthorizedr5   Ú	SUBMITTEDFÚREPLACED_DUE_TO_DELAYTÚUPDATED_ASN_SHIPPEDÚASN_SHIPPED)rv   )r²   r>   rf   r³   r´   r½   r¾   r¿   rÀ   rÂ   rk   )r±   rš   r»   r¼   ÚASN_CREATEDr   r\   zASN successfully created!r±   )$r‰   rÍ   rq   r
   r   rm   rf   r>   Úscalar_one_or_noner   r   rk   Úscalarsr}   r   ry   r   Úvaluesrw   r³   r´   r½   r¾   r¿   rÀ   rÂ   ÚaddÚflushr¬   r   r±   rš   r»   r¼   Úcommitr(   )rR   r:   r,   rÍ   Úpo_resrª   Úexisting_asns_resÚexisting_asnsÚis_recreationÚold_asnÚstatus_code_to_findÚ
status_resÚ
new_statusr²   rÅ   Úliner7   s   &&&              r0   Ú
submit_asnrâ   à   sÃ  é € åEà—:‘:œf¤_Ó5×;Ñ;¼O×<QÑ<QÐUX×U^ÑU^Ñ<^Ô`o×`yÑ`yð  ~Dð  EPõ  ~Qñ  aQó  Ró  S÷  S€FØ	×	"Ñ	"Ó	$€BßÜ¨Ð4RÔSÐSà Ÿj™j¬´«×)=Ñ)=¼f¿l¹lÈcÏiÉiÑ>WÔY_×YfÑYfÐjuÑYuÓ)vÓw×wÐØ%×-Ñ-Ó/×3Ñ3Ó5€Mà€MÛ ˆØ0ˆŒØŠñ !÷ 4AÑ/ÀmÐØ—z‘z¤&¬Ó"8×">Ñ">¼~×?RÑ?RÐViÑ?iÓ"jÓk×k€JØ×.Ñ.Ó0€JçØ�j‰jœ¤Ó0×6Ñ6´×7LÑ7LÐPR×PXÑPXÑ7XÓY×`Ñ`Ðku×kxÑkxÐ`ÓyÓz×zÐzá*¨2Ó.×.€JäØØ˜Õ%Ø�i‰iØ×'Ñ'Ø×'Ñ'Ø×%Ñ%Ø×+Ñ+Ø×)Ñ)Ø—O‘OØ×)Ñ)Øô€Gð ‡F�Fˆ7„OØ
�(‰(‹*×Ðà—	”	ˆÜØ—>‘>Ø×*Ñ*Ø×(Ñ(Ø!×2Ñ2ô	
ˆð 	�‰ˆvŽñ ð �)‰)‹+×ÐÜ
˜B {Õ 3°]ÀHÈgÏnÉnÓ
]×]Ð]àÐ2°H¸g¿n¹nÐMÐMòe Sò
 xò lò 	{â.ñ  ñ Ù]ùs§   ‚A+M$Á-MÁ.M$Â
A*M$Ã4MÃ5=M$Ä3AM$Å8MÅ9M$ÆA%M$Ç:MÇ;M$È
MÈBM$Ê MÊ!A2M$ÌM Ì&M$Ì:M"Ì;M$ÍM$ÍM$ÍM$ÍM$ÍM$Í M$Í"M$)Ú	BaseModel)ÚListÚOptionalc                   ó0   a € ] tR tRt o RtV 3R ltRtV tR# )ÚRejectionResponsei  Nc                óÆ   <€ V ^8„  d   Qh/ S[ P                  ;R&   S[;R&   S[ P                  ;R&   S[ P                  ;R&   S[;R&   S[S[,          ;R&   S[;R&   S[;R&   # )	r*   Úrejection_idÚrlnÚgrn_idr>   Ú	total_qtyÚreason_coder{   rk   )rH   rI   ÚstrÚfloatrå   r   )r/   Ú__classdict__s   "€r0   r1   ÚRejectionResponse.__annotate__  sw   ø‡ ‚ Ù—)‘)Ññ á	�Hñ ñ �I‰IÑñ ñ �y‰yÑñ	 ñ
 Ññ ñ ™#•Ñ%ñ ñ Ññ ñ �Kò r2   © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rí   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©rð   s   @r0   rç   rç     s   ø‡ € ð "&€K÷ ƒ r2   rç   c                   ó4   a € ] tR tRt o RtRtV 3R ltRtV tR# )ÚNCRResponsei%  Nc                óæ   <€ V ^8„  d   Qh/ S[ P                  ;R&   S[;R&   S[ P                  ;R&   S[S[ P                  ,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[;R&   S[;R&   # )	r*   Úncr_idÚ
ncr_numberr>   ré   Údefect_descriptionÚcar_duerk   r{   )rH   rI   rî   rå   r   )r/   rð   s   "€r0   r1   ÚNCRResponse.__annotate__%  s�   ø‡ ‚ Ù�I‰IÑñ á�Oñ ñ �y‰yÑñ ñ ™4Ÿ9™9Õ%Ñ%ñ	 ñ
 !¡�Ñ,ñ ñ ‘hÕÑ&ñ ñ �Kñ ñ Ñò r2   rò   )	ró   rô   rõ   rö   r   r  r÷   rø   rù   rú   s   @r0   rü   rü   %  s   ø‡ € ð
 )-ÐØ"&€G÷ ƒ r2   rü   z/rejectionsc                ó0   € V ^8„  d   QhR\         R\        /# rY   rZ   )r/   s   "r0   r1   r1   0  s   € ÷ (ñ (¤ð (Ìñ (r2   c              ƒ   óL  "  € VP                  \        \        4      P                  \        P                  V R ,          8H  4      P                  \        P                  P                  4       4      4      G Rj  x€L
 p\        VP                  4       P                  4       4      #  L+5i©r>   N)rq   r
   r   rm   r>   rz   r{   r|   ÚlistrÔ   r}   ©r:   r,   r   s   && r0   Úget_rejectionsr  /  su   é € à—:‘:ÜŒ|Óß	‰Œ|×%Ñ%¨°Õ)<Ñ<Ó	=ß	‰”,×)Ñ)×.Ñ.Ó0Ó	1ó÷ €Fô
 �—‘Ó ×$Ñ$Ó&Ó'Ð'ñùó   ‚A4B$Á6B"Á7,B$z/ncrsc                ó0   € V ^8„  d   QhR\         R\        /# rY   rZ   )r/   s   "r0   r1   r1   :  s   € ÷ (ñ (œ4ð (Ä<ñ (r2   c              ƒ   óL  "  € VP                  \        \        4      P                  \        P                  V R ,          8H  4      P                  \        P                  P                  4       4      4      G Rj  x€L
 p\        VP                  4       P                  4       4      #  L+5ir  )rq   r
   r   rm   r>   rz   r{   r|   r  rÔ   r}   r  s   && r0   Úget_ncrsr  9  st   é € à—:‘:ÜŒv‹ß	‰Œv×Ñ 6¨+Õ#6Ñ6Ó	7ß	‰”&×#Ñ#×(Ñ(Ó*Ó	+ó÷ €Fô
 �—‘Ó ×$Ñ$Ó&Ó'Ð'ñùr	  )Ú	DebitNote)ÚDebitNoteResponsez/debit-notesc                ó0   € V ^8„  d   QhR\         R\        /# rY   rZ   )r/   s   "r0   r1   r1   F  s   € ÷ (ñ (¤$ð (Ì,ñ (r2   c              ƒ   óL  "  € VP                  \        \        4      P                  \        P                  V R ,          8H  4      P                  \        P                  P                  4       4      4      G Rj  x€L
 p\        VP                  4       P                  4       4      #  L+5ir  )rq   r
   r  rm   r>   rz   r{   r|   r  rÔ   r}   r  s   && r0   Úget_debit_notesr  E  su   é € à—:‘:ÜŒyÓß	‰Œy×"Ñ" f¨[Õ&9Ñ9Ó	:ß	‰”)×&Ñ&×+Ñ+Ó-Ó	.ó÷ €Fô
 �—‘Ó ×$Ñ$Ó&Ó'Ð'ñùr	  c                   ó0   a € ] tR tRt o RtV 3R ltRtV tR# )ÚAcknowledgeRequestiN  Nc                ó6   <€ V ^8„  d   Qh/ S[ S[,          ;R&   # )r*   r£   )rå   rî   )r/   rð   s   "€r0   r1   ÚAcknowledgeRequest.__annotate__N  s   ø‡ ‚ Ù‘C�=Ñò r2   rò   )ró   rô   rõ   rö   r£   r÷   rø   rù   rú   s   @r0   r  r  N  s   ø‡ € Ø€E÷ ƒ r2   r  z$/purchase-orders/{po_id}/acknowledgec                ó\   € V ^8„  d   QhR\         P                  R\        R\        R\        /# )r*   rf   rL   r:   r,   )rH   rI   r  r.   r	   )r/   s   "r0   r1   r1   R  s4   € ÷ 7ñ 7Ü�9‰9ð7äð7ô ð7ô 	ñ	7r2   c           
   ƒ   ó   "  € VP                  \        V 4      G R j  x€L
 pV'       d   VP                  VR,          8w  d   \        RRR7      hVP	                  \        R4      4      G R j  x€L
 pVP                  4       pV'       d   Wdn        \        V R\        P                  ! 4       VP                  \        VR,          4      R7      pVP                  V4       VP                  4       G R j  x€L
  RR	/#  LÛ LŽ L5i)
Nr>   r—   r˜   r5   zCSELECT id FROM po_status_master WHERE code = 'ACKNOWLEDGED' LIMIT 1ÚACKNOWLEDGED)rf   Ú
event_typeÚ
event_dater£   Ú
created_byr\   zPO Acknowledged successfully)r@   r   r>   r   rq   r   rÓ   rv   r   r   Úutcnowr£   rî   rÖ   rØ   )rf   rL   r:   r,   rª   rß   Úack_status_idÚtrackings   &&&&    r0   Úacknowledge_por  Q  sÎ   é € ð �v‰v”o uÓ-×	-€Bß�—‘ ¨Õ!4Ô4Ü¨°NÔCÐCà—z‘z¤$Ð'lÓ"mÓn×n€JØ×1Ñ1Ó3€MçØ$ŒäØØ!Ü—?’?Ó$Ø�m‰mÜ�v˜kÕ*Ó+ô€Hð ‡F�Fˆ8ÔØ
�)‰)‹+×ÐØÐ5Ð6Ð6ñ' 
.ñ oñ ùs@   ‚C>œC8�C>©AC>Á+C:Á,C>ÂA'C>Ã/C<Ã0	C>Ã:C>Ã<C>z/monthly-plansc                ó0   € V ^8„  d   QhR\         R\        /# rY   rZ   )r/   s   "r0   r1   r1   q  s    € ÷ hñ hÜðhäñhr2   c              ƒ  óŽ  "  € ^ RI Hp ^ RIHpHp ^ RIHp V R,          pVP                  \        \        4      P                  V! \        P                  4      4      P                  \        P                  V8H  4      P                  \        P                  P!                  4       \        P"                  P!                  4       4      4      G Rj  x€L
 pVP%                  4       P'                  4       pV'       g   . # V U	U
u0 uF   q™P                   F  qªP(                  kK  	  K"  	  pp	p
VP                  \        \*        4      P                  \*        P(                  P-                  V4      4      4      G Rj  x€L
 pVP%                  4       P'                  4        Uu/ uF  p\/        VP(                  4      VbK  	  pp. pV EFß  p	V! V	P                  V	P"                  ^4      pV	P"                  ^8X  d   V! V	P                  ^,           ^^4      pM%V! V	P                  V	P"                  ^,           ^4      pVP                  \        \0        P(                  VP3                  VP5                  \0        P6                  4      ^ 4      P9                  R4      4      P;                  \<        \0        P>                  \<        P>                  8H  4      P;                  \@        \<        PB                  \@        PD                  8H  4      P                  V! \<        P                  V8H  \<        PF                  V8¬  \<        PF                  V8  \@        PH                  PK                  RR.4      4      4      PM                  \0        P(                  4      4      G Rj  x€L
 pVP'                  4        Uu/ uF,  p\/        VP(                  4      \O        VPP                  4      bK.  	  ppVP                  \        \R        P(                  VP3                  VP5                  \R        PT                  4      ^ 4      P9                  R	4      4      P;                  \V        \R        PX                  \V        PX                  8H  4      P;                  \<        \V        P>                  \<        P>                  8H  4      P                  V! \<        P                  V8H  \V        PZ                  V8¬  \V        PZ                  V8  4      4      PM                  \R        P(                  4      4      G Rj  x€L
 pVP'                  4        Uu/ uF,  p\/        VP(                  4      \O        VP\                  4      bK.  	  pp. pV	P                   Fò  p
VP_                  \/        V
P(                  4      4      pTPa                  \c        V
Pd                  V
P(                  V'       d   VPf                  MR
V'       d   VPh                  MRV'       d   VPj                  MR\O        V
Pl                  4      VP_                  \/        V
P(                  4      R4      VP_                  \/        V
P(                  4      R4      R7      4       Kô  	  VPa                  \o        V	Pp                  V	P                  V	P"                  V	Pr                  VR7      4       EKâ  	  V#  ELØu up
p	i  EL9u upi  EL.u upi  EL¶u upi 5i)zí
Returns all historical Monthly Procurement Plans visible to the authenticated vendor.
Each line is enriched with RM name/UOM and live-computed ordered_qty from POs.
Vendors see ALL months (historical and current), ordered newest first.
rƒ   )ÚfuncÚand_r¸   r>   NÚtotal_orderedre   Ú	CANCELLEDÚtotal_receivedz
Unknown RMrT   g        )Úline_idr¦   Úrm_nameÚ
rm_part_noÚrm_uomÚplanned_qtyÚordered_qtyrž   )Úplan_idÚ	plan_yearÚ
plan_monthr£   r¬   ):r   r„   Ú
sqlalchemyr"  r#  rÃ   r¹   rq   r
   r   rÄ   r¬   rm   r>   rz   r.  r|   r/  rÔ   r}   r¦   r   Úin_rî   r   ÚcoalesceÚsumr�   rs   ru   r   rf   r   rv   rw   rh   ry   Únotin_ro   rï   r$  r   rž   r   rë   Úreceived_dater&  r@   r§   r%   r'  rr   r›   rœ   r+  r$   r-  r£   )r:   r,   r„   r"  r#  r¹   r>   Úplan_resultÚplansÚplanrá   Ú
all_rm_idsÚ	rm_resultr­   Úrm_mapÚoutputÚ	first_dayr�   Úordered_resultÚrÚordered_mapÚreceived_resultÚreceived_mapÚenriched_liness   &&                      r0   Úvendor_list_monthly_plansrD  p  só  é € õ ß%Ý+à�{Õ#€Ið Ÿ
™
ÜÔ%Ó&ß	‰‘Ô4×:Ñ:Ó;Ó	<ß	‰Ô%×/Ñ/°9Ñ<Ó	=ß	‰Ô(×2Ñ2×7Ñ7Ó9Ô;Q×;\Ñ;\×;aÑ;aÓ;cÓ	dó	÷ €Kð ×ÑÓ!×%Ñ%Ó'€EçØˆ	ñ */ÔF© ¿:¼:°4—*”*¹:‘*©€JÑFð —j‘jÜŒxÓ×ÑœxŸ~™~×1Ñ1°*Ó=Ó>ó÷ €Ið +4×*;Ñ*;Ó*=×*AÑ*AÔ*CÓDÑ*C BŒc�"—(‘(‹m˜RÒÑ*C€FÐDà€FÜˆÙ˜Ÿ™¨¯©¸!Ó<ˆ	Ø�?‰?˜bÔ Ù˜DŸN™N¨QÕ.°°1Ó5‰Há˜DŸN™N¨D¯O©O¸aÕ,?ÀÓCˆHð  "Ÿz™zÜÜ× Ñ Ø—‘˜dŸh™h¤z×';Ñ';Ó<¸aÓ@×FÑFÀÓWó÷ ‰T”/¤:×#3Ñ#3´×7LÑ7LÑ#LÓMß‰T”.¤/×";Ñ";¼~×?PÑ?PÑ"PÓQß‰UÙÜ#×-Ñ-°Ñ:Ü#×.Ñ.°)Ñ;Ü#×.Ñ.°Ñ9Ü"×'Ñ'×.Ñ.°¸Ð/EÓFó	ó÷ ‰X”j×&Ñ&Ó'ó 
÷ 
ˆð" FT×EWÑEWÔEYÓZÑEYÀ”s˜1Ÿ7™7“|¤U¨1¯?©?Ó%;Ò;ÑEYˆÐZà "§
¡
ÜÜ—‘Ø—‘˜dŸh™h¤y×'=Ñ'=Ó>ÀÓB×HÑHÐIYÓZó÷ ‰T”.¤)×"2Ñ"2´n×6KÑ6KÑ"KÓLß‰T”/¤>×#7Ñ#7¼?×;PÑ;PÑ#PÓQß‰UÙÜ#×-Ñ-°Ñ:Ü"×0Ñ0°IÑ=Ü"×0Ñ0°8Ñ;óó÷ ‰X”i—o‘oÓ&ó!
÷ 
ˆð  HW×GZÑGZÔG\Ó]ÑG\À!œ˜AŸG™G›¤e¨A×,<Ñ,<Ó&=Ò=ÑG\ˆÐ]àˆØ—J”JˆDØ—‘œC §
¡
›OÓ,ˆBØ×!Ñ!Ô"?ØŸ™Ø—j‘jß#%˜Ÿš¨<ß)+˜2Ÿ:š:°ß13�r×-Ò-¸Ü! $×"2Ñ"2Ó3Ø'ŸO™O¬C°·
±
«O¸SÓAØ)×-Ñ-¬c°$·*±*«o¸sÓCô	#ö 	ñ ð 	�‰Ô/Ø—L‘LØ—n‘nØ—‘Ø—*‘*Ø ô
÷ 	ñw ðF €Mòqùó Gòùò Eò
ùò" [ò
ùò  ^ùs•   ‚C
[ÃZ$Ã)[Ã7[Ã>&Z'Ä$A[Å4Z-Å5$[ÆZ0Æ8G[ÎZ5Î[Î2Z8ÏD7[ÔZ=Ô[Ô2[ ÕA9[×
[×C[Ú'[Ú0[Ú8[Û [)OrH   r   r   Úfastapir   r   r   r   Úsqlalchemy.ext.asyncior	   r0  r
   r   r   Úapp.core.databaser   Úapp.core.securityr   rl   r   r   r   r   r   r   r   Úapp.models.vendor_portalr   r   r   r   r   r   Ú!app.modules.vendor_portal.schemasr   r   r   r   r    r!   r"   r#   r$   r%   r‰   r&   r'   r(   ÚrouterrO   ÚpostrW   r]   r@   r  r‚   r�   r„   r“   r®   rµ   rÊ   r.   râ   Úpydanticrã   Útypingrä   rå   rç   rü   r  r  r  r  r  r  r  rD  rò   r2   r0   Ú<module>rO     s]  ðÛ ß 'ß >Ó >Ý /ß +Ñ +å $Ý *÷ J÷  Jñ  Jß l× l÷ u÷  u÷  uß cÑ cá	‹€áBIÈ&Ã/÷ Tð, ‡�ˆXÐ&9€Ó:ÙNUÐV\Ëoö jó ;ðjð ‡�ˆYÓÙ 'Ð(:Ó ;ÑPWÐX^ÓP_ö 2ó ð2ð ‡�Ð¨t°NÕ/C€ÓDÙ.5Ð6HÓ.IÑ^eÐflÓ^mö $ó Eð$óL Ý à‡�ˆL¨Ð.?Õ)@€ÓAÙ(/Ð0BÓ(CÑX_Ð`fÓXgö 
ó Bð
ð ‡�Ð&Ð7G€ÓHÙ:AÐBTÓ:UÑjqÐrxÓjyö ,ó Ið,ð\ ‡�ˆG D¨Õ$9€Ó:Ù#*Ð+=Ó#>ÑSZÐ[aÓSbö ó ;ðð( ‡�Ð¨[€Ó9Ù4;Ð<NÓ4OÑdkÐlrÓdsö 3ó :ð3ðj ‡�ˆW T€Ó*Ù;BÐCUÓ;VÑkrÐsyÓkzö 5Nó +ð5Nõn ß !ô˜	ô ô�)ô ð ‡�ˆM¨$Ð/@Õ*A€ÓBÙ(/Ð0BÓ(CÑX_Ð`fÓXgö (ó Cð(ð ‡�ˆG D¨Õ$5€Ó6Ù")Ð*<Ó"=ÑRYÐZ`ÓRaö (ó 7ð(õ /Ý ?à‡�ˆN¨4Ð0AÕ+B€ÓCÙ)0Ð1CÓ)DÑY`ÐagÓYhö (ó Dð(ô ˜ô  ð ‡�Ð3Ó4ñ Ð-Ó.Ù˜v“ö	7ó 5ð7ð< ‡�Ð¨TÐ2KÕ-L€ÓMáÐ-Ó.Ù˜v“öhó Nòhr2   