Exemplo n.º 1
0
def generate_payroll(uid):
    month = request.form['month']
    year = request.form['year']
    overtime = request.form['overtime']

    month = month + str(year)

    employee = EmployeesModel.fetch_by_id(uid)
    basic = employee.basic_salary
    benefits = employee.benefits

    ya = Employee(basic, benefits)
    gross = ya.gross_salary
    payee = ya.calc_payee()
    nhif = ya.calc_NHIF()
    nssf = ya.nssf
    relief = 0
    sacco = 0
    pension = 0
    netSalary = ya.calc_net_salary()
    emp_id = uid

    pay = PayrollsModel(month=month,
                        gross_salary=gross,
                        payee=payee,
                        nhif=nhif,
                        nssf=nssf,
                        personal_relief=relief,
                        sacco_distribution=sacco,
                        pension=pension,
                        net_salary=netSalary,
                        employee_id=emp_id)
    # try:
    pay.insert_record()
    return redirect(url_for('payrolls', id=uid))
Exemplo n.º 2
0
def editEmployee(id):
    jina_ya_emp = request.form['name']
    kra_pin = request.form['kra_pin']
    gender = request.form['gender']
    national_id = request.form['national_id']
    email = request.form['email']
    department_id = int(request.form['department'])
    basic_salary = request.form['basic_salary']
    benefits = request.form['benefits']

    if gender == "na":
        gender = None
    if department_id == "0":
        department_id = None

    EmployeesModel.update_by_id(id=id,
                                full_name=jina_ya_emp,
                                gender=gender,
                                kra_pin=kra_pin,
                                email=email,
                                national_id=national_id,
                                department_id=department_id,
                                basic_salary=basic_salary,
                                benefits=benefits)
    this_emp = EmployeesModel.fetch_by_id(id=id)
    this_dept = this_emp.department
    return redirect(url_for('employees', dept_id=this_dept.id))
Exemplo n.º 3
0
def generate_payroll(uid):
    month = request.form['month']
    year = request.form['year']
    overtime = request.form['overtime']
    month = month + str(year)
    employee = EmployeesModel.fetch_by_id(uid)
    basic = employee.basic_salary
    benefits = employee.benefits
    mfanyikazi = Employee("bob",basic,benefits)
    gross = mfanyikazi.grossSalary
    payee = mfanyikazi.payeTax
    nhif = mfanyikazi.nhif
    nssf = mfanyikazi.nssf
    personal_relief = mfanyikazi.personal_relief
    sacco_contribution = 0
    pension = 0
    net = mfanyikazi.netSalary + int(overtime)
    emp_id = uid
    pay = PayrollsModel(month=month,gross_salary=gross,payee = payee,nhif=nhif,
                        nssf=nssf,personal_relief=personal_relief,
                        sacco_contribution=sacco_contribution,
                        pension=pension,net_salary=net,
                        employee_id=emp_id)
    try:
        pay.insert_record()
        return redirect(url_for('payrolls',id = uid))
    except:
        flash("Error in saving to the database")
        return redirect(url_for('payrolls',id = uid))
Exemplo n.º 4
0
def generate_payrolls(emp_id):
    this_employee = EmployeesModel.fetch_by_id(emp_id)
    payroll = Payroll(this_employee.full_name, this_employee.basic_salary,
                      this_employee.benefits)
    payroll_month = request.form['month']
    overtime = request.form['overtime']
    advanced_pay = request.form['salary_advance']
    loan_deductions = request.form['loan']
    gross = payroll.gross_salary
    nhif = payroll.nhif_deductions
    nssf = round(payroll.nssf_deductions, 2)
    taxable_amount = payroll.taxable_income
    paye = round(payroll.payee, 2)
    personal_relief = payroll.personal_relief
    tax_off_relief = round(payroll.tax_off_relief, 2)
    net_salary = payroll.net_salary
    take_home_pay = net_salary - (float(loan_deductions) + float(advanced_pay))

    payslip = PayrollsModel(payroll_month=payroll_month,
                            overtime=overtime,
                            advanced_pay=advanced_pay,
                            loan_deductions=loan_deductions,
                            gross_salary=gross,
                            nhif_deductions=nhif,
                            nssf_deductions=nssf,
                            taxable_income=taxable_amount,
                            PAYE=paye,
                            personal_relief=personal_relief,
                            tax_off_relief=tax_off_relief,
                            net_salary=net_salary,
                            take_home_pay=take_home_pay,
                            employee_id=this_employee.id)
    payslip.insert_to_db()
    return redirect(url_for('payrolls', emp_id=this_employee.id))
