[Bug in Odoo 16 HR Payroll] - Error When Generate Payslip for employee
namnguyenphuong355 opened this issue · comments
I have a when Generate Payslip for employee when Employee creates two leave with two time off types.
For example:
- A leave with time off types is Paid time off from 8:00am to 10:00am and another leave from 10:00am to 1:00pm (Time off types is Sick time off).
Both vacations are for 1 day.
When Generate Payslips for that employee, there is ValueError: Expected singleton: hr.leave.type(1, 7)
File "/home/developer/Desktop/tvs_project/odoo16_base_addons/addons/web/controllers/dataset.py", line 33, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/developer/Desktop/tvs_project/odoo16_base_addons/odoo/api.py", line 461, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/developer/Desktop/tvs_project/odoo16_base_addons/odoo/api.py", line 448, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/developer/Desktop/tvs_project/third_app/hr_payroll_community/wizard/hr_payroll_payslips_by_employees.py", line 25, in compute_sheet
slip_data = self.env['hr.payslip'].onchange_employee_id(from_date, to_date, employee.id, contract_id=False)
File "/home/developer/Desktop/tvs_project/third_app/hr_payroll_community/models/hr_payslip.py", line 463, in onchange_employee_id
worked_days_line_ids = self.get_worked_day_lines(contracts, date_from, date_to)
File "/home/developer/Desktop/tvs_project/third_app/hr_payroll_community/models/hr_payslip.py", line 209, in get_worked_day_lines
'name': holiday.holiday_status_id.name or _('Global Leaves'),
File "/home/developer/Desktop/tvs_project/odoo16_base_addons/odoo/fields.py", line 1132, in get
record.ensure_one()
File "/home/developer/Desktop/tvs_project/odoo16_base_addons/odoo/models.py", line 5119, in ensure_one
raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: hr.leave.type(1, 7)
I tried a solution but it doesn't work well.
-> Replace holiday = leave.holiday_id
-> holiday = leave[:1].holiday_id
However, when I generate Payslip in the above case, Only one type of leave can appear, but the total leave time is of 2 types of leave.
Is it possible to calculate the total leave time of each type ?