Historial Stock
Exportar contenido
Consulta el historial completo de movimientos de stock de un producto con fecha, cantidad, motivo y usuario.
- En la página de detalle del producto, ve a la sección “Historial de Stock”.
- (Opcional) Filtra por tipo de movimiento o rango de fechas.
- Revisa la tabla de movimientos ordenada por fecha.
Nota: El historial muestra los últimos 50 movimientos por defecto. Usa filtros para consultas específicas.
Columnas del historial
Sección titulada «Columnas del historial»| Columna | Descripción | Ejemplo |
|---|---|---|
| Tipo | Entrada/Salida/Ajuste/Devolución/Transferencia | Entrada |
| Cantidad | Unidades movidas (+/-) | +50 |
| Motivo | Razón del movimiento | Compra a proveedor |
| Notas | Información adicional | Factura #001 |
| Fecha | Timestamp del movimiento | 2024-01-15 10:30 |
| Usuario | Quien registró el movimiento | Juan Pérez |
| Ubicación Origen | Ubicación de salida (transferencias) | A1-E2-C3 |
| Ubicación Destino | Ubicación de entrada (transferencias) | B2-E1-C5 |
Tipos de movimiento
Sección titulada «Tipos de movimiento»| Icono | Tipo | Color | Descripción |
|---|---|---|---|
| ↑ | Entrada | Verde | Incrementa el stock |
| ↓ | Salida | Rojo | Reduce el stock |
| ↻ | Ajuste | Amarillo | Corrección de inventario |
| ← | Devolución | Azul | Devolución de cliente |
| → | Transferencia | Morado | Movimiento entre ubicaciones |
Cómo sé que lo hice bien
Sección titulada «Cómo sé que lo hice bien»- El historial muestra todos los movimientos en orden cronológico.
- Los movimientos coinciden con los cambios de stock del producto.
- Puedes identificar quién y cuándo se realizó cada movimiento.
🔧 Detalles Técnicos — Historial Stock
Tablas involucradas:
| Tabla | Columnas clave | FK |
|---|---|---|
stock_movements | id, product_id, business_id, movement_type, quantity, reason, notes, created_at, created_by, warehouse_location_from_id, warehouse_location_to_id | products, warehouse_locations |
Tipo de dato:
interface StockMovement { id: string; movement_type: 'entrada' | 'salida' | 'ajuste' | 'devolucion' | 'transferencia'; quantity: number; reason?: string; notes?: string; created_at: string; created_by?: string; warehouse_location_from_id?: string; warehouse_location_to_id?: string;}Componente:
ProductStockHistory.tsx- Tabla con iconos y badges de color por tipo
- Formato de fecha con
date-fns(locale español)
Queries de diagnóstico:
-- Historial completo de un productoSELECT sm.movement_type, sm.quantity, sm.reason, sm.notes, sm.created_at, wlf.code as ubicacion_origen, wlt.code as ubicacion_destinoFROM stock_movements smLEFT JOIN warehouse_locations wlf ON wlf.id = sm.warehouse_location_from_idLEFT JOIN warehouse_locations wlt ON wlt.id = sm.warehouse_location_to_idWHERE sm.product_id = '<product_id>'ORDER BY sm.created_at DESCLIMIT 50;
-- Resumen de movimientos por tipoSELECT movement_type, COUNT(*) as total, SUM(quantity) as total_quantityFROM stock_movementsWHERE product_id = '<product_id>'GROUP BY movement_type;Schema de validación:
- Ubicación:
/src/schemas/validation.ts(líneas 151-165) stockMovementSchema— Validación de movimientos