From a483860d4cda47c6233ec3844a033e9ddaa79b47 Mon Sep 17 00:00:00 2001 From: Hoang Tien Dung Date: Thu, 6 Jul 2023 17:15:48 +0700 Subject: [PATCH] [OU-ADD] sale_stock: migration --- docsource/modules150-160.rst | 2 +- .../sale_stock/16.0.1.0/pre-migration.py | 54 +++++++++++++++++++ .../16.0.1.0/upgrade_analysis_work.txt | 22 ++++++++ 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 openupgrade_scripts/scripts/sale_stock/16.0.1.0/pre-migration.py create mode 100644 openupgrade_scripts/scripts/sale_stock/16.0.1.0/upgrade_analysis_work.txt diff --git a/docsource/modules150-160.rst b/docsource/modules150-160.rst index 460da768b2e9..79cbdf1660c3 100644 --- a/docsource/modules150-160.rst +++ b/docsource/modules150-160.rst @@ -720,7 +720,7 @@ Module coverage 15.0 -> 16.0 +-------------------------------------------------+----------------------+-------------------------------------------------+ | sale_sms | | | +-------------------------------------------------+----------------------+-------------------------------------------------+ -| sale_stock | | | +| sale_stock | Done | | +-------------------------------------------------+----------------------+-------------------------------------------------+ | sale_stock_margin | | | +-------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/sale_stock/16.0.1.0/pre-migration.py b/openupgrade_scripts/scripts/sale_stock/16.0.1.0/pre-migration.py new file mode 100644 index 000000000000..0474ea370c13 --- /dev/null +++ b/openupgrade_scripts/scripts/sale_stock/16.0.1.0/pre-migration.py @@ -0,0 +1,54 @@ +from openupgradelib import openupgrade + + +def _update_delivery_status(env): + openupgrade.logged_query( + env.cr, + """ + ALTER TABLE sale_order + ADD COLUMN IF NOT EXISTS delivery_status character varying + """, + ) + openupgrade.logged_query( + env.cr, + """ + UPDATE sale_order as so + SET delivery_status = + CASE + WHEN + (SELECT COUNT(*) FROM stock_picking WHERE sale_id = so.id) = 0 + OR + ( + SELECT COUNT(*) + FROM stock_picking + WHERE sale_id = so.id AND state = 'cancel' + ) = ( + SELECT COUNT(*) + FROM stock_picking + WHERE sale_id = so.id + ) THEN NULL + WHEN + ( + SELECT COUNT(*) + FROM stock_picking + WHERE sale_id = so.id AND state IN ('done', 'cancel') + ) = ( + SELECT COUNT(*) + FROM stock_picking + WHERE sale_id = so.id + ) THEN 'full' + WHEN + ( + SELECT COUNT(*) + FROM stock_picking + WHERE sale_id = so.id AND state = 'done' + ) > 0 THEN 'partial' + ELSE 'pending' + END + """, + ) + + +@openupgrade.migrate() +def migrate(env, version): + _update_delivery_status(env) diff --git a/openupgrade_scripts/scripts/sale_stock/16.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/sale_stock/16.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..7a21cd4ff633 --- /dev/null +++ b/openupgrade_scripts/scripts/sale_stock/16.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,22 @@ +---Models in module 'sale_stock'--- +---Fields in module 'sale_stock'--- +sale_stock / sale.order / delivery_status (selection) : NEW selection_keys: ['full', 'partial', 'pending'], isfunction: function, stored +# DONE: pre-migration: create column and fill values + +sale_stock / sale.order / incoterm_location (char) : NEW +# NOTHING TO DO + +sale_stock / sale.order.line / product_type (selection) : module is now 'sale' ('sale_stock') +# NOTHING TO DO: hanlde in 'sale' module + +sale_stock / sale.order.line / route_id (many2one) : relation is now 'stock.route' ('stock.location.route') [nothing to do] +sale_stock / stock.location.route / sale_selectable (boolean) : DEL +sale_stock / stock.route / sale_selectable (boolean) : NEW +# NOTHING TO DO + +---XML records in module 'sale_stock'--- +DEL ir.ui.menu: sale_stock.menu_aftersale +DEL ir.ui.menu: sale_stock.menu_invoiced +DEL ir.ui.view: sale_stock.product_template_view_form_inherit_sale +DEL ir.ui.view: sale_stock.product_template_view_form_inherit_stock +# NOTHING TO DO: noupdate="0" records