<?php
require_once("../../functions.php");
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

if ($_SESSION['tipo_usuario'] != 'admin') {
    crear_notificacion("error", "No tienes acceso a esta página");
    exit;
}

$nombre = filter_input(INPUT_POST, 'nombre', 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);

$where = [];
$params = [];

if (!empty($nombre)) {
    $where[] = "(e.nombre LIKE ? OR e.apellidos LIKE ?)";
    $params[] = "%$nombre%";
    $params[] = "%$nombre%";
}

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

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

$sql = "SELECT h.*, e.nombre, e.apellidos 
    FROM historial_horas_acumuladas h 
    LEFT JOIN empleados e ON h.id_empleado = e.id";

if (!empty($where)) {
    $sql .= " WHERE " . implode(" AND ", $where);
}

$sql .= " ORDER BY h.id DESC";

$historial = consulta($sql, $params, true);

if (empty($historial)): ?>
    <section class="supercentrado">
        <p>No hay registros en el historial.</p>
    </section>
<?php else: ?>
    <section class="t-container">
        <table class="t-datos">
            <thead>
                <tr>
                    <th>Fecha</th>
                    <th>Empleado</th>
                    <th>Periodo</th>
                    <th>Disponibles</th>
                    <th>Aplicadas/Pagadas</th>
                    <th>Restantes</th>
                    <th>Nota</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($historial as $row): ?>
                    <tr>
                        <td data-label="Fecha"><?= date('d/m/Y', strtotime($row['fecha_fin'])) ?></td>
                        <td data-label="Empleado">
                            <b><?= $row['nombre'] . ' ' . $row['apellidos'] ?></b>
                        </td>
                        <td data-label="Periodo">
                            <?= date('d/m/Y', strtotime($row['fecha_inicio'])) ?> - <?= date('d/m/Y', strtotime($row['fecha_fin'])) ?>
                        </td>
                        <td data-label="Disponibles"><?= number_format((float)$row['horas_disponibles'], 2, ',', '.') ?>h</td>
                        <td data-label="Aplicadas/Pagadas" class="rojo"><?= number_format((float)$row['horas_pagadas'], 2, ',', '.') ?>h</td>
                        <td data-label="Restantes" class="verde"><b><?= number_format((float)$row['horas_acumuladas'], 2, ',', '.') ?>h</b></td>
                        <td data-label="Nota"><?= $row['nota'] ?></td>
                    </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    </section>
<?php endif; ?>
