64 💰 Gráfico de Ventas Mensuales: Calculando el SUM(total) de Órdenes y Usando un Gráfico de Barras

Duración: 12 min
Módulo: 📊 Análisis de Datos, Despliegue y Conclusión 62-68 Lección 3 de 7

Descripción

Lección 64: 💰 Gráfico de Ventas Mensuales | Cálculo del SUM(total) de Órdenes y Uso de Gráfico de Barras

Esta lección añade un segundo y crucial reporte al dashboard: un gráfico de barras que visualiza las ventas totales (monto) generadas cada mes, proporcionando una herramienta clave para la toma de decisiones.

1. 🛒 Alimentación de la Base de Datos

Antes de generar el reporte, se necesita información fresca, por lo que se realiza un proceso de compra completo para generar una nueva orden en la base de datos:

  • Creación de Cliente y Compra: Se simula el registro de un nuevo cliente y la compra de un producto [01:19].
  • Procesamiento de Orden: Se verifica que la orden se registra correctamente en la tabla ordenes y se marca como procesada en el módulo de pedidos administrativos [03:09].

2. ⚙️ Preparación de la Consulta (DB Raw SUM)

Se construye una consulta avanzada en el AdminController para sumar los montos por mes:

  • Modelo y Agregación 📈: Se utiliza el modelo Orden y, en lugar de contar registros (COUNT), se usa la función SUM(total) para sumar el campo total de cada orden [07:10].
  • Agrupación y Normalización 🗓️:
    • La suma se agrupa por el mes de creación (created_at) [06:51].
    • Al igual que en la lección anterior, se utiliza un bucle for para asegurar que el array resultante (ordenes_data) contenga 12 posiciones, asignando 0 a los meses sin ventas para mantener la consistencia del gráfico [07:37].

3. 📊 Renderizado del Gráfico de Ventas (Tipo Bar)

Se configura un segundo gráfico en la vista principal (index.blade.php) para presentar las ventas:

  • Tipo de Gráfico: Se selecciona el tipo bar (barras) para este reporte, lo cual es ideal para comparar magnitudes mensuales [05:09].
  • Inyección de Datos Dinámicos 💻: Se define una nueva constante (ordenesData) que recibe los datos normalizados desde el controlador, extrayendo solo los array_values para la serie del gráfico [10:07].
  • Resultado Final ⭐: El gráfico se renderiza dinámicamente, mostrando el monto total vendido en cada mes, en este caso, reflejando el monto de la compra simulada [11:06].