+
    9Ai                        ^ RI HtHtHt ^ RIHt ^ RIHt ^ RIH	t	H
t
 ^ RIHt ^ RIHt ]! RR.R	7      t ! R
 R]4      t ! R R]4      t]P%                  R4      ]! ]4      3R R ll4       t]P%                  R4      ]! ]4      3R R ll4       t]P+                  R4      ]! ]4      3R R ll4       t]P%                  R4      ]! ]4      3R R ll4       t]P+                  R4      ]! ]4      3R R ll4       t]P3                  R4      ]! ]4      3R R ll4       t]P7                  R4      ]! ]4      3R R ll4       t]P%                  R 4      ]! ]4      3R! R" ll4       tR## )$    )	APIRouterDependsHTTPExceptionSession)get_db)TarifTransportParametreCout	BaseModel)Optionalz/api/transport	transport)prefixtagsc                   0   a  ] tR t^t o RtV 3R ltRtV tR# )TarifUpdateg333333?c                B   < V ^8  d   Qh/ S[ ;R&   S[S[ ,          ;R&   # )   prix_rotationmajoration_convoi)floatr   )format__classdict__s   "fC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\app\routes\transport.py__annotate__TarifUpdate.__annotate__   s      -      N)__name__
__module____qualname____firstlineno__r   __annotate_func____static_attributes____classdictcell__r   s   @r   r   r      s     )-  r   r   c                   ,   a  ] tR t^t o V 3R ltRtV tR# )ParametreUpdatec                &   < V ^8  d   Qh/ S[ ;R&   # )r   valeur)r   )r   r   s   "r   r   ParametreUpdate.__annotate__   s     M r   r   N)r   r    r!   r"   r#   r$   r%   r&   s   @r   r(   r(      s      r   r(   z/tarifsc                $    V ^8  d   QhR\         /# r   dbr   )r   s   "r   r   r      s      7 r   c                 v   V P                  \        4      P                  \        P                  4      P	                  4       pV Uu. uFh  pR VP
                  RVP                  RVP                  RVP                  RVP                  R\        VP                  VP                  ,          ^4      /NKj  	  up# u upi )iddepartementnom_departementr   r   prix_convoi)
queryr	   order_byr1   allr0   r2   r   r   round)r.   tarifsts   &  r   
get_tarifsr:      s    XXn%..~/I/IJNNPF 
 A !$$1==q00Q__!4!4513F3F!FJ	
 
 
 
s   A.B6z/tarifs/{departement}c                0    V ^8  d   QhR\         R\        /# )r   r1   r.   strr   )r   s   "r   r   r   (   s      3 G r   c                    V P                  4       P                  ^4      pVP                  \        4      P	                  \        P
                  V8H  4      P                  4       pV'       g   \        RRV R2R7      hRVP
                  RVP                  RVP                  RVP                  R	\        VP                  VP                  ,          ^4      /# 
