[FIX] hr_payroll_timesheet: Fixes for a database that has gone through multiple Odoo Upgrades

Init will run on install, even if the module existed in the prior version.  Because these init scripts are intended to clear (and maybe even re-name back on actual init of data), records we should be more generic with the intended name.

Additionally, if your database already had `hr_payroll_timesheet` based 'TS' work entry codes, then we cannot delete it if it is used on records like payslips (as a work type).  Delete the link to simply stop using the old record, but leave it behind to keep it working.
This commit is contained in:
Jared Kipe
2021-03-21 13:35:09 -07:00
parent 11b9ffe5ef
commit 3617188ff8
2 changed files with 20 additions and 1 deletions

View File

@@ -10,6 +10,6 @@ def ts_payroll_pre_init_hook(cr):
from installing. from installing.
""" """
cr.execute("UPDATE hr_work_entry_type " cr.execute("UPDATE hr_work_entry_type "
"SET code = 'TS_OT-PRE-INSTALL' " "SET code = 'TS_OT-PRE-INSTALL-14' "
"WHERE code = 'TS_OT';" "WHERE code = 'TS_OT';"
) )

View File

@@ -0,0 +1,19 @@
# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details.
import odoo
def migrate(cr, version):
"""
In 13.0, we had our own work type:
hr_payroll_timesheet.work_input_timesheet
This was moved to `hr_timesheet_work_entry`
We will unlink the XML ref so that the record will be kept.
"""
env = odoo.api.Environment(cr, odoo.SUPERUSER_ID, {})
xml_refs = env['ir.model.data'].search([
('module', '=', 'hr_payroll_timesheet'),
('name', '=', 'work_input_timesheet'),
])
xml_refs.unlink()