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

$estado = filter_input(INPUT_POST, 'estado', FILTER_SANITIZE_NUMBER_INT) ?? 0;
$busqueda = filter_input(INPUT_POST, 'busqueda', FILTER_SANITIZE_SPECIAL_CHARS);
$fecha_inicio = filter_input(INPUT_POST, 'fecha_inicio', FILTER_SANITIZE_SPECIAL_CHARS);
$fecha_fin = filter_input(INPUT_POST, 'fecha_fin', FILTER_SANITIZE_SPECIAL_CHARS);

// Construir consulta con filtros
$where = "WHERE s.estado = ?";
$params = [$estado];

if (!empty($busqueda)) {
    $where .= " AND (e.nombre LIKE ? OR e.apellidos LIKE ? OR CONCAT(e.nombre, ' ', e.apellidos) LIKE ?)";
    $busqueda_like = '%' . $busqueda . '%';
    $params[] = $busqueda_like;
    $params[] = $busqueda_like;
    $params[] = $busqueda_like;
}

if (!empty($fecha_inicio)) {
    $where .= " AND r.fecha >= ?";
    $params[] = $fecha_inicio;
}

if (!empty($fecha_fin)) {
    $where .= " AND r.fecha <= ?";
    $params[] = $fecha_fin;
}

$solicitudes = consulta(
    "SELECT s.*, e.nombre, e.apellidos, r.fecha AS fecha_registro
     FROM solicitudes_notas s
     LEFT JOIN empleados e ON s.id_empleado = e.id
     LEFT JOIN registros r ON s.id_registro = r.id
     $where
     ORDER BY s.fecha DESC;",
    $params,
    true
);

if (empty($solicitudes)): ?>
    <section class="flex supercentrado" style="width: 100%;">
        <?php no_hay_nada(); ?>
    </section>
    <?php
else: ?>
    <section class="flex column gap02 supercentrado" style="width: 100%;">
        <?php foreach ($solicitudes as $sol):
            $nombre_emp = $sol['nombre'] . (!empty($sol['apellidos']) ? ' ' . $sol['apellidos'] : '');
            $fecha_registro = !empty($sol['fecha_registro']) ? date('d/m/Y', strtotime($sol['fecha_registro'])) : 'Sin fecha';
            $fecha_solicitud = date('d/m/Y', strtotime($sol['fecha']));
            ?>
            <article class="flex row between wrap alineado gap05"
                style="background: light-dark(#fff, #1a1a2e); padding: .5rem .8rem; border-radius: .3rem; border-left: 3px solid <?= $estado == 0 ? 'orange' : ($estado == 1 ? 'var(--verde)' : 'var(--rojo)') ?>;">
                <section class="flex column" style="flex: 1; min-width: 200px;">
                    <strong style="font-size: .95rem;"><?= htmlspecialchars($nombre_emp) ?></strong>
                    <span style="font-size: .75rem; opacity: 0.7;"><?= $fecha_registro ?></span>
                </section>
                <section
                    style="flex: 2; min-width: 200px; font-size: .85rem; padding: .3rem; background: light-dark(#f5f5f5, #252540); border-radius: .2rem; max-height: 3rem; overflow: hidden;">
                    <?= htmlspecialchars(mb_strimwidth($sol['nota'], 0, 100, '...')) ?>
                </section>
                <?php if ($estado == 0): ?>
                    <section class="flex row gap02">
                        <button onclick="aprobar_nota(<?= $sol['id'] ?>)"
                            style="background: var(--verde); color: white; border: none; padding: .3rem .6rem; border-radius: .2rem; cursor: pointer; font-size: .8rem;">✓</button>
                        <button onclick="rechazar_nota(<?= $sol['id'] ?>)"
                            style="background: var(--rojo); color: white; border: none; padding: .3rem .6rem; border-radius: .2rem; cursor: pointer; font-size: .8rem;">✕</button>
                    </section>
                <?php else: ?>
                    <span
                        style="padding: .2rem .5rem; border-radius: .2rem; background: <?= $estado == 1 ? 'var(--verde)' : 'var(--rojo)' ?>; color: white; font-size: .75rem;">
                        <?= $estado == 1 ? '✓' : '✕' ?>
                    </span>
                <?php endif; ?>
            </article>
        <?php endforeach; ?>
    </section>
<?php endif; ?>