<?php
include_once '../../controllers/CajaController.php';
$cajaController = new CajaController();
$estudiantes = [];
$total_ingresos = 0;

if (isset($_GET['fecha_inicio']) && isset($_GET['fecha_fin'])) {
    $fecha_inicio = $_GET['fecha_inicio'];
    $fecha_fin = $_GET['fecha_fin'];
    $estudiantes = $cajaController->listarEstudiantesPorFecha($fecha_inicio, $fecha_fin);

    $fechas = [];
    $balances = [];
    foreach ($estudiantes as $estudiante) {
        $fechas[] = $estudiante['sname']; // Usamos los nombres de los estudiantes como etiquetas para el gráfico
        $balances[] = $estudiante['balance'];
        $total_ingresos += $estudiante['balance'];
    }
}
?>

<!DOCTYPE html>
<html lang="es">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Ingresos</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>

<body class="bg-gray-100">
    <div class="container mx-auto p-6">

        <!-- Encabezado -->
        <div class="flex justify-between items-center mb-8">
            <h2 class="text-3xl font-bold text-gray-800">Ingresos</h2>
            <a href="../caja/dashboard_caja.php" class="bg-blue-600 text-white py-2 px-4 rounded-lg hover:bg-blue-700">
                <i class="fas fa-arrow-left mr-2"></i>Volver al Panel
            </a>
        </div>

        <!-- Formulario de Filtrado -->
        <form action="ingresos.php" method="get" class="bg-white p-6 rounded-lg shadow-md mb-6">
            <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
                <div>
                    <label for="fecha_inicio" class="block text-sm font-medium text-gray-700">Fecha Inicio:</label>
                    <input type="date" id="fecha_inicio" name="fecha_inicio" required
                        class="mt-1 block w-full px-4 py-2 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
                        value="<?php echo $fecha_inicio; ?>">
                </div>
                <div>
                    <label for="fecha_fin" class="block text-sm font-medium text-gray-700">Fecha Fin:</label>
                    <input type="date" id="fecha_fin" name="fecha_fin" required
                        class="mt-1 block w-full px-4 py-2 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
                        value="<?php echo $fecha_fin; ?>">
                </div>
            </div>
            <div class="mt-6 text-center">
                <button type="submit" class="bg-blue-600 text-white py-2 px-4 rounded-lg hover:bg-blue-700">
                    <i class="fas fa-filter mr-2"></i>Filtrar
                </button>
            </div>
        </form>

        <!-- Mostrar Total de Ingresos -->
        <?php if (!empty($estudiantes)): ?>
            <div class="bg-white p-6 rounded-lg shadow-md mb-6">
                <h3 class="text-xl font-semibold text-gray-800">Total de Ingresos: <?php echo number_format($total_ingresos, 2); ?> BOB</h3>
            </div>
        <?php endif; ?>

        <!-- Botón para Exportar -->
        <div class="flex justify-between mb-6">
            <form action="exportar_excel.php" method="get">
                <input type="hidden" name="fecha_inicio" value="<?php echo $fecha_inicio; ?>">
                <input type="hidden" name="fecha_fin" value="<?php echo $fecha_fin; ?>">
                <button type="submit" class="bg-green-600 text-white py-2 px-4 rounded-lg hover:bg-green-700">
                    <i class="fas fa-file-excel mr-2"></i>Exportar a Excel
                </button>
            </form>
        </div>

        <!-- Tabla de Ingresos -->
        <?php if (!empty($estudiantes)): ?>
            <div class="bg-white rounded-lg shadow-md overflow-x-auto mb-6">
                <table class="min-w-full">
                    <thead class="bg-blue-600 text-white">
                        <tr>
                            <th class="px-6 py-3 text-left">Fecha de Registro</th>
                            <th class="px-6 py-3 text-left">Nombre del Estudiante</th>
                            <th class="px-6 py-3 text-left">Balance</th>
                        </tr>
                    </thead>
                    <tbody class="divide-y divide-gray-200">
                        <?php foreach ($estudiantes as $estudiante): ?>
                            <tr class="hover:bg-gray-50 transition duration-200">
                                <td class="px-6 py-4"><?php echo $estudiante['fecha_reg']; ?></td>
                                <td class="px-6 py-4"><?php echo $estudiante['sname']; ?></td>
                                <td class="px-6 py-4"><?php echo number_format($estudiante['balance'], 2); ?> BOB</td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        <?php endif; ?>

        <!-- Gráfico de Ingresos -->
        <div class="mt-8 bg-white p-6 rounded-lg shadow-md">
            <canvas id="ingresosChart"></canvas>
        </div>
    </div>

    <!-- Script para el Gráfico -->
    <script>
        var ctx = document.getElementById('ingresosChart').getContext('2d');
        var ingresosChart = new Chart(ctx, {
            type: 'bar',
            data: {
                labels: <?php echo json_encode($fechas); ?>,
                datasets: [{
                    label: 'Balances',
                    data: <?php echo json_encode($balances); ?>,
                    backgroundColor: 'rgba(54, 162, 235, 0.2)',
                    borderColor: 'rgba(54, 162, 235, 1)',
                    borderWidth: 1
                }]
            },
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                }
            }
        });
    </script>
</body>

</html>
