<?php
$authApp = 'litigantes';
session_start();
require __DIR__ . '/../../config/auth.php';
require __DIR__ . '/../../../../../config/db2.php';
require __DIR__ . '/../../lib/helpers.php';
$paginaActual = 'litigantes';
require __DIR__ . '/../../config/menu.php';

$juez_id = trim($_GET['juez_id'] ?? '');
if (!$juez_id) { header('Location: listarJueces.php'); exit; }

$stmt = $pdo->prepare("SELECT nombre, nombreCompleto FROM mrbs_juez WHERE juez_id=?");
$stmt->execute([$juez_id]);
$juez = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$juez) { header('Location: listarJueces.php'); exit; }

$f_desde = $_GET['f_desde'] ?? date('Y-01-01');
$f_hasta = $_GET['f_hasta'] ?? date('Y-12-31');

// Grupos de columnas: cada grupo → [col => etiqueta corta]
$grupos = [
    'IPP' => [
        'ordinario'    => 'Ord.',
        'urgencias'    => 'Urg.',
        'tercerJuez'   => '3° Juez',
        'IPPMatutino1' => 'Mat.1',
        'IPPMatutino2' => 'Mat.2',
        'IPPMatutino3' => 'Mat.3',
    ],
    'Juicio Oral' => [
        'JOTitular1'  => 'Titular 1',
        'JOTitular2'  => 'Titular 2',
        'JOSuplente1' => 'Suplente 1',
        'JOSuplente2' => 'Suplente 2',
        'JOSuplente3' => 'Suplente 3',
    ],
    'Menores' => [
        'menores' => 'Menores',
    ],
];

// Todos los roles en orden de aparición
$todosCols = [];
foreach ($grupos as $cols) { foreach ($cols as $col => $lbl) { $todosCols[$col] = $lbl; } }

// Columnas de observaciones
$colsObs = [
    'observacionesIPP'        => 'IPP',
    'observacionesIPPMatutino'=> 'IPP Matutino',
    'observacionesJO'         => 'JO',
    'observaciones'           => 'General',
];

// Query: filas donde el juez aparece en cualquier columna
$orParts = implode(' OR ', array_map(fn($c) => "t.$c = ?", array_keys($todosCols)));
$params  = array_merge(
    array_fill(0, count($todosCols), $juez_id),
    [$f_desde, $f_hasta]
);

$sql = "SELECT t.* FROM mrbs_new_turno_jueces t
        WHERE ($orParts) AND t.desde >= ? AND t.desde <= ?
        ORDER BY t.desde ASC";
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
$turnos = $stmt->fetchAll(PDO::FETCH_ASSOC);

$totalCols = count($todosCols); // 12
?>
<div class="ph">
  <div>
    <h1>Turnos de Guardia — <?=htmlspecialchars($juez['nombreCompleto'] ?: $juez['nombre'])?></h1>
    <div class="bc">
      <a href="<?=BASE_URL?>/index.php">Inicio</a> ›
      <a href="listarJueces.php">Jueces</a> ›
      <a href="crearJuez.php?id=<?=urlencode($juez_id)?>"><?=htmlspecialchars($juez['nombre']??$juez_id)?></a> ›
      Turnos
    </div>
  </div>
  <a href="crearJuez.php?id=<?=urlencode($juez_id)?>" class="btn btn-g">← Volver al Juez</a>
</div>

<div class="card">
  <form method="GET" id="fForm" class="fb">
    <input type="hidden" name="juez_id" value="<?=htmlspecialchars($juez_id)?>">
    <div class="fi"><label>Desde</label>
      <input type="date" name="f_desde" value="<?=htmlspecialchars($f_desde)?>">
    </div>
    <div class="fi"><label>Hasta</label>
      <input type="date" name="f_hasta" value="<?=htmlspecialchars($f_hasta)?>">
    </div>
    <div class="fi" style="display:flex;align-items:flex-end">
      <button class="btn btn-p" type="submit">Filtrar</button>
    </div>
  </form>
</div>

<div style="margin-bottom:6px;font-size:13px;color:#475569"><?=count($turnos)?> turno(s)</div>

<?php if ($turnos): ?>
<div class="tw">
  <table style="font-size:12px">
    <thead>
      <!-- Fila 1: grupos -->
      <tr>
        <th rowspan="2" style="width:50px">Sem.</th>
        <th rowspan="2" style="width:90px">Desde</th>
        <th rowspan="2" style="width:90px">Hasta</th>
        <?php foreach ($grupos as $grupo => $cols): ?>
          <th colspan="<?=count($cols)?>"
              style="text-align:center;background:#0f172a;border-bottom:2px solid #60a5fa">
            <?=htmlspecialchars($grupo)?>
          </th>
        <?php endforeach; ?>
        <th rowspan="2" style="width:36px">Obs.</th>
      </tr>
      <!-- Fila 2: sub-encabezados de columna -->
      <tr>
        <?php foreach ($grupos as $cols): ?>
          <?php foreach ($cols as $col => $lbl): ?>
            <th style="font-size:11px;white-space:nowrap"><?=htmlspecialchars($lbl)?></th>
          <?php endforeach; ?>
        <?php endforeach; ?>
      </tr>
    </thead>
    <tbody>
    <?php foreach ($turnos as $t):
        // Combinar observaciones no vacías
        $obsPartes = [];
        foreach ($colsObs as $colO => $etiqO) {
            if (!empty($t[$colO])) $obsPartes[] = "[$etiqO] " . $t[$colO];
        }
        $obsTexto = implode("\n", $obsPartes);
    ?>
      <tr>
        <td style="text-align:center"><?=$t['semana']?></td>
        <td><?=htmlspecialchars($t['desde'])?></td>
        <td><?=htmlspecialchars($t['hasta'])?></td>
        <?php foreach ($todosCols as $col => $lbl): ?>
          <td style="text-align:center">
            <?php if ($t[$col] === $juez_id): ?>
              <span class="bj bj-t" style="font-size:13px">✓</span>
            <?php endif; ?>
          </td>
        <?php endforeach; ?>
        <td style="text-align:center">
          <?php if ($obsTexto): ?>
            <span title="<?=htmlspecialchars($obsTexto)?>"
                  style="cursor:help;font-size:15px">💬</span>
          <?php endif; ?>
        </td>
      </tr>
    <?php endforeach; ?>
    </tbody>
  </table>
</div>
<?php else: ?>
  <div class="card" style="text-align:center;color:#94a3b8">Sin turnos para el período seleccionado.</div>
<?php endif; ?>

<script>
(function(){
  const f = document.getElementById('fForm');
  f.querySelectorAll('input[type=date]').forEach(el => {
    el.addEventListener('keydown', e => { if (e.key === 'Enter') { e.preventDefault(); f.submit(); } });
    el.addEventListener('blur', () => f.submit());
  });
})();
</script>
</div></body></html>
