<?php
session_start();
include_once(__DIR__ . '/../../backend/db/conexion.php');
require_once __DIR__ . '/../includes/valida_posiciones.php';

// Obtener resultados por aniversario o cumpleaños
$mesSeleccionado = $_GET['mes'] ?? '';
$mostrarAniversario = isset($_GET['aniversario']);
$mostrarCumpleanios = isset($_GET['cumpleanios']);
$resultados = [];

if ($mesSeleccionado && ($mostrarAniversario || $mostrarCumpleanios)) {
    if ($mostrarAniversario) {
        $sql = "SELECT CURP, ATTUID, NOMBRES, `APELLIDO PATERNO`, `APELLIDO MATERNO`, `FECHA DE INGRESO`, Estatus
                FROM Plantilla
                WHERE Estatus = 'ACTIVO'
                AND MONTH(`FECHA DE INGRESO`) = ?
                AND TIMESTAMPDIFF(YEAR, `FECHA DE INGRESO`, CURDATE()) >= 1
                ORDER BY DAY(`FECHA DE INGRESO`)";
    } else {
        $sql = "SELECT CURP, ATTUID, NOMBRES, `APELLIDO PATERNO`, `APELLIDO MATERNO`, `FECHA NACIMIENTO`, Estatus
                FROM Plantilla
                WHERE Estatus = 'ACTIVO' AND MONTH(`FECHA NACIMIENTO`) = ?
                ORDER BY DAY(`FECHA NACIMIENTO`)";
    }

    $stmt = $conn->prepare($sql);
    $stmt->bind_param("i", $mesSeleccionado);
    $stmt->execute();
    $resultados = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8" />
  <title>Buscar Empleado</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://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/6.4.0/mdb.min.css" rel="stylesheet" />
  <link href="../assets/css/style.css" rel="stylesheet" />
  <link href="../assets/css/recruiter.css" rel="stylesheet" />
  <link href="../assets/css/buscador-empleado.css" rel="stylesheet" />
</head>
<body class="bg-light d-flex">
  <?php include_once('../includes/sidebar.php'); ?>

  <div class="flex-grow-1 p-4" style="margin-left: 280px;">
    <?php include_once('../includes/topbar.php'); ?>

    <div class="p-4">
      <h3 class="text-att mb-4"><i class="fas fa-search me-2"></i>Buscar Empleado</h3>

      <form method="get" class="mb-3 d-flex flex-wrap gap-2 align-items-end">
        <select name="mes" class="form-select w-auto">
          <option value="">-- Mes --</option>
          <?php
          $meses = [1=>'Enero',2=>'Febrero',3=>'Marzo',4=>'Abril',5=>'Mayo',6=>'Junio',
                    7=>'Julio',8=>'Agosto',9=>'Septiembre',10=>'Octubre',11=>'Noviembre',12=>'Diciembre'];
          foreach ($meses as $n => $nombre) {
              $sel = ($mesSeleccionado == $n) ? 'selected' : '';
              echo "<option value='$n' $sel>$nombre</option>";
          }
          ?>
        </select>

        <button class="btn btn-outline-primary" name="aniversario" value="1">Ver Aniversarios</button>
        <button class="btn btn-outline-success" name="cumpleanios" value="1">Ver Cumpleaños</button>
        <button type="button" class="btn btn-outline-secondary position-relative" id="btnEliminarFiltros" title="Limpiar filtros">
          <i class="fas fa-filter"></i>
          <i class="fas fa-times-circle position-absolute" style="font-size:0.8em; left:1.1em; top:0.2em; color:#dc3545;"></i>
        </button>
        <button type="button" class="btn btn-success" data-bs-toggle="modal" data-bs-target="#modalExportarExcel">
          <i class="fas fa-file-excel me-1"></i> Exportar Excel
        </button>
      </form>

      <!-- Buscador dinámico -->
      <div class="input-group mb-3">
        <input type="text" id="buscadorEmpleado" class="form-control" placeholder="Buscar por CURP, ATTUID o nombre completo..." autocomplete="off" />
        <span class="input-group-text bg-att text-white"><i class="fas fa-search"></i></span>
      </div>

      <div id="resultadosBusqueda" class="list-group mb-4"></div>

      <?php if (!empty($resultados)): ?>
        <div class="mb-3">
          <?php if ($mostrarAniversario): ?>
            <a href="../../backend/plantilla/exportar_excel_eventos.php?mes=<?= $mesSeleccionado ?>&tipo=aniversario" class="btn btn-sm btn-outline-primary">
              <i class="fas fa-file-excel me-1"></i> Exportar Aniversarios a Excel
            </a>
          <?php elseif ($mostrarCumpleanios): ?>
            <a href="../../backend/plantilla/exportar_excel_eventos.php?mes=<?= $mesSeleccionado ?>&tipo=cumple" class="btn btn-sm btn-outline-success">
              <i class="fas fa-file-excel me-1"></i> Exportar Cumpleaños a Excel
            </a>
          <?php endif; ?>
        </div>
        <h5 class="mb-3">Resultados:</h5>
        <div class="list-group">
          <?php foreach ($resultados as $emp): ?>
            <a href="detalle-empleado.php?curp=<?= $emp['CURP'] ?>" class="list-group-item list-group-item-action">
              <strong><?= $emp['NOMBRES'] ?> <?= $emp['APELLIDO PATERNO'] ?> <?= $emp['APELLIDO MATERNO'] ?></strong><br />
              <small>CURP: <?= $emp['CURP'] ?> | ATTUID: <?= $emp['ATTUID'] ?> |
                Estatus: <span class="badge <?= strtoupper($emp['Estatus']) === 'ACTIVO' ? 'bg-success' : 'bg-danger' ?>">
                  <?= ucfirst(strtolower($emp['Estatus'])) ?>
                </span>
              </small>
              <?php if (isset($emp['FECHA NACIMIENTO'])): ?>
                <br><small>🎂 Cumpleaños: <?= date("d/m", strtotime($emp['FECHA NACIMIENTO'])) ?></small>
              <?php elseif (isset($emp['FECHA DE INGRESO'])): ?>
                <?php
                  $fechaIngreso = new DateTime($emp['FECHA DE INGRESO']);
                  $hoy = new DateTime();
                  $antiguedad = $hoy->diff($fechaIngreso)->y;
                ?>
                <br><small>📅 Aniversario: <?= date("d/m", strtotime($emp['FECHA DE INGRESO'])) ?> — 🎉 <?= $antiguedad ?> año<?= $antiguedad > 1 ? 's' : '' ?> en Grupo Rocasa</small>
              <?php endif; ?>
            </a>
          <?php endforeach; ?>
        </div>
      <?php endif; ?>

      <!-- Modal Exportar Excel -->
      <div class="modal fade" id="modalExportarExcel" tabindex="-1" aria-labelledby="modalExportarExcelLabel" aria-hidden="true">
        <div class="modal-dialog">
          <div class="modal-content">
            <div class="modal-header">
              <h5 class="modal-title" id="modalExportarExcelLabel">Exportar empleados a Excel</h5>
              <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Cerrar"></button>
            </div>
            <div class="modal-body">
              <div class="form-check mb-2">
                <input class="form-check-input" type="radio" name="exportarTipo" id="exportarActivos" value="activos" checked>
                <label class="form-check-label" for="exportarActivos">Activos</label>
              </div>
              <div class="form-check mb-2">
                <input class="form-check-input" type="radio" name="exportarTipo" id="exportarInactivos" value="inactivos">
                <label class="form-check-label" for="exportarInactivos">Inactivos</label>
              </div>
              <div class="form-check mb-2">
                <input class="form-check-input" type="radio" name="exportarTipo" id="exportarTodos" value="todos">
                <label class="form-check-label" for="exportarTodos">Todos</label>
              </div>
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-success w-100" id="btnExportarExcelModal">
                <i class="fas fa-file-excel me-1"></i> Exportar
              </button>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>

  <script>
    document.addEventListener("DOMContentLoaded", () => {
      const input = document.getElementById("buscadorEmpleado");
      const resultadosDiv = document.getElementById("resultadosBusqueda");

      let abortController = null;
      let debounceTimeout = null;
      // Agregar loader visual
      const loader = document.createElement('div');
      loader.id = 'loaderBusquedaEmpleado';
      loader.innerHTML = '<div class="text-center py-2"><div class="spinner-border text-primary" role="status" style="width: 2rem; height: 2rem;"><span class="visually-hidden">Cargando...</span></div></div>';
      loader.style.display = 'none';
      resultadosDiv.parentNode.insertBefore(loader, resultadosDiv);

      input.addEventListener("input", () => {
        clearTimeout(debounceTimeout);
        debounceTimeout = setTimeout(async () => {
          const query = input.value.trim();
          resultadosDiv.innerHTML = '';

          if (abortController) {
            abortController.abort();
          }
          abortController = new AbortController();

          if (query.length < 2) {
            loader.style.display = 'none';
            return;
          }

          loader.style.display = '';

          try {
            const res = await fetch(`../../backend/plantilla/buscar_empleados_ajax.php?q=${encodeURIComponent(query)}`, { signal: abortController.signal });
            const empleados = await res.json();
            loader.style.display = 'none';

            if (empleados.length === 0) {
              resultadosDiv.innerHTML = `<div class=\"list-group-item\">Sin resultados</div>`;
              return;
            }

            // Mostrar solo un nombre completo único
            const nombresMostrados = new Set();
            empleados.forEach(emp => {
              const nombreCompleto = `${emp.NOMBRES} ${emp["APELLIDO PATERNO"]} ${emp["APELLIDO MATERNO"]}`.toUpperCase().trim();
              if (nombresMostrados.has(nombreCompleto)) return;
              nombresMostrados.add(nombreCompleto);
              const badgeClass = (emp.Estatus && emp.Estatus.toUpperCase() === 'ACTIVO') ? 'bg-success' : 'bg-danger';
              const estatus = emp.Estatus ? `<span class=\"badge ${badgeClass}\">${emp.Estatus.charAt(0).toUpperCase() + emp.Estatus.slice(1).toLowerCase()}</span>` : '';
              const a = document.createElement("a");
              a.href = `detalle-empleado.php?curp=${emp.CURP}`;
              a.className = "list-group-item list-group-item-action";
              a.innerHTML = `
                <strong>${emp.NOMBRES} ${emp["APELLIDO PATERNO"]} ${emp["APELLIDO MATERNO"]}</strong><br>
                <small>CURP: ${emp.CURP} | ATTUID: ${emp.ATTUID} | Estatus: ${estatus}</small>
              `;
              resultadosDiv.appendChild(a);
            });
          } catch (err) {
            loader.style.display = 'none';
            if (err.name !== 'AbortError') {
              console.error('Error al buscar:', err);
            }
          }
        }, 250); // 250ms debounce
      });

      // Exportar Excel Modal
      document.getElementById('btnExportarExcelModal').addEventListener('click', function() {
        const tipo = document.querySelector('input[name="exportarTipo"]:checked').value;
        // Redirige a la nueva exportación de plantilla completa
        window.location.href = '../../backend/plantilla/exportar_excel_plantilla.php?tipo=' + tipo;
      });

      // JS: Agregar funcionalidad al botón Eliminar filtros
      document.getElementById('btnEliminarFiltros').addEventListener('click', function() {
        const url = new URL(window.location.href);
        url.searchParams.delete('aniversario');
        url.searchParams.delete('cumpleanios');
        url.searchParams.delete('mes');
        window.location.href = url.pathname; // recarga sin filtros
      });
    });
  </script>
</body>
</html>
