OdooWiki OCA HUB

Stock Reception Discrepancy Distribution

stock_reception_discrepancy_distribution folder_open OCA/stock-logistics-workflow open_in_new
Inventory License: AGPL-3

When a single reception move feeds several destination moves (typical case: two MTO sale orders consolidated into the same purchase order) and the received quantity exceeds the demand, this module adds a wizard on the receipt that lets you decide how to share the surplus between those destination moves before validating the transfer, so no extra outgoing picking is generated.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

When a receipt brings in more than the linked outgoing moves need, this module adds a button on the receipt that opens a wizard to redistribute the surplus between the destination moves before validating.

This module helps warehouse and sales staff handle over-receipts where one incoming transfer feeds several outgoing moves (for example, two customer orders consolidated into one purchase order).

On an incoming transfer form, next to the quantity column of the move lines, a small button appears (hidden once the transfer is done or cancelled, and for returns). Clicking it opens a wizard showing the product, the quantity received, the total demand of the destination moves, and the surplus.

In the wizard you can edit the demanded quantity on each destination stock move directly in the list, which shows the destination transfer, the customer, the quantity and its unit of measure. The total demand and the surplus recalculate automatically, and are colour-coded: green when received equals demand, orange when there is a surplus, red when the received quantity is below demand.

When you press Confirm, if the received quantity is greater than the originally planned quantity on the incoming move, the planned quantity is raised to match what was actually received. This way the extra units are absorbed by the destination moves instead of generating an additional outgoing transfer.

The module touches stock.move and stock.picking, and adds the wizard model stock.reception.discrepancy.distribution.wiz. It depends on sale_purchase_stock.

Depends on

sale_purchase_stock
Models and fields (2)
  • stock.move · extends an existing model
  • stock.reception.discrepancy.distribution.wiz · new modelmove_id, product_id, product_uom, move_dest_ids, move_qty_done, over_quantity, move_dest_demand

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 2 confirmed, 7 with no information of 9 versions.

Sources · Odoo 18.0

Confirmed on 2026-11-03 in branch 18.0 of OCA/stock-logistics-workflow.

terminal Installation and usage

OCA documentation · Odoo 18.0

One-time setup

  • Inventory > Configuration > Settings: tick Multi-Step Routes and save.
  • Inventory > Configuration > Warehouse Management > Routes: in the search bar open Filters and tick Archived, then open Replenish on Order (MTO) and unarchive it.
  • Open a storable product (Inventory > Products > Products):
  • Product Type: Goods, with Track Inventory ticked.
  • Inventory tab → Operations: tick Buy and Replenish on Order (MTO).
  • Purchase tab: add a vendor with a price.

Flow

  • Sales > Orders > Quotations: create one quotation for Customer A with the product, quantity 10, and confirm it.
  • Create a second quotation for Customer B, quantity 15, and confirm it.
  • Purchase > Orders > Requests for Quotation: open the RFQ that has been auto-created (one line, 25 units) and click Confirm Order.
  • On the purchase order, click Receive Products.
  • In the Operations tab of the receipt, raise Quantity to 30 and tick Picked.
  • Next to Quantity, click the small fork icon (tooltip Change qty on dest moves). The wizard opens.
  • In the wizard the header shows Quantity = 30, Move Dest Demand = 25, Over Quantity = 5. Under Destination stock moves edit Demand on each line so the total matches 30 (e.g. 12 and 18). The header turns green when both numbers are equal.
  • Click Confirm, then Validate the receipt.

Expected result

  • The receipt is Done and no backorder is created.
  • Each customer's outgoing transfer has the redistributed demand (12 and 18 in the example).

The button stays hidden on transfers that are Done / Cancelled, on non-incoming transfers, and on return moves.

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.