diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst
index 6af81bfe5af4..56a0c548bf09 100644
--- a/docsource/modules160-170.rst
+++ b/docsource/modules160-170.rst
@@ -120,7 +120,7 @@ Module coverage 16.0 -> 17.0
+---------------------------------------------------+----------------------+-------------------------------------------------+
| data_recycle | |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
-| delivery | | |
+| delivery | Done | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| delivery_mondialrelay | |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
@@ -958,7 +958,7 @@ Module coverage 16.0 -> 17.0
+---------------------------------------------------+----------------------+-------------------------------------------------+
| stock_account | Done | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
-| |new| stock_delivery | | |
+| |new| stock_delivery | Nothing to do | Split from delivery. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| stock_dropshipping | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
diff --git a/openupgrade_scripts/scripts/delivery/17.0.1.0/noupdate_changes.xml b/openupgrade_scripts/scripts/delivery/17.0.1.0/noupdate_changes.xml
index 6afe43e4db7e..1e194282c4fe 100644
--- a/openupgrade_scripts/scripts/delivery/17.0.1.0/noupdate_changes.xml
+++ b/openupgrade_scripts/scripts/delivery/17.0.1.0/noupdate_changes.xml
@@ -4,8 +4,8 @@
[('company_id', 'in', company_ids + [False])]
-
-
+
Standard delivery
diff --git a/openupgrade_scripts/scripts/delivery/17.0.1.0/post-migration.py b/openupgrade_scripts/scripts/delivery/17.0.1.0/post-migration.py
new file mode 100644
index 000000000000..c5e9af994bc3
--- /dev/null
+++ b/openupgrade_scripts/scripts/delivery/17.0.1.0/post-migration.py
@@ -0,0 +1,9 @@
+# Copyright 2024 Viindoo Technology Joint Stock Company (Viindoo)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from openupgradelib import openupgrade
+
+
+@openupgrade.migrate()
+def migrate(env, version):
+ openupgrade.load_data(env, "delivery", "17.0.1.0/noupdate_changes.xml")
diff --git a/openupgrade_scripts/scripts/delivery/17.0.1.0/pre-migration.py b/openupgrade_scripts/scripts/delivery/17.0.1.0/pre-migration.py
new file mode 100644
index 000000000000..5efb15757bc1
--- /dev/null
+++ b/openupgrade_scripts/scripts/delivery/17.0.1.0/pre-migration.py
@@ -0,0 +1,81 @@
+from openupgradelib import openupgrade
+
+_xmlids_renames = [
+ (
+ "delivery.act_delivery_trackers_url",
+ "stock_delivery.act_delivery_trackers_url",
+ ),
+ (
+ "delivery.access_choose_delivery_package",
+ "stock_delivery.access_choose_delivery_package",
+ ),
+ (
+ "delivery.access_delivery_carrier_stock_user",
+ "stock_delivery.access_delivery_carrier_stock_user",
+ ),
+ (
+ "delivery.access_delivery_carrier_stock_manager",
+ "stock_delivery.access_delivery_carrier_stock_manager",
+ ),
+ (
+ "delivery.access_delivery_price_rule_stock_manager",
+ "stock_delivery.access_delivery_price_rule_stock_manager",
+ ),
+ (
+ "delivery.access_delivery_zip_prefix_stock_manager",
+ "stock_delivery.access_delivery_zip_prefix_stock_manager",
+ ),
+ (
+ "delivery.menu_action_delivery_carrier_form",
+ "stock_delivery.menu_action_delivery_carrier_form",
+ ),
+ (
+ "delivery.menu_delivery_zip_prefix",
+ "stock_delivery.menu_delivery_zip_prefix",
+ ),
+ (
+ "delivery.model_choose_delivery_package",
+ "stock_delivery.model_choose_delivery_package",
+ ),
+]
+
+
+def _delete_sql_constraints(env):
+ # Delete constraints to recreate it
+ openupgrade.delete_sql_constraint_safely(
+ env, "delivery", "delivery_carrier", "margin_not_under_100_percent"
+ )
+
+
+def _fill_stock_move_line_carrier_id(env):
+ """Field `carrier_id` on stock.move.line is now a stored field."""
+ openupgrade.logged_query(
+ env.cr,
+ """
+ ALTER TABLE stock_move_line
+ ADD COLUMN IF NOT EXISTS carrier_id INTEGER;
+ """,
+ )
+ openupgrade.logged_query(
+ env.cr,
+ """
+ UPDATE stock_move_line sml
+ SET carrier_id = sp.carrier_id
+ FROM stock_picking sp
+ WHERE sml.picking_id = sp.id;
+ """,
+ )
+
+
+@openupgrade.migrate()
+def migrate(env, version):
+ openupgrade.rename_xmlids(env.cr, _xmlids_renames)
+ _delete_sql_constraints(env)
+ _fill_stock_move_line_carrier_id(env)
+ openupgrade.logged_query( # just to be sure
+ env.cr,
+ """
+ UPDATE ir_module_module
+ SET state='to install'
+ WHERE name = 'stock_delivery' AND state='uninstalled'""",
+ )
diff --git a/openupgrade_scripts/scripts/delivery/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/delivery/17.0.1.0/upgrade_analysis_work.txt
new file mode 100644
index 000000000000..1d638470b6db
--- /dev/null
+++ b/openupgrade_scripts/scripts/delivery/17.0.1.0/upgrade_analysis_work.txt
@@ -0,0 +1,95 @@
+---Models in module 'delivery'---
+model choose.delivery.package (moved to stock_delivery) [column['model_type']]
+# DONE: pre-migration: moved to stock_delivery
+
+---Fields in module 'delivery'---
+delivery / delivery.carrier / fixed_margin (float) : NEW
+delivery / delivery.carrier / invoice_policy (selection) : selection_keys is now '['estimated']' ('['estimated', 'real']')
+# NOTHING TO DO
+
+delivery / sale.order / shipping_weight (float) : NEW hasdefault: compute
+# NOTHING TO DO: new features
+
+delivery / stock.move.line / carrier_id (many2one) : is now stored
+# DONE: pre-migration: Add new column & set value for it
+
+delivery / stock.move.line / carrier_name (char) : DEL
+# NOTHING TO DO
+
+delivery / product.product / country_of_origin (many2one) : module is now 'stock_delivery' ('delivery')
+delivery / product.product / hs_code (char) : module is now 'stock_delivery' ('delivery')
+delivery / product.template / country_of_origin (many2one) : module is now 'stock_delivery' ('delivery')
+delivery / product.template / hs_code (char) : module is now 'stock_delivery' ('delivery')
+delivery / stock.move / weight (float) : module is now 'stock_delivery' ('delivery')
+delivery / stock.move.line / carrier_id (many2one) : module is now 'stock_delivery' ('delivery')
+delivery / stock.move.line / destination_country_code (char): module is now 'stock_delivery' ('delivery')
+delivery / stock.move.line / sale_price (float) : module is now 'stock_delivery' ('delivery')
+delivery / stock.package.type / package_carrier_type (selection): module is now 'stock_delivery' ('delivery')
+delivery / stock.package.type / shipper_package_code (char) : module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / carrier_id (many2one) : module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / carrier_price (float) : module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / carrier_tracking_ref (char) : module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / carrier_tracking_url (char) : module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / delivery_type (selection) : module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / destination_country_code (char): module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / is_return_picking (boolean) : module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / package_ids (many2many) : module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / return_label_ids (one2many) : module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / shipping_weight (float) : module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / weight (float) : module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / weight_bulk (float) : module is now 'stock_delivery' ('delivery')
+delivery / stock.picking / weight_uom_name (char) : module is now 'stock_delivery' ('delivery')
+delivery / stock.quant.package / shipping_weight (float) : module is now 'stock_delivery' ('delivery')
+delivery / stock.quant.package / weight (float) : module is now 'stock_delivery' ('delivery')
+delivery / stock.quant.package / weight_is_kg (boolean) : module is now 'stock_delivery' ('delivery')
+delivery / stock.quant.package / weight_uom_name (char) : module is now 'stock_delivery' ('delivery')
+delivery / stock.quant.package / weight_uom_rounding (float) : module is now 'stock_delivery' ('delivery')
+# NOTHING TO DO: Handled by ORM
+
+---XML records in module 'delivery'---
+DEL ir.actions.act_window: delivery.act_delivery_trackers_url [renamed to stock_delivery module]
+# DONE: pre-migration: moved to stock_delivery
+
+NEW ir.model.access: delivery.access_delivery_price_rule_sale_manager
+NEW ir.model.access: delivery.access_delivery_zip_prefix_sale_manager
+DEL ir.model.access: delivery.access_choose_delivery_carrier_salesman
+# NOTHING TO DO
+
+DEL ir.model.access: delivery.access_choose_delivery_package [renamed to stock_delivery module]
+DEL ir.model.access: delivery.access_delivery_carrier_stock_manager [renamed to stock_delivery module]
+DEL ir.model.access: delivery.access_delivery_carrier_stock_user [renamed to stock_delivery module]
+DEL ir.model.access: delivery.access_delivery_price_rule_stock_manager [renamed to stock_delivery module]
+DEL ir.model.access: delivery.access_delivery_zip_prefix_stock_manager [renamed to stock_delivery module]
+# DONE: pre-migration: moved to stock_delivery
+
+ir.model.constraint: delivery.constraint_delivery_carrier_margin_not_under_100_percent (changed definition: is now 'check(margin >= -1)' ('check(margin >= -100)'))
+# DONE pre-migration: safely delete constraint to recreate it
+
+DEL ir.ui.menu: delivery.menu_action_delivery_carrier_form [renamed to stock_delivery module]
+DEL ir.ui.menu: delivery.menu_delivery_zip_prefix [renamed to stock_delivery module]
+# DONE: pre-migration: moved to stock_delivery
+
+DEL ir.ui.view: delivery.choose_delivery_package_view_form
+DEL ir.ui.view: delivery.delivery_stock_report_delivery_no_package_section_line
+DEL ir.ui.view: delivery.delivery_tracking_url_warning_form
+DEL ir.ui.view: delivery.label_package_template_view_delivery
+DEL ir.ui.view: delivery.product_template_hs_code
+DEL ir.ui.view: delivery.report_delivery_document2
+DEL ir.ui.view: delivery.report_package_barcode_delivery
+DEL ir.ui.view: delivery.report_package_barcode_small_delivery
+DEL ir.ui.view: delivery.report_shipping2
+DEL ir.ui.view: delivery.sale_order_portal_content_inherit_sale_stock_inherit_website_sale_delivery
+DEL ir.ui.view: delivery.stock_move_line_view_search_delivery
+DEL ir.ui.view: delivery.stock_package_type_form_delivery
+DEL ir.ui.view: delivery.stock_package_type_tree_delivery
+DEL ir.ui.view: delivery.stock_report_delivery_aggregated_move_lines_inherit_delivery
+DEL ir.ui.view: delivery.stock_report_delivery_has_serial_move_line_inherit_delivery
+DEL ir.ui.view: delivery.stock_report_delivery_package_section_line_inherit_delivery
+DEL ir.ui.view: delivery.view_move_line_tree_detailed_delivery
+DEL ir.ui.view: delivery.view_picking_type_form_delivery
+DEL ir.ui.view: delivery.view_picking_withcarrier_out_form
+DEL ir.ui.view: delivery.view_picking_withweight_internal_move_form
+DEL ir.ui.view: delivery.view_quant_package_weight_form
+DEL ir.ui.view: delivery.view_stock_rule_form_delivery
+DEL ir.ui.view: delivery.vpicktree_view_tree
+# NOTHING TO DO
diff --git a/openupgrade_scripts/scripts/stock_delivery/17.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/stock_delivery/17.0.1.0/upgrade_analysis_work.txt
new file mode 100644
index 000000000000..4d828a089c24
--- /dev/null
+++ b/openupgrade_scripts/scripts/stock_delivery/17.0.1.0/upgrade_analysis_work.txt
@@ -0,0 +1,79 @@
+---Models in module 'stock_delivery'---
+model choose.delivery.package (moved from delivery) [transient]
+# NOTHING TO DO
+
+---Fields in module 'stock_delivery'---
+stock_delivery / delivery.carrier / invoice_policy (False) : NEW selection_keys: ['estimated', 'real'], mode: modify
+# NOTHING TO DO
+
+stock_delivery / product.product / country_of_origin (many2one) : previously in module delivery
+stock_delivery / product.product / hs_code (char) : previously in module delivery
+stock_delivery / product.template / country_of_origin (many2one) : previously in module delivery
+stock_delivery / product.template / hs_code (char) : previously in module delivery
+stock_delivery / stock.move / weight (float) : previously in module delivery
+stock_delivery / stock.move.line / carrier_id (many2one) : previously in module delivery
+stock_delivery / stock.move.line / destination_country_code (char): previously in module delivery
+stock_delivery / stock.move.line / sale_price (float) : previously in module delivery
+stock_delivery / stock.package.type / package_carrier_type (selection): previously in module delivery
+stock_delivery / stock.package.type / shipper_package_code (char) : previously in module delivery
+stock_delivery / stock.picking / carrier_id (many2one) : previously in module delivery
+stock_delivery / stock.picking / carrier_price (float) : previously in module delivery
+stock_delivery / stock.picking / carrier_tracking_ref (char) : previously in module delivery
+stock_delivery / stock.picking / carrier_tracking_url (char) : previously in module delivery
+stock_delivery / stock.picking / delivery_type (selection) : previously in module delivery
+stock_delivery / stock.picking / destination_country_code (char): previously in module delivery
+stock_delivery / stock.picking / is_return_picking (boolean) : previously in module delivery
+stock_delivery / stock.picking / package_ids (many2many) : previously in module delivery
+stock_delivery / stock.picking / return_label_ids (one2many) : previously in module delivery
+stock_delivery / stock.picking / shipping_weight (float) : previously in module delivery
+stock_delivery / stock.picking / weight (float) : previously in module delivery
+stock_delivery / stock.picking / weight_bulk (float) : previously in module delivery
+stock_delivery / stock.picking / weight_uom_name (char) : previously in module delivery
+stock_delivery / stock.quant.package / shipping_weight (float) : previously in module delivery
+stock_delivery / stock.quant.package / weight (float) : previously in module delivery
+stock_delivery / stock.quant.package / weight_is_kg (boolean) : previously in module delivery
+stock_delivery / stock.quant.package / weight_uom_name (char) : previously in module delivery
+stock_delivery / stock.quant.package / weight_uom_rounding (float) : previously in module delivery
+# NOTHING TO DO
+
+stock_delivery / delivery.carrier / route_ids (many2many) : NEW relation: stock.route
+stock_delivery / stock.route / shipping_selectable (boolean) : NEW
+# NOTHING TO DO: new feature that works only if shipping_selectable = True (by default is false)
+
+---XML records in module 'stock_delivery'---
+NEW ir.actions.act_window: stock_delivery.act_delivery_trackers_url [renamed from delivery module]
+NEW ir.model.access: stock_delivery.access_choose_delivery_carrier_stock_user
+NEW ir.model.access: stock_delivery.access_choose_delivery_package [renamed from delivery module]
+NEW ir.model.access: stock_delivery.access_delivery_carrier_stock_manager [renamed from delivery module]
+NEW ir.model.access: stock_delivery.access_delivery_carrier_stock_user [renamed from delivery module]
+NEW ir.model.access: stock_delivery.access_delivery_price_rule_stock_manager [renamed from delivery module]
+NEW ir.model.access: stock_delivery.access_delivery_zip_prefix_stock_manager [renamed from delivery module]
+NEW ir.ui.menu: stock_delivery.menu_action_delivery_carrier_form [renamed from delivery module]
+NEW ir.ui.menu: stock_delivery.menu_delivery_zip_prefix [renamed from delivery module]
+NEW ir.ui.view: stock_delivery.choose_delivery_carrier_view_form
+NEW ir.ui.view: stock_delivery.choose_delivery_package_view_form
+NEW ir.ui.view: stock_delivery.delivery_stock_report_delivery_no_package_section_line
+NEW ir.ui.view: stock_delivery.delivery_tracking_url_warning_form
+NEW ir.ui.view: stock_delivery.label_package_template_view_delivery
+NEW ir.ui.view: stock_delivery.product_template_hs_code
+NEW ir.ui.view: stock_delivery.report_delivery_document2
+NEW ir.ui.view: stock_delivery.report_package_barcode_delivery
+NEW ir.ui.view: stock_delivery.report_package_barcode_small_delivery
+NEW ir.ui.view: stock_delivery.report_shipping2
+NEW ir.ui.view: stock_delivery.sale_order_portal_content_inherit_sale_stock_inherit_website_sale
+NEW ir.ui.view: stock_delivery.stock_location_route_view_form_inherit_stock_delivery
+NEW ir.ui.view: stock_delivery.stock_move_line_view_search_delivery
+NEW ir.ui.view: stock_delivery.stock_package_type_form_delivery
+NEW ir.ui.view: stock_delivery.stock_package_type_tree_delivery
+NEW ir.ui.view: stock_delivery.stock_report_delivery_aggregated_move_lines_inherit_delivery
+NEW ir.ui.view: stock_delivery.stock_report_delivery_has_serial_move_line_inherit_delivery
+NEW ir.ui.view: stock_delivery.stock_report_delivery_package_section_line_inherit_delivery
+NEW ir.ui.view: stock_delivery.view_delivery_carrier_form_inherit_stock_delivery
+NEW ir.ui.view: stock_delivery.view_move_line_tree_detailed_delivery
+NEW ir.ui.view: stock_delivery.view_picking_type_form_delivery
+NEW ir.ui.view: stock_delivery.view_picking_withcarrier_out_form
+NEW ir.ui.view: stock_delivery.view_picking_withweight_internal_move_form
+NEW ir.ui.view: stock_delivery.view_quant_package_weight_form
+NEW ir.ui.view: stock_delivery.view_stock_rule_form_delivery
+NEW ir.ui.view: stock_delivery.vpicktree_view_tree
+# NOTHING TO DO