def setUp(self): frappe.db.sql("delete from `tabTimesheet`") emp = make_employee("*****@*****.**", company="_Test Company") if not frappe.db.exists("Salary Component", "Timesheet Component"): frappe.get_doc({ "doctype": "Salary Component", "salary_component": "Timesheet Component" }).insert() make_salary_structure_for_timesheet(emp, company="_Test Company") date = getdate() self.timesheet = make_timesheet(emp, is_billable=1) self.salary_slip = make_salary_slip(self.timesheet.name) self.salary_slip.start_date = self.timesheet.start_date holidays = self.salary_slip.get_holidays_for_employee(date, date) if holidays: frappe.db.set_value("Payroll Settings", None, "include_holidays_in_total_working_days", 1) self.salary_slip.submit() self.sales_invoice = make_sales_invoice(self.timesheet.name, "_Test Item", "_Test Customer") self.sales_invoice.due_date = date self.sales_invoice.submit() frappe.db.set_value("HR Settings", None, "standard_working_hours", 8) frappe.db.set_value("Payroll Settings", None, "include_holidays_in_total_working_days", 0)
def setUp(self): emp = make_employee('*****@*****.**', company='_Test Company') if not frappe.db.exists('Salary Component', 'Timesheet Component'): frappe.get_doc({ 'doctype': 'Salary Component', 'salary_component': 'Timesheet Component' }).insert() make_salary_structure_for_timesheet(emp, company='_Test Company') self.timesheet = make_timesheet(emp, simulate=True, is_billable=1) self.salary_slip = make_salary_slip(self.timesheet.name) holidays = self.salary_slip.get_holidays_for_employee( nowdate(), nowdate()) if holidays: frappe.db.set_value('Payroll Settings', None, 'include_holidays_in_total_working_days', 1) self.salary_slip.submit() self.sales_invoice = make_sales_invoice(self.timesheet.name, '_Test Item', '_Test Customer') self.sales_invoice.due_date = nowdate() self.sales_invoice.submit() frappe.db.set_value('HR Settings', None, 'standard_working_hours', 8) frappe.db.set_value('Payroll Settings', None, 'include_holidays_in_total_working_days', 0)
def test_salary_slip_from_timesheet(self): salary_structure = make_salary_structure("_T-Employee-0001") timesheet = make_timesheet("_T-Employee-0001", simulate = True, billable=1) salary_slip = make_salary_slip(timesheet.name) salary_slip.submit() self.assertEquals(salary_slip.total_working_hours, 2) self.assertEquals(salary_slip.hour_rate, 50) self.assertEquals(salary_slip.net_pay, 150) self.assertEquals(salary_slip.timesheets[0].time_sheet, timesheet.name) self.assertEquals(salary_slip.timesheets[0].working_hours, 2) timesheet = frappe.get_doc('Timesheet', timesheet.name) self.assertEquals(timesheet.status, 'Payslip') salary_slip.cancel() timesheet = frappe.get_doc('Timesheet', timesheet.name) self.assertEquals(timesheet.status, 'Submitted')
def setUp(self): emp = make_employee('*****@*****.**', company='_Test Company') if not frappe.db.exists('Salary Component', 'Timesheet Component'): frappe.get_doc({ 'doctype': 'Salary Component', 'salary_component': 'Timesheet Component' }).insert() make_salary_structure_for_timesheet(emp, company='_Test Company') self.timesheet = make_timesheet(emp, simulate=True, billable=1) self.salary_slip = make_salary_slip(self.timesheet.name) self.salary_slip.submit() self.sales_invoice = make_sales_invoice(self.timesheet.name, '_Test Item', '_Test Customer') self.sales_invoice.due_date = nowdate() self.sales_invoice.submit() frappe.db.set_value("HR Settings", "HR Settings", "standard_working_hours", 8)
def test_salary_slip_from_timesheet(self): salary_structure = make_salary_structure_for_timesheet("_T-Employee-00001") timesheet = make_timesheet("_T-Employee-00001", simulate = True, billable=1) salary_slip = make_salary_slip(timesheet.name) salary_slip.submit() self.assertEqual(salary_slip.total_working_hours, 2) self.assertEqual(salary_slip.hour_rate, 50) self.assertEqual(salary_slip.earnings[0].salary_component, "Timesheet Component") self.assertEqual(salary_slip.earnings[0].amount, 100) self.assertEqual(salary_slip.timesheets[0].time_sheet, timesheet.name) self.assertEqual(salary_slip.timesheets[0].working_hours, 2) timesheet = frappe.get_doc('Timesheet', timesheet.name) self.assertEqual(timesheet.status, 'Payslip') salary_slip.cancel() timesheet = frappe.get_doc('Timesheet', timesheet.name) self.assertEqual(timesheet.status, 'Submitted')
def test_salary_slip_from_timesheet(self): emp = make_employee("*****@*****.**", company="_Test Company") salary_structure = make_salary_structure_for_timesheet(emp) timesheet = make_timesheet(emp, simulate=True, is_billable=1) salary_slip = make_salary_slip(timesheet.name) salary_slip.submit() self.assertEqual(salary_slip.total_working_hours, 2) self.assertEqual(salary_slip.hour_rate, 50) self.assertEqual(salary_slip.earnings[0].salary_component, "Timesheet Component") self.assertEqual(salary_slip.earnings[0].amount, 100) self.assertEqual(salary_slip.timesheets[0].time_sheet, timesheet.name) self.assertEqual(salary_slip.timesheets[0].working_hours, 2) timesheet = frappe.get_doc("Timesheet", timesheet.name) self.assertEqual(timesheet.status, "Payslip") salary_slip.cancel() timesheet = frappe.get_doc("Timesheet", timesheet.name) self.assertEqual(timesheet.status, "Submitted")
def test_salary_slip_from_timesheet(self): salary_structure = make_salary_structure_for_timesheet( "_T-Employee-00001") timesheet = make_timesheet("_T-Employee-00001", simulate=True, billable=1) salary_slip = make_salary_slip(timesheet.name) salary_slip.submit() self.assertEqual(salary_slip.total_working_hours, 2) self.assertEqual(salary_slip.hour_rate, 50) self.assertEqual(salary_slip.earnings[0].salary_component, "Timesheet Component") self.assertEqual(salary_slip.earnings[0].amount, 100) self.assertEqual(salary_slip.timesheets[0].time_sheet, timesheet.name) self.assertEqual(salary_slip.timesheets[0].working_hours, 2) timesheet = frappe.get_doc('Timesheet', timesheet.name) self.assertEqual(timesheet.status, 'Payslip') salary_slip.cancel() timesheet = frappe.get_doc('Timesheet', timesheet.name) self.assertEqual(timesheet.status, 'Submitted')
def make_salary_slip_for_timesheet(name): salary_slip = make_salary_slip(name) salary_slip.insert() salary_slip.submit() frappe.db.commit()