<?php
require_once("../../app/functions.php");
if (comprobar_override(str_replace($_SERVER['DOCUMENT_ROOT'], '', __FILE__)))
    exit;
$pag = basename($_SERVER['PHP_SELF']);

gen_plantilla(true, $pag, false, false, '', false, false);

$es_admin = isset($_SESSION['tipo_usuario']) && ($_SESSION['tipo_usuario'] === 'admin' || $_SESSION['tipo_usuario'] === 'inspector');
$es_empleado = isset($_SESSION['tipo_usuario']) && $_SESSION['tipo_usuario'] === 'empleado';

// Si no es admin, inspector ni empleado, redirigir
if (!$es_admin && !$es_empleado) {
    header('Location: ' . SITIO_CARPETA . '/views/tables/fichajes');
    exit;
}

// Lista de empleados para buscador (solo admin)
$empleados = [];
if ($es_admin) {
    $empleados = consulta("SELECT id, nombre, apellidos FROM empleados ORDER BY nombre;", [], true);
}

gen_plantilla(true, $pag, true, true, $es_admin ? 'Aprobaciones' : 'Mis solicitudes', true, true);
?>
<section class="cristal" <?= (!get_config_usuario($_SESSION['id_usuario'], 'reducir_efectos_movimiento')) ? 'style="view-transition-name: cristal;"' : '' ?>>
    <h1 class="resaltado flex row supercentrado"><span class="animacion-izq-drch">✔️</span>
        <?= $es_admin ? 'Aprobaciones' : 'Mis solicitudes de modificación' ?></h1>

    <?php
    if (!empty($empleados_check = consulta("SELECT id FROM empleados LIMIT 1;", [], true))):
    ?>
        <?php if ($es_admin): ?>
            <!-- Filtros (solo admin) -->
            <section class="flex row gap1 row-column supercentrado wrap">
                <label class="flex column gap02"><b>Empleado</b>
                    <input type="text" id="filtro_empleado" list="lista_empleados" placeholder="Buscar..."
                        style="padding: .3rem; border-radius: .3rem; width: 12rem;">
                    <datalist id="lista_empleados">
                        <?php foreach ($empleados as $emp):
                            $nombre_completo = $emp['nombre'] . (!empty($emp['apellidos']) ? ' ' . $emp['apellidos'] : '');
                            ?>
                            <option value="<?= htmlspecialchars($nombre_completo) ?>">
                            <?php endforeach; ?>
                    </datalist>
                </label>
                <label class="flex column gap02"><b>Desde</b>
                    <input type="date" id="fecha_inicio" style="padding: .3rem; border-radius: .3rem;">
                </label>
                <label class="flex column gap02"><b>Hasta</b>
                    <input type="date" id="fecha_fin" style="padding: .3rem; border-radius: .3rem;">
                </label>
            </section>
        <?php endif; ?>

        <!-- Estados -->
        <section class="flex row gap1 row-column supercentrado" style="margin-top: .5rem;">
            <section>
                <input type="radio" id="aprobado" class="radio" name="estado">
                <label for="aprobado" class="label-radio aprobado">Aprobados</label>
            </section>
            <section>
                <input type="radio" id="pendiente" class="radio" name="estado" checked>
                <label for="pendiente" class="label-radio pendiente">Pendientes</label>
            </section>
            <section>
                <input type="radio" id="desaprobado" class="radio" name="estado">
                <label for="desaprobado" class="label-radio desaprobado">No aprobados</label>
            </section>
        </section>

        <section id="aprobaciones" class="flex column gap05" style="margin-top: .5rem; width: 100%;"></section>
    <?php else: ?>
        <article id="no-hay-datos" class="flex wrap" style="width:fit-content; text-wrap: balance; margin-top: 1rem;">
            <h3>¡Vaya, parece que no tienes empleados! <a class="enlace blanco" href="<?= SITIO_CARPETA ?>/views/forms/empleado">Añadir empleado</a></h3>
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="1em" height="1em"><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>
        </article>
    <?php endif; ?>
</section>
<article id="showdialog"></article>
<script>
    const esAdmin = <?= $es_admin ? 'true' : 'false' ?>;
    let estadoActual = 'pendiente';

    window.onload = () => {
        document.getElementById('aprobado').addEventListener('click', () => { estadoActual = 'aprobado'; cargar_ajax_table(); });
        document.getElementById('pendiente').addEventListener('click', () => { estadoActual = 'pendiente'; cargar_ajax_table(); });
        document.getElementById('desaprobado').addEventListener('click', () => { estadoActual = 'desaprobado'; cargar_ajax_table(); });

        if (esAdmin) {
            document.getElementById('filtro_empleado').addEventListener('input', cargar_ajax_table);
            document.getElementById('fecha_inicio').addEventListener('change', cargar_ajax_table);
            document.getElementById('fecha_fin').addEventListener('change', cargar_ajax_table);
        }
        cargar_ajax_table();
    };

    function cargar_ajax_table() {
        let params = 'estado=' + estadoActual;
        if (esAdmin) {
            let busqueda = document.getElementById('filtro_empleado').value.trim();
            let fechaInicio = document.getElementById('fecha_inicio').value;
            let fechaFin = document.getElementById('fecha_fin').value;
            if (busqueda) params += '&busqueda=' + encodeURIComponent(busqueda);
            if (fechaInicio) params += '&fecha_inicio=' + fechaInicio;
            if (fechaFin) params += '&fecha_fin=' + fechaFin;
        }
        ajax('tables/table_aprobaciones', 'aprobaciones', params, []);
    }

    function llamar_dialog_aprobar(id, aprobar) {
        ajax('dialogs/dialog_aprobaciones', 'showdialog', 'id=' + id + '&aprobado=' + aprobar, ['cargar_dialog()']);
    }

    function aprobar_modificacion(id, aprobar) {
        ajax('forms/aprobaciones', 'notificaciones', 'id=' + id + '&aprobado=' + aprobar, ['animacion_y_cierre_dialog()', 'cargar_ajax_table()']);
    }
</script>
<?php footer(true); ?>