[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 2d3c211063
commit 137b1f4bc2
4 changed files with 22 additions and 3 deletions

View File

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

View File

@@ -10,6 +10,6 @@ def ts_payroll_pre_init_hook(cr):
from installing.
"""
cr.execute("UPDATE hr_work_entry_type "
"SET code = 'TS_OT-PRE-INSTALL' "
"SET code = 'TS_OT-PRE-INSTALL-14' "
"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()

View File

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