Files
sgl/gestion_produit/__pycache__/views.cpython-313.pyc

212 lines
17 KiB
Plaintext
Raw Normal View History

2025-12-19 09:43:33 +00:00
<EFBFBD>
<00><>;iU><00><00><><00>SrSSKJrJr SSKJr SSKJr SSKJ r SSK
J r SSK J r SS KJrJrJrJrJr SS
KJrJrJrJr S rS rSS jr\ "S S9S5rSr\ "S S9\ S55r\ "S S9S5r\ "S S9S5r \ "S S9S5r!\ "S S9S5r"\ "S S9\ S55r#\ "S S9S5r$\ "S S9\ S55r%\ "S S9S5r&Sr'\ "S S9S5r(\ "S S9S5r)g)z#Views pour la gestion des produits.<2E>)<02>render<65>redirect)<01> Paginator)<01>Sum)<01> csrf_exempt)<01>login_required)<01> JsonResponse<73>)<05> Categorie<69>Produit<69>Demander<65> Fournisseur<75> Commander)<04>EnregistrementProduit<69>EnregistrementCategorie<69>CommanderProduit<69>DemanderProduitFc<00><><00>[RRXRRS9nSnURRR
(a<[RRUURRR S9nU(aU(aX4-RS5$U$U(aX4-$U$)uKAffichez les demandes de produit selon le profil de l'utilisateur.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
option_validation_chef : bool or None
Filtre pour la validation par le chef de département.
1- True : demandes validées par le chef.
2- False : demandes non validées par le chef.
3- None : demandes en attentes.
ordre_inverse : bool, optional
Si True, les demandes sont triées par ordre décroissant,
par défaut False.
Returns
-------
QuerySet:
Ensemble des demandes filtrées selon les critères spécifiés.
)<02>valider_par_chef<65>userN)r<00>user__departement<6E>-id)r <00>objects<74>filterr<00>profile<6C>chef_departement<6E> departement<6E>order_by)<05>request<73>option_validation_chef<65> ordre_inverse<73> mes_demandes<65>demandes_departements <20>?C:\Users\HP\Desktop\tro\logistique\SGL\gestion_produit\views.py<70>gestion_affichage_demander%s<><00><00>4<1C>#<23>#<23>*<2A>*<2A>/<2F>l<EFBFBD>l<EFBFBD>6J<36>6J<36>+<2B><06>L<EFBFBD> <20><18><0E>|<7C>|<7C><1B><1B>,<2C>,<2C>'<27>/<2F>/<2F>6<>6<>3<>%<25>l<EFBFBD>l<EFBFBD>2<>2<>><3E>><3E> 7<>
<EFBFBD><1C>
<15>$<24><1A> 0<> :<3A> :<3A>5<EFBFBD> A<>
<EFBFBD><1E>
<EFBFBD> <20>
<16> ,<2C><06><1A><06><00>login)<01> login_urlc <00><><00>[RR5RS5n[RR5RS5nUVs/sHn[ U5PM nn[ US5nURRS5nURU5n[US[[[[[USS9UUS.5$s snf) u<>Gérer le rendu de la page d'accueil de la gestion des produits.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
Returns
-------
HttpResponse
La réponse HTTP contenant la page rendue.
r<00> categorie<69><00>page<67>gestion_produit/index.htmlN)r )<07>!formulaireEnregistrementCategorie<69>formulaireEnregistrementProduit<69>formulaireCommanderProduit<69>formulaireDemanderProduitr"<00>page_obj<62>liste_categorie)r r<00>allrr <00>calcul_stock_produitr<00>GET<45>get<65>get_pagerrrrrr%)r<00> liste_produitr3<00>produit<69>liste_produit_finale<6C>
pagination<EFBFBD> page_numberr2s r$<00>indexr>Qs<><00><00><1C>O<EFBFBD>O<EFBFBD>'<27>'<27>)<29>2<>2<>5<EFBFBD>9<>M<EFBFBD><1F>'<27>'<27>+<2B>+<2B>-<2D>6<>6<>{<7B>C<>O<EFBFBD>6C<01><06>5B<35>'<27><1C>W<EFBFBD>%<25>]<5D><19><06><1B>/<2F><11>3<>J<EFBFBD><19>+<2B>+<2B>/<2F>/<2F>&<26>)<29>K<EFBFBD><19>"<22>"<22>;<3B>/<2F>H<EFBFBD> <11><0F>$<24>1H<31>/D<>*:<3A>)8<>5<><17><04><0E>!<21>.<2E>
<EFBFBD> <06><06><>s<00>Cc<00><><00>[RR5Vs/sHnSUR0PM nn[ USS9$s snf)u<>Récupère et renvoie la liste des catégories de produits au format JSON.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
Returns
-------
JsonResponse
Réponse JSON contenant la liste des catégories de produits.
r*F<><01>safe)r rr4r*r )rr*<00>mes_categoriess r$<00>liste_categoriesrC~sR<00><00> #<23>*<2A>*<2A>.<2E>.<2E>0<><06>0<>I<EFBFBD>
<15>i<EFBFBD>)<29>)<29>*<2A>0<><13><06>
<18><0E>U<EFBFBD> 3<>3<><33> s<00>Ac<00><00>URS:Xaa[URUR5nUR 5(aUR 5 [ SSS.5$[ SSS.5$[[5$)u<>Enregistre un nouveau produit à partir des données POST.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
Returns
-------
JsonResponse
Réponse JSON indiquant le succès ou l'échec de l'enregistrement.
<EFBFBD>POSTTu Produit enregistré avec succès<C3A8><02>success<73>messageFu&L'enregistrement du produit a échoué) <09>methodrrE<00>FILES<45>is_valid<69>saver rr>)r<00>ps r$<00>enregistrer_produitrN<00>st<00><00> <0F>~<7E>~<7E><16><1F> !<21>'<27>,<2C>,<2C><07> <0A> <0A> ><3E><01> <0C>:<3A>:<3A><<3C><<3C> <0A>F<EFBFBD>F<EFBFBD>H<EFBFBD><1F> <20>-O<>P<><0E> <0E><1C> <20>C<> <0E>
<EFBFBD>
<EFBFBD> <14>E<EFBFBD>?<3F>r&c<00><><00>URS:Xa:[UR5nUR5(aUR 5 [ S5$)z-Enregistrez une nouvelle commande de produit.rE<00>gestion_produit:index)rIrrErKrLr)r<00>forms r$<00>enregistrer_commanderR<00>s><00><00><0F>~<7E>~<7E><16><1F><1F><07> <0C> <0C>-<2D><04> <0F>=<3D>=<3D>?<3F>?<3F> <10>I<EFBFBD>I<EFBFBD>K<EFBFBD> <13>+<2B> ,<2C>,r&c<00>X<00>URS:Xa<>[UR5nUR5(afUR SS9nUR
R UlUR
R R(aSUlUR 5 [S5$)z,Enregistrez une nouvelle demande de produit.rEF)<01>commitTrP)
rIrrErKrLrrrrr)rrQ<00>
ma_demandes r$<00>enregistrer_demanderV<00>s{<00><00><0F>~<7E>~<7E><16><1F><1E>w<EFBFBD>|<7C>|<7C>,<2C><04> <0F>=<3D>=<3D>?<3F>?<3F><1D><19><19>%<25><19>0<>J<EFBFBD>%<25>l<EFBFBD>l<EFBFBD>2<>2<>J<EFBFBD>O<EFBFBD><16>|<7C>|<7C>#<23>#<23>4<>4<>.2<EFBFBD>
<EFBFBD>+<2B> <16>O<EFBFBD>O<EFBFBD> <1D> <13>+<2B> ,<2C>,r&c <00> <00>[USSS9nUVs/sHhnURURRURUR
URUR URURS.PMj nn[USS9$s snf)z;Retournez la liste des demandes de produits au format JSON.T)r r!)<08> dateDemander:<00>motifs<66>a_rendre<72>dateDeMiseADispoSouhaiter<00>valider_par_logisticien<65> motifs_refusFr@)
r%<00>date_de_mise_a_dispo_souhaiter:<00>libellerYrZrr\<00> motif_refusr )r<00>liste_demandes<65>demande<64> les_demandess r$rara<00>s<><00><00>/<2F><0F><04>D<EFBFBD><06>N<EFBFBD>&<26> <06>&<26>G<EFBFBD>#<23>@<40>@<40><1E><EFBFBD><EFBFBD>.<2E>.<2E><1D>n<EFBFBD>n<EFBFBD><1F>(<28>(<28>(/<2F>(M<>(M<> '<27> 8<> 8<>'.<2E>'F<>'F<>#<23>/<2F>/<2F>
<EFBFBD>&<26><11> <06> <18> <0C>5<EFBFBD> 1<>1<><31> s<00>A/B c<00>@<00>[RRUS9nURRURR
R
UR URURURRRS.n[U5$)u;Renvoyez les détails d'une demande spécifique de produit.<2E><01>id)<06> detailNom<6F>detailCategorie<69> detailmotif<69>detailDeMiseADispo<70> detailARendrer) r rr7r:r_r*rYr^rZrrrr )r<00>
id_demande<EFBFBD>detail_demanderbs r$rmrm<00>s<><00><00><1E>%<25>%<25>)<29>)<29>Z<EFBFBD>)<29>8<>N<EFBFBD>$<24>+<2B>+<2B>3<>3<>)<29>1<>1<>;<3B>;<3B>E<>E<>%<25>,<2C>,<2C>,<2C>J<>J<>'<27>0<>0<>#<23>L<EFBFBD>L<EFBFBD>0<>0<>A<>A<><06>G<EFBFBD> <18><07> <20> r&c<00><><00>URS:Xa<>URRS5nURRS5nURRS5nURRS5n[RRUS9nUS :XaUS :XaSUlOCUS:XaSUlO5US:Xa"US :XaSUlO!US:Xa SUlXEl O [ SSS .SS 9$UR5 [ SSS .5$[ SSS .SS 9$![R
a [ SSS .S
S 9s$f=f)uMet à jour le statut d'une demande de produit.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
request.id : int
L'ID de la demande à mettre à jour.
request.action : str
L'action à effectuer ('confirmer' ou 'refuser').
request.emetteur : str
L'émetteur de la demande ('chef' ou 'logisticien').
request.motif_refus : str
Le motif de refus (si applicable).
Returns
-------
JsonResponse
Réponse JSON indiquant le succès ou l'échec de la mise à jour.
rErf<00>action<6F>emetteurr`reFzDemande introuvablerFi<>)<01>status<75>1<>chefT<66> logisticien<65>0zAction invalidei<65>uStatut mis à jouruMéthode non autoriséei<65>) rIrEr7r r<00> DoesNotExistr rr\r`rL)r<00>
produit_idrorprYrbs r$<00> update_statutrx<00>sX<00><00>0<0F>~<7E>~<7E><16><1F><1C>\<5C>\<5C>%<25>%<25>d<EFBFBD>+<2B>
<EFBFBD><18><1C><1C>!<21>!<21>(<28>+<2B><06><1A><<3C><<3C>#<23>#<23>J<EFBFBD>/<2F><08><18><1C><1C>!<21>!<21>-<2D>0<><06> <0E><1E>&<26>&<26>*<2A>*<2A>j<EFBFBD>*<2A>9<>G<EFBFBD> <12>S<EFBFBD>=<3D><17>6<EFBFBD>!<21>+/<2F><07>(<28><19>]<5D>*<2A>26<32><07>/<2F><> <13>s<EFBFBD>]<5D><17>6<EFBFBD>!<21>+0<><07>(<28><19>]<5D>*<2A>27<32><07>/<2F>&,<2C>#<23><> <20>!<21>.?<3F>@<40><13><0E> <0E> <10> <0C> <0C><0E><1B><04>9M<39>N<>O<>O<> <17><19>&?<3F>@<40><13> <06><06><>9<18>$<24>$<24> <0E><1F>$<24>4<><12><1B> <0E> <0E> <0E>s<00>>D<00>!E<03>Ec<00><><00>[RR5RS5n[ US5nUR
R S5nURU5n[USSU05$)u<>Récupèrez et renvoyez la liste des produits paginée.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
Returns
-------
HttpResponse
La réponse HTTP contenant la page rendue avec la liste des produits.
rr+r,r-r2) r rr4rrr6r7r8r)rr9r<r=r2s r$<00>recuperer_liste_produitrz6sj<00><00><1C>O<EFBFBD>O<EFBFBD>'<27>'<27>)<29>2<>2<>5<EFBFBD>9<>M<EFBFBD><1A>=<3D>!<21>,<2C>J<EFBFBD><19>+<2B>+<2B>/<2F>/<2F>&<26>)<29>K<EFBFBD><19>"<22>"<22>;<3B>/<2F>H<EFBFBD> <11><0F>$<24> <13>X<EFBFBD><1E> <06>r&c<00><><00>URS:XaT[UR5nUR5(aUR 5 [ SS05$[ SS05$g)uCEnregistrez une nouvelle catégorie de produit.
Cette vue est appelée via une requête AJAX avec la méthode POST et
enregistre une nouvelle.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
Returns
-------
JsonResponse
Réponse JSON indiquant le succès ou l'échec de l'enregistrement.
rErGTFN)rIrrErKrLr )r<00>
categoriess r$<00>enregistrer_categorier}QsZ<00><00>&<0F>~<7E>~<7E><16><1F>,<2C>W<EFBFBD>\<5C>\<5C>:<3A>
<EFBFBD> <15> <1E> <1E> <20> <20> <16>O<EFBFBD>O<EFBFBD> <1D><1F><19>D<EFBFBD> 1<>2<> 2<><1B>Y<EFBFBD><05>.<2E>/<2F>/<2F> r&c<00><><00>[RRUS9n[RR UR
S9nUVs/sHnUR URS.PM nn[USS9$s snf)uiRécupèrez les fournisseurs associés à la catégorie d'un produit donné.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
id_produit : int
L'ID du produit dont on veut récupérer les fournisseurs.
Returns
-------
JsonResponse
Réponse JSON contenant la liste des fournisseurs associés à la
catégorie du produit.
re)r*)rf<00>nom_fournisseurFr@) r rr7rrr*rf<00>nom_entrepriser )r<00>
id_produitr:<00> fournisseur<75>fournisseur_produit<69>produit_founisseurs r$<00>#recuperer_fournisseur_par_categorier<65>ls<><00><00>$<16>o<EFBFBD>o<EFBFBD>!<21>!<21>Z<EFBFBD>!<21>0<>G<EFBFBD><1D>%<25>%<25>,<2C>,<2C>w<EFBFBD>7H<37>7H<37>,<2C>I<>K<EFBFBD>$/<2F> <06>
$/<2F> <1F>&<26>(<28>(<28>2<>A<>A<>
<EFBFBD>$/<2F> <17><06> <18>*<2A><15> 7<>7<><37>s<00> #A8c <00><00>[RRSUS9R[ S55S=(d Sn[
RRUSS9nSnUHBnUR (aURSLdUR SLdM4X4R- nMD URU-U-
nURURURURURURURUS.$) u<>Calculez le stock actuel d'un produit donné.
Parameters
----------
produit : Produit
L'instance du produit pour lequel calculer le stock.
Returns
-------
dict
Dictionnaire contenant les détails du produit et son stock actuel.
T)<02>livrerr:<00>quantite_commander<65>quantite_commander__sumr)r:r\F)rfr_<00>quantite_stock<63>conditionnement<6E>seuil_pre_rupture<72>image<67> categorie_id<69> stockActuel)rrr<00> aggregaterr rZ<00>rendu<64>quantiter<65>rfr_r<>r<>r<>r<>)r:<00>quantite_livrer<65>produit_demander_a_rendre<72>quantite_produit_sortis<69>produit_demander<65> stock_actuels r$r5r5<00>s<00><00> <12><19><19> <20> <20><04>g<EFBFBD> <20>><3E>H<>H<> <0F>$<24> %<25>
<EFBFBD>
#<23> %<25> <0A> <0A> <14> !)<29> 0<> 0<> 7<> 7<><17> $<24>!8<>!<06><1D>
 <20><1B>5<><18> <1D> &<26> &<26>+;<3B>+A<>+A<>U<EFBFBD>+J<><1F>(<28>(<28>E<EFBFBD>1<> #<23>'@<40>'@<40> @<40> #<23> 6<><1C>*<2A>*<2A>%<25>&<26>-<2D>.<2E>L<EFBFBD><16>j<EFBFBD>j<EFBFBD><1A>?<3F>?<3F>!<21>0<>0<>"<22>2<>2<>$<24>6<>6<><18><1D><1D><1F>,<2C>,<2C>#<23> <06> r&c<00><00>[US5$)u<>Rendez la page de mouvement de stock.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
Returns
-------
HttpResponse
La réponse HTTP contenant la page rendue.
z$gestion_produit/mouvement_stock.html)r)rs r$<00>mouvement_stockr<6B><00>s<00><00> <12>'<27>A<> B<>Br&c <00>f<00>/nURSnURS5up4URSnUS:Xa<>UR[RR UUSS9Vs/sH<>nUR RUR RRUR RURRURURURS.PM<> sn5 O<>US:Xa<>UR[RR UUSS 9Vs/sHenUR RUR RRUR RUR UR"S
.PMg sn5 [%US S 9$s snfs snf) u<>Générez un rapport de mouvement de stock basé sur les filtres donnés.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
request.GET["dateFiltre"] : str
La date de filtre au format "YYYY-MM".
request.GET["typeFiltre"] : str
Le type de filtre ("entree" ou "sortie").
Returns
-------
JsonResponse
Réponse JSON contenant le rapport de mouvement de stock.
<EFBFBD>
dateFiltre<EFBFBD>-<2D>
typeFiltre<EFBFBD>entreeT)<03>date_livraison__year<61>date_livraison__monthr<68>)r:r*r<>r<><00> date_commande<64>date_livraisonr<6E><00>sortie)<03>dateDemande__year<61>dateDemande__monthr\)r:r*r<><00> date_demande<64>quantite_demanderFr@)r6<00>split<69>extendrrrr:r_r*r<>r<>r<>r<>r<>r<>r rXr<>r )r<00> mes_commandes<65> date_filtre<72>annee<65>mois<69> type_filtre<72>commanderbs r$<00>rapport_mouvement_stockr<6B><00>s<><00><00>&<17>M<EFBFBD><19>+<2B>+<2B>l<EFBFBD>+<2B>K<EFBFBD><1D>#<23>#<23>C<EFBFBD>(<28>K<EFBFBD>E<EFBFBD><19>+<2B>+<2B>l<EFBFBD>+<2B>K<EFBFBD><12>h<EFBFBD><1E><15><1C><1C>&<26>-<2D>-<2D>4<>4<>%*<2A>&*<2A><1B>5<><0E>
<EFBFBD><0E><08>$<24>+<2B>+<2B>3<>3<>%<25>-<2D>-<2D>7<>7<>A<>A<>#+<2B>#3<>#3<>#C<>#C<>'<27>3<>3<>B<>B<>!)<29>!7<>!7<>"*<2A>"9<>"9<>&.<2E>&A<>&A<> <0E><0E>
<EFBFBD> <0B>"
<15><08> <20><15><1C><1C>$<24>+<2B>+<2B>2<>2<>"'<27>#'<27>(,<2C>3<><0E>
<EFBFBD><0E><07>#<23>?<3F>?<3F>2<>2<>$<24>_<EFBFBD>_<EFBFBD>6<>6<>@<40>@<40>#*<2A>?<3F>?<3F>#B<>#B<> '<27> 3<> 3<>%,<2C>%5<>%5<>  <0E><0E>
<EFBFBD> <0B> <18> <0A>E<EFBFBD> 2<>2<><32>E
<EFBFBD><EFBFBD>$
s<00>&B F)<08>,A,F.N)F)*<2A>__doc__<5F>django.shortcutsrr<00>django.core.paginatorr<00>django.db.modelsr<00>django.views.decorators.csrfr<00>django.contrib.auth.decoratorsr<00> django.httpr <00>modelsr r r rr<00>formsrrrr<00>PRODUIT_NON_A__RENDRE<52>PRODUIT_NON_RENDUr%r>rCrNrRrVrarmrxrzr}r<>r5r<>r<><00>r&r$<00><module>r<>s<><00><01>)<29>-<2D>+<2B> <20>4<>9<>$<24><02><02><02><02><1E><15><19><11> <1C>/<06>d<10>'<27>"<22>)<06>#<23>)<06>X4<>*<10>'<27>"<22> <0C><1B> <0A>#<23><1B>><10>'<27>"<22>-<2D>#<23>-<2D><10>'<27>"<22> -<2D>#<23> -<2D><10>'<27>"<22>2<>#<23>2<>*<10>'<27>"<22>!<21>#<23>!<21> <10>'<27>"<22> <0C><<06> <0A>#<23><<06>~<10>'<27>"<22><06>#<23><06>4<10>'<27>"<22> <0C><10> <0A>#<23><10>2<10>'<27>"<22>8<>#<23>8<>@/<06>b<10>'<27>"<22>C<01>#<23>C<01> <10>'<27>"<22>:3<>#<23>:3r&