Índice de la documentación

Flujos · Venta

Pedido telefónico con reserva

El cliente llama y aparta mercancía para comprarla en unos días. El sistema reserva ese stock (deja de estar disponible para otras ventas), la reserva expira si no se paga a tiempo (por defecto 7 días, máximo 7), y el precio de cada línea se congela al crear el pedido (con descuento manual si se baja).

Ya implementado. El pedido a futuro se marca con es_reserva y genera movimientos de reserva (una por línea) que apartan stock: el disponible baja, el físico no. Si no se paga antes de fecha_expiracion, una tarea automática (cada hora) libera las reservas y marca el pedido Expirado. Detalle en Las tablas del negocio y La API del backend.
flowchart TD
    A([Cliente llama por teléfono]):::cliente --> B[Ventas arma el pedido<br/>y solicita reservar]:::empleado
    B --> C{¿Hay stock<br/>disponible?}:::decision
    C -- No --> C2([No se puede reservar<br/>se ofrece alternativa]):::fin
    C -- Sí --> D[Sistema aparta el stock<br/>Pendiente · reserva activa]:::sistema
    D --> E[Sistema fija vencimiento<br/>hasta 7 días]:::sistema
    E --> F{¿Paga dentro<br/>del plazo?}:::decision
    F -- No, expira --> G[Sistema libera la reserva<br/>pedido Expirado]:::sistema
    G --> G2([Reserva caducada]):::fin
    F -- Sí --> H[Cliente paga · Ventas cobra]:::empleado
    H --> I[Sistema consume la reserva<br/>precio congelado por línea]:::sistema
    I --> J[Salida de venta definitiva<br/>pedido Pagado]:::sistema
    J --> K([Pedido normal · sigue su ciclo]):::fin

    classDef cliente fill:#FBE7EE,stroke:#C0436B,stroke-width:1.5px,color:#18222E;
    classDef empleado fill:#E7F0FC,stroke:#2E73D9,stroke-width:1.5px,color:#18222E;
    classDef sistema fill:#E1F2F0,stroke:#0E9488,stroke-width:1.5px,color:#18222E;
    classDef decision fill:#F7EEE1,stroke:#CF8138,stroke-width:1.5px,color:#18222E;
    classDef fin fill:#ECEDFB,stroke:#5B63E6,stroke-width:1.5px,color:#18222E;
    
Acción del cliente Acción del empleado Lo hace el sistema Decisión Estado final

Las tres piezas nuevas que exige

Reserva de stock: apartar unidades para un cliente sin venderlas todavía. El stock disponible que ven las demás ventas baja, pero no se genera un movimiento de venta hasta confirmar.
Expiración hasta 7 días: cada reserva lleva una fecha de vencimiento (por defecto 7 días, máximo 7). Una tarea automática, cada hora, libera las que caducan sin pagarse y marca el pedido Expirado, devolviendo el stock a disponible.
Precio congelado por línea: el precio se fija en cada línea al crear el pedido, con el de lista por defecto. Si el empleado lo baja, queda marcado como descuento y se guarda el precio de lista original para auditarlo. Al pagar no se vuelve a recalcular.

Paso a paso (diseño)

El cliente llama y aparta

Pide reservar ciertas unidades para comprarlas en unos días. Ventas arma el pedido y solicita la reserva.

El sistema reserva y pone el reloj

Si hay stock disponible, lo aparta (el pedido queda Pendiente con la marca de reserva) y fija el vencimiento (por defecto 7 días, máximo 7). Ese stock deja de ofrecerse a otras ventas.

El cliente paga dentro del plazo

Al cobrar, el sistema consume la reserva con el precio ya congelado en cada línea y genera la salida de venta definitiva. El pedido pasa a Pagado y sigue como uno normal.

O la reserva expira

Si no confirma a tiempo, la tarea automática libera la reserva y el stock vuelve a estar disponible, sin penalización ni movimiento de venta.

Quién haría qué

El empleado

  • Atiende la llamada y arma el pedido
  • Solicita la reserva del stock
  • Confirma y cobra cuando el cliente decide
  • Ofrece alternativa si no hay stock para reservar

El sistema

  • Aparta el stock y marca la reserva (baja el disponible, no el físico)
  • Controla el vencimiento y libera lo caducado (marca Expirado)
  • Consume la reserva al pagar, con el precio congelado por línea
  • Genera la salida de venta definitiva al cerrar la venta

Casos límite

La reserva expira: el stock vuelve a disponible automáticamente. Conviene avisar al cliente antes de que caduque.
El cliente reduce cantidades: se ajusta la reserva y las unidades sobrantes se liberan de inmediato para otras ventas.
El precio de lista cambia durante la reserva: no afecta a este pedido. El precio se congela por línea al crearlo; al pagar se cobra ese precio, no el vigente. Para aplicar otro precio hay que editar la línea mientras el pedido siga Pendiente.
No hay stock para reservar: el sistema no permite apartar más de lo disponible; Ventas ofrece una fecha de reposición o un producto alternativo.

Cuando la reserva se confirma, el pedido entra en el ciclo de vida normal. Ver también la Guía de Ventas y cómo se deriva el stock.