From 75baafef65ae5c106a63ed4ff3a708cbb9f3da88 Mon Sep 17 00:00:00 2001 From: Horilla Date: Tue, 19 Mar 2024 14:05:14 +0530 Subject: [PATCH] [UPDT] EMPLOYEE: Validations for bonus point redeem --- employee/forms.py | 12 ++++++++++++ .../templates/tabs/forms/redeem_points_form.html | 11 ++++++----- employee/views.py | 2 ++ 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/employee/forms.py b/employee/forms.py index 6f542d954..148c3e710 100644 --- a/employee/forms.py +++ b/employee/forms.py @@ -593,6 +593,18 @@ class BonusPointRedeemForm(ModelForm): model = BonusPoint fields = ["points"] + def clean(self): + cleaned_data = super().clean() + available_points = BonusPoint.objects.filter( + employee_id=self.instance.employee_id + ).first() + if available_points.points < cleaned_data["points"]: + raise forms.ValidationError({"points": "Not enough bonus points to redeem"}) + if cleaned_data["points"] <= 0: + raise forms.ValidationError( + {"points": "Points must be greater than zero to redeem."} + ) + class DisciplinaryActionForm(ModelForm): class Meta: diff --git a/employee/templates/tabs/forms/redeem_points_form.html b/employee/templates/tabs/forms/redeem_points_form.html index 2bf849aa7..3e11f0552 100644 --- a/employee/templates/tabs/forms/redeem_points_form.html +++ b/employee/templates/tabs/forms/redeem_points_form.html @@ -10,24 +10,25 @@ >
{% csrf_token %} -
+
- {{form.points}} {{form.points.errors}} + {{form.points}}
+ {{form.points.errors}}
diff --git a/employee/views.py b/employee/views.py index 69604586c..ec3a0f0fd 100755 --- a/employee/views.py +++ b/employee/views.py @@ -3265,6 +3265,7 @@ def redeem_points(request, emp_id): """ user = Employee.objects.get(id=emp_id) form = BonusPointRedeemForm() + form.instance.employee_id =user amount_for_bonus_point = ( EncashmentGeneralSettings.objects.first().bonus_amount if EncashmentGeneralSettings.objects.first() @@ -3272,6 +3273,7 @@ def redeem_points(request, emp_id): ) if request.method == "POST": form = BonusPointRedeemForm(request.POST) + form.instance.employee_id =user if form.is_valid(): form.save(commit=False) points = form.cleaned_data["points"]