Stock reservations are mainly used to ensure the stock availability when delivering a Sales Order. Coming with this feature it is also possible to lock stock not related to any Sales Order to avoid its consumption.
A reservation identifies certain stock in the warehouse that is reserved and cannot be consumed by anyone except the owner of the reservation. Currently there are 2 possible owners, a Saler Order line or the System. A reservation for a Sales Order line identifies stock that can only be consumed in shipments related to the Sales Order. A System reservation is a special reservation type that cannot be consumed by anyone. System reservations are used for Hold reservations when some stock needs to be blocked in the warehouse.
|Reservations are disabled by default. To be able to use them please insert a new Preference using property Enable Stock Reservations with value Y.|
The functionality developed comes with two types of reservations:
- Pre-Reservation: These are reservations that are not physically in the warehouse but ordered to a supplier and where there is a relationship between the line of the purchase order and a sales order line. Once the purchase order line is received this pre-reservation is automatically converted to a reservation
- Reservation: Refers to stock stored in the warehouse that is already reserved by a sales order line
A reservation is always defined by the product that is desired to be reserved but other dimensions can be defined such as the warehouse, storage bin and attribute (i.e Colour, lots, serial number).
Another interesting thing is the possibility of allocating or not the reservation:
- Allocated stock means that specific stock is reserved for a sales order, rather than it being a general reservation. That particular stock can not be reserved for any other sales order
- A Not Allocated reserved stock can be changed at any time by other existing stock but always ensuring that the Sales Order line keeps the reservation
This new functionality tries to cover several flows:
- Purchasing plan (MRP)
A sales order can be reserved when the document is booked and pending to be delivered. The way to make the reservation is:
Manual: No reservation is generated automatically. So when the order is booked the reservations needs to be done manually selecting the storage bin, attribute, etc Automatic: The reservation is automatically created and processed, reserving the available stock
For more information visit: Sales Order
Pre-reservations can also be made from the Purchase Order. Being in the purchase order line there is the possibility of selecting any sales order line pending to be delivered that is waiting to receive the goods in the warehouse. Once the items are received the pre-reservation is converted to reservation and the goods are reserved for that sales order line
For more information visit: Purchase Order
Purchasing Plan (MRP)
When launching the purchasing plan there is now the possibility of making reservations for Sales Order and pre-reservations, that is, create purchase orders linked to sales orders
For more information visit: Purchasing plan
When a Good Shipment of a reserved Sales Order is automatically created it will consume reserved stock. The process will propose first the possible allocated stock and later any available stock based on the standard rules to retrieve stock, including reserved stock but NOT allocated (even from other reservations). If the related Sales Order do not have any reservation only not reserved stock is proposed.
When the Goods Shipment is processed the reservation is updated to reflect the stock that has been finally been delivered and update the released quantity. In this step there are several cases:
- All the stock of the shipment matches the reserved stock. The released quantity is updated accordingly.
- A different stock is shipped.
- The stock is not reserved by any other reservation. The reservation is updated to reserve the shipped stock and if there was other stock reserved it is deleted from the reservation so the reserved quantity remains equal.
- The stock is reserved and not allocated in other reservation. The other reservation is updated to search for other available stock.
- If available stock is found the other reservation is updated to reserve the found stock and the stock is reassigned to the current reservation.
- If no available stock is found an error is thrown as the stock is not available. The user should change the stock of the good shipment or edit the other reservation to manually search or free the conflicting stock.
- The stock is reserved and allocated in other reservation. An error is thrown as the stock is not available. The user should change the stock of the good shipment or edit the other reservation to manually search or free the conflicting stock.