diff --git a/employee/templates/employee_personal_info/employee_card.html b/employee/templates/employee_personal_info/employee_card.html index 296d416b1..5487529d3 100644 --- a/employee/templates/employee_personal_info/employee_card.html +++ b/employee/templates/employee_personal_info/employee_card.html @@ -97,12 +97,26 @@ {% endif %} {% if perms.employee.delete_employee %} -
  • -
    - {% csrf_token %} - -
    -
  • + + {% with emp.contract_set.first as contract %} + {% if contract.contract_status == 'active' %} +
  • +
    + {% csrf_token %} + +
    +
  • + {% else %} +
  • +
    + {% csrf_token %} + +
    +
  • + {% endif %} + {% endwith %} + {% endif %} diff --git a/employee/templates/employee_personal_info/employee_list.html b/employee/templates/employee_personal_info/employee_list.html index 711041d91..bf61126e5 100644 --- a/employee/templates/employee_personal_info/employee_list.html +++ b/employee/templates/employee_personal_info/employee_list.html @@ -268,19 +268,39 @@ {% endif %} {% endif %} {% if perms.employee.delete_employee %} -
    {% csrf_token %} - -
    + + {% with emp.contract_set.first as contract %} + {% if contract.contract_status == 'active' %} +
    {% csrf_token %} + +
    + {% else %} +
    {% csrf_token %} + +
    + {% endif %} + {% endwith %} + {% endif %} diff --git a/employee/views.py b/employee/views.py index 1ae126857..3a7c424fb 100755 --- a/employee/views.py +++ b/employee/views.py @@ -1875,9 +1875,14 @@ def employee_delete(request, obj_id): try: view = request.POST.get("view") employee = Employee.objects.get(id=obj_id) + if Contract.objects.get(employee_id=obj_id) is not None: + contract = Contract.objects.get(employee_id=obj_id) + if contract.contract_status != 'active': + contract.delete() user = employee.employee_user_id user.delete() messages.success(request, _("Employee deleted")) + except Employee.DoesNotExist: messages.error(request, _("Employee not found.")) except ProtectedError as e: @@ -2455,8 +2460,8 @@ def work_info_import(request): email = work_info["Email"] phone = work_info["Phone"] first_name = convert_nan("First Name", work_info) - last_name = work_info["Last Name"] - badge_id = convert_nan("Badge id", work_info) + last_name = convert_nan("Last Name", work_info) + badge_id = work_info["Badge id"] department = convert_nan("Department", work_info) job_position = convert_nan("Job Position", work_info) job_role = convert_nan("Job Role", work_info) @@ -2548,8 +2553,8 @@ def work_info_import(request): email = work_info["Email"] phone = work_info["Phone"] first_name = convert_nan("First Name", work_info) - last_name = work_info["Last Name"] - badge_id = convert_nan("Badge id", work_info) + last_name = convert_nan("Last Name", work_info) + badge_id = work_info["Badge id"] department = convert_nan("Department", work_info) job_position = convert_nan("Job Position", work_info) job_role = convert_nan("Job Role", work_info) @@ -2656,10 +2661,10 @@ def work_info_import(request): employee_work_info.shift_id = shift_obj employee_work_info.location = location employee_work_info.date_joining = ( - date_joining if date_joining == "nan" else datetime.today() + date_joining if not pd.isnull(date_joining) else datetime.today() ) employee_work_info.contract_end_date = ( - contract_end_date if contract_end_date == "nan" else None + contract_end_date if not pd.isnull(contract_end_date) else None ) employee_work_info.basic_salary = ( basic_salary if type(basic_salary) is int else 0