diff --git a/openupgrade_scripts/scripts/account/16.0.1.2/pre-migration.py b/openupgrade_scripts/scripts/account/16.0.1.2/pre-migration.py index 5dc77f60c133..7d23947f95c5 100644 --- a/openupgrade_scripts/scripts/account/16.0.1.2/pre-migration.py +++ b/openupgrade_scripts/scripts/account/16.0.1.2/pre-migration.py @@ -221,6 +221,30 @@ def _account_move_fast_fill_display_type(env): Case 5: with aml is an accounting transaction occurring set display type is 'product' """ + has_mig18_display_type = openupgrade.column_exists( + env.cr, "account_move_line", "mig18_display_type" + ) + legacy_display_type = openupgrade.get_legacy_name("display_type") + if has_mig18_display_type: + if openupgrade.column_exists(env.cr, "account_move_line", "display_type") and not openupgrade.column_exists( + env.cr, "account_move_line", legacy_display_type + ): + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE account_move_line + RENAME COLUMN display_type TO {} + """.format(legacy_display_type), + ) + if not openupgrade.column_exists(env.cr, "account_move_line", "display_type"): + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE account_move_line + RENAME COLUMN mig18_display_type TO display_type + """, + ) + return openupgrade.logged_query( env.cr, """ @@ -253,12 +277,12 @@ def _account_move_fast_fill_display_type(env): # and # https://github.com/odoo/odoo/blob/666229a0046e2d0e8331115e0247ad41734fb6e3/ # addons/account/tests/test_account_move_out_invoice.py#L107 - openupgrade.logged_query( - env.cr, - "UPDATE account_move_line SET quantity = 0.00 " - "WHERE display_type IN ('tax', 'payment_term') " - "AND quantity IS DISTINCT FROM 0", - ) + # openupgrade.logged_query( + # env.cr, + # "UPDATE account_move_line SET quantity = 0.00 " + # "WHERE display_type IN ('tax', 'payment_term') " + # "AND quantity IS DISTINCT FROM 0", + # ) def _account_move_auto_post_boolean_to_selection(env): diff --git a/openupgrade_scripts/scripts/point_of_sale/16.0.1.0.1/pre-migration.py b/openupgrade_scripts/scripts/point_of_sale/16.0.1.0.1/pre-migration.py index 7cc0f47e269a..a1d67fb8c791 100644 --- a/openupgrade_scripts/scripts/point_of_sale/16.0.1.0.1/pre-migration.py +++ b/openupgrade_scripts/scripts/point_of_sale/16.0.1.0.1/pre-migration.py @@ -5,6 +5,8 @@ def _assign_pos_order_token(env): + # trobz migrate: enable gen_random_uuid function for later use + openupgrade.logged_query(env.cr, "CREATE EXTENSION pgcrypto;") openupgrade.add_fields( env, [("access_token", "pos.order", "pos_order", "char", False, "point_of_sale")], diff --git a/openupgrade_scripts/scripts/stock/16.0.1.1/pre-migration.py b/openupgrade_scripts/scripts/stock/16.0.1.1/pre-migration.py index 73f8bf6c1850..efc1f6700eba 100644 --- a/openupgrade_scripts/scripts/stock/16.0.1.1/pre-migration.py +++ b/openupgrade_scripts/scripts/stock/16.0.1.1/pre-migration.py @@ -44,13 +44,27 @@ def _update_stock_quant_storage_category_id(env): def _update_sol_product_category_name(env): - openupgrade.logged_query( - env.cr, - """ - ALTER TABLE stock_move_line - ADD COLUMN IF NOT EXISTS product_category_name CHARACTER VARYING - """, + has_mig18_product_category_name = openupgrade.column_exists( + env.cr, "stock_move_line", "mig18_product_category_name" ) + if has_mig18_product_category_name: + if not openupgrade.column_exists(env.cr, "stock_move_line", "product_category_name"): + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE stock_move_line + RENAME COLUMN mig18_product_category_name TO product_category_name + """, + ) + return + else: + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE stock_move_line + ADD COLUMN IF NOT EXISTS product_category_name CHARACTER VARYING + """, + ) openupgrade.logged_query( env.cr, """ @@ -65,7 +79,6 @@ def _update_sol_product_category_name(env): """, ) - def _compute_stock_location_replenish_location(env): openupgrade.logged_query( env.cr, @@ -129,8 +142,21 @@ def _handle_stock_picking_backorder_strategy(env): def _prefill_stock_move_quantity_done(env): """It's going to be an stored field now. Let's try to speed up the field - computation so it performs better in larga stock_move tables""" - if not openupgrade.column_exists(env.cr, "stock_move", "quantity_done"): + computation so it performs better in large stock_move tables""" + has_mig18_quantity_done = openupgrade.column_exists( + env.cr, "stock_move", "mig18_quantity_done" + ) + if has_mig18_quantity_done: + if not openupgrade.column_exists(env.cr, "stock_move", "quantity_done"): + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE stock_move + RENAME COLUMN mig18_quantity_done TO quantity_done + """, + ) + return + elif not openupgrade.column_exists(env.cr, "stock_move", "quantity_done"): openupgrade.add_fields( env, [ @@ -156,7 +182,8 @@ def _prefill_stock_move_quantity_done(env): ), consistent_moves AS ( SELECT move_id - FROM stock_move_line + FROM stock_move_line sml + JOIN stock_move sm ON sm.id = sml.move_id GROUP BY move_id HAVING COUNT(DISTINCT product_uom_id) = 1 AND SUM(qty_done) <> 0 ),