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

302 lines
16 KiB
Plaintext
Raw Normal View History

2025-12-19 09:43:33 +00:00
o
24<32>j<EFBFBD>V<00>@s`dZddlmZmZddlmZddlmZmZddl m
Z
ddl m Z ddl mZdd lmZmZmZmZmZdd
lmZmZmZmZ d3d d <0A>Ze dd<0F><00>Zdd<11>Ze dd<13><00>Ze dd<15><00>Ze dd<17><00>Ze dd<19><00>Z e dd<1B><00>Z!e dd<1D><00>Z"e dd<1F><00>Z#e d d!<21><00>Z$e d"d#<23><00>Z%e d$d%<25><00>Z&d&d'<27>Z'd(d)<29>Z(e d*d+<2B><00>Z)d,d-<2D>Z*e d.d/<2F><00>Z+e d0d1<64><00>Z,d2S)4z#Views pour la gestion des produits.<2E>)<02>render<65>redirect)<01> Paginator)<02>Sum<75>Q)<01>Profile)<01>login_required)<01> JsonResponse<73>)<05> Categorie<69>Produit<69>Demander<65> Fournisseur<75> Commander)<04>EnregistrementProduit<69>EnregistrementCategorie<69>CommanderProduit<69>DemanderProduitFcCsntjj|jd<01>}tjj||d<02>}d}|jjjr"tjj||jjjd<04>}|r/|r-||B<00> d<05>S|S|r5||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.
)<01>user)<02>valider_par_chefrN)r<00>user__departement<6E>-id)
r<00>objects<74>getrr <00>filter<65>profile<6C>chef_departement<6E> departement<6E>order_by)<06>request<73>option_validation_chef<65> ordre_inverser<00> mes_demandes<65>demandes_departement<6E>r$<00>?/home/sorel/systeme_gestion_cerfig/sgl/gestion_produit/views.py<70>gestion_affichage_demandes*<06>
<06><0E><02><02><08><02><02>r&c Cs|j<00>dd<02>}|j<00>dd<02>}tj<03><04><00>d<04>}|dkr'|dkr'tj<03><04><00>d<05>}n;|dkr<|dkr<tj<03>t|d<06><01><01>d<05>}n&|dkrQ|dkrQtj<03>t|d<07><01><01>d<05>}ntj<03>t|d<07>t|d<06>@<00><01>d<05>}dd <09>|D<00>}t |d
<EFBFBD>}|j<00>d <0B>}|<06>
|<07>}t |d t t ttt|d d<0E>||d<0F><07>S)u<>Gérer le rendu de la page d'accueil de la gestion des produits.
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.
<20>search<63><00>filterCategorie<69> categorier<00><01>libelle__icontains<6E>r*cS<00>g|]}t|<01><01>qSr$<00><01>calcul_stock_produit<69><02>.0<EFBFBD>produitr$r$r%<00>
<listcomp>p<00><06>zindex.<locals>.<listcomp><3E><00>page<67>gestion_produit/index.htmlN<6C>r <00><07>!formulaireEnregistrementCategorie<69>formulaireEnregistrementProduit<69>formulaireCommanderProduit<69>formulaireDemanderProduitr"<00>page_obj<62>liste_categorie)<11>GETrr r<00>allrr rrr<00>get_pagerrrrrr&) r<00> product_name<6D>categorie_namer@<00> liste_produit<69>liste_produit_finale<6C>
pagination<EFBFBD> page_numberr?r$r$r%<00>indexNsT<02><04><02><04><02><02><06>
2025-12-19 09:43:33 +00:00
 
<04><04><04>rJcCs 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.
cSsg|]}d|ji<01>qSr-r-<00>r2r*r$r$r%r4<00>s<08><06>z$liste_categories.<locals>.<listcomp>F<><01>safe)r rrBr )<02>_request<73>mes_categoriesr$r$r%<00>liste_categories<65>s<06> rPcCsL|jdkr"t|j|j<03>}|<01><04>r|<01><05>tddd<04><02>Stddd<04><02>Std<07>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.
<20>POSTTu Produit enregistré avec succès<C3A8><02>success<73>messageFu&L'enregistrement du produit a échoué<75>gestion_produit:index)<08>methodrrQ<00>FILES<45>is_valid<69>saver r<00>r<00>formr$r$r%<00>enregistrer_produit<69>s
<04><04><04>r\c Csnttjj|d<01><01>}tj<02><05>}|d|d|d|d|d|d|dr)|djnd d
2026-01-21 16:33:01 +00:00
d <0B>|D<00>d <0C>}t|<04>S) uWRenvoyez les détails d'un produit spécifique au format JSON.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
id_produit : int
L'ID du produit dont on veut récupérer les détails.
Returns
-------
JsonResponse
Réponse JSON contenant les détails du produit.
<20><01>idr^<00>libelle<6C> categorie_id<69>conditionnement<6E>seuil_pre_rupture<72> stockActuel<65>imager(cS<00>g|] }|j|jd<00><02>qS)<01>r^r*rfrKr$r$r%r4<00>s <0C><06>z"detail_produit.<locals>.<listcomp>)<08>detailId<49> detailLibelle<6C>detailCategorie<69>detailConditionnement<6E>detailSeuilPreRupture<72>detailQuantiteStock<63> detailImage<67>listeCategorie)r0r rrr rB<00>urlr )rN<00>
2026-01-21 16:33:01 +00:00
id_produit<EFBFBD>detail_produit<69>
categoriesr3r$r$r%rq<00>s
<04><06>rqcCs<>|jdkrG|j<01>d<02>}tjj|d<03>}|j<01>d<04>|_|j<01>d<05>|_|j<01>d<06>|_|j<01>d<07>}tjj|d<03>|_ |j<01>d<08>|_
2026-01-21 16:33:01 +00:00
|<02> <0B>t d d
d <0B><02>St d <0C>S) u(Enregistrez les modifications apportées au 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.
rQrpr]r_rarbr*<00>quantite_stockTuProduit modifié avec succèsrRrU)rVrQrr rr_rarbr r*rsrYr r)rrp<00>produit_instancer`r$r$r%<00> enregistrer_modification_produit<69>s
  <04>rucCs,|jdkrt|j<02>}|<01><03>r|<01><04>td<02>S)z-Enregistrez une nouvelle commande de produit.rQrU)rVrrQrXrYrrZr$r$r%<00>enregistrer_commandes