Exemplo n.º 5
0
def generate_payroll(uid):
    month = request.form['month']
    year = request.form['year']
    overtime = request.form['overtime']

    month = month + str(year)
    employee = EmployeesModel.fetch_by_id(uid)

    basic = employee.basic_salary
    benefits = employee.benefits

    mfanyikazi = Employees(basic, benefits)

    gross = mfanyikazi.get_gross_salary()
    nssf = mfanyikazi.get_nssf()
    nhif = mfanyikazi.get_nhif()
    net = mfanyikazi.get_net_salary() + float(overtime)
    payee = mfanyikazi.get_payee()
    personal_relief = mfanyikazi.personal_relief
    sacco_contribution = 0
    pension = 0
    emp_id = uid

    pay = PayrollsModel(month=month,
                        gross_salary=gross,
                        payee=payee,
                        nhif=nhif,
                        nssf=nssf,
                        personal_relief=personal_relief,
                        sacco_contribution=sacco_contribution,
                        pension=pension,
                        net_salary=net,
                        employee_id=emp_id)

    # create a bar chart
    line_chart = pygal.Bar()
    line_chart.title = 'Payroll Summary in %'
    line_chart.x_labels = map(str, range(2019))
    line_chart.add('Month', [month])
    line_chart.add('Gross salary', [gross])
    line_chart.add('PAYE', [payee])
    line_chart.add('NHIF', [nhif])
    line_chart.add('NSSF', [nssf])
    line_chart.add('Relief', [personal_relief])
    line_chart.add('Net Salary', [net])
    bar = line_chart.render_data_uri()
    print(bar)

    try:
        pay.insert_records()
        return redirect(url_for('payrolls', id=uid))

    except:
        flash("Error in saving to the database")
        return redirect(url_for('payrolls', id=uid))
Exemplo n.º 6
0
def generate_payroll(id):
    this_employee = EmployeesModel.fetch_by_id(id)
    payroll = Employee(this_employee.full_name, this_employee.basic_salary,
                       this_employee.benefits)
    nhif = payroll.nhif
    print("NSSF", payroll.nssf)
    print("PAYE", payroll.payeTax)
    print("NET", payroll.netSalary)
    print("Gross", payroll.grossSalary)
    print("Personal Relief", payroll.personal_relief)
    print("Taxable amount", payroll.chargeable_pay)
Exemplo n.º 7
0
def generate_payroll(id):
    this_employee = EmployeesModel.fetch_by_id(id)
    payroll = KRACalculator(this_employee.full_name,
                            this_employee.basic_salary, this_employee.benefits)
    NHIF = payroll.NHIF
    NSSF = payroll.NSSF
    PAYE = payroll.PAYE
    gross_salary = payroll.gross_salary
    personal_relief = payroll.personal_relief
    taxable_income = payroll.taxable_income
    net_salary = payroll.net_salary

    return redirect(url_for('home'))
Exemplo n.º 8
0
def editEmployee(pos):
    name = request.form['name']
    email = request.form['email']
    kra_pin = request.form['kra']
    basic_salary = request.form['basic']
    benefits = request.form['benefits']

    current_user =  EmployeesModel.fetch_by_id(pos)


    # use and to capture this error
    if EmployeesModel.check_kra(kra_pin) and kra_pin != current_user.kra_pin or EmployeesModel.check_email(email) and email != current_user.email:
        flash("Email/Kra already exists")
        return redirect(url_for('home'))



    EmployeesModel.update_by_id(id = pos,name=name,email = email,kra=kra_pin,
                                basic=basic_salary,benefits=benefits)


    return redirect(url_for('home'))
