diff --git a/purchase_sale_inter_company/models/res_company.py b/purchase_sale_inter_company/models/res_company.py
index cab6b7e9f49..26e5d2da575 100644
--- a/purchase_sale_inter_company/models/res_company.py
+++ b/purchase_sale_inter_company/models/res_company.py
@@ -47,6 +47,13 @@ class ResCompany(models.Model):
default="raise",
help="Pick action to perform on sync picking failure",
)
+ sync_picking_state = fields.Boolean(
+ string="Sync the receipt state with the delivery state",
+ default=lambda p: p.sync_picking,
+ help="State of receipt picking syncs with state of the delivery "
+ "from the source company. Note this disallows user to manually "
+ "correct or change a picking that did not sync properly.",
+ )
block_po_manual_picking_validation = fields.Boolean(
string="Block manual validation of picking in the destination company",
)
diff --git a/purchase_sale_inter_company/models/res_config.py b/purchase_sale_inter_company/models/res_config.py
index 3116b653a12..cb717b11c89 100644
--- a/purchase_sale_inter_company/models/res_config.py
+++ b/purchase_sale_inter_company/models/res_config.py
@@ -49,6 +49,9 @@ class InterCompanyRulesConfig(models.TransientModel):
)
sync_picking_failure_action = fields.Selection(
related="company_id.sync_picking_failure_action",
+ )
+ sync_picking_state = fields.Boolean(
+ related="company_id.sync_picking_state",
readonly=False,
)
block_po_manual_picking_validation = fields.Boolean(
diff --git a/purchase_sale_inter_company/models/stock_picking.py b/purchase_sale_inter_company/models/stock_picking.py
index 1df7f835fb9..409bd4f6f0c 100644
--- a/purchase_sale_inter_company/models/stock_picking.py
+++ b/purchase_sale_inter_company/models/stock_picking.py
@@ -21,7 +21,8 @@ def _compute_state(self):
res = super()._compute_state()
for picking in self:
if (
- picking.intercompany_picking_id
+ picking.company_id.sync_picking_state
+ and picking.intercompany_picking_id
and picking.picking_type_code == "incoming"
and picking.state not in ["done", "cancel"]
):
diff --git a/purchase_sale_inter_company/views/res_config_view.xml b/purchase_sale_inter_company/views/res_config_view.xml
index 46f1f59ef0f..9ebc464d714 100644
--- a/purchase_sale_inter_company/views/res_config_view.xml
+++ b/purchase_sale_inter_company/views/res_config_view.xml
@@ -63,6 +63,13 @@
class="oe_inline"
/>
+
+
+