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

233 lines
12 KiB
Plaintext
Raw Normal View History

2025-12-19 09:43:33 +00:00
o
2026-01-21 11:03:11 +00:00
<00>1fi8><00>@spdZddlmZmZddlmZddlmZddlm Z ddl
m Z ddl m Z mZmZmZmZdd lmZmZmZmZ
d,d d <0C>Ze d d<0E>dd<10><00>Zdd<12>Ze d d<0E>dd<14><00>Ze d d<0E>dd<16><00>Ze d d<0E>dd<18><00>Ze d d<0E>dd<1A><00>Ze d d<0E>dd<1C><00>Ze d d<0E>dd<1E><00>Ze d d<0E>dd <20><00>Z e d d<0E>d!d"<22><00>Z!e d d<0E>d#d$<24><00>Z"d%d&<26>Z#e d d<0E>d'd(<28><00>Z$e d d<0E>d)d*<2A><00>Z%d+S)-z#Views pour la gestion des produits.<2E>)<02>render<65>redirect)<01> Paginator)<01>Sum)<01>login_required)<01> JsonResponse<73>)<05> Categorie<69>Produit<69>Demander<65> Fournisseur<75> Commander)<04>EnregistrementProduit<69>EnregistrementCategorie<69>CommanderProduit<69>DemanderProduitFcCsbtjj||jjd<01>}d}|jjjrtjj||jjjd<03>}|r)|r'||B<00>d<04>S|S|r/||BS|S)u<>Affichez les demandes de produit selon le profil de l'utilisateur.
2025-12-19 09:43:33 +00:00
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.
2026-01-21 11:03:11 +00:00
)<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_departement<6E>r!<00>3/home/sorel/logistique/SGL/gestion_produit/views.py<70>gestion_affichage_demandes(<06>
<06><0E><02><02><08><02><02>r#<00>login)<01> login_urlc Csrtj<01><02><00>d<01>}tj<01><02><00>d<02>}dd<04>|D<00>}t|d<05>}|j<06>d<06>}|<04>|<05>}t |dt
2025-12-19 09:43:33 +00:00
t t t t|dd <09>||d
<EFBFBD><07>S) 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.
2026-01-21 11:03:11 +00:00
r<00> categoriecSsg|]}t|<01><01>qSr!)<01>calcul_stock_produit)<02>.0<EFBFBD>produitr!r!r"<00>
<listcomp>_s<06>zindex.<locals>.<listcomp><3E><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 r<00>GET<45>get<65>get_pagerrrrrr#)r<00> liste_produitr3<00>liste_produit_finale<6C>
pagination<EFBFBD> page_numberr2r!r!r"<00>indexMs,<06>
2025-12-19 09:43:33 +00:00
 
2026-01-21 11:03:11 +00:00
<04><04><04>r<cCs dd<02>tj<01><02>D<00>}t|dd<04>S)uRecuperez et renvoyez la liste des catégories de produit au format JSON.
2025-12-19 09:43:33 +00:00
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
Returns
-------
JsonResponse
Réponse JSON contenant la liste des catégories de produits.
2026-01-21 11:03:11 +00:00
cSsg|]}d|ji<01>qS<00>r&r=)r(r&r!r!r"r*<00>s<08><06>z$liste_categories.<locals>.<listcomp>F<><01>safe)r rr4r)<02>_request<73>mes_categoriesr!r!r"<00>liste_categoriesys<06> rBcCsL|jdkr"t|j|j<03>}|<01><04>r|<01><05>tddd<04><02>Stddd<04><02>Stt<08>S)uEnregistrez un nouveau produit à partir des données POST.
2025-12-19 09:43:33 +00:00
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
Returns
-------
JsonResponse
Réponse JSON indiquant le succès ou l'échec de l'enregistrement.
2026-01-21 11:03:11 +00:00
<20>POSTTu Produit enregistré avec succès<C3A8><02>success<73>messageFu&L'enregistrement du produit a échoué) <09>methodrrC<00>FILES<45>is_valid<69>saverrr<<00>r<00>formr!r!r"<00>enregistrer_produit<69>s
<04><04><04>rMcCs,|jdkrt|j<02>}|<01><03>r|<01><04>td<02>S)z-Enregistrez une nouvelle commande de produit.rC<00>gestion_produit:index)rGrrCrIrJrrKr!r!r"<00>enregistrer_commande<64>s
2025-12-19 09:43:33 +00:00