Exemplo n.º 9
0
def edit_employee(id):
    name = request.form['name']
    email = request.form['email']
    kra_pin = request.form['kra']
    basic_salary = request.form['basicsalary']
    benefits = request.form['benefits']

    current_user = EmployeesModel.fetch_by_id(id)

    if EmployeesModel.check_existing_kra(
            kra_pin
    ) and kra_pin != current_user.kra_pin or EmployeesModel.check_existing_email(
            email) and email != current_user.email:
        flash("Email/Kra Pin already exists")

    EmployeesModel.update_by_id(id=id,
                                name=name,
                                email=email,
                                kra=kra_pin,
                                salary=basic_salary,
                                benefits=benefits)
    return redirect(url_for('home'))
Exemplo n.º 10
0
def edit_employee(id):
    name = request.form['name']
    gender = request.form['gender']
    email = request.form['email']
    kra_pin = request.form['kra']
    basic_salary = request.form['basic']
    benefits = request.form['benefits']

    current_user = EmployeesModel.fetch_by_id(id)
    # use and to capture this error
    if EmployeesModel.check_kra_pin(kra_pin) and kra_pin != current_user.kra_pin or \
            EmployeesModel.check_email(email) and email != current_user.email:
        flash("Kra/email already exists")
        return redirect(url_for('home'))

    EmployeesModel.update_by_id(id=id,
                                name=name,
                                gender=gender,
                                email=email,
                                kra_pin=kra_pin,
                                basic_salary=basic_salary,
                                benefits=benefits)
    return redirect(url_for('home'))
Exemplo n.º 11
0
def generate_payroll(id):
    this_employee = EmployeesModel.fetch_by_id(id)
    payroll = Payroll(this_employee.name, this_employee.basicSalary,
                      this_employee.benefits)
    NHIF = payroll.NHIF
    NSSF = payroll.NSSF
    PAYE = payroll.PAYE
    net_salary = payroll.net_salary
    gross_salary = payroll.gross_salary
    personal_relief = payroll.personal_relief
    taxable_income = payroll.taxable_income
    month = request.form['month']
    payrolls = PayrollsModel(NHIF=NHIF,
                             NSSF=NSSF,
                             PAYE=PAYE,
                             month=month,
                             net_salary=net_salary,
                             gross_salary=gross_salary,
                             personal_relief=personal_relief,
                             taxable_income=taxable_income,
                             employee_id=id)
    payrolls.insert2DB()
    return redirect(url_for('hello_world'))
Exemplo n.º 12
0
def payrolls(emp_id):
    employee = EmployeesModel.fetch_by_id(emp_id)
    return render_template('payrolls.html', employee=employee)
Exemplo n.º 13
0
def deleteEmployee(id):
    this_emp = EmployeesModel.fetch_by_id(id=id)
    this_dept = this_emp.department
    EmployeesModel.delete_by_id(id)
    return redirect(url_for('employees', dept_id=this_dept.id))
Exemplo n.º 14
0
def payrolls(id):
    employee = EmployeesModel.fetch_by_id(id)
    return render_template('payroll.html',mfanyikazi = employee)
Exemplo n.º 15
0
def payrolls(id):
    payroll_welcome = EmployeesModel.fetch_by_id(id)
    return render_template('payroll.html', ya=payroll_welcome)
Exemplo n.º 16
0
def payrolls(emp_id):
    employee = EmployeesModel.fetch_by_id(emp_id)
    print(employee.full_name)
    print(employee.payrolls)
    # payslips = PayrollsModel.fetch_by_employee(emp_id)
    return render_template('payrolls.html', employee=employee)