From 9d8a6395ce86ce0922521eac13c55df2f867f457 Mon Sep 17 00:00:00 2001 From: Nguyen Minh Chien Date: Tue, 2 Dec 2025 11:35:53 +0700 Subject: [PATCH 1/2] [UPD] foodcoop18: update to make it work with Lalouve db (by Hoang) --- .../scripts/base/18.0.1.3/pre-migration.py | 12 + .../18.0.2.2/post-migration.py | 28 + .../l10n_fr_account/18.0.2.2/pre-migration.py | 679 ++++++++++++++++++ 3 files changed, 719 insertions(+) diff --git a/openupgrade_scripts/scripts/base/18.0.1.3/pre-migration.py b/openupgrade_scripts/scripts/base/18.0.1.3/pre-migration.py index 7a3d946680b9..d51e2fb1330f 100644 --- a/openupgrade_scripts/scripts/base/18.0.1.3/pre-migration.py +++ b/openupgrade_scripts/scripts/base/18.0.1.3/pre-migration.py @@ -61,6 +61,17 @@ def _fix_company_layout_background(cr): "WHERE layout_background='Geometric'", ) +# trobz migrate +def _fix_barcode_json_value_compatibility(cr): + """ """ + openupgrade.logged_query( + cr, + r"""UPDATE res_partner + SET barcode = '"' || barcode || '"' + WHERE barcode IS NOT NULL + AND (barcode !~ '^\s*[{[].*[]}]$');""", + ) + @openupgrade.migrate(use_env=False) def migrate(cr, version): @@ -79,3 +90,4 @@ def migrate(cr, version): _fix_list_view_mode(cr) _fix_serbian_res_lang_record(cr) _fix_company_layout_background(cr) + _fix_barcode_json_value_compatibility(cr) \ No newline at end of file diff --git a/openupgrade_scripts/scripts/l10n_fr_account/18.0.2.2/post-migration.py b/openupgrade_scripts/scripts/l10n_fr_account/18.0.2.2/post-migration.py index fe66ea231117..87059608db50 100644 --- a/openupgrade_scripts/scripts/l10n_fr_account/18.0.2.2/post-migration.py +++ b/openupgrade_scripts/scripts/l10n_fr_account/18.0.2.2/post-migration.py @@ -1,6 +1,8 @@ # Copyright 2025 Le Filament (https://le-filament.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +import logging + from openupgradelib import openupgrade @@ -12,10 +14,36 @@ def _update_existing_tax_accounts(env): fr_companies = env["res.company"].search([("chart_template", "=", "fr")]) for company in fr_companies: account_44551 = env.ref("account." + str(company.id) + "_pcg_44551", False) + + # trobz migrate: somehow, xml_id in tax account 445511 doesn't have correct + # xml_id as above, Trobz search code and company directly here + account_44551_backup = env["account.account"].search( + [("code", "=", "445510"), ("company_ids", "in", company.id)], limit=1 + ) + + if not account_44551: + logging.info( + f"not found account_44551, account_44551_backup: {account_44551_backup}" + ) + account_44551 = account_44551_backup + if account_44551: account_44551.account_type = "liability_payable" account_44551.non_trade = True + account_44567 = env.ref("account." + str(company.id) + "_pcg_44567", False) + + # trobz migrate: somehow, xml_id in tax account 445511 doesn't have correct + # xml_id as above, Trobz search code and company directly here + account_44567_backup = env["account.account"].search( + [("code", "=", "445670"), ("company_ids", "in", company.id)], limit=1 + ) + if not account_44567: + logging.info( + f"not found account_44567, account_44567_backup: {account_44551_backup}" + ) + account_44567 = account_44567_backup + if account_44567: account_44567.account_type = "asset_receivable" account_44567.non_trade = True diff --git a/openupgrade_scripts/scripts/l10n_fr_account/18.0.2.2/pre-migration.py b/openupgrade_scripts/scripts/l10n_fr_account/18.0.2.2/pre-migration.py index dfe36ec18bef..f9193df89b69 100644 --- a/openupgrade_scripts/scripts/l10n_fr_account/18.0.2.2/pre-migration.py +++ b/openupgrade_scripts/scripts/l10n_fr_account/18.0.2.2/pre-migration.py @@ -11,9 +11,688 @@ ("account_fr_fec", "l10n_fr_fec_export_wizard"), ] +_xmlids_renames = [ + ( + "l10n_fr.account_fr_tag_charges_sociales", + "l10n_fr_account.account_fr_tag_charges_sociales", + ), + ("l10n_fr.account_fr_tag_salaires", "l10n_fr_account.account_fr_tag_salaires"), + ("l10n_fr.tax_report", "l10n_fr_account.tax_report"), + ("l10n_fr.tax_report_adjustment", "l10n_fr_account.tax_report_adjustment"), + ("l10n_fr.tax_report_balance", "l10n_fr_account.tax_report_balance"), + ( + "l10n_fr.tax_report_08_base_adjustment", + "l10n_fr_account.tax_report_08_base_adjustment", + ), + ( + "l10n_fr.tax_report_08_base_balance_from_tags", + "l10n_fr_account.tax_report_08_base_balance_from_tags", + ), + ("l10n_fr.tax_report_08_base_tag", "l10n_fr_account.tax_report_08_base_tag"), + ("l10n_fr.tax_report_08_taxe_tag", "l10n_fr_account.tax_report_08_taxe_tag"), + ( + "l10n_fr.tax_report_08_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_08_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_09_base_adjustment", + "l10n_fr_account.tax_report_09_base_adjustment", + ), + ( + "l10n_fr.tax_report_09_base_balance_from_tags", + "l10n_fr_account.tax_report_09_base_balance_from_tags", + ), + ("l10n_fr.tax_report_09_base_tag", "l10n_fr_account.tax_report_09_base_tag"), + ("l10n_fr.tax_report_09_taxe_tag", "l10n_fr_account.tax_report_09_taxe_tag"), + ( + "l10n_fr.tax_report_09_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_09_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_10_base_adjustment", + "l10n_fr_account.tax_report_10_base_adjustment", + ), + ( + "l10n_fr.tax_report_10_base_balance_from_tags", + "l10n_fr_account.tax_report_10_base_balance_from_tags", + ), + ("l10n_fr.tax_report_10_base_tag", "l10n_fr_account.tax_report_10_base_tag"), + ("l10n_fr.tax_report_10_taxe_tag", "l10n_fr_account.tax_report_10_taxe_tag"), + ( + "l10n_fr.tax_report_10_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_10_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_11_base_adjustment", + "l10n_fr_account.tax_report_11_base_adjustment", + ), + ( + "l10n_fr.tax_report_11_base_balance_from_tags", + "l10n_fr_account.tax_report_11_base_balance_from_tags", + ), + ("l10n_fr.tax_report_11_base_tag", "l10n_fr_account.tax_report_11_base_tag"), + ("l10n_fr.tax_report_11_taxe_tag", "l10n_fr_account.tax_report_11_taxe_tag"), + ( + "l10n_fr.tax_report_11_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_11_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_13_base_adjustment", + "l10n_fr_account.tax_report_13_base_adjustment", + ), + ( + "l10n_fr.tax_report_13_base_balance_from_tags", + "l10n_fr_account.tax_report_13_base_balance_from_tags", + ), + ("l10n_fr.tax_report_13_base_tag", "l10n_fr_account.tax_report_13_base_tag"), + ("l10n_fr.tax_report_13_taxe_tag", "l10n_fr_account.tax_report_13_taxe_tag"), + ( + "l10n_fr.tax_report_14_base_adjustment", + "l10n_fr_account.tax_report_14_base_adjustment", + ), + ( + "l10n_fr.tax_report_14_base_balance_from_tags", + "l10n_fr_account.tax_report_14_base_balance_from_tags", + ), + ("l10n_fr.tax_report_14_base_tag", "l10n_fr_account.tax_report_14_base_tag"), + ("l10n_fr.tax_report_14_taxe_tag", "l10n_fr_account.tax_report_14_taxe_tag"), + ("l10n_fr.tax_report_15_1_tag", "l10n_fr_account.tax_report_15_1_tag"), + ("l10n_fr.tax_report_15_2_tag", "l10n_fr_account.tax_report_15_2_tag"), + ("l10n_fr.tax_report_15_tag", "l10n_fr_account.tax_report_15_tag"), + ("l10n_fr.tax_report_16_formula", "l10n_fr_account.tax_report_16_formula"), + ("l10n_fr.tax_report_17_tag", "l10n_fr_account.tax_report_17_tag"), + ("l10n_fr.tax_report_18_tag", "l10n_fr_account.tax_report_18_tag"), + ("l10n_fr.tax_report_19_tag", "l10n_fr_account.tax_report_19_tag"), + ("l10n_fr.tax_report_20_tag", "l10n_fr_account.tax_report_20_tag"), + ("l10n_fr.tax_report_21_tag", "l10n_fr_account.tax_report_21_tag"), + ("l10n_fr.tax_report_22A_tag", "l10n_fr_account.tax_report_22A_tag"), + ( + "l10n_fr.tax_report_22_applied_carryover", + "l10n_fr_account.tax_report_22_applied_carryover", + ), + ("l10n_fr.tax_report_22_balance", "l10n_fr_account.tax_report_22_balance"), + ("l10n_fr.tax_report_22_tag", "l10n_fr_account.tax_report_22_tag"), + ("l10n_fr.tax_report_23_formula", "l10n_fr_account.tax_report_23_formula"), + ("l10n_fr.tax_report_24_tag", "l10n_fr_account.tax_report_24_tag"), + ("l10n_fr.tax_report_25_formula", "l10n_fr_account.tax_report_25_formula"), + ("l10n_fr.tax_report_27_carryover", "l10n_fr_account.tax_report_27_carryover"), + ("l10n_fr.tax_report_27_formula", "l10n_fr_account.tax_report_27_formula"), + ( + "l10n_fr.tax_report_27_formula_temp", + "l10n_fr_account.tax_report_27_formula_temp", + ), + ("l10n_fr.tax_report_28_formula", "l10n_fr_account.tax_report_28_formula"), + ("l10n_fr.tax_report_29_tag", "l10n_fr_account.tax_report_29_tag"), + ("l10n_fr.tax_report_2C_tag", "l10n_fr_account.tax_report_2C_tag"), + ("l10n_fr.tax_report_2E_tag", "l10n_fr_account.tax_report_2E_tag"), + ("l10n_fr.tax_report_32_formula", "l10n_fr_account.tax_report_32_formula"), + ("l10n_fr.tax_report_5B_tag", "l10n_fr_account.tax_report_5B_tag"), + ( + "l10n_fr.tax_report_9B_base_adjustment", + "l10n_fr_account.tax_report_9B_base_adjustment", + ), + ( + "l10n_fr.tax_report_9B_base_balance_from_tags", + "l10n_fr_account.tax_report_9B_base_balance_from_tags", + ), + ("l10n_fr.tax_report_9B_base_tag", "l10n_fr_account.tax_report_9B_base_tag"), + ("l10n_fr.tax_report_9B_taxe_tag", "l10n_fr_account.tax_report_9B_taxe_tag"), + ( + "l10n_fr.tax_report_9B_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_9B_taxe_tag_no_rounding", + ), + ("l10n_fr.tax_report_A1_adjustment", "l10n_fr_account.tax_report_A1_adjustment"), + ( + "l10n_fr.tax_report_A1_balance_from_tags", + "l10n_fr_account.tax_report_A1_balance_from_tags", + ), + ("l10n_fr.tax_report_A1_tag", "l10n_fr_account.tax_report_A1_tag"), + ("l10n_fr.tax_report_A2_adjustment", "l10n_fr_account.tax_report_A2_adjustment"), + ( + "l10n_fr.tax_report_A2_balance_from_tags", + "l10n_fr_account.tax_report_A2_balance_from_tags", + ), + ("l10n_fr.tax_report_A2_tag", "l10n_fr_account.tax_report_A2_tag"), + ("l10n_fr.tax_report_A3_adjustment", "l10n_fr_account.tax_report_A3_adjustment"), + ( + "l10n_fr.tax_report_A3_balance_from_tags", + "l10n_fr_account.tax_report_A3_balance_from_tags", + ), + ("l10n_fr.tax_report_A3_tag", "l10n_fr_account.tax_report_A3_tag"), + ("l10n_fr.tax_report_A4_adjustment", "l10n_fr_account.tax_report_A4_adjustment"), + ( + "l10n_fr.tax_report_A4_balance_from_tags", + "l10n_fr_account.tax_report_A4_balance_from_tags", + ), + ("l10n_fr.tax_report_A4_tag", "l10n_fr_account.tax_report_A4_tag"), + ("l10n_fr.tax_report_A5_adjustment", "l10n_fr_account.tax_report_A5_adjustment"), + ( + "l10n_fr.tax_report_A5_balance_from_tags", + "l10n_fr_account.tax_report_A5_balance_from_tags", + ), + ("l10n_fr.tax_report_A5_tag", "l10n_fr_account.tax_report_A5_tag"), + ("l10n_fr.tax_report_AA_tag", "l10n_fr_account.tax_report_AA_tag"), + ("l10n_fr.tax_report_B1_adjustment", "l10n_fr_account.tax_report_B1_adjustment"), + ( + "l10n_fr.tax_report_B1_balance_from_tags", + "l10n_fr_account.tax_report_B1_balance_from_tags", + ), + ("l10n_fr.tax_report_B1_tag", "l10n_fr_account.tax_report_B1_tag"), + ("l10n_fr.tax_report_B2_adjustment", "l10n_fr_account.tax_report_B2_adjustment"), + ( + "l10n_fr.tax_report_B2_balance_from_tags", + "l10n_fr_account.tax_report_B2_balance_from_tags", + ), + ("l10n_fr.tax_report_B2_tag", "l10n_fr_account.tax_report_B2_tag"), + ("l10n_fr.tax_report_B3_adjustment", "l10n_fr_account.tax_report_B3_adjustment"), + ( + "l10n_fr.tax_report_B3_balance_from_tags", + "l10n_fr_account.tax_report_B3_balance_from_tags", + ), + ("l10n_fr.tax_report_B3_tag", "l10n_fr_account.tax_report_B3_tag"), + ("l10n_fr.tax_report_B4_adjustment", "l10n_fr_account.tax_report_B4_adjustment"), + ( + "l10n_fr.tax_report_B4_balance_from_tags", + "l10n_fr_account.tax_report_B4_balance_from_tags", + ), + ("l10n_fr.tax_report_B4_tag", "l10n_fr_account.tax_report_B4_tag"), + ("l10n_fr.tax_report_B5_adjustment", "l10n_fr_account.tax_report_B5_adjustment"), + ( + "l10n_fr.tax_report_B5_balance_from_tags", + "l10n_fr_account.tax_report_B5_balance_from_tags", + ), + ("l10n_fr.tax_report_B5_tag", "l10n_fr_account.tax_report_B5_tag"), + ("l10n_fr.tax_report_E1_adjustment", "l10n_fr_account.tax_report_E1_adjustment"), + ( + "l10n_fr.tax_report_E1_balance_from_tags", + "l10n_fr_account.tax_report_E1_balance_from_tags", + ), + ("l10n_fr.tax_report_E1_tag", "l10n_fr_account.tax_report_E1_tag"), + ("l10n_fr.tax_report_E2_adjustment", "l10n_fr_account.tax_report_E2_adjustment"), + ( + "l10n_fr.tax_report_E2_balance_from_tags", + "l10n_fr_account.tax_report_E2_balance_from_tags", + ), + ("l10n_fr.tax_report_E2_tag", "l10n_fr_account.tax_report_E2_tag"), + ("l10n_fr.tax_report_E3_adjustment", "l10n_fr_account.tax_report_E3_adjustment"), + ( + "l10n_fr.tax_report_E3_balance_from_tags", + "l10n_fr_account.tax_report_E3_balance_from_tags", + ), + ("l10n_fr.tax_report_E3_tag", "l10n_fr_account.tax_report_E3_tag"), + ("l10n_fr.tax_report_E4_adjustment", "l10n_fr_account.tax_report_E4_adjustment"), + ( + "l10n_fr.tax_report_E4_balance_from_tags", + "l10n_fr_account.tax_report_E4_balance_from_tags", + ), + ("l10n_fr.tax_report_E4_tag", "l10n_fr_account.tax_report_E4_tag"), + ("l10n_fr.tax_report_E5_adjustment", "l10n_fr_account.tax_report_E5_adjustment"), + ( + "l10n_fr.tax_report_E5_balance_from_tags", + "l10n_fr_account.tax_report_E5_balance_from_tags", + ), + ("l10n_fr.tax_report_E5_tag", "l10n_fr_account.tax_report_E5_tag"), + ("l10n_fr.tax_report_E6_adjustment", "l10n_fr_account.tax_report_E6_adjustment"), + ( + "l10n_fr.tax_report_E6_balance_from_tags", + "l10n_fr_account.tax_report_E6_balance_from_tags", + ), + ("l10n_fr.tax_report_E6_tag", "l10n_fr_account.tax_report_E6_tag"), + ("l10n_fr.tax_report_F1_adjustment", "l10n_fr_account.tax_report_F1_adjustment"), + ( + "l10n_fr.tax_report_F1_balance_from_tags", + "l10n_fr_account.tax_report_F1_balance_from_tags", + ), + ("l10n_fr.tax_report_F1_tag", "l10n_fr_account.tax_report_F1_tag"), + ("l10n_fr.tax_report_F2_adjustment", "l10n_fr_account.tax_report_F2_adjustment"), + ( + "l10n_fr.tax_report_F2_balance_from_tags", + "l10n_fr_account.tax_report_F2_balance_from_tags", + ), + ("l10n_fr.tax_report_F2_tag", "l10n_fr_account.tax_report_F2_tag"), + ("l10n_fr.tax_report_F3_adjustment", "l10n_fr_account.tax_report_F3_adjustment"), + ( + "l10n_fr.tax_report_F3_balance_from_tags", + "l10n_fr_account.tax_report_F3_balance_from_tags", + ), + ("l10n_fr.tax_report_F3_tag", "l10n_fr_account.tax_report_F3_tag"), + ("l10n_fr.tax_report_F4_adjustment", "l10n_fr_account.tax_report_F4_adjustment"), + ( + "l10n_fr.tax_report_F4_balance_from_tags", + "l10n_fr_account.tax_report_F4_balance_from_tags", + ), + ("l10n_fr.tax_report_F4_tag", "l10n_fr_account.tax_report_F4_tag"), + ("l10n_fr.tax_report_F5_adjustment", "l10n_fr_account.tax_report_F5_adjustment"), + ( + "l10n_fr.tax_report_F5_balance_from_tags", + "l10n_fr_account.tax_report_F5_balance_from_tags", + ), + ("l10n_fr.tax_report_F5_tag", "l10n_fr_account.tax_report_F5_tag"), + ("l10n_fr.tax_report_F6_adjustment", "l10n_fr_account.tax_report_F6_adjustment"), + ( + "l10n_fr.tax_report_F6_balance_from_tags", + "l10n_fr_account.tax_report_F6_balance_from_tags", + ), + ("l10n_fr.tax_report_F6_tag", "l10n_fr_account.tax_report_F6_tag"), + ("l10n_fr.tax_report_F7_adjustment", "l10n_fr_account.tax_report_F7_adjustment"), + ( + "l10n_fr.tax_report_F7_balance_from_tags", + "l10n_fr_account.tax_report_F7_balance_from_tags", + ), + ("l10n_fr.tax_report_F7_tag", "l10n_fr_account.tax_report_F7_tag"), + ("l10n_fr.tax_report_F8_adjustment", "l10n_fr_account.tax_report_F8_adjustment"), + ( + "l10n_fr.tax_report_F8_balance_from_tags", + "l10n_fr_account.tax_report_F8_balance_from_tags", + ), + ("l10n_fr.tax_report_F8_tag", "l10n_fr_account.tax_report_F8_tag"), + ("l10n_fr.tax_report_F9_adjustment", "l10n_fr_account.tax_report_F9_adjustment"), + ( + "l10n_fr.tax_report_F9_balance_from_tags", + "l10n_fr_account.tax_report_F9_balance_from_tags", + ), + ("l10n_fr.tax_report_F9_tag", "l10n_fr_account.tax_report_F9_tag"), + ( + "l10n_fr.tax_report_I1_base_adjustment", + "l10n_fr_account.tax_report_I1_base_adjustment", + ), + ( + "l10n_fr.tax_report_I1_base_balance_from_tags", + "l10n_fr_account.tax_report_I1_base_balance_from_tags", + ), + ("l10n_fr.tax_report_I1_base_tag", "l10n_fr_account.tax_report_I1_base_tag"), + ("l10n_fr.tax_report_I1_taxe_tag", "l10n_fr_account.tax_report_I1_taxe_tag"), + ( + "l10n_fr.tax_report_I1_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_I1_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_I2_base_adjustment", + "l10n_fr_account.tax_report_I2_base_adjustment", + ), + ( + "l10n_fr.tax_report_I2_base_balance_from_tags", + "l10n_fr_account.tax_report_I2_base_balance_from_tags", + ), + ("l10n_fr.tax_report_I2_base_tag", "l10n_fr_account.tax_report_I2_base_tag"), + ("l10n_fr.tax_report_I2_taxe_tag", "l10n_fr_account.tax_report_I2_taxe_tag"), + ( + "l10n_fr.tax_report_I2_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_I2_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_I3_base_adjustment", + "l10n_fr_account.tax_report_I3_base_adjustment", + ), + ( + "l10n_fr.tax_report_I3_base_balance_from_tags", + "l10n_fr_account.tax_report_I3_base_balance_from_tags", + ), + ("l10n_fr.tax_report_I3_base_tag", "l10n_fr_account.tax_report_I3_base_tag"), + ("l10n_fr.tax_report_I3_taxe_tag", "l10n_fr_account.tax_report_I3_taxe_tag"), + ( + "l10n_fr.tax_report_I3_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_I3_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_I4_base_adjustment", + "l10n_fr_account.tax_report_I4_base_adjustment", + ), + ( + "l10n_fr.tax_report_I4_base_balance_from_tags", + "l10n_fr_account.tax_report_I4_base_balance_from_tags", + ), + ("l10n_fr.tax_report_I4_base_tag", "l10n_fr_account.tax_report_I4_base_tag"), + ("l10n_fr.tax_report_I4_taxe_tag", "l10n_fr_account.tax_report_I4_taxe_tag"), + ( + "l10n_fr.tax_report_I4_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_I4_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_I5_base_adjustment", + "l10n_fr_account.tax_report_I5_base_adjustment", + ), + ( + "l10n_fr.tax_report_I5_base_balance_from_tags", + "l10n_fr_account.tax_report_I5_base_balance_from_tags", + ), + ("l10n_fr.tax_report_I5_base_tag", "l10n_fr_account.tax_report_I5_base_tag"), + ("l10n_fr.tax_report_I5_taxe_tag", "l10n_fr_account.tax_report_I5_taxe_tag"), + ( + "l10n_fr.tax_report_I5_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_I5_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_I6_base_adjustment", + "l10n_fr_account.tax_report_I6_base_adjustment", + ), + ( + "l10n_fr.tax_report_I6_base_balance_from_tags", + "l10n_fr_account.tax_report_I6_base_balance_from_tags", + ), + ("l10n_fr.tax_report_I6_base_tag", "l10n_fr_account.tax_report_I6_base_tag"), + ("l10n_fr.tax_report_I6_taxe_tag", "l10n_fr_account.tax_report_I6_taxe_tag"), + ( + "l10n_fr.tax_report_I6_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_I6_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_P1_base_adjustment", + "l10n_fr_account.tax_report_P1_base_adjustment", + ), + ( + "l10n_fr.tax_report_P1_base_balance_from_tags", + "l10n_fr_account.tax_report_P1_base_balance_from_tags", + ), + ("l10n_fr.tax_report_P1_base_tag", "l10n_fr_account.tax_report_P1_base_tag"), + ("l10n_fr.tax_report_P1_taxe_tag", "l10n_fr_account.tax_report_P1_taxe_tag"), + ( + "l10n_fr.tax_report_P1_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_P1_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_P2_base_adjustment", + "l10n_fr_account.tax_report_P2_base_adjustment", + ), + ( + "l10n_fr.tax_report_P2_base_balance_from_tags", + "l10n_fr_account.tax_report_P2_base_balance_from_tags", + ), + ("l10n_fr.tax_report_P2_base_tag", "l10n_fr_account.tax_report_P2_base_tag"), + ("l10n_fr.tax_report_P2_taxe_tag", "l10n_fr_account.tax_report_P2_taxe_tag"), + ( + "l10n_fr.tax_report_P2_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_P2_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_T1_base_adjustment", + "l10n_fr_account.tax_report_T1_base_adjustment", + ), + ( + "l10n_fr.tax_report_T1_base_balance_from_tags", + "l10n_fr_account.tax_report_T1_base_balance_from_tags", + ), + ("l10n_fr.tax_report_T1_base_tag", "l10n_fr_account.tax_report_T1_base_tag"), + ("l10n_fr.tax_report_T1_taxe_tag", "l10n_fr_account.tax_report_T1_taxe_tag"), + ( + "l10n_fr.tax_report_T1_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_T1_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_T2_base_adjustment", + "l10n_fr_account.tax_report_T2_base_adjustment", + ), + ( + "l10n_fr.tax_report_T2_base_balance_from_tags", + "l10n_fr_account.tax_report_T2_base_balance_from_tags", + ), + ("l10n_fr.tax_report_T2_base_tag", "l10n_fr_account.tax_report_T2_base_tag"), + ("l10n_fr.tax_report_T2_taxe_tag", "l10n_fr_account.tax_report_T2_taxe_tag"), + ( + "l10n_fr.tax_report_T2_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_T2_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_T3_base_adjustment", + "l10n_fr_account.tax_report_T3_base_adjustment", + ), + ( + "l10n_fr.tax_report_T3_base_balance_from_tags", + "l10n_fr_account.tax_report_T3_base_balance_from_tags", + ), + ("l10n_fr.tax_report_T3_base_tag", "l10n_fr_account.tax_report_T3_base_tag"), + ("l10n_fr.tax_report_T3_taxe_tag", "l10n_fr_account.tax_report_T3_taxe_tag"), + ( + "l10n_fr.tax_report_T3_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_T3_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_T4_base_adjustment", + "l10n_fr_account.tax_report_T4_base_adjustment", + ), + ( + "l10n_fr.tax_report_T4_base_balance_from_tags", + "l10n_fr_account.tax_report_T4_base_balance_from_tags", + ), + ("l10n_fr.tax_report_T4_base_tag", "l10n_fr_account.tax_report_T4_base_tag"), + ("l10n_fr.tax_report_T4_taxe_tag", "l10n_fr_account.tax_report_T4_taxe_tag"), + ( + "l10n_fr.tax_report_T4_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_T4_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_T5_base_adjustment", + "l10n_fr_account.tax_report_T5_base_adjustment", + ), + ( + "l10n_fr.tax_report_T5_base_balance_from_tags", + "l10n_fr_account.tax_report_T5_base_balance_from_tags", + ), + ("l10n_fr.tax_report_T5_base_tag", "l10n_fr_account.tax_report_T5_base_tag"), + ("l10n_fr.tax_report_T5_taxe_tag", "l10n_fr_account.tax_report_T5_taxe_tag"), + ( + "l10n_fr.tax_report_T5_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_T5_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_T6_base_adjustment", + "l10n_fr_account.tax_report_T6_base_adjustment", + ), + ( + "l10n_fr.tax_report_T6_base_balance_from_tags", + "l10n_fr_account.tax_report_T6_base_balance_from_tags", + ), + ("l10n_fr.tax_report_T6_base_tag", "l10n_fr_account.tax_report_T6_base_tag"), + ("l10n_fr.tax_report_T6_taxe_tag", "l10n_fr_account.tax_report_T6_taxe_tag"), + ( + "l10n_fr.tax_report_T6_taxe_tag_no_rounding", + "l10n_fr_account.tax_report_T6_taxe_tag_no_rounding", + ), + ( + "l10n_fr.tax_report_T7_base_adjustment", + "l10n_fr_account.tax_report_T7_base_adjustment", + ), + ( + "l10n_fr.tax_report_T7_base_balance_from_tags", + "l10n_fr_account.tax_report_T7_base_balance_from_tags", + ), + ("l10n_fr.tax_report_T7_base_tag", "l10n_fr_account.tax_report_T7_base_tag"), + ("l10n_fr.tax_report_T7_taxe_tag", "l10n_fr_account.tax_report_T7_taxe_tag"), + ("l10n_fr.tax_report_TICC_tag", "l10n_fr_account.tax_report_TICC_tag"), + ("l10n_fr.tax_report_TICFE_tag", "l10n_fr_account.tax_report_TICFE_tag"), + ("l10n_fr.tax_report_TICGN_tag", "l10n_fr_account.tax_report_TICGN_tag"), + ( + "l10n_fr.tax_report_TIC_total_formula", + "l10n_fr_account.tax_report_TIC_total_formula", + ), + ("l10n_fr.tax_report_X1_tag", "l10n_fr_account.tax_report_X1_tag"), + ("l10n_fr.tax_report_X2_tag", "l10n_fr_account.tax_report_X2_tag"), + ("l10n_fr.tax_report_X3_tag", "l10n_fr_account.tax_report_X3_tag"), + ("l10n_fr.tax_report_X4_formula", "l10n_fr_account.tax_report_X4_formula"), + ("l10n_fr.tax_report_Y1_formula", "l10n_fr_account.tax_report_Y1_formula"), + ("l10n_fr.tax_report_Y2_formula", "l10n_fr_account.tax_report_Y2_formula"), + ("l10n_fr.tax_report_Y3_formula", "l10n_fr_account.tax_report_Y3_formula"), + ("l10n_fr.tax_report_Z1_tag", "l10n_fr_account.tax_report_Z1_tag"), + ("l10n_fr.tax_report_Z2_tag", "l10n_fr_account.tax_report_Z2_tag"), + ("l10n_fr.tax_report_Z3_tag", "l10n_fr_account.tax_report_Z3_tag"), + ("l10n_fr.tax_report_Z4_formula", "l10n_fr_account.tax_report_Z4_formula"), + ("l10n_fr.tax_report_td_formula", "l10n_fr_account.tax_report_td_formula"), + ("l10n_fr.tax_report_08_base", "l10n_fr_account.tax_report_08_base"), + ("l10n_fr.tax_report_08_taxe", "l10n_fr_account.tax_report_08_taxe"), + ("l10n_fr.tax_report_09_base", "l10n_fr_account.tax_report_09_base"), + ("l10n_fr.tax_report_09_taxe", "l10n_fr_account.tax_report_09_taxe"), + ("l10n_fr.tax_report_10_base", "l10n_fr_account.tax_report_10_base"), + ("l10n_fr.tax_report_10_taxe", "l10n_fr_account.tax_report_10_taxe"), + ("l10n_fr.tax_report_11_base", "l10n_fr_account.tax_report_11_base"), + ("l10n_fr.tax_report_11_taxe", "l10n_fr_account.tax_report_11_taxe"), + ("l10n_fr.tax_report_13_base", "l10n_fr_account.tax_report_13_base"), + ("l10n_fr.tax_report_13_taxe", "l10n_fr_account.tax_report_13_taxe"), + ("l10n_fr.tax_report_14_base", "l10n_fr_account.tax_report_14_base"), + ("l10n_fr.tax_report_14_taxe", "l10n_fr_account.tax_report_14_taxe"), + ("l10n_fr.tax_report_15", "l10n_fr_account.tax_report_15"), + ("l10n_fr.tax_report_15_1", "l10n_fr_account.tax_report_15_1"), + ("l10n_fr.tax_report_15_2", "l10n_fr_account.tax_report_15_2"), + ("l10n_fr.tax_report_16", "l10n_fr_account.tax_report_16"), + ("l10n_fr.tax_report_17", "l10n_fr_account.tax_report_17"), + ("l10n_fr.tax_report_18", "l10n_fr_account.tax_report_18"), + ("l10n_fr.tax_report_19", "l10n_fr_account.tax_report_19"), + ("l10n_fr.tax_report_20", "l10n_fr_account.tax_report_20"), + ("l10n_fr.tax_report_21", "l10n_fr_account.tax_report_21"), + ("l10n_fr.tax_report_22", "l10n_fr_account.tax_report_22"), + ("l10n_fr.tax_report_22A", "l10n_fr_account.tax_report_22A"), + ("l10n_fr.tax_report_23", "l10n_fr_account.tax_report_23"), + ("l10n_fr.tax_report_24", "l10n_fr_account.tax_report_24"), + ("l10n_fr.tax_report_25", "l10n_fr_account.tax_report_25"), + ("l10n_fr.tax_report_27", "l10n_fr_account.tax_report_27"), + ("l10n_fr.tax_report_28", "l10n_fr_account.tax_report_28"), + ("l10n_fr.tax_report_29", "l10n_fr_account.tax_report_29"), + ("l10n_fr.tax_report_2C", "l10n_fr_account.tax_report_2C"), + ("l10n_fr.tax_report_2E", "l10n_fr_account.tax_report_2E"), + ("l10n_fr.tax_report_32", "l10n_fr_account.tax_report_32"), + ("l10n_fr.tax_report_5B", "l10n_fr_account.tax_report_5B"), + ("l10n_fr.tax_report_9B_base", "l10n_fr_account.tax_report_9B_base"), + ("l10n_fr.tax_report_9B_taxe", "l10n_fr_account.tax_report_9B_taxe"), + ("l10n_fr.tax_report_A1", "l10n_fr_account.tax_report_A1"), + ("l10n_fr.tax_report_A2", "l10n_fr_account.tax_report_A2"), + ("l10n_fr.tax_report_A3", "l10n_fr_account.tax_report_A3"), + ("l10n_fr.tax_report_A4", "l10n_fr_account.tax_report_A4"), + ("l10n_fr.tax_report_A5", "l10n_fr_account.tax_report_A5"), + ("l10n_fr.tax_report_AA", "l10n_fr_account.tax_report_AA"), + ("l10n_fr.tax_report_AB", "l10n_fr_account.tax_report_AB"), + ("l10n_fr.tax_report_B1", "l10n_fr_account.tax_report_B1"), + ("l10n_fr.tax_report_B2", "l10n_fr_account.tax_report_B2"), + ("l10n_fr.tax_report_B3", "l10n_fr_account.tax_report_B3"), + ("l10n_fr.tax_report_B4", "l10n_fr_account.tax_report_B4"), + ("l10n_fr.tax_report_B5", "l10n_fr_account.tax_report_B5"), + ("l10n_fr.tax_report_E1", "l10n_fr_account.tax_report_E1"), + ("l10n_fr.tax_report_E2", "l10n_fr_account.tax_report_E2"), + ("l10n_fr.tax_report_E3", "l10n_fr_account.tax_report_E3"), + ("l10n_fr.tax_report_E4", "l10n_fr_account.tax_report_E4"), + ("l10n_fr.tax_report_E5", "l10n_fr_account.tax_report_E5"), + ("l10n_fr.tax_report_E6", "l10n_fr_account.tax_report_E6"), + ("l10n_fr.tax_report_F1", "l10n_fr_account.tax_report_F1"), + ("l10n_fr.tax_report_F2", "l10n_fr_account.tax_report_F2"), + ("l10n_fr.tax_report_F3", "l10n_fr_account.tax_report_F3"), + ("l10n_fr.tax_report_F4", "l10n_fr_account.tax_report_F4"), + ("l10n_fr.tax_report_F5", "l10n_fr_account.tax_report_F5"), + ("l10n_fr.tax_report_F6", "l10n_fr_account.tax_report_F6"), + ("l10n_fr.tax_report_F7", "l10n_fr_account.tax_report_F7"), + ("l10n_fr.tax_report_F8", "l10n_fr_account.tax_report_F8"), + ("l10n_fr.tax_report_F9", "l10n_fr_account.tax_report_F9"), + ("l10n_fr.tax_report_I1_base", "l10n_fr_account.tax_report_I1_base"), + ("l10n_fr.tax_report_I1_taxe", "l10n_fr_account.tax_report_I1_taxe"), + ("l10n_fr.tax_report_I2_base", "l10n_fr_account.tax_report_I2_base"), + ("l10n_fr.tax_report_I2_taxe", "l10n_fr_account.tax_report_I2_taxe"), + ("l10n_fr.tax_report_I3_base", "l10n_fr_account.tax_report_I3_base"), + ("l10n_fr.tax_report_I3_taxe", "l10n_fr_account.tax_report_I3_taxe"), + ("l10n_fr.tax_report_I4_base", "l10n_fr_account.tax_report_I4_base"), + ("l10n_fr.tax_report_I4_taxe", "l10n_fr_account.tax_report_I4_taxe"), + ("l10n_fr.tax_report_I5_base", "l10n_fr_account.tax_report_I5_base"), + ("l10n_fr.tax_report_I5_taxe", "l10n_fr_account.tax_report_I5_taxe"), + ("l10n_fr.tax_report_I6_base", "l10n_fr_account.tax_report_I6_base"), + ("l10n_fr.tax_report_I6_taxe", "l10n_fr_account.tax_report_I6_taxe"), + ("l10n_fr.tax_report_P1_base", "l10n_fr_account.tax_report_P1_base"), + ("l10n_fr.tax_report_P1_taxe", "l10n_fr_account.tax_report_P1_taxe"), + ("l10n_fr.tax_report_P2_base", "l10n_fr_account.tax_report_P2_base"), + ("l10n_fr.tax_report_P2_taxe", "l10n_fr_account.tax_report_P2_taxe"), + ("l10n_fr.tax_report_T1_base", "l10n_fr_account.tax_report_T1_base"), + ("l10n_fr.tax_report_T1_taxe", "l10n_fr_account.tax_report_T1_taxe"), + ("l10n_fr.tax_report_T2_base", "l10n_fr_account.tax_report_T2_base"), + ("l10n_fr.tax_report_T2_taxe", "l10n_fr_account.tax_report_T2_taxe"), + ("l10n_fr.tax_report_T3_base", "l10n_fr_account.tax_report_T3_base"), + ("l10n_fr.tax_report_T3_taxe", "l10n_fr_account.tax_report_T3_taxe"), + ("l10n_fr.tax_report_T4_base", "l10n_fr_account.tax_report_T4_base"), + ("l10n_fr.tax_report_T4_taxe", "l10n_fr_account.tax_report_T4_taxe"), + ("l10n_fr.tax_report_T5_base", "l10n_fr_account.tax_report_T5_base"), + ("l10n_fr.tax_report_T5_taxe", "l10n_fr_account.tax_report_T5_taxe"), + ("l10n_fr.tax_report_T6_base", "l10n_fr_account.tax_report_T6_base"), + ("l10n_fr.tax_report_T6_taxe", "l10n_fr_account.tax_report_T6_taxe"), + ("l10n_fr.tax_report_T7_base", "l10n_fr_account.tax_report_T7_base"), + ("l10n_fr.tax_report_T7_taxe", "l10n_fr_account.tax_report_T7_taxe"), + ("l10n_fr.tax_report_TD", "l10n_fr_account.tax_report_TD"), + ("l10n_fr.tax_report_TICC", "l10n_fr_account.tax_report_TICC"), + ("l10n_fr.tax_report_TICFE", "l10n_fr_account.tax_report_TICFE"), + ("l10n_fr.tax_report_TICGN", "l10n_fr_account.tax_report_TICGN"), + ("l10n_fr.tax_report_TIC_total", "l10n_fr_account.tax_report_TIC_total"), + ("l10n_fr.tax_report_X1", "l10n_fr_account.tax_report_X1"), + ("l10n_fr.tax_report_X2", "l10n_fr_account.tax_report_X2"), + ("l10n_fr.tax_report_X3", "l10n_fr_account.tax_report_X3"), + ("l10n_fr.tax_report_X4", "l10n_fr_account.tax_report_X4"), + ("l10n_fr.tax_report_X5", "l10n_fr_account.tax_report_X5"), + ("l10n_fr.tax_report_Y1", "l10n_fr_account.tax_report_Y1"), + ("l10n_fr.tax_report_Y2", "l10n_fr_account.tax_report_Y2"), + ("l10n_fr.tax_report_Y3", "l10n_fr_account.tax_report_Y3"), + ("l10n_fr.tax_report_Y4", "l10n_fr_account.tax_report_Y4"), + ("l10n_fr.tax_report_Y5", "l10n_fr_account.tax_report_Y5"), + ("l10n_fr.tax_report_Y6", "l10n_fr_account.tax_report_Y6"), + ("l10n_fr.tax_report_Z1", "l10n_fr_account.tax_report_Z1"), + ("l10n_fr.tax_report_Z2", "l10n_fr_account.tax_report_Z2"), + ("l10n_fr.tax_report_Z3", "l10n_fr_account.tax_report_Z3"), + ("l10n_fr.tax_report_Z4", "l10n_fr_account.tax_report_Z4"), + ("l10n_fr.tax_report_Z5", "l10n_fr_account.tax_report_Z5"), + ("l10n_fr.tax_report_credit", "l10n_fr_account.tax_report_credit"), + ( + "l10n_fr.tax_report_credit_constate", + "l10n_fr_account.tax_report_credit_constate", + ), + ("l10n_fr.tax_report_credit_impute", "l10n_fr_account.tax_report_credit_impute"), + ("l10n_fr.tax_report_decompte_tva", "l10n_fr_account.tax_report_decompte_tva"), + ("l10n_fr.tax_report_determination", "l10n_fr_account.tax_report_determination"), + ( + "l10n_fr.tax_report_montant_op_realisees", + "l10n_fr_account.tax_report_montant_op_realisees", + ), + ( + "l10n_fr.tax_report_op_imposables_ht", + "l10n_fr_account.tax_report_op_imposables_ht", + ), + ( + "l10n_fr.tax_report_op_non_imposables", + "l10n_fr_account.tax_report_op_non_imposables", + ), + ("l10n_fr.tax_report_regularisation", "l10n_fr_account.tax_report_regularisation"), + ("l10n_fr.tax_report_reliquat", "l10n_fr_account.tax_report_reliquat"), + ("l10n_fr.tax_report_tic_tax", "l10n_fr_account.tax_report_tic_tax"), + ("l10n_fr.tax_report_tva_brute", "l10n_fr_account.tax_report_tva_brute"), + ( + "l10n_fr.tax_report_tva_brute_autre", + "l10n_fr_account.tax_report_tva_brute_autre", + ), + ("l10n_fr.tax_report_tva_brute_dom", "l10n_fr_account.tax_report_tva_brute_dom"), + ( + "l10n_fr.tax_report_tva_brute_import", + "l10n_fr_account.tax_report_tva_brute_import", + ), + ( + "l10n_fr.tax_report_tva_brute_metropo", + "l10n_fr_account.tax_report_tva_brute_metropo", + ), + ( + "l10n_fr.tax_report_tva_brute_petrolier", + "l10n_fr_account.tax_report_tva_brute_petrolier", + ), + ("l10n_fr.tax_report_tva_deductible", "l10n_fr_account.tax_report_tva_deductible"), + ( + "l10n_fr.display_name_in_footer_param", + "l10n_fr_account.display_name_in_footer_param", + ), + ( + "l10n_fr.account_reports_fr_statements_menu", + "l10n_fr_account.account_reports_fr_statements_menu", + ), + # trobz migrate + ("l10n_fr.tax_report_26_external", "l10n_fr_account.tax_report_26_external"), + ( + "l10n_fr.tax_report_26_external_tag", + "l10n_fr_account.tax_report_26_external_tag", + ), +] + @openupgrade.migrate() def migrate(env, version): + openupgrade.rename_xmlids(env.cr, _xmlids_renames) + if openupgrade.table_exists(env.cr, "account_fr_fec"): openupgrade.rename_models(env.cr, model_renames) openupgrade.rename_tables(env.cr, table_renames) From 9c6dfe648912a8b82f10cf7a27d52e8dd1984661 Mon Sep 17 00:00:00 2001 From: Nguyen Minh Chien Date: Wed, 13 May 2026 14:56:27 +0700 Subject: [PATCH 2/2] [UPD] F#T67659 - Prepare data in foodcoop12 database to save migration time. --- .../pos_sale/18.0.1.1/pre-migration.py | 16 ++- .../scripts/stock/18.0.1.1/pre-migration.py | 105 ++++++++++++++++-- 2 files changed, 113 insertions(+), 8 deletions(-) diff --git a/openupgrade_scripts/scripts/pos_sale/18.0.1.1/pre-migration.py b/openupgrade_scripts/scripts/pos_sale/18.0.1.1/pre-migration.py index 1b72c951a948..7d6af85ca5fc 100644 --- a/openupgrade_scripts/scripts/pos_sale/18.0.1.1/pre-migration.py +++ b/openupgrade_scripts/scripts/pos_sale/18.0.1.1/pre-migration.py @@ -5,7 +5,21 @@ @openupgrade.migrate() def migrate(env, version): - openupgrade.add_columns(env, [("pos.order.line", "qty_delivered", "float", 0)]) + has_mig18_qty_delivered = openupgrade.column_exists( + env.cr, "pos_order_line", "mig18_qty_delivered" + ) + if has_mig18_qty_delivered: + if not openupgrade.column_exists(env.cr, "pos_order_line", "qty_delivered"): + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE pos_order_line + RENAME COLUMN mig18_qty_delivered TO qty_delivered + """, + ) + return + else: + openupgrade.add_columns(env, [("pos.order.line", "qty_delivered", "float", 0)]) openupgrade.logged_query( env.cr, """ diff --git a/openupgrade_scripts/scripts/stock/18.0.1.1/pre-migration.py b/openupgrade_scripts/scripts/stock/18.0.1.1/pre-migration.py index afa75a92c409..90d1ee295682 100644 --- a/openupgrade_scripts/scripts/stock/18.0.1.1/pre-migration.py +++ b/openupgrade_scripts/scripts/stock/18.0.1.1/pre-migration.py @@ -3,11 +3,11 @@ from openupgradelib import openupgrade _columns_copy = { - "stock_move": [("location_dest_id", None, None)], + # "stock_move": [("location_dest_id", None, None)], } _field_renames = [ - ("stock.move", "stock_move", "location_dest_id", "location_final_id"), + # ("stock.move", "stock_move", "location_dest_id", "location_final_id"), ( "stock.warehouse.orderpoint", "stock_warehouse_orderpoint", @@ -22,7 +22,7 @@ _new_columns = [ ("product.template", "is_storable", "boolean", False), - ("stock.move", "location_dest_id", "many2one"), + # ("stock.move", "location_dest_id", "many2one"), ("stock.rule", "location_dest_from_rule", "boolean", False), ("stock.picking.type", "move_type", "selection", "direct"), ("stock.putaway.rule", "sublocation", "selection", "no"), @@ -115,6 +115,70 @@ def fill_stock_move_location_dest_id(env): """, ) +def fill_stock_move_location_dest_id2(env): + openupgrade.logged_query( + env.cr, + """ + WITH RECURSIVE sub AS ( + (SELECT rel.move_orig_id, rel.move_dest_id + FROM stock_move_move_rel rel + LEFT JOIN stock_move_move_rel rel2 ON rel.move_dest_id = rel2.move_orig_id + WHERE rel2.move_orig_id IS NULL) + UNION + (SELECT rel.move_orig_id, sub.move_dest_id + FROM stock_move_move_rel rel + JOIN sub ON sub.move_orig_id = rel.move_dest_id) + ) + UPDATE stock_move sm2 + SET location_final_id = sm.location_final_id + FROM stock_rule sr, stock_move sm + JOIN sub ON sub.move_dest_id = sm.id + WHERE sm2.rule_id = sr.id AND sub.move_orig_id = sm2.id + AND sr.action IN ('push', 'pull_push') + """, + ) + openupgrade.logged_query( + env.cr, + """ + WITH sub AS ( + UPDATE stock_move sm + SET location_final_id = sr.location_dest_id + FROM stock_rule sr + WHERE sm.rule_id = sr.id AND sr.location_dest_id IS NOT NULL + AND sr.location_dest_id != sm.location_final_id + AND sr.location_dest_id != sm.location_dest_id + AND sr.action IN ('pull', 'pull_push') + RETURNING rule_id + ), sub2 AS ( + SELECT rule_id + FROM sub + GROUP BY rule_id + ) + UPDATE stock_rule sr + SET location_dest_from_rule = TRUE + FROM sub2 + WHERE sub2.rule_id = sr.id + """, + ) + openupgrade.logged_query( + env.cr, + """ + WITH sub AS ( + SELECT sm.rule_id + FROM stock_move sm + JOIN stock_move_move_rel rel ON + rel.move_orig_id = sm.id OR rel.move_dest_id = sm.id + JOIN stock_rule sr ON sm.rule_id = sr.id + WHERE sr.action IN ('pull', 'pull_push') + GROUP BY sm.rule_id + ) + UPDATE stock_rule sr + SET location_dest_from_rule = TRUE + FROM sub + WHERE sub.rule_id = sr.id + """, + ) + def fill_stock_putaway_rule_sublocation(env): openupgrade.logged_query( @@ -128,16 +192,43 @@ def fill_stock_putaway_rule_sublocation(env): @openupgrade.migrate() def migrate(env, version=None): + has_mig18_location_dest_id = openupgrade.column_exists( + env.cr, "stock_move", "mig18_location_dest_id" + ) + columns_copy = _columns_copy + field_renames = list(_field_renames) + new_columns = list(_new_columns) + if has_mig18_location_dest_id: + if not openupgrade.column_exists(env.cr, "stock_move", "location_final_id"): + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE stock_move + RENAME COLUMN mig18_location_dest_id TO location_final_id + """, + ) + else: + columns_copy = { + **columns_copy, + "stock_move": [("location_dest_id", None, None)], + } + field_renames.append( + ("stock.move", "stock_move", "location_dest_id", "location_final_id") + ) + new_columns.append(("stock.move", "location_dest_id", "many2one")) if openupgrade.column_exists(env.cr, "product_template", "responsible_id"): # in v12, this field was not company_dependent openupgrade.rename_columns( env.cr, {"product_template": [("responsible_id", None)]}, ) - openupgrade.copy_columns(env.cr, _columns_copy) - openupgrade.rename_fields(env, _field_renames) + openupgrade.copy_columns(env.cr, columns_copy) + openupgrade.rename_fields(env, field_renames) openupgrade.rename_xmlids(env.cr, _xmlid_renames) - openupgrade.add_columns(env, _new_columns) + openupgrade.add_columns(env, new_columns) fill_product_template_is_storable(env) - fill_stock_move_location_dest_id(env) + if not has_mig18_location_dest_id: + fill_stock_move_location_dest_id(env) + else: + fill_stock_move_location_dest_id2(env) fill_stock_putaway_rule_sublocation(env)