Beispiel #1
0
def edit_contract_page(request, contract_id):
    if request.POST and request.FILES:
        reference_number = request.POST.get('reference_number')
        position_id = request.POST.get('position')
        employee_id = request.POST.get('employee')
        effective_date = request.POST.get('effective_date')
        expiry_date = request.POST.get('expiry_date')
        risk = request.POST.get('risk')
        document = request.FILES.get('document')

        position = get_position(position_id)
        employee = get_employee(employee_id)

        contract_list = Contract.objects.filter(id=contract_id)
        contract_list.update(reference_number=reference_number,
                             position=position,
                             employee=employee,
                             effective_date=effective_date,
                             expiry_date=expiry_date,
                             risk=risk,
                             document=document)

        return HttpResponseRedirect(reverse(manage_job_contracts))

    contract = get_contract(contract_id)
    positions = get_all_positions()
    employees = get_active_employees()
    context = {
        "contracts_page": "active",
        "contract": contract,
        "employees": employees,
        "positions": positions,
    }
    return render(request, 'contracts/edit_contract.html', context)
def edit_termination_page(request, termination_id):
    if request.POST and request.FILES:
        employee_id = request.POST.get('employee')
        type = request.POST.get('type')
        termination_letter = request.FILES.get('termination_letter')
        clearance_form = request.FILES.get('clearance_form')
        description = request.POST.get('description')
        employee = get_employee(employee_id)
        termination_list = Termination.objects.filter(id=termination_id)

        try:
            termination_list.update(employee=employee,
                                    type=type,
                                    termination_letter=termination_letter,
                                    clearance_form=clearance_form,
                                    description=description)
            return HttpResponseRedirect(reverse(manage_terminations_page))
        except IntegrityError:
            messages.warning(
                request, "Integrity problems with trying to add a new offence")

    termination = get_termination(termination_id)
    terminations = get_all_terminations()
    employees = get_active_employees()
    context = {
        "contracts_page": "active",
        "termination": termination,
        "terminations": terminations,
        "employees": employees
    }
    return render(request, 'contracts/edit_termination.html', context)
def manage_terminations_page(request):
    if request.POST:
        employee_id = request.POST.get('employee')
        type = request.POST.get('type')
        termination_letter = request.FILES.get('termination_letter')
        clearance_form = request.FILES.get('clearance_form')
        description = request.POST.get('description')
        employee = get_employee(employee_id)

        try:
            new_termination = Termination.objects.create(
                employee=employee,
                type=type,
                termination_letter=termination_letter,
                clearance_form=clearance_form,
                description=description)
            send_notification_generic(
                employee, "Termination Recorded",
                "Your termination record has been created")
        except IntegrityError:
            messages.warning(
                request, "Integrity problems with trying to add a new offence")

        return HttpResponseRedirect(reverse(manage_terminations_page))

    terminations = get_all_terminations()
    employees = get_active_employees()
    context = {
        "contracts_page": "active",
        "employees": employees,
        "terminations": terminations,
    }
    return render(request, 'contracts/manage_terminations.html', context)
def edit_offence_page(request, offence_id):
    if request.POST:
        name = request.POST.get('name')
        employee_id = request.POST.get('employee')
        penalty_id = request.POST.get('penalty')
        resolved = request.POST.get('resolved')
        description = request.POST.get('description')
        penalty = get_penalty(penalty_id)
        employee = get_employee(employee_id)

        offence_list = Offence.objects.filter(id=offence_id)
        offence_list.update(name=name,
                            penalty=penalty,
                            employee=employee,
                            resolved=resolved,
                            description=description)

        return HttpResponseRedirect(reverse(manage_offences_page))

    offence = get_offence(offence_id)
    offences = get_all_offences()
    employees = get_active_employees()
    penalties = get_all_penalties()
    context = {
        "contracts_page": "active",
        "employees": employees,
        "offences": offences,
        "penalties": penalties,
        "offence": offence
    }
    return render(request, 'contracts/edit_offence.html', context)
def manage_offences_page(request):
    if request.POST:
        name = request.POST.get('name')
        employee_id = request.POST.get('employee')
        penalty_id = request.POST.get('penalty')
        resolved = request.POST.get('resolved')
        description = request.POST.get('description')
        penalty = get_penalty(penalty_id)
        employee = get_employee(employee_id)
        try:
            new_offence = Offence.objects.create(name=name,
                                                 penalty=penalty,
                                                 employee=employee,
                                                 resolved=resolved,
                                                 description=description)

            send_notification_generic(employee, "Offence Recorded",
                                      "You have a new offence recorded")
        except IntegrityError:
            messages.warning(
                request, "Integrity problems with trying to add a new offence")

        return HttpResponseRedirect(reverse(manage_offences_page))

    offences = get_all_offences()
    employees = get_active_employees()
    penalties = get_all_penalties()
    context = {
        "contracts_page": "active",
        "employees": employees,
        "offences": offences,
        "penalties": penalties
    }
    return render(request, 'contracts/manage_offences.html', context)
