-
-
Notifications
You must be signed in to change notification settings - Fork 924
Description
Module
purchase_request
Describe the bug
In Odoo 18 "move_dest_ids" can also be false while a list is expected from code, see below error details:
RPC_ERROR
Odoo Server Error
Occured on staging.odoo-si.de on model sale.order on 2026-01-06 11:58:17 GMT
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/odoo/http.py", line 2166, in _transactioning
return service_model.retrying(func, env=self.env)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 156, in retrying
result = func()
^^^^^^
File "/usr/lib/python3/dist-packages/odoo/http.py", line 2133, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/http.py", line 2381, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 333, in _dispatch
result = endpoint(**request.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/http.py", line 754, in route_wrapper
result = endpoint(self, *args, **params_ok)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 42, in call_button
action = call_kw(request.env[model], method, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/api.py", line 535, in call_kw
result = getattr(recs, name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons-extra/OCA/sale-workflow/sale_stock_line_sequence/models/sale_order.py", line 25, in action_confirm
res = super().action_confirm()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/sale_management/models/sale_order.py", line 169, in action_confirm
res = super().action_confirm()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/sale_crm/models/sale_order.py", line 15, in action_confirm
res = super(SaleOrder, self.with_context({k: v for k, v in self._context.items() if k != 'default_tag_ids'})).action_confirm()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/sale/models/sale_order.py", line 1174, in action_confirm
self.with_context(context)._action_confirm()
File "/usr/lib/python3/dist-packages/odoo/addons/sale_project/models/sale_order.py", line 134, in _action_confirm
return super()._action_confirm()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/repair/models/sale_order.py", line 27, in _action_confirm
res = super()._action_confirm()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/sale_stock/models/sale_order.py", line 181, in _action_confirm
self.order_line._action_launch_stock_rule()
File "/usr/lib/python3/dist-packages/odoo/addons/repair/models/sale_order.py", line 85, in _action_launch_stock_rule
return super(SaleOrderLine, lines_without_repair_move)._action_launch_stock_rule(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/sale_stock/models/sale_order_line.py", line 423, in _action_launch_stock_rule
self.env['procurement.group'].run(procurements)
File "/usr/lib/python3/dist-packages/odoo/addons/purchase_stock/models/stock.py", line 293, in run
return super().run(procurements, raise_user_error=raise_user_error)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/mrp/models/stock_rule.py", line 285, in run
return super(ProcurementGroup, self).run(procurements_without_kit, raise_user_error=raise_user_error)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/stock/models/stock_rule.py", line 514, in run
getattr(self.env['stock.rule'], 'run%s' % action)(procurements)
File "/usr/lib/python3/dist-packages/odoo/addons/mrp/models/stock_rule.py", line 116, in _run_pull
return super()._run_pull(procurements)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/stock/models/stock_rule.py", line 310, in _run_pull
moves._action_confirm()
File "/usr/lib/python3/dist-packages/odoo/addons/mrp/models/stock_move.py", line 530, in _action_confirm
return super(StockMove, moves)._action_confirm(merge=merge, merge_into=merge_into)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/stock/models/stock_move.py", line 1543, in _action_confirm
self.env['procurement.group'].run(procurement_requests, raise_user_error=not self.env.context.get('from_orderpoint'))
File "/usr/lib/python3/dist-packages/odoo/addons/purchase_stock/models/stock.py", line 293, in run
return super().run(procurements, raise_user_error=raise_user_error)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/mrp/models/stock_rule.py", line 285, in run
return super(ProcurementGroup, self).run(procurements_without_kit, raise_user_error=raise_user_error)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons/stock/models/stock_rule.py", line 514, in run
getattr(self.env['stock.rule'], 'run%s' % action)(procurements)
File "/usr/lib/python3/dist-packages/odoo/addons-extra/OCA/purchase-workflow/purchase_request/models/stock_rule.py", line 86, in _run_buy
self.create_purchase_request(procurement)
File "/usr/lib/python3/dist-packages/odoo/addons-extra/OCA/purchase-workflow/purchase_request/models/stock_rule.py", line 130, in create_purchase_request
request_line_data = rule._prepare_purchase_request_line(pr, procurement)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/odoo/addons-extra/OCA/purchase-workflow/purchase_request/models/stock_rule.py", line 24, in _prepare_purchase_request_line
"move_dest_ids": [
^
TypeError: 'bool' object is not iterable
The above server error caused the following client error:
RPC_ERROR: Odoo Server Error
RPCError@https://odooxxx.de/web/assets/51c7907/web.assets_web.min.js:3165:343
makeErrorFromResponse@https://odooxxx.de/web/assets/51c7907/web.assets_web.min.js:3168:177
@https://odooxxx.de/web/assets/51c7907/web.assets_web.min.js:3173:34
To Reproduce
Affected versions: Odoo 18
Steps to reproduce the behavior:
- Create SO with product for which purchase request is enabled/required
- Click on "Confirm" SO
Expected behavior
SO should be confirmed and product added to purchase requests list