Despacho de Almacen
Guia para Personal de Logistica
Esta seccion describe el proceso que sigue el personal de almacen/logistica una vez que una requisicion ha sido aprobada. El sistema permite despachar desde multiples almacenes, registrar items nuevos en el catalogo de inventario y combinar despacho con enrutamiento a procura en una sola operacion.
Paso 1: Verificar Stock
- Abra la requisicion aprobada desde el listado o la notificacion
- Haga clic en Verificar Stock para consultar la disponibilidad
El sistema consulta todos los almacenes que tienen stock para cada item y muestra:
| Estado | Significado |
|---|---|
| AVAILABLE | Stock suficiente en al menos un almacen para despachar la cantidad completa |
| PARTIAL | Hay stock pero no cubre la cantidad total solicitada |
| UNAVAILABLE | Sin stock en ningun almacen. O item sin vinculo al catalogo de inventario |
| FULFILLED | Ya fue despachado anteriormente |
Para cada item se muestra:
- Cantidad solicitada y cantidad pendiente (descontando despachos previos)
- Stock disponible total sumando todos los almacenes
- Lista de almacenes con stock, ordenados por cantidad disponible
- Almacen sugerido: prioriza el almacen de la requisicion si tiene stock
Resumen de disponibilidad
El sistema calcula un resumen general:
- Total de items
- Items completamente disponibles
- Items parcialmente disponibles
- Items no disponibles
- Indicador: "Puede despachar completamente" (si/no)
Paso 2: Registrar Items en Inventario
Los items creados como "texto libre" (sin vinculo al catalogo de inventario) deben ser registrados antes de poder despacharse o enrutarse a procura.
- Identifique los items marcados como "Sin item de inventario"
- Haga clic en Registrar en Inventario junto al item
- Complete los datos:
- Nombre: Se pre-llena con la descripcion del item
- Unidad: Se pre-llena con la unidad del item
- Tipo de trazabilidad: Lote (LOT) o Serial (SERIAL)
- El sistema crea un nuevo
InventoryItemcon codigo auto-generado (ITM-00001) - El item de la requisicion queda vinculado al item de inventario


Todos los items deben estar registrados en el catalogo de inventario antes de poder enrutarlos a procura. El sistema valida esto y muestra un error si intenta enrutar un item sin registro.
Endpoint: POST /api/material-requisitions/:id/items/:itemId/register-inventory
Paso 3: Despachar Materiales
La interfaz de despacho ofrece tres modalidades de accion:
Opcion 1: Solo Despacho
Para items que tienen stock completo disponible:
- Seleccione los items a despachar
- Para cada item, seleccione el almacen de origen del dropdown (muestra todos los almacenes con stock)
- Ajuste la cantidad si desea despachar parcialmente
- Haga clic en Despachar

Endpoint: POST /api/material-requisitions/:id/fulfill
Opcion 2: Solo Procura
Para items sin stock disponible:
- Seleccione los items que requieren compra
- Ajuste la cantidad a enviar a procura
- Haga clic en Enviar a Procura
- Se crea un Analisis de Procura (ProcurementAnalysis) vinculado

Endpoint: POST /api/material-requisitions/:id/route-procurement
Opcion 3: Despacho + Procura Combinado
La opcion mas comun cuando hay disponibilidad parcial:
- El sistema pre-clasifica los items: los disponibles para despacho y los que requieren procura
- Ajuste cantidades y almacenes para los items a despachar
- Confirme los items a enviar a procura
- Opcionalmente marque Requiere Pase de Salida y seleccione quien recibe
- Haga clic en Procesar

Endpoint: POST /api/material-requisitions/:id/fulfill-and-procure
Este endpoint realiza en una sola transaccion atomica:
- Crea movimientos de inventario EXIT para items despachados
- Crea un ProcurementAnalysis para items enrutados a procura
- Genera pase de salida (MaterialExitPass) si se solicito
- Actualiza el estado de la requisicion segun resultado
Despacho Multi-Almacen
Cada item puede ser despachado desde multiples almacenes en una sola operacion. Esto es util cuando un almacen no tiene toda la cantidad pero entre varios si.
Formato de datos de despacho:
{
"itemId": "uuid-del-item",
"sources": [
{ "warehouseId": "almacen-1", "quantity": 30 },
{ "warehouseId": "almacen-2", "quantity": 20 }
]
}
Cada source genera un movimiento de inventario separado, todos dentro de la misma transaccion.

Informacion del Movimiento de Inventario
Cada despacho genera uno o mas movimientos con los siguientes datos:
| Campo | Valor |
|---|---|
| Tipo | EXIT (Salida) |
| Razon | Segun proposito: PROJECT_USE, DEPARTMENT_USE, ASSET_ASSIGNMENT, STOCK_TRANSFER |
| Almacen origen | Almacen seleccionado por logistica |
| Referencia | Codigo de la requisicion (ej: RM-2026-0001) |
| Proyecto | Proyecto de la requisicion (si aplica) |
| Centro de costo | Centro de costo de la requisicion |
| Departamento | Departamento del solicitante |
Pase de Salida (MaterialExitPass)
Al despachar, se puede generar automaticamente un Pase de Salida de Material con:
- Codigo auto-generado (PASE-YYMMDD-NNNN)
- Datos del emisor y receptor
- Datos de transporte (vehiculo, chofer)
- Items despachados con cantidades
- Vinculado a los movimientos de inventario generados
Estados de los Items
| Estado | Codigo | Descripcion |
|---|---|---|
| Pendiente | PENDING | Aun no procesado por logistica |
| Parcial | PARTIAL | Despachado parcialmente (parte disponible, parte en procura) |
| Despachado | FULFILLED | Completamente despachado del almacen |
| En Procura | PROCUREMENT | Enrutado al modulo de procura para compra |
| Cancelado | CANCELLED | Item cancelado |
Actualizacion Automatica de Estado
El estado de la requisicion se actualiza automaticamente segun el estado de sus items:
| Condicion | Estado de Requisicion |
|---|---|
| Todos los items FULFILLED o CANCELLED | FULFILLED |
| Todos los items PROCUREMENT o CANCELLED | AWAITING_PROCUREMENT |
| Algunos FULFILLED/PARTIAL, otros pendientes | PARTIALLY_FULFILLED |

Despacho desde AWAITING_PROCUREMENT y READY_FOR_DISPATCH
La requisicion no se cierra cuando se enrutan items a procura. Cuando el material es recibido (via recepcion de OC), la requisicion pasa a READY_FOR_DISPATCH y logistica puede:
- Abrir la requisicion (notificacion automatica)
- Verificar stock actualizado
- Despachar los items que ahora tienen stock disponible
Los estados AWAITING_PROCUREMENT y READY_FOR_DISPATCH tambien permiten despacho.
Validaciones Importantes
- Solo se pueden despachar requisiciones en estado
APPROVED,PARTIALLY_FULFILLED,READY_FOR_DISPATCHoAWAITING_PROCUREMENT - No se puede despachar mas de la cantidad pendiente
- Se valida que haya stock suficiente en el almacen seleccionado antes de cada despacho
- Items sin vinculo al catalogo de inventario deben ser registrados primero
- Si el stock es insuficiente a medio proceso, la operacion se revierte completamente (transaccion atomica)
- Los items con
fulfillmentStatus = 'FULFILLED'no pueden volver a despacharse