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

if (isset($_GET['fecha_inicio']) && isset($_GET['fecha_fin']) && isset($_GET['tipo_reporte'])) {
    $fecha_inicio = $_GET['fecha_inicio'];
    $fecha_fin = $_GET['fecha_fin'];
    $tipo_reporte = $_GET['tipo_reporte'];

    if ($tipo_reporte == 'ingresos') {
        $reportes = $cajaController->listarEstudiantesPorFecha($fecha_inicio, $fecha_fin);
        foreach ($reportes as $reporte) {
            $total_ingresos += $reporte['balance'];
        }
    } elseif ($tipo_reporte == 'egresos') {
        $reportes = $cajaController->listarEgresosPorFecha($fecha_inicio, $fecha_fin);
        foreach ($reportes as $reporte) {
            $total_egresos += $reporte['monto'];
        }
    } elseif ($tipo_reporte == 'balance_general') {
        $ingresos = $cajaController->listarEstudiantesPorFecha($fecha_inicio, $fecha_fin);
        foreach ($ingresos as $ingreso) {
            $total_ingresos += $ingreso['balance'];
        }
        $egresos = $cajaController->listarEgresosPorFecha($fecha_inicio, $fecha_fin);
        foreach ($egresos as $egreso) {
            $total_egresos += $egreso['monto'];
        }

        $reportes = [
            'total_ingresos' => $total_ingresos,
            'total_egresos' => $total_egresos,
            'balance' => $total_ingresos - $total_egresos
        ];
    }
}
?>

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Reportes</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">Generar Reportes</h2>
            <img src="../../public/images/logo.png" alt="Logo de la Institución" class="w-24">
        </div>

        <!-- Botones de navegación y exportación -->
        <div class="flex justify-between items-center mb-6">
            <a href="../caja/dashboard_caja.php" class="inline-block bg-blue-600 text-white py-2 px-4 rounded-lg hover:bg-blue-700 transition duration-300">
                <i class="fas fa-arrow-left mr-2"></i>Volver a Gestión de Caja
            </a>
            <?php if (!empty($reportes)): ?>
                <form action="exportar_reporte.php" method="post" class="inline-block">
                    <input type="hidden" name="fecha_inicio" value="<?php echo $fecha_inicio; ?>">
                    <input type="hidden" name="fecha_fin" value="<?php echo $fecha_fin; ?>">
                    <input type="hidden" name="tipo_reporte" value="<?php echo $tipo_reporte; ?>">
                    <button type="submit" name="exportar_excel" class="bg-green-600 text-white py-2 px-4 rounded-lg hover:bg-green-700 transition duration-300">
                        <i class="fas fa-file-excel mr-2"></i>Exportar a Excel
                    </button>
                </form>
            <?php endif; ?>
        </div>

        <!-- Formulario de filtrado por fechas y tipo de reporte -->
        <form action="reporte.php" method="get" class="bg-white p-6 rounded-lg shadow-md mb-6">
            <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 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">
                </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">
                </div>
                <div>
                    <label for="tipo_reporte" class="block text-sm font-medium text-gray-700">Tipo de Reporte:</label>
                    <select id="tipo_reporte" name="tipo_reporte" 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">
                        <option value="ingresos">Ingresos</option>
                        <option value="egresos">Egresos</option>
                        <option value="balance_general">Balance General</option>
                    </select>
                </div>
                <div class="flex items-end">
                    <button type="submit" class="bg-blue-600 text-white py-2 px-4 rounded-lg hover:bg-blue-700 transition duration-300 w-full">
                        <i class="fas fa-chart-bar mr-2"></i>Generar Reporte
                    </button>
                </div>
            </div>
        </form>

        <!-- Mostrar el monto total arriba -->
        <?php if (!empty($reportes) && $tipo_reporte != 'balance_general'): ?>
            <div class="bg-white p-6 rounded-lg shadow-md mb-6">
                <h3 class="text-xl font-semibold text-gray-800">Total: <?php echo number_format($tipo_reporte == 'ingresos' ? $total_ingresos : $total_egresos, 2); ?> BOB</h3>
            </div>
        <?php elseif ($tipo_reporte == 'balance_general'): ?>
            <div class="bg-white p-6 rounded-lg shadow-md mb-6">
                <h3 class="text-xl font-semibold text-gray-800">Total Ingresos: <?php echo number_format($reportes['total_ingresos'], 2); ?> BOB</h3>
                <h3 class="text-xl font-semibold text-gray-800">Total Egresos: <?php echo number_format($reportes['total_egresos'], 2); ?> BOB</h3>
                <h3 class="text-xl font-semibold text-gray-800">Balance General: <?php echo number_format($reportes['balance'], 2); ?> BOB</h3>
            </div>
        <?php endif; ?>

        <!-- Tabla de reportes -->
        <?php if (!empty($reportes) && $tipo_reporte != 'balance_general'): ?>
            <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</th>
                            <th class="px-6 py-3 text-left">Monto</th>
                            <th class="px-6 py-3 text-left">Detalle</th>
                        </tr>
                    </thead>
                    <tbody class="divide-y divide-gray-200">
                        <?php foreach ($reportes as $reporte): ?>
                            <tr class="hover:bg-gray-50 transition duration-200">
                                <td class="px-6 py-4"><?php echo isset($reporte['fecha_recibo']) ? $reporte['fecha_recibo'] : $reporte['fecha_reg']; ?></td>
                                <td class="px-6 py-4"><?php echo isset($reporte['monto']) ? $reporte['monto'] : $reporte['balance']; ?></td>
                                <td class="px-6 py-4"><?php echo isset($reporte['detalle']) ? $reporte['detalle'] : (isset($reporte['transcation_remark']) ? $reporte['transcation_remark'] : ''); ?></td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        <?php endif; ?>
    </div>
</body>

</html>
