CybroOdoo / CybroAddons

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[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)

image

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 ?