Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Carlos-Gnd/FERRED-Inventario-y-Ventas/llms.txt

Use this file to discover all available pages before exploring further.

El dashboard de Ferred es la pantalla de inicio del sistema. Muestra un resumen operativo en tiempo real: estadísticas de ventas de los últimos días, alertas de productos con stock crítico por sucursal y accesos rápidos a los módulos más usados. Los datos se recargan automáticamente cada 5 minutos (REFRESH_MS = 5 * 60 * 1000) para mantener la información actualizada sin necesidad de recargar la página.

Estadísticas de ventas

El endpoint de estadísticas semanales devuelve las ventas agrupadas por día para un período configurable:
GET /api/ventas/estadisticas/semanales?days=7
Roles permitidos: ADMIN, CAJERO, BODEGA.
ParámetroTipoRangoDefaultDescripción
daysnumber1–147Cantidad de días hacia atrás a incluir
  • Un usuario ADMIN recibe datos de todas las sucursales.
  • Un CAJERO o BODEGA solo recibe datos de su sucursal asignada.
Respuesta de ejemplo:
{
  "dias": [
    { "date": "2026-05-01", "label": "VIE", "total": 245.80, "ventas": 12 },
    { "date": "2026-05-02", "label": "SAB", "total": 389.50, "ventas": 19 },
    { "date": "2026-05-03", "label": "DOM", "total":  58.20, "ventas":  3 },
    { "date": "2026-05-04", "label": "LUN", "total": 312.00, "ventas": 15 },
    { "date": "2026-05-05", "label": "MAR", "total": 275.40, "ventas": 14 },
    { "date": "2026-05-06", "label": "MIE", "total": 198.60, "ventas": 10 },
    { "date": "2026-05-07", "label": "JUE", "total": 421.10, "ventas": 21 }
  ],
  "totalPeriodo": 1900.60,
  "totalVentas": 94
}
Cada elemento del arreglo dias contiene:
CampoDescripción
dateFecha en formato YYYY-MM-DD
labelEtiqueta del día de la semana (DOM / LUN / MAR / MIE / JUE / VIE / SAB)
totalMonto total vendido en el día (suma de FacturaDte.total)
ventasCantidad de facturas registradas en el día
totalPeriodo es la suma de total de todos los días. totalVentas es la suma de ventas de todos los días.

Stock crítico en el dashboard

El dashboard consulta el conteo de productos en estado crítico o bajo para mostrar las alertas en la pantalla principal:
GET /api/inventario/criticos-por-sucursal
Rol permitido: ADMIN únicamente. Devuelve un arreglo con el conteo de críticos por sucursal:
[
  { "sucursalId": 1, "sucursalNombre": "Sucursal Central", "criticos": 4 },
  { "sucursalId": 2, "sucursalNombre": "Sucursal Norte",   "criticos": 0 }
]
Para usuarios no administradores, el dashboard consulta en cambio:
GET /api/inventario/criticos/:sucursalId
Este endpoint devuelve el listado detallado de productos críticos en la sucursal del usuario, con campos como nombre, cantidad, minimo y tipoUnidad.
El administrador ve las tarjetas de stock crítico de todas las sucursales y puede hacer clic en cada una para ver el detalle completo. Los usuarios con rol CAJERO o BODEGA solo ven la tarjeta de su propia sucursal, sin acceso a las demás.

Panel por rol

El contenido del dashboard varía según el rol del usuario autenticado:
  • Tarjetas de métricas: productos totales, categorías y usuarios activos.
  • Tarjetas de stock crítico para cada sucursal (con contador y estado OK / Crítico).
  • Gráfico de barras con la tendencia de ventas de todas las sucursales combinadas.
  • Accesos rápidos a: Inventario, Ventas, Usuarios.

Datos del gráfico semanal

El gráfico de barras del dashboard usa los datos del array dias del endpoint de estadísticas. Las etiquetas en el eje horizontal son las abreviaturas de los días de la semana en español:
const WEEKDAY_LABELS = ['DOM', 'LUN', 'MAR', 'MIE', 'JUE', 'VIE', 'SAB'] as const;
La altura de cada barra se calcula proporcionalmente al día con mayor venta (maxSalesAmount). El día más reciente (último del arreglo) se muestra con el color de acento del tema; los días anteriores usan una variante translúcida. Si el endpoint falla por falta de conexión, el dashboard muestra barras vacías con un mensaje de advertencia y no interrumpe la carga del resto del panel.

Build docs developers (and LLMs) love