[HRMS Bug] Migration to V14 Breaks Existing Payroll Entry Records

I just discovered that Payroll Entries created and pending Salary Slip submissions prior to migration to V14 are marked as undefined and those records can not be processed after migrating to V14.


This is clearly a bug that needs to be fixed.

Bumping this up in case someone has an idea how i can resolve this. I have payroll records stuck which i process due to this bug. I tried to call the submit_salary_slips function from here (https://my.instance.me/api/metod/hrms.payroll.doctype.payroll_entry.payroll_entry.submit_salary_slips) using postman to move the transaction forward but I got this error:

“exc_type”: “ValidationError”,
“exception”: “frappe.exceptions.ValidationError: Failed to get method for command hrms.payroll.doctype.payroll_entry.payroll_entry.submit_salary_slips with module ‘hrms.payroll.doctype.payroll_entry.payroll_entry’ has no attribute ‘submit_salary_slips’”,
“exc”: “["Traceback (most recent call last):\n File \"apps/frappe/frappe/handler.py\", line 72, in execute_cmd\n method = get_attr(cmd)\n File \"apps/frappe/frappe/handler.py\", line 258, in get_attr\n method = frappe.get_attr(cmd)\n File \"apps/frappe/frappe/init.py\", line 1580, in get_attr\n return getattr(get_module(modulename), methodname)\nAttributeError: module ‘hrms.payroll.doctype.payroll_entry.payroll_entry’ has no attribute ‘submit_salary_slips’\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"apps/frappe/frappe/app.py\", line 69, in application\n response = frappe.api.handle()\n File \"apps/frappe/frappe/api.py\", line 54, in handle\n return frappe.handler.handle()\n File \"apps/frappe/frappe/handler.py\", line 45, in handle\n data = execute_cmd(cmd)\n File \"apps/frappe/frappe/handler.py\", line 74, in execute_cmd\n frappe.throw(_(\"Failed to get method for command {0} with {1}\").format(cmd, e))\n File \"apps/frappe/frappe/init.py\", line 525, in throw\n msgprint(\n File \"apps/frappe/frappe/init.py\", line 493, in msgprint\n _raise_exception()\n File \"apps/frappe/frappe/init.py\", line 442, in _raise_exception\n raise raise_exception(msg)\nfrappe.exceptions.ValidationError: Failed to get method for command hrms.payroll.doctype.payroll_entry.payroll_entry.submit_salary_slips with module ‘hrms.payroll.doctype.payroll_entry.payroll_entry’ has no attribute ‘submit_salary_slips’\n"]”,
“_server_messages”: “["{\"message\": \"Failed to get method for command hrms.payroll.doctype.payroll_entry.payroll_entry.submit_salary_slips with module ‘hrms.payroll.doctype.payroll_entry.payroll_entry’ has no attribute ‘submit_salary_slips’\", \"title\": \"Message\", \"indicator\": \"red\", \"raise_exception\": 1}"]”

I’m stuck and don’t know what to do. Any help will be appreciated.

yes that is not the first time it happened. I have the same problem.
This is very critical to production environments and especially payroll should never be broken by a update.

@pronext can you share steps to reproduce?

Yeah having years of payroll data and then updating to v14 gets all statuses of the payroll entries like this:

image “null”

Also the well known bug like already described here

Rounding Error when Making Bank Entry in payroll processing and here
Error when Making Bank Entry in payroll processing - #24 by pronext

is still happening ignoring what is set in the formular or in system-wide rounding settings.

Do you have any customizations?

none.