Beispiel #6
0
def review_financial_info_page(request):
    csv_form = CSVForm()
    delete_all_csv_files()
    if request.POST:
        form = CSVForm(request.POST, request.FILES)
        if form.is_valid():
            csv_obj = form.save()
            # Update the records
            try:
                update_employee_financial_details(csv_obj)
            except (ValueError, IntegrityError):
                messages.warning(
                    request,
                    "You entered invalid values. Please export csv template and try again"
                )
                return HttpResponseRedirect(
                    reverse(review_financial_info_page))
            messages.warning(request, "File uploaded successfully")
            return HttpResponseRedirect(reverse(review_financial_info_page))
        else:
            messages.warning(request, "Form is not valid")
    context = {
        "payroll_page": "active",
        "employees": get_active_employees(),
        "csv_form": csv_form,
    }
    return render(request, 'payroll/review_and_edit_financial_info.html',
                  context)
Beispiel #7
0
def employees_performance_ratings_page(request):
    employees = get_active_employees()
    context = {
        "performance_page": "active",
        "employees": employees,
    }
    return render(request, "performance/employees_performance_rating.html",
                  context)
Beispiel #8
0
def edit_department_page(request, department_id):
    department = get_department(department_id)
    context = {
        "user": request.user,
        "employees": get_active_employees(),
        "department": department,
        "organisation_page": "active"
    }
    return render(request, 'organisation_details/edit_department.html', context)
Beispiel #9
0
def manage_departments_page(request):
    context = {
        "user": request.user,
        "organisation_page": "active",
        "departments": get_all_departments(),
        "employees": get_active_employees(),
    }

    return render(request, "organisation_details/manage_departments.html", context)
Beispiel #10
0
def create_payslip_list_service(payroll_record):
    payslips = []
    employees = get_active_employees()

    for employee in employees:
        bonus = employee.bonus
        overtime_pay = get_overtime_pay(employee)
        payslip = create_payslip_service(employee, payroll_record, bonus=bonus, overtime_pay=overtime_pay)
        payslips.append(payslip)

    return payslips
Beispiel #11
0
def manage_job_contracts(request):
    if request.POST and request.FILES:
        reference_number = request.POST.get('reference_number')
        position_id = request.POST.get('position')
        employee_id = request.POST.get('employee')
        effective_date = request.POST.get('effective_date')
        expiry_date = request.POST.get('expiry_date')
        risk = request.POST.get('risk')
        contract_type = request.POST.get('contract_type')
        document = request.FILES.get('document')

        position = get_position(position_id)
        employee = get_employee(employee_id)
        try:
            new_contract = Contract.objects.create(
                reference_number=reference_number,
                position=position,
                employee=employee,
                effective_date=effective_date,
                expiry_date=expiry_date,
                risk=risk,
                type=contract_type,
                document=document)
        except IntegrityError:
            messages.warning(request,
                             "The reference number needs to be unique")

        return HttpResponseRedirect(reverse(manage_job_contracts))

    positions = get_all_positions()
    employees = get_active_employees()
    contracts = get_active_contracts()
    context = {
        "contracts_page": "active",
        "employees": employees,
        "positions": positions,
        "contracts": contracts,
    }
    return render(request, 'contracts/manage_job_contracts.html', context)
Beispiel #12
0
def add_overtime_schedule_page(request, overtime_plan_id):
    overtime_plan = get_overtime_plan(overtime_plan_id)
    if request.POST:
        employee_id = request.POST["employee"]
        employee = get_employee(employee_id)
        date = request.POST["date"]
        number_of_hours = request.POST["number_of_hours"]
        description = request.POST["description"]

        OvertimeSchedule.objects.create(
            employee=employee,
            overtime_plan=overtime_plan,
            date=date,
            number_of_hours=number_of_hours,
            description=description,
        )
        return HttpResponseRedirect(reverse(add_overtime_schedule_page, args=[overtime_plan.id]))

    context = {
        "employees": get_active_employees(),
        "overtime_schedules": get_overtime_schedules(overtime_plan)
    }
    return render(request, 'overtime/add_employee_schedules.html', context)
Beispiel #13
0
def edit_team_page(request, team_id):
    if request.POST:
        team = get_team(team_id)
        team_name = request.POST["team_name"]
        supervisor_id = request.POST["supervisor_id"]
        department_id = request.POST["department_id"]
        supervisor = get_employee(supervisor_id)
        department = get_department(department_id)
        team.department = department
        team.supervisor = supervisor
        team.name = team_name
        team.save()

        messages.success(request, f'Team Info changed Successfully')
        return redirect('manage_teams_page')

    context = {
        "user": request.user,
        "team":  get_team(team_id),
        "employees": get_active_employees(),
        "departments": get_all_departments(),
        "organisation_page": "active"
    }
    return render(request, 'organisation_details/edit_team.html', context)