2025-12-19 09:43:33 +00:00

rvcCsR|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.rQF)<01>commitTrU)
rVrrQrXrYrrrrr)rr[<00>
ma_demander$r$r%<00>enregistrer_demandes
2025-12-19 09:43:33 +00:00

 

rycCs(t|ddd<02>}dd<04>|D<00>}t|dd<06>S)z;Retournez la liste des demandes de produits au format JSON.T)r r!c Ss4g|]}|j|jj|j|j|j|j|j|jd<00><08>qS))<08> dateDemander3<00>motifs<66>a_rendre<72>dateDeMiseADispoSouhaiter<00>valider_par_logisticien<65> motifs_refus)<08>date_de_mise_a_dispo_souhaiter3r_r{r|rr~<00> motif_refus<75>r2<00>demander$r$r%r4"s <04><04><06>z"liste_demandes.<locals>.<listcomp>FrL)r&r )r<00>liste_demandes<65> les_demandesr$r$r%r<>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.r])<06> detailNomri<00> detailmotif<69>detailDeMiseADispo<70> detailARendrer) r rrr3r_r*r{r<>r|rrrr )r<00>
id_demande<EFBFBD>detail_demander<65>r$r$r%r<>2s<06> r<>cCsx|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
2026-01-21 11:03:11 +00:00
<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.
rQr^<00>action<6F>emetteurr<72>FuDonnées manquantesrRi<>)<01>statusr]zDemande introuvablei<65><00><00>1<>chefT<66> logisticien<65>0uDonnées invalidesuStatut mis à jouruMéthode non autoriséei<65>) rVrQrrBr r r<00> DoesNotExistrr~r<>rY)r<00>
produit_idr<EFBFBD>r<>r{r<>r$r$r%<00> update_statutBsR
2026-01-21 11:03:11 +00:00
    
<06>
<EFBFBD><02><02><02><02><02><06>
<06>r<EFBFBD>cCs@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.
rr6r7r8r?) r rrBrrrArrCr)rrFrHrIr?r$r$r%<00>recuperer_liste_produit<69>s
2025-12-19 09:43:33 +00:00
 
<04>r<EFBFBD>cCs@|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.
rQrSTFN)rVrrQrXrYr )rrrr$r$r%<00>enregistrer_categorie<69>s
2026-01-21 11:03:11 +00:00

  r<>cs,tjj|d<01>}<02>fdd<03>|D<00>}t|dd<05>S)uwFiltrez les produits par catégorie et renvoyez-les au format JSON.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
