<?php
// Vista de Posiciones Temporales Vencidas: consulta directa a la BD

session_start();
if (!isset($_SESSION['attuid'])) {
    if (!isset($_GET['checkOnly'])) {
        header('Location: ../../index.php');
        exit();
    }
}

// Conexión a la base de datos
require_once '../../backend/db/conexion.php';

// Obtener los códigos de posiciones vencidas
date_default_timezone_set('America/Merida');
$hoy = date('Y-m-d');
$sqlVencidas = "SELECT codigo FROM Posiciones WHERE fechaCierre IS NOT NULL AND fechaCierre <> '' AND fechaCierre < '$hoy'";
$resultVencidas = $conn->query($sqlVencidas);
$codigosVencidos = [];
if ($resultVencidas && $resultVencidas->num_rows > 0) {
    while ($rowV = $resultVencidas->fetch_assoc()) {
        $codigosVencidos[] = $rowV['codigo'];
    }
}

$plantillasVencidas = [];
if (!empty($codigosVencidos)) {
    $codigosStr = "'" . implode("','", $codigosVencidos) . "'";
    $sqlPlantilla = "SELECT * FROM Plantilla WHERE posicionCode IN ($codigosStr)";
    $resultPlantilla = $conn->query($sqlPlantilla);
    if ($resultPlantilla && $resultPlantilla->num_rows > 0) {
        while ($rowP = $resultPlantilla->fetch_assoc()) {
            $plantillasVencidas[] = $rowP;
        }
    }
}

// Si se solicita solo la verificación, responder con JSON
if (isset($_GET['checkOnly'])) {
    header('Content-Type: application/json');
    echo json_encode(['hasExpiredPositions' => !empty($plantillasVencidas)]);
    exit();
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8" />
    <title>Posiciones Temporales Vencidas</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" />
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet" />
    <link href="https://cdn.datatables.net/1.13.6/css/dataTables.bootstrap5.min.css" rel="stylesheet" />
    <link href="../assets/css/recruiter.css" rel="stylesheet" />
</head>
<body class="bg-light">
<div class="bg-light">
    <?php require_once '../includes/sidebar.php'; ?>
    <div class="main-content flex-grow-1 px-4 py-4">
        <?php include_once '../includes/topbar.php'; ?>
        <div class="container-fluid">
            <h2 class="mb-4 text-danger"><i class="fas fa-exclamation-triangle me-2"></i>Posiciones Temporales Vencidas</h2>
            <div class="table-responsive">
                <table id="tablaVencidas" class="table table-striped table-bordered table-hover align-middle text-center">
                    <thead class="table-dark">
                        <tr>
                            <th>Nombre Completo</th>
                            <th>PDV</th>
                            <th>Posición Code</th>
                            <th>Fecha de Vencimiento</th>
                            <th>Fecha de Ingreso</th>
                        </tr>
                    </thead>
                    <tbody>
                    <?php if (!empty($plantillasVencidas)):
                        // Para obtener la fecha de vencimiento, necesitamos un mapa de codigo => fechaCierre
                        $fechasVencimiento = [];
                        if (!empty($codigosVencidos)) {
                            $sqlFechas = "SELECT codigo, fechaCierre FROM Posiciones WHERE codigo IN ('" . implode("','", $codigosVencidos) . "')";
                            $resultFechas = $conn->query($sqlFechas);
                            if ($resultFechas && $resultFechas->num_rows > 0) {
                                while ($rowF = $resultFechas->fetch_assoc()) {
                                    $fechasVencimiento[$rowF['codigo']] = $rowF['fechaCierre'];
                                }
                            }
                        }
                        foreach ($plantillasVencidas as $p):
                            $nombreCompleto = trim(
                                (isset($p['NOMBRE']) ? $p['NOMBRE'] : '') . ' ' .
                                (isset($p['APELLIDO PATERNO']) ? $p['APELLIDO PATERNO'] : '') . ' ' .
                                (isset($p['APELLIDO MATERNO']) ? $p['APELLIDO MATERNO'] : '')
                            );
                            $nombreCompleto = $nombreCompleto !== '' ? $nombreCompleto : '-';
                            $pdv = isset($p['DEPARTAMENTO INTERNO']) ? $p['DEPARTAMENTO INTERNO'] : '-';
                            $posicionCode = isset($p['posicionCode']) ? $p['posicionCode'] : (isset($p['POSICIONCODE']) ? $p['POSICIONCODE'] : '-');
                            $fechaVencimiento = isset($fechasVencimiento[$posicionCode]) ? $fechasVencimiento[$posicionCode] : '-';
                            $fechaIngreso = isset($p['FECHA DE INGRESO']) ? $p['FECHA DE INGRESO'] : (isset($p['FECHA_INGRESO']) ? $p['FECHA_INGRESO'] : '-');
                            // Formatear fechas a DD/MM/AAAA
                            function formatearFecha($fecha) {
                                if (!$fecha || $fecha === '-' || $fecha === '0000-00-00') return '-';
                                $f = date_create($fecha);
                                return $f ? date_format($f, 'd/m/Y') : $fecha;
                            }
                            $fechaVencimientoFmt = formatearFecha($fechaVencimiento);
                            $fechaIngresoFmt = formatearFecha($fechaIngreso);
                            echo "<tr>";
                            echo "<td>" . htmlspecialchars($nombreCompleto) . "</td>";
                            echo "<td>" . htmlspecialchars($pdv) . "</td>";
                            echo "<td>" . htmlspecialchars($posicionCode) . "</td>";
                            echo "<td>" . htmlspecialchars($fechaVencimientoFmt) . "</td>";
                            echo "<td>" . htmlspecialchars($fechaIngresoFmt) . "</td>";
                            echo "</tr>";
                        endforeach;
                    endif; ?>
                    </tbody>
                </table>
            </div>
            <a class="btn btn-secondary mt-4" href="../../index.php"><i class="fas fa-arrow-left me-1"></i>Volver al inicio</a>
        </div>
    </div>
</div>
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.13.6/js/dataTables.bootstrap5.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js"></script>
<script>
        $(document).ready(function() {
            try {
                $.fn.dataTable.ext.errMode = 'none';
                $('#tablaVencidas').DataTable({
                    language: {
                        url: '../assets/i18n/es-ES.json',
                        emptyTable: "No hay posiciones temporales vencidas para mostrar."
                    },
                    pageLength: 25
                });
            } catch (error) {
                console.error("Error al cargar DataTables:", error);
            }
        });
</script>
</body>
</html>
