Reserve stock for sales orders with expiry and priority control
Description
Lets sales teams reserve stock for a customer from a quotation, keep it aside until confirmation or expiry, consume it in priority order when confirming the order, and report demanded vs reserved quantities.
Author
Cloudia
Copyright
Copyright (c) 2025-Present Cloudia Systems S.A.C.
License
OPL-1
Version
18.0.1.0
Dependencies
sale_management
stock
product
2. User instructions
Set the customer reservation code
Open the company in Contactos (example: A´QUA GOCTA).
Tab Venta y compra.
Set Código de Reserva — exactly 6 letters/digits, unique. It is used in reservation sequence numbers. Live example value: 324017.
Contactos / A´QUA GOCTA. Tab Venta y compra. Field Código de Reserva (companies only).
Request and approve from a quotation
Open a Cotización under Ventas → Pedidos (example COT000921, customer ALWA PERU S.A.).
Optionally set Tipo de reserva: Una Sola Vez (cancelled when fully consumed or the quotation expires) or Repetida (keeps demand; only expires on its own date). Fecha de Expiración de la Reserva appears after a type is chosen; approving requires an expiry. It also updates the quotation validity date.
While still a quotation with no reservation, Solicitar Reserva creates the reservation picking. After it exists: Aprobar Reserva, Cancelar Reserva, and the smart button Reservas (count). Confirming a reserved quotation is blocked until you cancel or consume the reservation.
Order lines show read-only Cantidad Reservada (optional). While a reservation picking is linked, several header fields (pricelist, invoice/shipping address, order date, payment term) are hidden so the quotation cannot be rewritten.
Cotización COT000921. Buttons Aprobar Reserva and Cancelar Reserva. Smart button 1 Reservas. Field Tipo de reserva. Status Cotización.
Work the reservation picking
Open Inventario → Operaciones → Reservas de Stock.
List columns (live): Referencia, Contacto, Fecha de creación, Documento origen, Tipo de reserva, Fecha de Expiración de la Reserva, Estado. Past-expiry rows are highlighted. Filters: Una Sola Vez, Repetida, Expirada, Válida. Group by partner, type, status or expiry.
Inventario / Reservas de Stock. Example LUR/stock.reservation/00034 draft (COT000921, Repetida) and 00033 assigned (COT000881, Una Sola Vez).
On the picking form: Orden de Reserva, Tipo de reserva, Fecha de Expiración de la Reserva, and a Reservas smart button (customer reservation mapping). Intended header buttons: Aprobar y Reservar (draft), Liberar Stock (assigned), Reabastecer (assigned + repeat). On this database the standard picking header is hidden when Orden de Reserva is on, so those buttons may not appear — use Aprobar Reserva on the quotation, or the mapping / wizard from source.
Reservas de Stock / LUR/stock.reservation/00033 (COT000881). Assigned. Fields Orden de Reserva, Tipo de reserva, Fecha de Expiración de la Reserva. Stat buttons Movimientos and Reservas. Header actions hidden.
Reservation lines, report and release wizard
Ventas → Productos → Líneas de Reserva lists reservation moves (live columns Nombre de Reserva, Cliente, Producto, Cantidad, UdM, Fecha de Fin, Estado; default filter available). Ventas → Informes → Reporte de Reserva is a SQL report: Referencia de Reserva, Fecha de Reserva, Cliente, Producto, Cantidad Demandada, Cantidad Reservada, Estado, Orden de Venta. Use row button Actualizar Datos (or action Actualizar Reporte de Reserva).
Ventas / Líneas de Reserva. Columns Nombre de Reserva, Cliente, Producto, Cantidad, UdM, Fecha de Fin, Estado.Ventas / Informes / Reporte de Reserva. 154 rows. Columns include Orden de Venta and Cantidad Demandada vs Cantidad Reservada. Actualizar Datos on each row.
The wizard Liberar Stock (from an assigned reservation picking) lets you send reserved qty to another confirmed move of the same product: set Movimiento Objetivo and Cantidad a Liberar (cannot exceed available, reserved, or remaining demand). Empty mapping list on this database is normal until a reservation is consumed by a delivery.
A scheduled autovacuum cancels expired reservations and releases stock. One-time reservations also cancel when fully consumed. On confirm, stock is consumed in order: the order’s own reservation, other one-time reservations for the customer, then repeat reservations (repeat demand is replenished / re-sequenced so it stays behind active pickings).
Reserva de inventario
Nombre técnico: cs_stock_reservation
Nombre
Stock Reservation
Resumen
Reserva stock para órdenes de venta con vencimiento y prioridad
Descripción
Permite al equipo de ventas reservar stock para un cliente desde una cotización, dejarlo aparte hasta confirmar o vencer, consumirlo por prioridad al confirmar la orden, y reportar cantidad demandada frente a reservada.
Autor
Cloudia
Copyright
Copyright (c) 2025-Present Cloudia Systems S.A.C.
Licencia
OPL-1
Versión
18.0.1.0
Dependencias
sale_management
stock
product
2. Instrucciones de usuario
Definir el código de reserva del cliente
Abra la compañía en Contactos (ejemplo: A´QUA GOCTA).
Pestaña Venta y compra.
Indique Código de Reserva — exactamente 6 letras/dígitos, único. Se usa en la secuencia de reservas. Ejemplo en vivo: 324017.
Contactos / A´QUA GOCTA. Pestaña Venta y compra. Campo Código de Reserva (solo compañías).
Solicitar y aprobar desde una cotización
Abra una Cotización en Ventas → Pedidos (ejemplo COT000921, cliente ALWA PERU S.A.).
Opcional: Tipo de reservaUna Sola Vez (se cancela al consumirse o al vencer la cotización) o Repetida (conserva la demanda; solo vence en su fecha). Aparece Fecha de Expiración de la Reserva; aprobar exige esa fecha. También actualiza la validez de la cotización.
En cotización sin reserva, Solicitar Reserva crea el traslado. Luego: Aprobar Reserva, Cancelar Reserva y el botón Reservas. Confirmar una cotización reservada queda bloqueado hasta cancelar o consumir la reserva.
Las líneas muestran Cantidad Reservada de solo lectura (opcional). Con un traslado de reserva vinculado se ocultan lista de precios, direcciones, fecha y plazo de pago para que no se reescriba la cotización.
Cotización COT000921. Botones Aprobar Reserva y Cancelar Reserva. Botón 1 Reservas. Campo Tipo de reserva. Estado Cotización.
Trabajar el traslado de reserva
Abra Inventario → Operaciones → Reservas de Stock.
Columnas en vivo: Referencia, Contacto, Fecha de creación, Documento origen, Tipo de reserva, Fecha de Expiración de la Reserva, Estado. Las filas vencidas se resaltan. Filtros: Una Sola Vez, Repetida, Expirada, Válida.
Inventario / Reservas de Stock. Ejemplo LUR/stock.reservation/00034 borrador (COT000921, Repetida) y 00033 asignado (COT000881, Una Sola Vez).
En el formulario: Orden de Reserva, Tipo de reserva, Fecha de Expiración de la Reserva y el botón Reservas. Botones de encabezado previstos: Aprobar y Reservar (borrador), Liberar Stock (asignado), Reabastecer (asignado + repetida). En esta base el encabezado del traslado se oculta si Orden de Reserva está activo, así que esos botones pueden no verse — use Aprobar Reserva en la cotización.
Reservas de Stock / LUR/stock.reservation/00033 (COT000881). Asignado. Campos Orden de Reserva, Tipo de reserva, Fecha de Expiración de la Reserva. Botones Movimientos y Reservas. Acciones de encabezado ocultas.
Líneas, reporte y asistente de liberación
Ventas → Productos → Líneas de Reserva lista los movimientos (columnas Nombre de Reserva, Cliente, Producto, Cantidad, UdM, Fecha de Fin, Estado). Ventas → Informes → Reporte de Reserva: Referencia de Reserva, Fecha de Reserva, Cliente, Producto, Cantidad Demandada, Cantidad Reservada, Estado, Orden de Venta. Botón Actualizar Datos.
Ventas / Líneas de Reserva. Columnas Nombre de Reserva, Cliente, Producto, Cantidad, UdM, Fecha de Fin, Estado.Ventas / Informes / Reporte de Reserva. 154 filas. Columnas Orden de Venta y Cantidad Demandada vs Cantidad Reservada. Actualizar Datos en cada fila.
El asistente Liberar Stock (desde un traslado asignado) pasa cantidad reservada a otro movimiento confirmado del mismo producto: Movimiento Objetivo y Cantidad a Liberar (no puede superar lo disponible, lo reservado ni la demanda restante). El mapeo cliente–reserva vacío es normal hasta que una entrega consuma la reserva.
Un autovacuum cancela las reservas vencidas y libera el stock. Las de una sola vez también se cancelan al consumirse. Al confirmar se consume en este orden: la reserva propia, otras de una sola vez del cliente, luego las repetidas (la demanda repetida se reabastece / resecuencia detrás de los traslados activos).