Mon commit initial
This commit is contained in:
195
gestion_fournisseur/views.py
Normal file
195
gestion_fournisseur/views.py
Normal file
@@ -0,0 +1,195 @@
|
||||
"""Vuews pour la gestion des fournisseurs."""
|
||||
|
||||
from django.shortcuts import render, redirect
|
||||
from gestion_produit.models import Fournisseur, Categorie, Commander
|
||||
from django.http import JsonResponse
|
||||
from django.contrib.auth.decorators import login_required
|
||||
|
||||
from .forms import FournisseurForm
|
||||
|
||||
|
||||
@login_required(login_url="login")
|
||||
def index(request):
|
||||
"""Gérez la vue index de la gestion des fournisseurs.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
request : HttpRequest
|
||||
La requête HTTP entrante.
|
||||
|
||||
Returns
|
||||
-------
|
||||
HttpResponse
|
||||
La réponse HTTP avec le formulaire de fournisseur.
|
||||
|
||||
"""
|
||||
if request.method == "POST":
|
||||
form = FournisseurForm(request.POST, request.FILES)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
|
||||
form = FournisseurForm()
|
||||
return render(
|
||||
request,
|
||||
"gestion_fournisseur/index.html",
|
||||
{"form": form, "listeCategorie": Categorie.objects.all()},
|
||||
)
|
||||
|
||||
|
||||
@login_required(login_url="login")
|
||||
def liste_fournisseurs(request): # noqa: ARG001
|
||||
"""Renvoyez la liste des fournisseurs au format JSON.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
request : HttpRequest
|
||||
La requête HTTP entrante.
|
||||
|
||||
Returns
|
||||
-------
|
||||
JsonResponse
|
||||
La réponse JSON contenant la liste des fournisseurs.
|
||||
|
||||
"""
|
||||
fournisseurs = Fournisseur.objects.all().order_by("-id")
|
||||
data = [
|
||||
{
|
||||
"id": f.id,
|
||||
"nom_entreprise": f.nom_entreprise,
|
||||
"representant": f.nom_prenom_representant,
|
||||
"fonction": f.fonction,
|
||||
"telephone": f.telephone,
|
||||
"email": f.email,
|
||||
"note": f.note,
|
||||
}
|
||||
for f in fournisseurs
|
||||
]
|
||||
|
||||
return JsonResponse(data, safe=False)
|
||||
|
||||
|
||||
@login_required(login_url="login")
|
||||
def liste_fournisseur_categorie(request):
|
||||
"""Renvoyez la liste des fournisseurs par catégorie au format JSON.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
request : HttpRequest
|
||||
La requête HTTP entrante.
|
||||
|
||||
Returns
|
||||
-------
|
||||
JsonResponse
|
||||
La réponse JSON contenant la liste des fournisseurs filtrés par
|
||||
catégorie.
|
||||
|
||||
"""
|
||||
categorie = Categorie.objects.get(id=request.GET["c"])
|
||||
fournisseur_categorie = Fournisseur.objects.filter(categorie=categorie)
|
||||
|
||||
data = [
|
||||
{
|
||||
"id": f.id,
|
||||
"nom_entreprise": f.nom_entreprise,
|
||||
"representant": f.nom_prenom_representant,
|
||||
"fonction": f.fonction,
|
||||
"telephone": f.telephone,
|
||||
"email": f.email,
|
||||
"note": f.note,
|
||||
}
|
||||
for f in fournisseur_categorie
|
||||
]
|
||||
|
||||
return JsonResponse(data, safe=False)
|
||||
|
||||
|
||||
@login_required(login_url="login")
|
||||
def details_fournisseur(request, id_fournisseur):
|
||||
"""Affichez les détails d'un fournisseur spécifique.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
request : HttpRequest
|
||||
La requête HTTP entrante.
|
||||
id_fournisseur : int
|
||||
L'identifiant du fournisseur.
|
||||
|
||||
Returns
|
||||
-------
|
||||
HttpResponse
|
||||
La réponse HTTP avec les détails du fournisseur.
|
||||
|
||||
"""
|
||||
fournisseur = Fournisseur.objects.get(id=id_fournisseur)
|
||||
fournisseur_form = FournisseurForm(instance=fournisseur)
|
||||
return render(
|
||||
request,
|
||||
"gestion_fournisseur/details_fournisseur.html",
|
||||
{
|
||||
"fournisseur": fournisseur,
|
||||
"fournisseurForm": fournisseur_form,
|
||||
"id_fournisseur": id_fournisseur,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
def mise_a_jour_fournisseur(request, id_fournisseur):
|
||||
"""Mettez à jour les informations d'un fournisseur spécifique.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
request : HttpRequest
|
||||
La requête HTTP entrante.
|
||||
id_fournisseur : int
|
||||
L'identifiant du fournisseur.
|
||||
|
||||
Returns
|
||||
-------
|
||||
HttpResponse
|
||||
La réponse HTTP redirigeant vers les détails du fournisseur.
|
||||
|
||||
"""
|
||||
fournisseur = Fournisseur.objects.get(id=id_fournisseur)
|
||||
if request.method == "POST":
|
||||
form = FournisseurForm(
|
||||
request.POST,
|
||||
request.FILES,
|
||||
instance=fournisseur
|
||||
)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
return redirect(
|
||||
"gestion_fournisseur:details_fournisseur",
|
||||
id_fournisseur=id_fournisseur
|
||||
)
|
||||
|
||||
|
||||
def liste_livraison_fournisseur(request, id_fournisseur): # noqa: ARG001
|
||||
"""Renvoyez la liste des livraisons d'un fournisseur au format JSON.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
request : HttpRequest
|
||||
La requête HTTP entrante.
|
||||
id_fournisseur : int
|
||||
L'identifiant du fournisseur.
|
||||
|
||||
Returns
|
||||
-------
|
||||
JsonResponse
|
||||
La réponse JSON contenant la liste des livraisons du fournisseur.
|
||||
|
||||
"""
|
||||
commande_fournisseur = [
|
||||
{
|
||||
"date": c.date_livraison,
|
||||
"produit": c.produit.libelle,
|
||||
"prix_achat": c.prix_achat,
|
||||
"quantite": c.quantite_commander,
|
||||
"montant_total": c.quantite_commander * c.prix_achat,
|
||||
"date_livraison": c.date_livraison,
|
||||
"statut": c.livrer,
|
||||
}
|
||||
for c in Commander.objects.filter(fournisseur__id=id_fournisseur)
|
||||
]
|
||||
return JsonResponse(commande_fournisseur, safe=False)
|
||||
Reference in New Issue
Block a user