Inventario — Kardex de un producto
Historial cronológico de movimientos de stock de un producto. Muestra fecha, tipo (compra/venta/merma/conteo/etc.), cantidad con signo, saldo después del movimiento, motivo y usuario. Es la trazabilidad completa del stock.
El Kardex es el historial completo de movimientos de stock de un producto específico. Cada vez que entra o sale stock por cualquier motivo (compra, venta, ajuste manual, conteo físico, devolución, anulación), el sistema registra una fila inmutable en el kardex con timestamp, tipo, cantidad, saldo resultante, motivo y usuario que lo hizo. Es la fuente de verdad de cómo llegó el stock a su valor actual.
Se accede desde el botón «Kardex» de cada fila en el listado de inventario. Esta pantalla NO modifica datos — solo lee. Para hacer un nuevo ajuste, usa el botón + Nuevo ajuste arriba a la derecha que te lleva al form de Ajustar stock.
La tabla está ordenada por fecha descendente (más reciente primero), paginada de 25 en 25. Cada fila muestra: fecha humanizada, badge de tipo con color (verde = entrada, rojo = salida, ámbar = ajuste, azul = informativo), cantidad con signo (+/−), saldo resultante de la variante, motivo (truncado con tooltip al hover) y usuario que registró el movimiento.
Hay 2 filtros: Tipo de movimiento (con conteos por cada tipo entre paréntesis) y Variante (solo aparece si el producto tiene variantes — útil para enfocar el kardex en una talla/color específico). Los filtros se conservan en la dirección (URL) de la página, así puedes guardar o compartir la vista filtrada.
Manual completo
Los 11 tipos de movimiento
| Tipo | Color | Significado |
|---|---|---|
| Inicial | Azul (info) | Stock inicial cargado al activar el producto (semilla del kardex). |
| Compra | Verde | Entrada por compra confirmada al proveedor. Viene del módulo Compras. |
| Venta | Rojo | Salida por venta confirmada al cliente. Viene del módulo Ventas. |
| Ajuste | Ámbar | Ajuste genérico (heredado — Gestión ya no genera este tipo directo). |
| Manual | Azul | Edición manual desde la pantalla de Producto del catálogo (heredado). |
| Import | Azul | Carga masiva por importación Excel. |
| Duplicado | Azul | Movimiento al duplicar producto con stock. |
| Dev. entrada | Verde | Devolución de cliente (el cliente regresó producto a la MYPE). |
| Dev. salida | Rojo | Devolución a proveedor (la MYPE regresó producto al proveedor). |
| Transfer | Azul | Transferencia entre almacenes (función futura). |
| Anulación | Rojo | Reversión por anulación de venta/compra/documento. |
| Merma | Ámbar | Merma — rotura/vencimiento/pérdida específica. |
| Conteo físico | Ámbar | Diferencia por conteo físico. |
| Entrada manual | Verde | Entrada rápida manual con motivo. |
| Salida manual | Rojo | Salida rápida manual con motivo. |
💡 Los movimientos de Merma, Conteo físico, Entrada manual y Salida manual se agrupan bajo «Manual» o «Ajuste» en el filtro de tipo, pero en la tabla cada uno muestra su distintivo de color específico.
Las columnas de la tabla
| Columna | Qué muestra | Detalle |
|---|---|---|
| Fecha | Fecha + hora del movimiento. | Formato humano (ej. «hace 2 horas», «ayer 15:30», «15 may 09:22»). |
| Tipo | Badge de color con el tipo. | Click en filtro arriba para acotar. |
| Variante | Nombre de la variante afectada. | Solo aparece si el producto tiene variantes. «—» si es la variante default. |
| Cantidad | Cantidad con signo. | Verde si > 0 (entrada), rojo si < 0 (salida). Formato +5 o −3. |
| Saldo | Stock de la variante DESPUÉS del movimiento. | Es el saldo de esa variante justo después del movimiento — útil para reconstruir el stock a una fecha. |
| Motivo | Texto libre del motivo registrado. | Truncado en celda; hover muestra completo en tooltip. |
| Usuario | Quién registró el movimiento. | «Sistema» si fue automático (cron, webhook, evento). |
💡 La columna Saldo muestra el stock de esa variante específica después de ese movimiento — útil para reconstruir el stock histórico. Si el producto tiene 3 variantes, cada movimiento de venta/compra impacta solo su variante; la columna refleja el saldo de la variante (no el efectivo del producto agregado).
Los filtros disponibles
| Filtro | Por defecto | Dónde se guarda | Cómo se usa |
|---|---|---|---|
| Tipo de movimiento | Todos | En la URL | Menú con los tipos que tienen movimientos para este producto + conteo entre paréntesis. Si un tipo nunca se usó, no aparece. |
| Variante | Todas | En la URL | Solo aparece si el producto tiene variantes. Menú con cada variante por nombre. |
Los filtros conviven con la paginación: si cambias el filtro, vuelves a página 1.
Casos comunes
«El stock dice 8 pero juraría que ayer tenía 12 — ¿qué pasó?» Abre el kardex del producto, ordenado por fecha descendente verás los últimos movimientos. Probablemente verás 1-2 ventas o ajustes recientes que explican la baja. Si no encuentras la causa, filtra por tipo Anulación para descartar reversas.
«Necesito saber cuánto stock tenía este producto el 1 de marzo a las 10am» El kardex te lo dice. Filtra/scroll hasta encontrar el movimiento más reciente antes de esa fecha-hora. La columna Saldo te muestra el stock de la variante después de ese movimiento (que es el stock que tenías hasta el siguiente movimiento). Para el efectivo del producto agregado, suma los saldos de todas las variantes en esa fecha.
«Quiero ver solo las mermas de este producto» En el filtro Tipo de movimiento, elige «Manual» o «Ajuste», donde se agrupan las mermas. Verás todos los movimientos de Merma con su motivo.
«El cliente reclama que devolvió 3 polos hace una semana — ¿quedó registrado?» Filtra por Variante la talla específica del polo y filtra Tipo = Dev. entrada. Verás todos los movimientos de devolución de cliente con la cantidad y el motivo. Si no aparece, la devolución NO se registró en el sistema.
«¿Quién hizo ese ajuste de −20 unidades?» La columna Usuario muestra quién registró el movimiento. Si dice «Sistema», fue automático (cron, evento). Si dice un nombre, fue manual. Los movimientos del módulo Compras y Ventas registran al usuario que confirmó la transacción; los del módulo Inventario registran al usuario del form.
«Necesito exportar el kardex a Excel para auditoría» Por ahora NO hay exportación CSV desde el kardex (llegará con los reportes más adelante). Como alternativa, puedes copiar y pegar la tabla en Excel.
«El saldo de un movimiento no coincide con la suma de los movimientos anteriores» Si esto ocurre, probablemente hay un descuadre en el saldo guardado. Causas posibles: (1) un movimiento creado fuera del flujo normal, (2) un error en el orden de creación. Reporta el caso al equipo de soporte — el kardex DEBE ser consistente y un descuadre es un error.
Cosas que NO puedes hacer
- Editar un movimiento del kardex — son inmutables por diseño. Si te equivocaste, aplica otro ajuste con la operación inversa.
- Borrar un movimiento — append-only. Las correcciones se hacen con contramovimientos.
- Cambiar el orden de los movimientos — el orden cronológico es la fuente de verdad histórica.
- Ver el kardex de TODOS los productos en una vista — esta pantalla es por-producto. Para vista global, espera el reporte agregado que llegará más adelante.
- Exportar a CSV — feature diferida. Por ahora copy-paste manual.
- Filtrar por rango de fechas — solo paginas hacia atrás. Filtros de fecha llegan en el reporte global futuro.
- Ver el detalle del documento que originó el movimiento (ej. la venta o compra de origen) — ese dato se guarda internamente pero todavía no se muestra en pantalla.