[FIX] EMPLOYEE: #700

This commit is contained in:
Horilla
2025-04-25 12:03:52 +05:30
parent 3fdcd8d142
commit 2ee1fba06f
2 changed files with 68 additions and 50 deletions

View File

@@ -573,13 +573,6 @@ class EmployeeWorkInformation(models.Model):
related_name="employee_work_info",
verbose_name=_("Employee"),
)
job_position_id = models.ForeignKey(
JobPosition,
on_delete=models.PROTECT,
null=True,
blank=True,
verbose_name=_("Job Position"),
)
department_id = models.ForeignKey(
Department,
on_delete=models.PROTECT,
@@ -587,19 +580,12 @@ class EmployeeWorkInformation(models.Model):
blank=True,
verbose_name=_("Department"),
)
work_type_id = models.ForeignKey(
WorkType,
job_position_id = models.ForeignKey(
JobPosition,
on_delete=models.PROTECT,
null=True,
blank=True,
verbose_name=_("Work Type"),
)
employee_type_id = models.ForeignKey(
EmployeeType,
on_delete=models.PROTECT,
null=True,
blank=True,
verbose_name=_("Employee Type"),
verbose_name=_("Job Position"),
)
job_role_id = models.ForeignKey(
JobRole,
@@ -616,27 +602,6 @@ class EmployeeWorkInformation(models.Model):
related_name="reporting_manager",
verbose_name=_("Reporting Manager"),
)
company_id = models.ForeignKey(
Company,
on_delete=models.PROTECT,
blank=True,
null=True,
verbose_name=_("Company"),
)
tags = models.ManyToManyField(
EmployeeTag, blank=True, verbose_name=_("Employee tag")
)
location = models.CharField(
max_length=50, null=True, blank=True, verbose_name=_("Work Location")
)
email = models.EmailField(
max_length=254, blank=True, null=True, verbose_name=_("Email")
)
mobile = models.CharField(
max_length=254,
blank=True,
null=True,
)
shift_id = models.ForeignKey(
EmployeeShift,
on_delete=models.DO_NOTHING,
@@ -644,10 +609,47 @@ class EmployeeWorkInformation(models.Model):
blank=True,
verbose_name=_("Shift"),
)
work_type_id = models.ForeignKey(
WorkType,
on_delete=models.PROTECT,
null=True,
blank=True,
verbose_name=_("Work Type"),
)
employee_type_id = models.ForeignKey(
EmployeeType,
on_delete=models.PROTECT,
null=True,
blank=True,
verbose_name=_("Employee Type"),
)
tags = models.ManyToManyField(
EmployeeTag, blank=True, verbose_name=_("Employee tag")
)
location = models.CharField(
max_length=50, null=True, blank=True, verbose_name=_("Work Location")
)
company_id = models.ForeignKey(
Company,
on_delete=models.PROTECT,
blank=True,
null=True,
verbose_name=_("Company"),
)
email = models.EmailField(
max_length=254, blank=True, null=True, verbose_name=_("Work Email")
)
mobile = models.CharField(
max_length=254, blank=True, null=True, verbose_name=_("Work Phone")
)
date_joining = models.DateField(
null=True, blank=True, verbose_name=_("Joining Date")
)
contract_end_date = models.DateField(blank=True, null=True)
contract_end_date = models.DateField(
blank=True, null=True, verbose_name=_("Contract End Date")
)
basic_salary = models.IntegerField(
null=True, blank=True, default=0, verbose_name=_("Basic Salary")
)

View File

@@ -1339,24 +1339,40 @@ def employee_view_update(request, obj_id, **kwargs):
"""
This method is used to render update form for employee.
"""
company = request.session["selected_company"]
selected_company_id = request.session["selected_company"]
user = Employee.objects.filter(employee_user_id=request.user).first()
work_info = HistoryTrackingFields.objects.first()
work_info_history = False
if work_info and work_info.work_info_track == True:
work_info_history = True
work_info_history = HistoryTrackingFields.objects.filter(
work_info_track=True
).exists()
employee = Employee.objects.filter(id=obj_id).first()
all_employees = Employee.objects.entire()
emp = all_employees.filter(id=obj_id).first()
emp = Employee.objects.entire().filter(id=obj_id).first()
if not employee and emp and hasattr(emp, "employee_work_info"):
if (
emp.employee_work_info
and emp.employee_work_info.company_id
and emp.employee_work_info.company_id_id != selected_company_id
):
messages.error(
request, _("Employee is not working in the selected company.")
)
return redirect(employee_view)
if employee is None:
employee = emp
all_work_info = EmployeeWorkInformation.objects.entire()
cmpny = Company.objects.get(id=company)
work = all_work_info.filter(employee_id=employee).first()
if company != "all":
cmpny = Company.objects.get(id=selected_company_id)
work = (
EmployeeWorkInformation.objects.entire()
.filter(employee_id=employee)
.first()
)
if work and selected_company_id != "all":
work.company_id = cmpny
work.save()
employee.save()
if (