You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

66 lines
1.8 KiB

# coding: utf-8
def migrate(cr, version):
"""
The Char field 'code' from shift stage is now a Selection Field
named 'state'.
"""
# Set new field state
cr.execute(
"""
UPDATE beesdoo_shift_shift
SET state = old_code
"""
)
# Map new stage from corresponding old stage
cr.execute(
"""
UPDATE beesdoo_shift_shift
SET state = 'absent_2'
FROM res_partner
WHERE beesdoo_shift_shift.worker_id = res_partner.id
AND (
beesdoo_shift_shift.old_code = 'absent'
OR (
beesdoo_shift_shift.old_code = 'excused'
AND res_partner.working_mode = 'irregular'
)
)
"""
)
cr.execute(
"""
UPDATE beesdoo_shift_shift
SET state = 'absent_1'
FROM res_partner
WHERE beesdoo_shift_shift.worker_id = res_partner.id
AND beesdoo_shift_shift.old_code = 'excused'
AND res_partner.working_mode = 'regular'
"""
)
cr.execute(
"""
UPDATE beesdoo_shift_shift
SET state = 'absent_0'
FROM res_partner
WHERE beesdoo_shift_shift.worker_id = res_partner.id
AND beesdoo_shift_shift.old_code = 'excused_necessity'
"""
)
cr.execute(
"""
UPDATE beesdoo_shift_shift
SET state = 'absent_0'
WHERE beesdoo_shift_shift.state = 'excused'
"""
)
cr.execute(
"""
DELETE FROM beesdoo_shift_shift
WHERE beesdoo_shift_shift.state = 'absent'
"""
)
# Drop temporary columns
cr.execute("ALTER TABLE beesdoo_shift_shift DROP COLUMN old_code")