Registrar orden
Crea una nueva orden con sus productos, cantidades y fecha de vigencia.
Validar vigencia
Verifica si una orden sigue activa según su fecha de emisión y días de vigencia.
Actualizar estado
Cambia el estado de una orden a
VIGENTE, EXPIRADA o CERRADA.Consultar órdenes
Lista todas las órdenes o consulta una por su ID.
Ciclo de vida de una orden
Cada orden pasa por los siguientes estados definidos en el enumEstadoOrden:
| Estado | Descripción |
|---|---|
VIGENTE | La orden está activa. Se asigna automáticamente al crear una nueva orden. |
EXPIRADA | La fecha de emisión más los días de vigencia ya superó la fecha actual. |
CERRADA | La orden fue cerrada manualmente, independientemente de la fecha. |
Al registrar una nueva orden, el sistema siempre asigna el estado
VIGENTE de forma automática, sin importar el valor enviado en el cuerpo de la petición.Estructura del objeto OrdenCompra
Una orden de compra contiene los datos generales del pedido y una lista de productos (detalles) con las cantidades solicitadas.Campos principales
| Campo | Tipo | Descripción |
|---|---|---|
idOrden | Long | Identificador único generado automáticamente. |
fechaEmision | LocalDate | Fecha de emisión en formato yyyy-MM-dd. Si se omite, se usa hoy. |
vigenciaDias | int | Número de días que la orden permanece vigente. |
cantidadSolicitada | int | Cantidad total de unidades solicitadas en la orden. |
estado | EstadoOrden | Estado actual: VIGENTE, EXPIRADA o CERRADA. |
division | Division | División a la que pertenece la orden (enum). |
departamento | Departamento | Departamento destino (ej. FRUTAS, VERDURAS). |
productos | List | Líneas de detalle con producto y cantidad esperada. |
Campos de OrdenCompraDetalle
| Campo | Tipo | Descripción |
|---|---|---|
idDetalle | Long | Identificador del renglón. |
producto | Producto | Objeto del producto con código y descripción. |
cantidadEsperada | int | Cantidad solicitada para ese producto. |
Endpoints
Listar todas las órdenes
Registrar una nueva orden
Obtener una orden por ID
Validar vigencia de una orden
Actualizar el estado de una orden
nuevoEstado son: VIGENTE, EXPIRADA, CERRADA (sin distinción de mayúsculas/minúsculas).
Flujo de trabajo
Crear la orden
Envía un
POST /api/ordenes-compra con los datos del pedido y la lista de productos. El sistema asigna el estado VIGENTE y, si no se provee, la fecha de emisión del día.Verificar vigencia antes de procesar
Antes de recepcionar una entrega, consulta
GET /api/ordenes-compra/{id}/vigente para confirmar que la orden sigue activa. Si la respuesta indica que está expirada, no debe procesarse.