From 3693ef29f9e589cf03584847b8983dc6b360e8be Mon Sep 17 00:00:00 2001 From: fatima Date: Thu, 30 Apr 2026 13:33:39 +0200 Subject: [PATCH] feature: statut creation contrat --- gestion_employe/views.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/gestion_employe/views.py b/gestion_employe/views.py index f9ef342..fa89961 100644 --- a/gestion_employe/views.py +++ b/gestion_employe/views.py @@ -1,5 +1,5 @@ import json -from datetime import timedelta, datetime +from datetime import date, timedelta, datetime from dateutil.relativedelta import relativedelta from django.utils import timezone @@ -240,14 +240,25 @@ def suppression_affectation(request): return JsonResponse({"message": "Affectation supprimée avec succès."}) def creation_contrat(request): - """Vue pour permettre à un utilisateur de créer un contrat pour un employé""" + """Créer un contrat pour un employé (avec contrôle d'existence de contrat actif)""" + try: employe = Employe.objects.get(id=request.POST.get('employe_id')) except Employe.DoesNotExist: messages.error(request, "Employé non trouvé.") return redirect('employe-index') - + contrat_actif = Contrat.objects.filter( + employe=employe, + date_fin__gte=date.today() + ).exists() + if request.method == "POST": + if contrat_actif: + messages.error( + request, + "Impossible de créer un contrat : cet employé a déjà un contrat actif." + ) + return redirect('gestion_employe:index') form = ContratForm(request.POST, request.FILES) if form.is_valid(): contrat = form.save(commit=False) @@ -256,9 +267,13 @@ def creation_contrat(request): messages.success(request, "Contrat créé avec succès.") return redirect('gestion_employe:index') messages.error(request, "Formulaire non valide") + else: form = ContratForm(initial={'employe': employe}) - return render(request, 'gestion_employe/index.html', {'contrat_form': form}) + + return render(request, 'gestion_employe/index.html', { + 'contrat_form': form + }) @login_required def enregistrer_detail_employe(request):