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