mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
Initial commit of *new* hr_payroll_timesheet and hr_payroll_timesheet_old for 11.0
This commit is contained in:
87
hr_payroll_timesheet/tests/test_payslip_timesheet.py
Normal file
87
hr_payroll_timesheet/tests/test_payslip_timesheet.py
Normal file
@@ -0,0 +1,87 @@
|
||||
from odoo.tests import common
|
||||
from odoo import fields
|
||||
|
||||
|
||||
class TestPayslipTimesheet(common.TransactionCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestPayslipTimesheet, self).setUp()
|
||||
self.employee = self.env['hr.employee'].create({
|
||||
'birthday': '1985-03-14',
|
||||
'country_id': self.ref('base.us'),
|
||||
'department_id': self.ref('hr.dep_rd'),
|
||||
'gender': 'male',
|
||||
'name': 'Jared'
|
||||
})
|
||||
self.contract = self.env['hr.contract'].create({
|
||||
'name': 'test',
|
||||
'employee_id': self.employee.id,
|
||||
'type_id': self.ref('hr_contract.hr_contract_type_emp'),
|
||||
'struct_id': self.ref('hr_payroll.structure_base'),
|
||||
'resource_calendar_id': self.ref('resource.resource_calendar_std'),
|
||||
'wage': 21.50,
|
||||
'date_start': '2018-01-01',
|
||||
'state': 'open',
|
||||
'paid_hourly_timesheet': True,
|
||||
'schedule_pay': 'monthly',
|
||||
})
|
||||
self.project = self.env['project.project'].create({
|
||||
'name': 'Timesheets',
|
||||
})
|
||||
|
||||
def test_payslip_timesheet(self):
|
||||
self.assertTrue(self.contract.paid_hourly_timesheet)
|
||||
from_date = '2018-01-01'
|
||||
to_date = '2018-01-31'
|
||||
|
||||
# Day 1
|
||||
self.env['account.analytic.line'].create({
|
||||
'employee_id': self.employee.id,
|
||||
'project_id': self.project.id,
|
||||
'date': '2018-01-01',
|
||||
'unit_amount': 5.0,
|
||||
})
|
||||
self.env['account.analytic.line'].create({
|
||||
'employee_id': self.employee.id,
|
||||
'project_id': self.project.id,
|
||||
'date': '2018-01-01',
|
||||
'unit_amount': 3.0,
|
||||
})
|
||||
|
||||
# Day 2
|
||||
self.env['account.analytic.line'].create({
|
||||
'employee_id': self.employee.id,
|
||||
'project_id': self.project.id,
|
||||
'date': '2018-01-02',
|
||||
'unit_amount': 1.0,
|
||||
})
|
||||
|
||||
# Make one that should be excluded.
|
||||
self.env['account.analytic.line'].create({
|
||||
'employee_id': self.employee.id,
|
||||
'project_id': self.project.id,
|
||||
'date': '2017-01-01',
|
||||
'unit_amount': 5.0,
|
||||
})
|
||||
|
||||
# Create slip like a batch run.
|
||||
slip_data = self.env['hr.payslip'].onchange_employee_id(from_date, to_date, self.employee.id, contract_id=False)
|
||||
res = {
|
||||
'employee_id': self.employee.id,
|
||||
'name': slip_data['value'].get('name'),
|
||||
'struct_id': slip_data['value'].get('struct_id'),
|
||||
'contract_id': slip_data['value'].get('contract_id'),
|
||||
'input_line_ids': [(0, 0, x) for x in slip_data['value'].get('input_line_ids')],
|
||||
'worked_days_line_ids': [(0, 0, x) for x in slip_data['value'].get('worked_days_line_ids')],
|
||||
'date_from': from_date,
|
||||
'date_to': to_date,
|
||||
'company_id': self.employee.company_id.id,
|
||||
}
|
||||
payslip = self.env['hr.payslip'].create(res)
|
||||
payslip.compute_sheet()
|
||||
self.assertTrue(payslip.worked_days_line_ids)
|
||||
|
||||
timesheet_line = payslip.worked_days_line_ids.filtered(lambda l: l.code == 'TS')
|
||||
self.assertTrue(timesheet_line)
|
||||
self.assertEqual(timesheet_line.number_of_days, 2.0)
|
||||
self.assertEqual(timesheet_line.number_of_hours, 9.0)
|
||||
Reference in New Issue
Block a user