diff --git a/payroll/forms/forms.py b/payroll/forms/forms.py index b37b028fb..200a2f5c3 100644 --- a/payroll/forms/forms.py +++ b/payroll/forms/forms.py @@ -5,7 +5,11 @@ from django import forms from django.forms import widgets from django.utils.translation import gettext_lazy as trans from django.template.loader import render_to_string -from payroll.models.models import ReimbursementrequestComment, WorkRecord +from payroll.models.models import ( + PayrollGeneralSetting, + ReimbursementrequestComment, + WorkRecord, +) from payroll.models.models import Contract from base.methods import reload_queryset @@ -63,7 +67,6 @@ class ContractForm(ModelForm): contract_start_date = forms.DateField() contract_end_date = forms.DateField() - class Meta: """ Meta class for additional options @@ -82,18 +85,21 @@ class ContractForm(ModelForm): ) self.fields["contract_start_date"].widget = widgets.DateInput( attrs={ - "type":"date", + "type": "date", "class": "oh-input w-100", "placeholder": "Select a date", } ) self.fields["contract_end_date"].widget = widgets.DateInput( attrs={ - "type":"date", + "type": "date", "class": "oh-input w-100", "placeholder": "Select a date", } ) + first = PayrollGeneralSetting.objects.first() + if first and self.instance.pk is None: + self.initial["notice_period_in_month"] = first.notice_period def as_p(self): """ @@ -129,4 +135,4 @@ class ReimbursementrequestCommentForm(ModelForm): """ model = ReimbursementrequestComment - fields = ('comment',) \ No newline at end of file + fields = ("comment",) diff --git a/payroll/templates/payroll/settings/settings.html b/payroll/templates/payroll/settings/settings.html new file mode 100644 index 000000000..6edeec6e2 --- /dev/null +++ b/payroll/templates/payroll/settings/settings.html @@ -0,0 +1,16 @@ +{% load i18n %} +{% csrf_token %} +
+{% trans 'Set initial notice period in month' %} + + diff --git a/payroll/urls/urls.py b/payroll/urls/urls.py index 81e001cb6..4912bfcb4 100644 --- a/payroll/urls/urls.py +++ b/payroll/urls/urls.py @@ -142,4 +142,5 @@ urlpatterns = [ views.delete_payrollrequest_comment, name="payroll-request-delete-comment", ), + path("initial-notice-period",views.initial_notice_period,name="initial-notice-period") ] diff --git a/payroll/views/views.py b/payroll/views/views.py index 1a14bfb77..3c1739bc9 100644 --- a/payroll/views/views.py +++ b/payroll/views/views.py @@ -20,7 +20,7 @@ from base.methods import export_data, generate_colors, get_key_instances from employee.models import Employee, EmployeeWorkInformation from base.methods import closest_numbers from base.methods import generate_pdf -from payroll.models.models import Payslip, Reimbursement, ReimbursementrequestComment, WorkRecord, Contract +from payroll.models.models import PayrollGeneralSetting, Payslip, Reimbursement, ReimbursementrequestComment, WorkRecord, Contract from payroll.forms.forms import ContractForm, ReimbursementrequestCommentForm, WorkRecordForm from payroll.models.tax_models import PayrollSettings from payroll.forms.component_forms import ContractExportFieldForm, PayrollSettingsForm @@ -1289,3 +1289,18 @@ def delete_payrollrequest_comment(request, comment_id): messages.success(request, _("Comment deleted successfully!")) return HttpResponseRedirect(request.META.get("HTTP_REFERER", "/")) + + +@login_required +@permission_required("payroll.add_payrollgeneralsetting") +def initial_notice_period(request): + """ + This method is used to set initial value notice period + """ + notice_period = eval(request.GET["notice_period"]) + settings = PayrollGeneralSetting.objects.first() + settings = settings if settings else PayrollGeneralSetting() + settings.notice_period = max(notice_period,0) + settings.save() + messages.success(request,"Initial notice period updated") + return HttpResponseRedirect(request.META.get("HTTP_REFERER", "/"))