Ficha Técnica: Cambios Agregados al Dashboard de Ventas

Ficha Técnica: Cambios Agregados al Dashboard de Ventas


Proyecto

Nombre: boilerplateSells
Repositorio: https://github.com/julio101290/boilerplateSells
Descripción: Librería para generar cotizaciones con formato de impresión en PDF para enviar a clientes, basada en CodeIgniter 4 con un sistema MVC para la gestión de ventas.

Descripción General

El dashboard de ventas en el proyecto boilerplateSells proporciona una interfaz central para visualizar y gestionar datos relacionados con las ventas, integrando funcionalidades de generación de cotizaciones, reportes y estadísticas. Los cambios recientes en el dashboard incluyen mejoras en la funcionalidad del controlador (DashboardController.php) y la vista (dashboard.php), optimizando la experiencia del usuario y la eficiencia del sistema.

Cambios en el Dashboard

1. Controlador (DashboardController.php)

Archivo: src/Controllers/DashboardController.php
Cambios implementados:
- Optimización de consultas: Se mejoraron las consultas a la base de datos para reducir el tiempo de carga de los datos en el dashboard, utilizando índices y optimizando joins en las tablas relacionadas con ventas y cotizaciones.
- Filtros dinámicos: Se añadieron filtros para permitir al usuario seleccionar rangos de fechas, tipos de movimiento y estados de cotización directamente desde el dashboard.
- Seguridad mejorada: Implementación de validaciones adicionales para garantizar que solo usuarios con permisos adecuados (permission:back-office) puedan acceder a las funcionalidades del dashboard.
- Integración con dependencias: Uso de las bibliotecas hermwawan/codeigniter4-datatables y phpcfdi/sat-catalogos para mejorar la presentación de datos en tablas dinámicas y cumplir con requisitos fiscales mexicanos (SAT).

Ejemplo de funcionalidad en el controlador:


public function index()
{
    $data = [
        'sales' => $this->salesModel->getSalesByDateRange($this->request->getGet('start_date'), $this->request->getGet('end_date')),
        'quotes' => $this->quoteModel->getRecentQuotes(),
        'title' => 'Dashboard de Ventas'
    ];
    return view('julio101290\boilerplateSells\Views\dashboard', $data);
}

2. Vista (dashboard.php)

Archivo: src/Views/dashboard.php
Cambios implementados:
- Interfaz mejorada: Actualización del diseño del dashboard utilizando AdminLTE 3, con un enfoque en la usabilidad y la visualización clara de métricas clave (ventas totales, cotizaciones pendientes, etc.).
- Gráficos dinámicos: Integración de gráficos interactivos usando Chart.js para mostrar tendencias de ventas y estadísticas en tiempo real.
- Tablas responsivas: Implementación de tablas dinámicas con la biblioteca codeigniter4-datatables, permitiendo ordenamiento, búsqueda y paginación de datos de ventas.
- Personalización: Añadido soporte para personalizar el dashboard según las necesidades del usuario, como la selección de widgets para mostrar métricas específicas.

Ejemplo de código en la vista:


<section class="content">
    <div class="container-fluid">
        <div class="row">
            <div class="col-lg-3 col-6">
                <div class="small-box bg-info">
                    <div class="inner">
                        <h3><?= $sales['total'] ?></h3>
                        <p>Ventas Totales</p>
                    </div>
                    <div class="icon">
                        <i class="ion ion-bag"></i>
                    </div>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col-12">
                <div class="card">
                    <div class="card-body">
                        <canvas id="salesChart"></canvas>
                    </div>
                </div>
            </div>
        </div>
    </div>
</section>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
    var ctx = document.getElementById('salesChart').getContext('2d');
    var salesChart = new Chart(ctx, {
        type: 'line',
        data: {
            labels: <?= json_encode($sales['labels']) ?>,
            datasets: [{
                label: 'Ventas Mensuales',
                data: <?= json_encode($sales['data']) ?>,
                borderColor: '#007bff',
                fill: false
            }]
        }
    });
</script>

3. Dependencias y Configuración

Dependencias utilizadas:
- phpcfdi/sat-catalogos: Para cumplir con los requisitos fiscales mexicanos en la generación de cotizaciones.
- hermwawan/codeigniter4-datatables: Para la creación de tablas dinámicas y responsivas.
- julio101290/boilerplatequotes, julio101290/boilerplatecompanies, entre otros: Módulos complementarios para la gestión de cotizaciones, empresas y movimientos.

Comandos de instalación:


composer require phpcfdi/sat-catalogos
composer require hermawan/codeigniter4-datatables
composer require julio101290/boilerplatequotes
composer require julio101290/boilerplatecompanies
php spark boilerplatequotes:installquotes
php spark boilerplatecompanies:installcompaniescrud

4. Características Clave

- Generación de PDFs: Soporte para exportar reportes de ventas y cotizaciones en formato PDF.
- Filtros avanzados: Permite filtrar datos por fechas, clientes o estados de cotización.
- Integración con AdminLTE 3: Diseño moderno y responsivo para una mejor experiencia de usuario.
- Seguridad: Uso de filtros de permisos (RoleFilter, PermissionFilter) para restringir el acceso.

5. Instrucciones de Uso

1. Clonar el repositorio: git clone https://github.com/julio101290/boilerplateSells.git
2. Instalar dependencias con composer install.
3. Ejecutar los comandos php spark para instalar los módulos necesarios.
4. Configurar la base de datos en app/Config/Database.php.
5. Acceder al dashboard a través de la ruta configurada (DashboardController::index).

6. Notas Adicionales

- Compatibilidad: El dashboard es compatible con navegadores modernos y dispositivos móviles gracias al diseño responsivo de AdminLTE 3.
- Contribuciones: Se invita a la comunidad a contribuir al proyecto a través de pull requests en el repositorio de GitHub.

Referencias:
- Repositorio principal: https://github.com/julio101290/boilerplateSells
- Controlador: DashboardController.php
- Vista: dashboard.php


Comentarios

Entradas populares