[OU-ADD] intrastat_base: Migration scripts

Handle the change from boolean to selection on `instrastat` field
in account.fiscal.position.

TT49367
This commit is contained in:
Pedro M. Baeza
2024-05-27 14:37:01 +02:00
parent e0ce298351
commit b8a9a33e6f
2 changed files with 38 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
# Copyright 2024 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade
@openupgrade.migrate()
def migrate(env, version):
# Set proper values for new selection field
old_column = openupgrade.get_legacy_name("intrastat")
openupgrade.logged_query(
env.cr,
f"""
UPDATE account_fiscal_position
SET intrastat = CASE
WHEN NOT {old_column} THEN 'no'
ELSE 'b2b' END
""",
)
# Propagate proper values to the related field
openupgrade.logged_query(
env.cr,
"""
UPDATE account_move am
SET intrastat_fiscal_position = afp.intrastat
FROM account_fiscal_position afp
WHERE afp.id = am.fiscal_position_id
""",
)

View File

@@ -0,0 +1,10 @@
# Copyright 2024 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade
@openupgrade.migrate()
def migrate(env, version):
openupgrade.rename_columns(
env.cr, {"account_fiscal_position": [("intrastat", None)]}
)