Exemplo n.º 1
0
def payslips_page(request, payroll_record_id):
    payroll_record = get_payroll_record_by_id(payroll_record_id)
    payslips = get_payslips(payroll_record)

    context = {
        "payroll_page": "active",
        "payroll_record": payroll_record,
        "payslips": payslips,
        "month": payroll_record.month,
        "year": payroll_record.year
    }

    return render(request, 'payroll/payslips.html', context)
Exemplo n.º 2
0
def payroll_download(request, id):
    # Get the payroll record
    payroll_record = get_payroll_record_by_id(id)
    month = payroll_record.month
    year = payroll_record.year
    # Get all the associated Payroll objects
    payrolls = get_ugx_payslips(payroll_record)
    response = HttpResponse(content_type='text/csv')
    # Name the csv file
    filename = "payroll_" + month + "_" + year + ".csv"
    response['Content-Disposition'] = 'attachment; filename=' + filename
    writer = csv.writer(response, delimiter=',')
    # Writing the first row of the csv
    heading_text = "Payroll for " + month + " " + year
    writer.writerow([heading_text.upper()])
    writer.writerow([
        'Name', 'Basic Salary', 'Gross Salary', 'Employee NSSF Contribution',
        'Employer NSSF contribution', 'PAYE', 'Lunch Allowance', 'Overtime',
        'Bonus', 'Sacco Deduction', 'Damage Deduction', 'Net Salary'
    ])
    # Writing other rows
    for payroll in payrolls:
        name = payroll.employee.first_name + " " + payroll.employee.last_name
        writer.writerow([
            name,
            payroll.employee.basic_salary,
            payroll.gross_salary,
            payroll.employee_nssf,
            payroll.employer_nssf,
            payroll.paye,
            payroll.employee.lunch_allowance,
            payroll.overtime,
            payroll.bonus,
            payroll.sacco_deduction,
            payroll.damage_deduction,
            payroll.net_salary,
        ])

    # Return the response
    return response
Exemplo n.º 3
0
def create_payroll_payslips(request, id):
    payroll_record = get_payroll_record_by_id(id)
    create_payslip_list_service(payroll_record)
    return HttpResponseRedirect(
        reverse('payroll_record_page', args=[payroll_record.id]))
Exemplo n.º 4
0
 def test_get_payroll_record_selector(self):
     self.assertEqual(get_payroll_record_by_id(1).id, 1)