XPert WMS · COMFAR · Documentación funcional
Cómo el sistema mantiene abastecido el sector de picking: detecta cuándo un producto baja del mínimo y genera automáticamente tareas de reabastecimiento desde almacenaje, con selección de lote por vencimiento (FEFO).
El sector de picking (de donde se arman los pedidos) debe tener siempre una cantidad mínima de cada producto. Cuando se consume y baja del mínimo, alguien tiene que traer más stock desde las estanterías de almacenaje. Antes esto era manual; ahora el sistema lo detecta y genera la tarea solo.
Donde el operario toma producto para preparar pedidos. 9 zonas en CENMRA: PK-OTCPK-OTX PIC-RXPIC-SUP PIC-FITOPIC-COSM PIC-CTRLPIC-DIS PIC-MM
Estanterías de reserva donde vive el grueso del inventario (ej. CEN-PT,
CEN-MP, CEN-IN). Es el origen del reabastecimiento.
| Pieza | Qué hace |
|---|---|
| CRUD Stock Mínimo menú: Stock Mínimo Picking |
Pantalla para definir, por producto y zona picking, el mínimo de unidades (y un objetivo opcional). |
Tabla picking_min_levels |
Almacena la configuración: item + zona picking + mínimo. |
| Proceso automático cron 30 min |
Recorre los mínimos, compara contra el stock real de picking y genera tareas de reabastecimiento. |
Tarea REPLENISH |
Orden de mover stock de un bin de STORAGE a un bin de PICKING. Aparece en Tareas de Almacén. |
| Ejecución por operario | El operario completa la tarea y el sistema mueve el stock (y registra el movimiento). |
Un supervisor define en el CRUD: “el producto 70422 en PIC-RX
debe tener mínimo 640 unidades”. (La carga inicial de 49 productos ya se hizo desde el Excel.)
El proceso replenish_cron.php recorre todos los mínimos activos del almacén.
Suma el stock disponible (cantidad − reservado, estado AVAILABLE) del producto en su zona de picking. Si está por encima del mínimo → no hace nada.
Si está por debajo, calcula cuánto falta y busca stock disponible en las zonas STORAGE, eligiendo primero el lote que vence antes (FEFO). Puede combinar varios bins/lotes para cubrir el faltante.
Crea una tarea en Tareas de Almacén (origen = bin STORAGE, destino = bin de la zona picking, cantidad). Reserva ese stock en origen para que nadie más lo tome. No crea duplicados si ya hay una abierta.
En Tareas: Asignar → Iniciar → Completar. Va físicamente, traslada el producto al sector picking y confirma.
Al completar, el sistema descuenta del bin STORAGE, suma al bin PICKING, libera la reserva y deja registrado el movimiento. El picking vuelve a estar por encima del mínimo. ✅
Menú lateral → Stock Mínimo Picking (grupo Zonificación).
| Columna | Significado |
|---|---|
| Código / Producto | Artículo SAP. |
| Zona picking | Dónde debe mantenerse el stock (PK-OTC, PIC-RX, etc.). |
| Mínimo | Umbral. Por debajo de esto se dispara el reabastecimiento. |
| Stock picking | Cantidad disponible ahora en esa zona. ámbar si está por debajo del mínimo. |
| Activo | Si está desactivado, el proceso lo ignora. |
| Acciones | Editar / Eliminar. Botón + Nuevo mínimo para agregar. |
El origen siempre se elige por vencimiento más próximo primero, para rotar el stock y evitar vencimientos.
Al crear la tarea, la cantidad queda reservada en el bin de origen: no se cuenta como disponible para ventas ni para otra tarea. Se libera al completar.
Si ya existe una tarea REPLENISH abierta (pendiente / asignada / en progreso) para ese producto y zona, no se crea otra.
Si en STORAGE no hay suficiente para cubrir todo el faltante, se reabastece lo que haya disponible. Si no hay nada en STORAGE, no se genera tarea.
| Estado | Significado | Acción |
|---|---|---|
| PENDING | Generada por el sistema, sin operario. | Asignar / Iniciar |
| ASSIGNED | Asignada a un operario. | Iniciar |
| IN_PROGRESS | El operario está moviendo el producto. | Completar |
| COMPLETED | Stock movido a picking; reserva liberada. | — |
STORAGE → PICKING,
se descuenta del origen, se suma al destino y queda registrado en el historial de movimientos.picking_min_levels| Campo | Descripción |
|---|---|
item_id | Producto. |
zone_id | Zona de picking (tipo PICKING). |
min_qty | Mínimo en unidades. |
target_qty | Objetivo a reponer (opcional; por defecto = mínimo). |
is_active | Activo / inactivo. |
La tarea se guarda en warehouse_tasks con task_type = 'REPLENISH',
reference_type = 'PICKING_MIN', y los campos from_bin_id, to_bin_id,
item_id, batch_id, quantity. El movimiento se registra en stock_movements.
La función aplica a productos cuya familia SAP determina su zona de picking. Carga inicial desde el archivo “Stock Mínimo Picking.xlsx” (49 productos):
| Grupo SAP | Familia | Zona picking | Productos |
|---|---|---|---|
| 103 | NA-RX | PIC-RX | 23 |
| 104 | NA-OTC | PK-OTC | 5 |
| 105 | NA-OTX | PK-OTX | 21 |
70287, 70333, 70581, 70583, 70585, 70934, 770585.
Hay que definir su zona (ej. PIC-CTRL) y cargarlos desde el CRUD.
770585 (PRODROM THC) parece tener un dígito de más — verificar contra SAP.