2026-01-21 11:03:11 +00:00
rOcCsR|jdkr%t|j<02>}|<01><03>r%|jdd<03>}|jj|_|jjjr!d|_|<02><04>t d<05>S)z,Enregistrez une nouvelle demande de produit.rCF)<01>commitTrN)
rGrrCrIrJrrrrr)rrL<00>
ma_demander!r!r"<00>enregistrer_demande<64>s
2025-12-19 09:43:33 +00:00

 

2026-01-21 11:03:11 +00:00
rRcCs(t|ddd<02>}dd<04>|D<00>}t|dd<06>S)z;Retournez la liste des demandes de produits au format JSON.T)rrc Ss4g|]}|j|jj|j|j|j|j|j|jd<00><08>qS))<08> dateDemander)<00>motifs<66>a_rendre<72>dateDeMiseADispoSouhaiter<00>valider_par_logisticien<65> motifs_refus)<08>date_de_mise_a_dispo_souhaiter)<00>libellerTrUrrW<00> motif_refus<75>r(<00>demander!r!r"r*<00>s <04><04><06>z"liste_demandes.<locals>.<listcomp>Fr>)r#r)r<00>liste_demandes<65> les_demandesr!r!r"r^<00>s<06> <06> r^cCs>tjj|d<01>}|jj|jjj|j|j|j|j j
j d<02>}t |<03>S)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 rr6r)rZr&rTrYrUrrrr)r<00>
id_demande<EFBFBD>detail_demander]r!r!r"rh<00>s<06> rhcCsx|jdkr<>|j<01>d<02>}|j<01>d<03>}|j<01>d<04>}|j<01>d<05>}t|||g<03>s-tddd<08>d d
<EFBFBD>Sz tjj|d <0B>}WntjyItdd d<08>d d
<EFBFBD>YSw||f r`dkr`\dkr`dkrad|_nH rtdkrt\dkrtdkrud|_ n4 r<>dkr<>\dkr<>dkr<>d|_n  r<>dkr<>\dkr<>dkr<>d|_ ||_
n  tddd<08>d d
<EFBFBD>S|<05> <0B>tddd<08><02>Stddd<08>dd
<EFBFBD>S)uiMet à jour le statut d'une demande de produit.
2025-12-19 09:43:33 +00:00
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
request.id : int
L'ID de la demande à mettre à jour.
2026-01-21 11:03:11 +00:00
request.action : int
L'action effectuée
1: Pour confirmer
0: Pour refuser
2025-12-19 09:43:33 +00:00
request.emetteur : str
L'émetteur de la demande ('chef' ou 'logisticien').
request.motif_refus : str
2026-01-21 11:03:11 +00:00
Le motif de refus.
2025-12-19 09:43:33 +00:00
Returns
-------
JsonResponse
Réponse JSON indiquant le succès ou l'échec de la mise à jour.
2026-01-21 11:03:11 +00:00
rCra<00>action<6F>emetteurr[FuDonnées manquantesrDi<>)<01>statusr`zDemande introuvablei<65><00><00>1<>chefT<66> logisticien<65>0uDonnées invalidesuStatut mis à jouruMéthode non autoriséei<65>) rGrCr6r4rr r<00> DoesNotExistrrWr[rJ)r<00>
produit_idrirjrTr]r!r!r"<00> update_statut<75>sR
    
<06>
<EFBFBD><02><02><02><02><02><06>
<06>rscCs@tj<01><02><00>d<01>}t|d<02>}|j<05>d<03>}|<02>|<03>}t|dd|i<01>S)uRécupèrez et renvoyez la liste des produits paginés.
2025-12-19 09:43:33 +00:00
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
Returns
-------
HttpResponse
La réponse HTTP contenant la page rendue avec la liste des produits.
2026-01-21 11:03:11 +00:00
rr+r,r-r2) r
rr4rrr5r6r7r)rr8r:r;r2r!r!r"<00>recuperer_liste_produit-s
2025-12-19 09:43:33 +00:00
 
2026-01-21 11:03:11 +00:00
<04>rtcCs@|jdkrt|j<02>}|<01><03>r|<01><04>tddi<01>Stddi<01>SdS)uoEnregistrez une nouvelle catégorie de produit.
2025-12-19 09:43:33 +00:00
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.
2026-01-21 11:03:11 +00:00
rCrETFN)rGrrCrIrJr)r<00>
categoriesr!r!r"<00>enregistrer_categorieHs

  rvcCs8tjj|d<01>}tjj|jd<02>}dd<04>|D<00>}t|dd<06>S)u<>Récupèrez les fournisseurs associés à la catégorie d'un produit donné.