id_categorie : int
L'ID de la catégorie pour laquelle filtrer les produits.
Returns
-------
JsonResponse
Réponse JSON contenant la liste des produits filtrés par catégorie.
)r`c sHg|] }|j|j|j|j|j|jr|jjnd<00>jjj dd<02><01>
<EFBFBD>d<03><07>qS)r(<00>
Logistique)<01>name)r^r_rarsrbrd<00>appartient_logistique) r^r_rarsrbrdror<00>groupsr<00>existsr1<00>rr$r%r4<00>s <04><04><06>z1filtrer_produit_par_categorie.<locals>.<listcomp>FrL)r rrr )r<00> id_categorie<69>produits<74>produits_filtresr$r<>r%<00>filtrer_produit_par_categorie<69>s

 <06> r<>c Cs<>|j<00>dd<02>}|dkrtj<03><04><00>d<03>}n
tjj|d<04><01>d<03>}tj<03><04><00>d<05>}dd<07>|D<00>}t|d<08>}|j<00>d <09>}|<05> |<06>}t
|d
t t t tt|d d <0C>||d <0A><07>S)ubFiltrez les produits par nom et renvoyez-les au format JSON.
Parameters
----------
request : HttpRequest
La requête HTTP entrante.
nom_produit : str
Le nom du produit pour lequel filtrer les produits.
Returns
-------
JsonResponse
Réponse JSON contenant la liste des produits filtrés par nom.
<20>nomr(rr+r*cSr.r$r/r1r$r$r%r4<00>r5z*filtre_par_nom_produit.<locals>.<listcomp>r
r7r8Nr9r:)rArr rrBrrr rrCrrrrrr&)r<00> nom_produitrFr@rGrHrIr?r$r$r%<00>filtre_par_nom_produit<69>s2<06>
 
<04><04><04>r<EFBFBD>cCs8tjj|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.
r]r-cSre))r^<00>nom_fournisseur)r^<00>nom_entreprise)r2<00>fournisseur_produitr$r$r%r4.s <04><04><06>z7recuperer_fournisseur_par_categorie.<locals>.<listcomp>FrL)r rrrrr*r )rNrpr3<00> fournisseur<75>produit_founisseurr$r$r%<00>#recuperer_fournisseur_par_categories <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.
T)<02>livrerr3<00>quantite_commander<65>quantite_commander__sumr)r3r~F)r^r_rsrarbrdr`rc)rrr<00> aggregaterr r|<00>rendu<64>quantitersr^r_rarbrdr`)r3<00>quantite_livrer<65>produit_demander_a_rendre<72>quantite_produit_sortis<69>produit_demander<65> stock_actuelr$r$r%r08sB<02><04><02><06><02>
2025-12-19 09:43:33 +00:00


<02><02><04><06>r0cCs
2026-01-21 11:03:11 +00:00
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.
z$gestion_produit/mouvement_stock.html)rr<>r$r$r%<00>mouvement_stockhs
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>
2026-08-31 09:47:23 +00:00
dateFiltre<EFBFBD>-<2D>
2025-12-19 09:43:33 +00:00
typeFiltre<EFBFBD>entreec
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) r3r_r*rar<>r<><00> date_commande<64>date_livraisonr<6E>)r2<00>commander$r$r%r4<00>s
<06><04><06>z+rapport_mouvement_stock.<locals>.<listcomp>T)<03>date_livraison__year<61>date_livraison__monthr<68><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)r3r_r*rar<>r<>r<>r$r$r%r4<00>s <06><04><06>)<03>#date_de_mise_a_dispo_souhaite__year<61>$date_de_mise_a_dispo_souhaite__monthr~FrL)rA<00>split<69>extendrrrr r )r<00> mes_commandes<65> date_filtre<72>annee<65>mois<69> type_filtrer$r$r%<00>rapport_mouvement_stockys*
2025-12-19 09:43:33 +00:00



<04>
<EFBFBD>
 <04><08> r<>N)F)-<2D>__doc__<5F>django.shortcutsrr<00>django.core.paginatorr<00>django.db.modelsrr<00>authentification.modelsr<00>django.contrib.auth.decoratorsr<00> django.httpr <00>modelsr r r rr<00>formsrrrrr&rJrPr\rqrurvryr<>r<>r<>r<>r<>r<>r<>r<>r0r<>r<>r$r$r$r%<00><module>sV    
<EFBFBD>3
;

$





A

 @
0