diff --git a/docsource/modules150-160.rst b/docsource/modules150-160.rst index 460da768b2e9..d207fbd04244 100644 --- a/docsource/modules150-160.rst +++ b/docsource/modules150-160.rst @@ -670,7 +670,7 @@ Module coverage 15.0 -> 16.0 +-------------------------------------------------+----------------------+-------------------------------------------------+ | |del| purchase_requisition_stock_dropshipping | | | +-------------------------------------------------+----------------------+-------------------------------------------------+ -| purchase_stock | | | +| purchase_stock | Done | | +-------------------------------------------------+----------------------+-------------------------------------------------+ | rating | Nothing to do | | +-------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/purchase_stock/16.0.1.2/pre-migration.py b/openupgrade_scripts/scripts/purchase_stock/16.0.1.2/pre-migration.py new file mode 100644 index 000000000000..99a8cbf7967a --- /dev/null +++ b/openupgrade_scripts/scripts/purchase_stock/16.0.1.2/pre-migration.py @@ -0,0 +1,52 @@ +from openupgradelib import openupgrade + + +def _compute_purchase_order_receipt_status(env): + openupgrade.add_fields( + env, + [ + ( + "receipt_status", + "purchase.order", + "purchase_order", + "selection", + "character varying", + "purchase_stock", + False, + ), + ], + ) + openupgrade.logged_query( + env.cr, + """ + WITH po_receipt_status as ( + SELECT rel.purchase_order_id as id, + CASE + WHEN + COUNT(sp.state) FILTER(WHERE sp.state = 'cancel') = COUNT(sp.state) + THEN null + WHEN + COUNT(sp.state) FILTER(WHERE sp.state not in ('done', 'cancel')) = 0 + THEN 'full' + WHEN + COUNT(sp.state) FILTER(WHERE sp.state = 'done') > 0 + THEN 'partial' + ELSE 'pending' + END as receipt_status + FROM stock_picking as sp + JOIN purchase_order_stock_picking_rel as rel + ON rel.stock_picking_id = sp.id + GROUP BY 1 + ORDER BY 1 + ) + UPDATE purchase_order as po + SET receipt_status = po_receipt_status.receipt_status + FROM po_receipt_status + WHERE po_receipt_status.id = po.id; + """, + ) + + +@openupgrade.migrate() +def migrate(env, version): + _compute_purchase_order_receipt_status(env) diff --git a/openupgrade_scripts/scripts/purchase_stock/16.0.1.2/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/purchase_stock/16.0.1.2/upgrade_analysis_work.txt new file mode 100644 index 000000000000..953ef5941922 --- /dev/null +++ b/openupgrade_scripts/scripts/purchase_stock/16.0.1.2/upgrade_analysis_work.txt @@ -0,0 +1,20 @@ +'---Models in module 'purchase_stock'--- +---Fields in module 'purchase_stock'--- +purchase_stock / purchase.order / dest_address_id (False) : NEW mode: modify, hasdefault: compute +purchase_stock / purchase.order / incoterm_location (char) : NEW +# NOTHING TO DO + +purchase_stock / purchase.order / receipt_status (selection) : NEW selection_keys: ['full', 'partial', 'pending'], isfunction: function, stored +# DONE: pre-migration: create column and fill values + +purchase_stock / stock.warehouse.orderpoint / purchase_visibility_days (float): NEW hasdefault: default +# NOTHING TO DO + +---XML records in module 'purchase_stock'--- +NEW ir.ui.view: purchase_stock.purchase_order_view_tree_inherit +DEL ir.ui.view: purchase_stock.product_category_view_form +# NOTHING TO DO: noupdate="0" records + +DEL stock.location.route: purchase_stock.route_warehouse0_buy (noupdate) +NEW stock.route: purchase_stock.route_warehouse0_buy (noupdate) +# NOTHING TO DO: handle in 'stock' module