[UPDT] PAYROLL: Updated payroll filter by adding fields to filter by employee work info

This commit is contained in:
Cybrosys Odoo Devs
2024-03-08 22:39:19 +05:30
parent d47d1ed985
commit cafe40520a
6 changed files with 133 additions and 32 deletions

View File

@@ -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",

View File

@@ -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.

View File

@@ -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,

View File

@@ -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 }}

View File

@@ -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>

View File

@@ -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 }}