r     u   Département     non trouvéstatus_codedetailr1   r2   r   r   r3   )stripzfillr4   r	   filterr1   firstr   r2   r   r   r7   )r1   r.   deptr9   s   &&  r   	get_tarifrJ   '   s     $$Q'D
 ''(B(Bd(JKQQSAmD64VWWq}}1,,Q00uQ__q/B/BBAF r   c                <    V ^8  d   QhR\         R\        R\        /# )r   r1   datar.   )r=   r   r   )r   s   "r   r   r   8   s!      c  ' r   c                 0   V P                  4       P                  ^4      pVP                  \        4      P	                  \        P
                  V8H  4      P                  4       pV'       g   \        RRV R2R7      hVP                  Vn        VP                  Vn	        VP                  4        VP                  V4       RVP
                  RVP                  RVP                  RVP                  R	\        VP                  VP                  ,          ^4      /# r?   )rE   rF   r4   r	   rG   r1   rH   r   r   r   commitrefreshr2   r7   )r1   rL   r.   rI   r9   s   &&&  r   update_tarifrP   7   s    $$Q'D
 ''(B(Bd(JKQQSAmD64VWW((AO00AIIKJJqMq}}1,,Q00uQ__q/B/BBAF r   z/parametresc                $    V ^8  d   QhR\         /# r-   r   )r   s   "r   r   r   M   s     ] ]w ]r   c           
          V P                  \        4      P                  4       pV Uu/ uF3  q"P                  R VP                  RVP
                  RVP                  /bK5  	  up# u upi )r*   unitelabel)r4   r
   r6   cler*   rS   rT   )r.   paramsps   &  r   get_parametresrX   L   sT    XXm$((*FU[\U[PQEEHahh'177KKU[\\\s   9A$z/parametres/{cle}c                <    V ^8  d   QhR\         R\        R\        /# )r   rU   rL   r.   )r=   r(   r   )r   s   "r   r   r   S   s&     R R# R_ R' Rr   c                 `   VP                  \        4      P                  \        P                  V 8H  4      P	                  4       pV'       g   \        R RV  R2R7      hVP                  Vn        VP                  4        RVP                  RVP                  RVP                  RVP                  /# )r@      Paramètre rA   rB   rU   r*   rS   rT   )
r4   r
   rG   rU   rH   r   r*   rN   rS   rT   )rU   rL   r.   rW   s   &&& r   update_parametrer\   R   s    
&&}'8'8C'?@FFHAk#l4STT{{AHIIK155(AHHgqwwQQr   c                0    V ^8  d   QhR\         R\        /# )r   rL   r.   )dictr   )r   s   "r   r   r   ]   s     	R 	R4 	RW 	Rr   c           	         ^ RI Hp V P                  RR4      P                  4       P	                  4       P                  RR4      pV'       g   \        RRR7      hVP                  \        4      P                  \        P                  V8H  4      P                  4       '       d   \        R	R
R7      h\        W0P                  RR4      V P                  RR4      V P                  RR4      R7      pVP                  V4       VP                  4        VP                  V4       RVP                  RVP                  RVP                   RVP"                  /# )r   r   rU     _i  u   Clé manquanterB   i  u   Clé déjà existanter*   g        rS   u   €/m³rT   )rU   r*   rS   rT   )pydanticr   getrE   lowerreplacer   r4   r
   rG   rU   rH   addrN   rO   r*   rS   rT   )rL   r.   r   rU   rW   s   &&   r   create_parametrerh   \   s    "
((5

"
"
$
*
*
,
4
4S
=C4DEE	xx%%m&7&73&>?EEGG4KLL#hhx&<DHHWU^D_gkgogopwxzg{|AFF1Iryy{BJJqM155(AHHgqwwQQr   c                0    V ^8  d   QhR\         R\        /# )r   rU   r.   r<   )r   s   "r   r   r   j   s      # 7 r   c                    VP                  \        4      P                  \        P                  V 8H  4      P	                  4       pV'       g   \        R RV  R2R7      hVP                  V4       VP                  4        RV /# )r@   r[   rA   rB   deleted)r4   r
   rG   rU   rH   r   deleterN   )rU   r.   rW   s   && r   delete_parametrerm   i   sf    
&&}'8'8C'?@FFHAk#l4STTIIaL"))+sr   z/cout-projet/{projet_id}c                0    V ^8  d   QhR\         R\        /# )r   	projet_idr.   )intr   )r   s   "r   r   r   u   s     - -S -g -r   c                    ^ RI HpHp VP                  V4      P	                  VP
                  V 8H  4      P                  4       pV'       g   \        RRR7      hVP                  ;'       g    RpV'       d   VR,          P                  ^4      MRpRpV'       dD   VP                  \        4      P	                  \        P                  V8H  4      P                  4       pV'       g   RV R	VR
RR^ RR/# VP                  V4      P	                  VP                  V 8H  4      P                  4       p\        R V 4       4      p	\        ^ VP                   ;'       g    ^ V	,
          4      p
WP"                  ,          pWP"                  ,          VP$                  ,          p\'        W,           ^4      pRV R	VRVP(                  R
RRV
RV	RVP"                  RVP$                  R\'        V^4      R\'        V^4      RV/# )r   )ProjetPiecer@   u   Projet non trouvérB   r`   :Nr   NNro   r1   tarif_trouveFcout_transportrD   u(   Aucun tarif trouvé pour ce départementc              3   L   "   T F  qP                   '       g   K  ^x  K  	  R# 5i)   N)convoi_exceptionnel).0rW   s   & r   	<genexpr>(cout_transport_projet.<locals>.<genexpr>   s     ?v!)>)>AAvs   $
$r2   Tnb_transports_normalnb_transports_convoir   r   cout_normalcout_convoi)app.models.projetrr   rs   r4   rG   r0   rH   r   code_postal_chantierrF   r	   r1   ro   r6   summaxnb_transportsr   r   r7   r2   )ro   r.   rr   rs   projetcprI   tarifpieces	nb_convoi	nb_normalr~   r   
cout_totals   &&            r   cout_transport_projetr   t   s   /XXf$$VYY)%;<BBDF4HII 
	$	$	*	*B 2b6<<?dDE(//0J0Jd0RSYY[4Ea@
 	
 XXe_##EOOy$@AEEGF?v??IA,,11Y>?I111K111E4K4KKK{0!4J 	Yt500		,,U44u[!,u[!,* r   N)fastapir   r   r   sqlalchemy.ormr   app.databaser   app.models.transportr	   r
   rc   r   typingr   routerr   r(   rd   r:   rJ   putrP   rX   r\   postrh   rl   rm   r   r   r   r   <module>r      sl   5 5 "  >  	*+	?
.) .i  I$V_   #$.5fo  % #$DKFO  %( M!( ] ]
  DKFO R !R ]/6v 	R 	R "#-4V_  $ &'8? - (-r   