From 1229cec3b824f0a8def7dcb6b855d5b419e2f3ce Mon Sep 17 00:00:00 2001 From: Horilla Date: Thu, 26 Dec 2024 17:00:31 +0530 Subject: [PATCH] [ADD] PAYROLL: Added currency symbol for multiple company cases --- payroll/models/tax_models.py | 13 +++---------- .../payroll/settings/payroll_settings.html | 14 ++++++++++++++ payroll/views/views.py | 19 +++++++++++++++++-- 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/payroll/models/tax_models.py b/payroll/models/tax_models.py index 034de1aa7..d423ce182 100644 --- a/payroll/models/tax_models.py +++ b/payroll/models/tax_models.py @@ -11,6 +11,7 @@ from django.db import models from django.utils.text import format_lazy from django.utils.translation import gettext_lazy as _ +from base.horilla_company_manager import HorillaCompanyManager from base.models import Company from horilla.models import HorillaModel from payroll.models.models import FilingStatus @@ -31,20 +32,12 @@ class PayrollSettings(HorillaModel): max_length=15, null=True, choices=choices, default="postfix" ) - company_id = models.ForeignKey( - Company, null=True, editable=False, on_delete=models.PROTECT - ) - objects = models.Manager() + company_id = models.ForeignKey(Company, null=True, on_delete=models.PROTECT) + objects = HorillaCompanyManager("company_id") def __str__(self): return f"Payroll Settings {self.currency_symbol}" - def save(self, *args, **kwargs): - if 1 < PayrollSettings.objects.count(): - raise ValidationError("You cannot add more conditions.") - - return super().save(*args, **kwargs) - class TaxBracket(HorillaModel): """ diff --git a/payroll/templates/payroll/settings/payroll_settings.html b/payroll/templates/payroll/settings/payroll_settings.html index 8a3d1a3df..ae0e9a776 100644 --- a/payroll/templates/payroll/settings/payroll_settings.html +++ b/payroll/templates/payroll/settings/payroll_settings.html @@ -44,6 +44,20 @@ {{ currency_form.position }} +
+
+
+ +
+ +
+
{% if perms.payroll.change_payrollsettings %}
diff --git a/payroll/views/views.py b/payroll/views/views.py index ee6f9c0fc..4d762641a 100644 --- a/payroll/views/views.py +++ b/payroll/views/views.py @@ -423,6 +423,13 @@ def settings(request): """ instance = PayrollSettings.objects.first() currency_form = PayrollSettingsForm(instance=instance) + selected_company_id = request.session.get("selected_company") + + if selected_company_id == "all" or not selected_company_id: + companies = Company.objects.all() + else: + companies = Company.objects.filter(id=selected_company_id) + if request.method == "POST": currency_form = PayrollSettingsForm(request.POST, instance=instance) @@ -430,8 +437,16 @@ def settings(request): currency_form.save() messages.success(request, _("Payroll settings updated.")) - # return render(request, "payroll/settings/payroll_settings.html", {"currency_form": currency_form}) - return HttpResponseRedirect(request.META.get("HTTP_REFERER", "/")) + return HttpResponseRedirect(request.META.get("HTTP_REFERER", "/")) + return render( + request, + "payroll/settings/payroll_settings.html", + { + "currency_form": currency_form, + "companies": companies, + "selected_company_id": selected_company_id, + }, + ) @login_required