<?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';

if (!$es_admin) {
    header('Location: ' . SITIO_CARPETA . '/views/tables/fichajes');
    exit;
}

if (!get_config('notas')) {
    header('Location: ' . SITIO_CARPETA . '/views/tables/fichajes?tipo=error&mensaje=Sistema de notas no activo');
    exit;
}

$empleados = consulta("SELECT id, nombre, apellidos FROM empleados ORDER BY nombre;", [], true);
$mostrar_apellidos = get_config('mostrar_apellidos_tabla');

gen_plantilla(true, $pag, true, true, 'Solicitudes de notas', 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> Solicitudes de notas</h1>

    <!-- Filtros -->
    <section class="flex row gap1 row-column supercentrado wrap">
        <section class="flex row gap05 alineado">
            <label for="filtro_empleado">Empleado:</label>
            <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) ?>" data-id="<?= $emp['id'] ?>">
                    <?php endforeach; ?>
            </datalist>
        </section>
        <section class="flex row gap05 alineado">
            <label for="fecha_inicio">Desde:</label>
            <input type="date" id="fecha_inicio" style="padding: .3rem; border-radius: .3rem;">
        </section>
        <section class="flex row gap05 alineado">
            <label for="fecha_fin">Hasta:</label>
            <input type="date" id="fecha_fin" style="padding: .3rem; border-radius: .3rem;">
        </section>
    </section>

    <!-- 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">Aprobadas</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="rechazado" class="radio" name="estado">
            <label for="rechazado" class="label-radio desaprobado">Rechazadas</label>
        </section>
    </section>

    <section id="solicitudes" class="flex column gap05" style="margin-top: .5rem; width: 100%;"></section>
</section>
<aside id="showdialog"></aside>
<script>
    let estadoActual = 0;
    const empleadosMap = {
        <?php foreach ($empleados as $emp):
            $nombre_js = $emp['nombre'] . (!empty($emp['apellidos']) ? ' ' . $emp['apellidos'] : '');
            ?>
                            "<?= addslashes($nombre_js) ?>": <?= $emp['id'] ?>,
        <?php endforeach; ?>
    };

    window.onload = () => {
        document.getElementById('aprobado').addEventListener('click', () => { estadoActual = 1; cargar_ajax_table(); });
        document.getElementById('pendiente').addEventListener('click', () => { estadoActual = 0; cargar_ajax_table(); });
        document.getElementById('rechazado').addEventListener('click', () => { estadoActual = 2; cargar_ajax_table(); });
        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 busqueda = document.getElementById('filtro_empleado').value.trim();
        let fechaInicio = document.getElementById('fecha_inicio').value;
        let fechaFin = document.getElementById('fecha_fin').value;
        let params = 'estado=' + estadoActual;
        if (busqueda) params += '&busqueda=' + encodeURIComponent(busqueda);
        if (fechaInicio) params += '&fecha_inicio=' + fechaInicio;
        if (fechaFin) params += '&fecha_fin=' + fechaFin;
        ajax('tables/table_solicitudes_notas', 'solicitudes', params, []);
    }

    function aprobar_nota(id) {
        ajax('dialogs/dialog_solicitud_nota', 'showdialog', 'id=' + id + '&accion=aprobar', ['cargar_dialog()']);
    }

    function rechazar_nota(id) {
        ajax('dialogs/dialog_solicitud_nota', 'showdialog', 'id=' + id + '&accion=rechazar', ['cargar_dialog()']);
    }

    function confirmar_accion_nota(id, accion) {
        ajax('forms/gestionar_solicitud_nota', 'notificaciones', 'id=' + id + '&accion=' + accion, ['animacion_y_cierre_dialog()', 'cargar_ajax_table()']);
    }
</script>
<?php footer(true); ?>