2025-12-19 09:43:33 +00:00
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.
2026-01-21 11:03:11 +00:00
r`r=cSsg|] }|j|jd<00><02>qS))ra<00>nom_fournisseur)ra<00>nom_entreprise)r(<00>fournisseur_produitr!r!r"r*ws <04><04><06>z7recuperer_fournisseur_par_categorie.<locals>.<listcomp>Fr>)r
rr6r rr&r)r@<00>
id_produitr)<00> fournisseur<75>produit_founisseurr!r!r"<00>#recuperer_fournisseur_par_categoriebs <06> r}c Cs<>tjjd|d<02><02>td<03><01>dpd}tjj|dd<06>}d}|D]}|jr'|jdus,|jdur1||j7}q|j ||}|j
2025-12-19 09:43:33 +00:00
|j |j |j |j |j|j|d<08>S) uCalculez 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.
2026-01-21 11:03:11 +00:00
T)<02>livrerr)<00>quantite_commander<65>quantite_commander__sumr)r)rWF)rarZ<00>quantite_stock<63>conditionnement<6E>seuil_pre_rupture<72>image<67> categorie_id<69> stockActuel)r rr<00> aggregaterr rU<00>rendu<64>quantiter<65>rarZr<>r<>r<>r<>)r)<00>quantite_livrer<65>produit_demander_a_rendre<72>quantite_produit_sortis<69>produit_demander<65> stock_actuelr!r!r"r'<00>sB<02><04><02><06><02>
2025-12-19 09:43:33 +00:00


2026-01-21 11:03:11 +00:00
<02><02><04><06>r'cCs
t|d<01>S)u<>Retournez la page de mouvement de stock.
2025-12-19 09:43:33 +00:00
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
Returns
-------
HttpResponse
La réponse HTTP contenant la page rendue.
2026-01-21 11:03:11 +00:00
z$gestion_produit/mouvement_stock.html)r)rr!r!r"<00>mouvement_stock<63>s
r<>cCs<>g}|jd}|<02>d<02>\}}|jd}|dkr)|<01>dd<06>tjj||dd<08>D<00><01>n|d kr>|<01>d
2025-12-19 09:43:33 +00:00
d<06>tjj||dd <0B>D<00><01>t|d d <0A>S)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.
<20>
dateFiltre<EFBFBD>-<2D>
typeFiltre<EFBFBD>entreec
2026-01-21 11:03:11 +00:00
Ss8g|]}|jj|jjj|jj|jj|j|j|jd<00><07>qS))<07>produit_entree<65>categorie_entree<65>conditionnement_entree<65>fournisseur_entree<65>date_commande_entree<65>date_livraison_entree<65>quantite_commander_entree) r)rZr&r<>r{rx<00> date_commande<64>date_livraisonr)r(<00>commander!r!r"r*<00>s
<06><04><06>z+rapport_mouvement_stock.<locals>.<listcomp>T)<03>date_livraison__year<61>date_livraison__monthr~<00>sortiecSs.g|]}|jj|jjj|jj|j|jd<00><05>qS))<05>produit_sortie<69>categorie_sortie<69>conditionnement_sortie<69>date_demande_sortie<69>quantite_demander_sortie)r)rZr&r<>rYr<>r\r!r!r"r*<00>s <06><04><06>)<03>#date_de_mise_a_dispo_souhaite__year<61>$date_de_mise_a_dispo_souhaite__monthrWFr>)r5<00>split<69>extendr rrr r)r<00> mes_commandes<65> date_filtre<72>annee<65>mois<69> type_filtrer!r!r"<00>rapport_mouvement_stock<63>s*
2025-12-19 09:43:33 +00:00



<04>
<EFBFBD>
2026-01-21 11:03:11 +00:00
 <04><08> r<>N)F)&<26>__doc__<5F>django.shortcutsrr<00>django.core.paginatorr<00>django.db.modelsr<00>django.contrib.auth.decoratorsr<00> django.httpr<00>modelsr r
r r r <00>formsrrrrr#r<rBrMrOrRr^rhrsrtrvr}r'r<>r<>r!r!r!r"<00><module>sH    
2025-12-19 09:43:33 +00:00
2026-01-21 11:03:11 +00:00
<EFBFBD>2
+



2025-12-19 09:43:33 +00:00

2026-01-21 11:03:11 +00:00

A


0
2025-12-19 09:43:33 +00:00