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))
def new_employee(): name_of_employee=request.form['full_name']#name_of_employee random varible, full_name is in the form and full_name below is the db column 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_id']) basic_salary=request.form['basic_sal'] benefits=request.form['benefits'] emp=EmployeesModel(full_name=name_of_employee,kra_pin=kra_pin,gender=gender, national_id=national_id,email=email,department_id=department_id, basic_sal=basic_salary,benefits=benefits) # full_name is db column and name_of_employee is the variable created above emp.insert_to_db() return redirect(url_for('home'))
def home(): employees = EmployeesModel.fetch_all_records() # calculate no of employees male = 0 female = 0 na = 0 # using list comprehension and count method modify this for loop for emp in employees: if emp.gender == 'male': male += 1 elif emp.gender == 'female': female += 1 else: na += 1 print(male) print(female) print(na) # create a pie chart pie_chart = pygal.Pie() pie_chart.title = 'Male vs Female Employees' pie_chart.add('Male Employees', male) pie_chart.add('Female Employees', female) pie_chart.add('Not Applicable', na) graph = pie_chart.render_data_uri() print(graph) return render_template('index.html', wafanyikazi=employees, graph=graph)
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))
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))
def home(): departments = DepartmentModel.fetch_all() #creating a pie chart in the home page all_employees = EmployeesModel.fetch_all() male = 0 female = 0 others = 0 for each in all_employees: if each.gender == 'male': male += 1 elif each.gender == 'female': female += 1 else: others += 1 pie_chart = pygal.Pie() # instantiating the pie class pie_chart.title = 'Analysing Company Employees By Gender' pie_chart.add('Male', male) pie_chart.add('Female', female) pie_chart.add('Others', others) chart=pie_chart.render_data_uri() # creating a bar graph in the home page line_chart = pygal.Bar() # instantiating the bar graph class line_chart.title = 'Salary Cost Per Department' #loop over departments for each_dept in departments: line_chart.add(each_dept.name, DepartmentModel.fetch_total_payroll_by_id(each_dept.id)) bar_graph = line_chart.render_data_uri() return render_template('index.html',idara = departments, chart=chart, bar_graph=bar_graph)
def home(): departments = DepartmentModel.fetch_all() all_employees = EmployeesModel.fetch_all() male = 0 female = 0 others = 0 for each in all_employees: if each.gender == 'm': male += 1 elif each.gender == 'f': female += 1 else: others += 1 pie_chart = pygal.Pie() pie_chart.title = 'Comparing Company Employees by Gender' pie_chart.add('Male', male) pie_chart.add('Female', female) pie_chart.add('Others', others) graph = pie_chart.render_data_uri() line_chart = pygal.Bar() line_chart.title = 'Salary cost per Department' for each_dept in departments: line_chart.add(each_dept.name, DepartmentModel.fetch_total_payroll_by_id(each_dept.id)) bar_graph = line_chart.render_data_uri() # print(graph) # print(departments) # print(departments) return render_template('index.html', idara=departments, graph=graph, bar_graph=bar_graph)
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))
def newEmployee(): 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'] emp = EmployeesModel(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) emp.insert_to_db() return redirect(url_for('home'))
def newEmployee(): name_of_employee = request.form['name'] department_id = int(request.form['department']) gender = request.form['gender'] basic_salary = request.form['basic_salary'] benefits = request.form['benefits'] kra_pin = request.form['kra_pin'] national_id = request.form['national_id'] email = request.form['email'] emp = EmployeesModel(name=name_of_employee, gender=gender, kraPin=kra_pin, departmentId=department_id, basicSalary=basic_salary, benefits=benefits, nationalId=national_id, email=email) emp.insert2DB() return redirect(url_for('hello_world'))
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))
def new_employee(): full_name = request.form['name'] gender = request.form['gender'] kra_pin = request.form['kra_pin'] email = request.form['email'] national_id = request.form['national_id'] basic_salary = request.form['basic_salary'] benefits = request.form['benefits'] department_id = int(request.form['dept_id']) employee = EmployeesModel(full_name=full_name, gender=gender, KRA_pin=kra_pin, email=email, national_ID=national_id, basic_salary=basic_salary, benefits=benefits, department_id=department_id) employee.insert_to_db() return redirect(url_for('home'))
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)
def create_new_employee(): if request.method == "POST": name = request.form['name'] gender = request.form['gender'] email = request.form['email'] kra_pin = request.form['kra'] basic_salary = request.form['basicsalary'] benefits = request.form['benefits'] if EmployeesModel.check_existing_kra( kra_pin) or EmployeesModel.check_existing_email(email): flash("Email or KRA already exists") return redirect(url_for('home')) #create object of class EmployeesModel emp = EmployeesModel(name=name, email=email, gender=gender, kra_pin=kra_pin, basic_salary=basic_salary, benefits=benefits) emp.insert_method() #redirect to home page return redirect(url_for('home'))
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'))
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'))
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'))
def new_employee(): full_name = request.form['full_name'] gender = request.form['gender'] KRA_pin = request.form['KRA_pin'] national_ID = request.form['national_ID'] email = request.form['email'] basic_salary = request.form['basic_salary'] benefits = request.form['benefits'] department_ID = int(request.form['department']) if EmployeesModel.fetch_by_mail(email): flash('Employee' + full_name + ' already exists.') return redirect(url_for('home')) emp = EmployeesModel(full_name=full_name, gender=gender, KRA_pin=KRA_pin, email=email, national_ID=national_ID, basic_salary=basic_salary, benefits=benefits, department_ID=department_ID) emp.insert_to_db() flash('Employee ' + full_name + ' has been added.') return redirect(url_for('home'))
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'))
def createNewEmployee(): if request.method == "POST": name = request.form['name'] email = request.form['email'] kra_pin = request.form['kra'] basic_salary = request.form['basic'] benefits = request.form['benefits'] if EmployeesModel.check_kra(kra_pin) or EmployeesModel.check_email(email): flash("Email/Kra already exists") return redirect(url_for('home')) emp = EmployeesModel(name=name,email=email,kra_pin=kra_pin, basic_salary=basic_salary,benefits=benefits) emp.insert_record() return redirect(url_for('home'))
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'))
def home(): employees = EmployeesModel.fetch_all_records() male = 0 female = 0 na = 0 #use list comprehensions and count method to modify this for and if for emp in employees: if emp.gender == 'M': male += 1 elif emp.gender == 'F': female += 1 else: na += 1 pie_chart = pygal.Pie() pie_chart.title = 'Male vs Female Employees' pie_chart.add('Male Employees ', male) pie_chart.add('Female Employees ', female) pie_chart.add('Not Applicable ', na) graph = pie_chart.render_data_uri() return render_template('index.html', wafanyikazi=employees, graph=graph)
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)
def payrolls(emp_id): employee = EmployeesModel.fetch_by_id(emp_id) return render_template('payrolls.html', employee=employee)
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))
def deleteEmployee(id): EmployeesModel.delete_by_id(id) return redirect(url_for('home'))
def payrolls(id): employee = EmployeesModel.fetch_by_id(id) return render_template('payroll.html',mfanyikazi = employee)
def home(): employees = EmployeesModel.fetch_all_records() return render_template('index.html',wafanyikazi = employees)
def payrolls(id): payroll_welcome = EmployeesModel.fetch_by_id(id) return render_template('payroll.html', ya=payroll_welcome)