<?php
// Confirmar sesión
session_start();
if (!isset($_SESSION['loggedin'])) {
    header('Location: index.php');
    exit;
}

include_once('conexion.php');

// Configurar el idioma a español para mostrar el mes correctamente
setlocale(LC_TIME, 'es_ES.UTF-8', 'Spanish_Spain', 'es_ES');

// Obtener el mes actual y la fecha actual
$mes_actual = date('Y-m');
$fecha_inicio_mes = date('Y-m-01');
$fecha_actual = date('Y-m-d');

// Si el usuario selecciona otro mes, se mantiene su elección
$mes_seleccionado = isset($_POST['mes']) ? $_POST['mes'] : $mes_actual;

// Convertir el mes seleccionado a formato de texto en español
$fecha = DateTime::createFromFormat('Y-m', $mes_seleccionado);
$nombre_mes = strftime('%B de %Y', $fecha->getTimestamp()); // Ejemplo: "marzo de 2024"
$nombre_mes = ucfirst($nombre_mes); // Primera letra en mayúscula: "Marzo de 2024"

// Establecer el rango de fechas según el mes seleccionado
$fecha_inicio = $mes_seleccionado . "-01";
$fecha_fin = date("Y-m-t", strtotime($fecha_inicio)); // Último día del mes

if ($mes_seleccionado == $mes_actual) {
    $fecha_fin = $fecha_actual; // Si es el mes actual, solo hasta hoy
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Gestión de Gastos</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

    <script>
        function abrirEdicion(id, fecha, descripcion, costo) {
            var popupContent = `
                <div id="popup" style="position: fixed; top: 20%; left: 50%; transform: translateX(-50%); padding: 20px; background: white; border: 1px solid #ccc; box-shadow: 0 0 10px rgba(0,0,0,0.5);">
                    <h3>Modificar Gasto</h3>
                    <form method="POST" action="modificar_gasto.php">
                        <input type="hidden" name="idgas" value="${id}">
                        <label>Fecha:</label>
                        <input type="date" name="FecGas" value="${fecha}" required>
                        <label>Descripción:</label>
                        <input type="text" name="desgas" value="${descripcion}" required>
                        <label>Monto:</label>
                        <input type="number" name="cosgas" value="${costo}" step="0.01" required>
                        <br><br>
                        <button type="submit">Guardar</button>
                        <button type="button" onclick="cerrarPopup()">Cancelar</button>
                    </form>
                </div>
            `;
            $("body").append(popupContent);
        }

        function cerrarPopup() {
            $("#popup").remove();
        }

        function imprimirTabla() {
            var contenido = document.getElementById("tabla_gastos").innerHTML;
            var mesSeleccionado = "<?php echo $nombre_mes; ?>";

            var ventana = window.open("", "_blank");
            var titulo = "Gastos - " + mesSeleccionado;

            ventana.document.write("<html><head><title>Imprimir Gastos</title>");
            ventana.document.write("<style>");
            ventana.document.write("body { font-family: Arial, sans-serif; font-size: 14px; }");
            ventana.document.write("table { width: 100%; border-collapse: collapse; margin-top: 20px; }");
            ventana.document.write("th, td { padding: 10px; text-align: left; border: 1px solid #ddd; }");
            ventana.document.write("th { background-color: #f2f2f2; font-weight: bold; }");
            ventana.document.write("tr:nth-child(even) { background-color: #f9f9f9; }");
            ventana.document.write("h1 { text-align: center; font-size: 24px; }");
            ventana.document.write("</style>");
            ventana.document.write("</head><body>");
            ventana.document.write("<h1>" + titulo + "</h1>");
            ventana.document.write("<table>" + contenido + "</table>");
            ventana.document.write("</body></html>");
            ventana.document.close();
            ventana.print();
        }
    </script>
</head>
<body class="loggedin">
    <nav class="navtop">
        <h1 style="color:white;">Gestión de Gastos</h1>
        <table width="35%" border="0" style="width: 200px;">
            <tr>
                <td><a href="reggastos.php" style="color:white;">R. Gasto</a></td>
                <td><a href="reggastos_volumen.php" style="color:white;">R. Gastos</a></td>
                <td><a href="inicio.php" style="color:white;">Cerrar</a></td>
            </tr>
        </table>
    </nav>
    <br><br>
    <div id="gastos">
        <center>
            <h1>Gastos Registrados</h1>

            <form method="post" action="">
                <label for="mes"><strong>Seleccionar Mes:</strong></label>
                <input type="month" name="mes" value="<?php echo $mes_seleccionado; ?>" required>
                <button type="submit" name="consultar"><strong>Consultar</strong></button>
            </form>
            <br>

            <button onclick="imprimirTabla()" style="background-color: #4CAF50; color: white; padding: 10px; border: none; cursor: pointer;">Imprimir</button>
            <br><br>

            <?php
            $sql = "SELECT gasto.idgas, gasto.FecGas, usuario.nomusu, gasto.desgas, gasto.cosgas
                    FROM gasto
                    INNER JOIN usuario ON gasto.idusu = usuario.idusu
                    WHERE gasto.FecGas BETWEEN '$fecha_inicio' AND '$fecha_fin'
                    ORDER BY gasto.FecGas";

            $resultado = mysqli_query($conexion, $sql);

            $total_gastos = 0;

            if (mysqli_num_rows($resultado) > 0) {
                echo "<table id='tabla_gastos' border=2 align='center'>
                        <tr>
                            <th>Id</th>
                            <th>Fecha</th>
                            <th>Responsable</th>
                            <th>Descripción</th>
                            <th>Costo</th>
                        </tr>";

                while ($fila = mysqli_fetch_assoc($resultado)) {
                    $total_gastos += $fila['cosgas'];
                    $idgas = $fila['idgas'];
                    $fecgas = $fila['FecGas'];
                    $desgas = $fila['desgas'];
                    $cosgas = $fila['cosgas'];

                    echo "<tr>
                        <td><a href='javascript:void(0);' onclick=\"abrirEdicion('$idgas', '$fecgas', '$desgas', '$cosgas')\">$idgas</a></td>
                            <td>{$fila['FecGas']}</td>
                            <td>{$fila['nomusu']}</td>
                            <td>{$fila['desgas']}</td>
                            <td>\${$fila['cosgas']}</td>
                          </tr>";
                }

                echo "<tr>
                        <td colspan='4' align='right'><strong>Total de Gastos:</strong></td>
                        <td><strong>\${$total_gastos}</strong></td>
                      </tr>";

                echo "</table>";
            } else {
                echo "<p>No hay registros de gastos para el mes seleccionado.</p>";
            }

            mysqli_free_result($resultado);
            ?>
        </center>
    </div>
</body>
</html>
