[UPDT] PAYROLL: Updated payroll filter by adding fields to filter by employee work info
This commit is contained in:
@@ -78,6 +78,12 @@ class ContractFilter(FilterSet):
|
||||
"contract_end_date",
|
||||
"wage_type",
|
||||
"filing_status",
|
||||
"employee_id__employee_work_info__company_id",
|
||||
"department",
|
||||
"job_position",
|
||||
"job_role",
|
||||
"shift",
|
||||
"work_type",
|
||||
"pay_frequency",
|
||||
"contract_status",
|
||||
"wage",
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
These forms provide a convenient way to handle data input, validation, and customization
|
||||
of form fields and widgets for the corresponding models in the payroll management system.
|
||||
"""
|
||||
|
||||
from typing import Any
|
||||
import uuid
|
||||
import datetime
|
||||
@@ -351,7 +352,7 @@ class PayslipExportColumnForm(forms.Form):
|
||||
)
|
||||
|
||||
|
||||
exclude_fields = ["id", "contract_document", "is_active", "note", "note"]
|
||||
exclude_fields = ["id", "contract_document", "is_active", "note", "note", "created_at"]
|
||||
|
||||
|
||||
class ContractExportFieldForm(forms.Form):
|
||||
@@ -624,7 +625,6 @@ class ReimbursementForm(ModelForm):
|
||||
if field in self.fields:
|
||||
del self.fields[field]
|
||||
|
||||
|
||||
def as_p(self):
|
||||
"""
|
||||
Render the form fields as HTML table rows with Bootstrap styling.
|
||||
|
||||
@@ -155,9 +155,9 @@ class Contract(models.Model):
|
||||
related_name="contract_set",
|
||||
verbose_name=_("Employee"),
|
||||
)
|
||||
contract_start_date = models.DateField(verbose_name=_("Start date"))
|
||||
contract_start_date = models.DateField(verbose_name=_("Start Date"))
|
||||
contract_end_date = models.DateField(
|
||||
null=True, blank=True, verbose_name=_("End date")
|
||||
null=True, blank=True, verbose_name=_("End Date")
|
||||
)
|
||||
wage_type = models.CharField(
|
||||
choices=WAGE_CHOICES,
|
||||
@@ -236,8 +236,9 @@ class Contract(models.Model):
|
||||
)
|
||||
notice_period_in_month = models.IntegerField(
|
||||
default=3,
|
||||
help_text="Notice period in total months.",
|
||||
help_text=_("Notice period in total months."),
|
||||
validators=[min_zero],
|
||||
verbose_name = _("Notice Period")
|
||||
)
|
||||
calculate_daily_leave_amount = models.BooleanField(
|
||||
default=True,
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">
|
||||
<label class="oh-label" for="select-all-fields">
|
||||
<input type="checkbox" id="select-all-fields" /> {% trans "Select All" %}
|
||||
</label>
|
||||
</div>
|
||||
@@ -29,13 +29,13 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Start Date" %}</label>
|
||||
<label class="oh-label" for="{{export_filter.form.contract_start_date.id_for_label}}">{% trans "Start Date" %}</label>
|
||||
{{ export_filter.form.contract_start_date }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "End Date" %}</label>
|
||||
<label class="oh-label" for="{{export_filter.form.contract_end_date.id_for_label}}">{% trans "End Date" %}</label>
|
||||
{{ export_filter.form.contract_end_date }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -43,13 +43,13 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Wage Type" %}</label>
|
||||
<label class="oh-label" for="{{export_filter.form.wage_type.id_for_label}}">{% trans "Wage Type" %}</label>
|
||||
{{ export_filter.form.wage_type }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Filing Status" %}</label>
|
||||
<label class="oh-label" for="{{export_filter.form.filing_status.id_for_label}}">{% trans "Filing Status" %}</label>
|
||||
{{ export_filter.form.filing_status }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -57,26 +57,73 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Pay Frequency" %}</label>
|
||||
<label class="oh-label" for="{{export_filter.form.pay_frequency.id_for_label}}">{% trans "Pay Frequency" %}</label>
|
||||
{{ export_filter.form.pay_frequency }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Status" %}</label>
|
||||
<label class="oh-label" for="{{export_filter.form.contract_status.id_for_label}}">{% trans "Status" %}</label>
|
||||
{{ export_filter.form.contract_status }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="oh-accordion">
|
||||
<div class="oh-accordion-header">{% trans "Work Info" %}</div>
|
||||
<div class="oh-accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label" for="{{export_filter.form.employee_id__employee_work_info__company_id.id_for_label}}">{% trans "Company" %}</label>
|
||||
{{ export_filter.form.employee_id__employee_work_info__company_id }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label" for="{{export_filter.form.department.id_for_label}}">{% trans "Department" %}</label>
|
||||
{{ export_filter.form.department }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label" for="{{export_filter.form.job_position.id_for_label}}">{% trans "Job Position" %}</label>
|
||||
{{ export_filter.form.job_position }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label" for="{{export_filter.form.job_role.id_for_label}}">{% trans "Job Role" %}</label>
|
||||
{{ export_filter.form.job_role }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label" for="{{export_filter.form.shift.id_for_label}}">{% trans "Shift" %}</label>
|
||||
{{ export_filter.form.shift }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label" for="{{export_filter.form.work_type.id_for_label}}">{% trans "Work Type" %}</label>
|
||||
{{ export_filter.form.work_type }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="oh-accordion">
|
||||
<div class="oh-accordion-header">{% trans "Advanced" %}</div>
|
||||
<div class="oh-accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label"
|
||||
<label class="oh-label" for="{{export_filter.form.contract_start_date_from.id_for_label}}"
|
||||
>{% trans "Contract Start Date From" %}</label
|
||||
>
|
||||
{{ export_filter.form.contract_start_date_from }}
|
||||
@@ -84,7 +131,7 @@
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label"
|
||||
<label class="oh-label" for="{{export_filter.form.contract_start_date_till.id_for_label}}"
|
||||
>{% trans "Contract Start Date Till" %}</label
|
||||
>
|
||||
{{ export_filter.form.contract_start_date_till }}
|
||||
@@ -94,13 +141,13 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Contract End Date From" %}</label>
|
||||
<label class="oh-label" for="{{export_filter.form.contract_end_date_from.id_for_label}}">{% trans "Contract End Date From" %}</label>
|
||||
{{ export_filter.form.contract_end_date_from }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Contract End Date Till" %}</label>
|
||||
<label class="oh-label" for="{{export_filter.form.contract_end_date_till.id_for_label}}">{% trans "Contract End Date Till" %}</label>
|
||||
{{ export_filter.form.contract_end_date_till }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -108,7 +155,7 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label"
|
||||
<label class="oh-label" for="{{export_filter.form.basic_pay__lte.id_for_label}}"
|
||||
>{% trans "Basic Salary Less Than or Equal" %}</label
|
||||
>
|
||||
{{ export_filter.form.basic_pay__lte }}
|
||||
@@ -116,7 +163,7 @@
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label"
|
||||
<label class="oh-label" for="{{export_filter.form.basic_pay__gte.id_for_label}}"
|
||||
>{% trans "Basic Salary Greater or Equal" %}</label
|
||||
>
|
||||
{{ export_filter.form.basic_pay__gte }}
|
||||
|
||||
@@ -121,11 +121,11 @@
|
||||
style="display: none"
|
||||
>
|
||||
<div class="oh-accordion">
|
||||
<label>{% trans "Group By" %}</label>
|
||||
<label for="id_field">{% trans "Group By" %}</label>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label"
|
||||
<label class="oh-label" for="id_field"
|
||||
>{% trans "Field" %}</label
|
||||
>
|
||||
</div>
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Start Date" %}</label>
|
||||
<label class="oh-label" for="{{f.form.contract_start_date.id_for_label}}">{% trans "Start Date" %}</label>
|
||||
{{ f.form.contract_start_date }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "End Date" %}</label>
|
||||
<label class="oh-label" for="{{f.form.contract_end_date.id_for_label}}">{% trans "End Date" %}</label>
|
||||
{{ f.form.contract_end_date }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -22,13 +22,13 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Wage Type" %}</label>
|
||||
<label class="oh-label" for="{{f.form.wage_type.id_for_label}}">{% trans "Wage Type" %}</label>
|
||||
{{ f.form.wage_type }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Filing Status" %}</label>
|
||||
<label class="oh-label" for="{{f.form.filing_status.id_for_label}}">{% trans "Filing Status" %}</label>
|
||||
{{ f.form.filing_status }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -36,32 +36,79 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Pay Frequency" %}</label>
|
||||
<label class="oh-label" for="{{f.form.pay_frequency.id_for_label}}">{% trans "Pay Frequency" %}</label>
|
||||
{{ f.form.pay_frequency }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Status" %}</label>
|
||||
<label class="oh-label" for="{{f.form.contract_status.id_for_label}}">{% trans "Status" %}</label>
|
||||
{{ f.form.contract_status }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="oh-accordion">
|
||||
<div class="oh-accordion-header">{% trans "Work Info" %}</div>
|
||||
<div class="oh-accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label" for="{{f.form.employee_id__employee_work_info__company_id.id_for_label}}">{% trans "Company" %}</label>
|
||||
{{ f.form.employee_id__employee_work_info__company_id }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label" for="{{f.form.department.id_for_label}}">{% trans "Department" %}</label>
|
||||
{{ f.form.department }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label" for="{{f.form.job_position.id_for_label}}">{% trans "Job Position" %}</label>
|
||||
{{ f.form.job_position }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label" for="{{f.form.job_role.id_for_label}}">{% trans "Job Role" %}</label>
|
||||
{{ f.form.job_role }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label" for="{{f.form.shift.id_for_label}}">{% trans "Shift" %}</label>
|
||||
{{ f.form.shift }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label" for="{{f.form.work_type.id_for_label}}">{% trans "Work Type" %}</label>
|
||||
{{ f.form.work_type }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="oh-accordion">
|
||||
<div class="oh-accordion-header">{% trans "Advanced" %}</div>
|
||||
<div class="oh-accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Contract Start Date From" %}</label>
|
||||
<label class="oh-label" for="{{f.form.contract_start_date_from.id_for_label}}">{% trans "Contract Start Date From" %}</label>
|
||||
{{ f.form.contract_start_date_from }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Contract Start Date Till" %}</label>
|
||||
<label class="oh-label" for="{{f.form.contract_start_date_till.id_for_label}}">{% trans "Contract Start Date Till" %}</label>
|
||||
{{ f.form.contract_start_date_till }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -69,13 +116,13 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Contract End Date From" %}</label>
|
||||
<label class="oh-label" for="{{f.form.contract_end_date_from.id_for_label}}">{% trans "Contract End Date From" %}</label>
|
||||
{{ f.form.contract_end_date_from }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label">{% trans "Contract End Date Till" %}</label>
|
||||
<label class="oh-label" for="{{f.form.contract_end_date_till.id_for_label}}">{% trans "Contract End Date Till" %}</label>
|
||||
{{ f.form.contract_end_date_till }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -83,7 +130,7 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label"
|
||||
<label class="oh-label" for="{{f.form.basic_pay__lte.id_for_label}}"
|
||||
>{% trans "Basic Salary Less Than or Equal" %}</label
|
||||
>
|
||||
{{ f.form.basic_pay__lte }}
|
||||
@@ -91,7 +138,7 @@
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="oh-input-group">
|
||||
<label class="oh-label"
|
||||
<label class="oh-label" for="{{f.form.basic_pay__gte.id_for_label}}"
|
||||
>{% trans "Basic Salary Greater or Equal" %}</label
|
||||
>
|
||||
{{ f.form.basic_pay__gte }}
|
||||
|
||||
Reference in New Issue
Block a user