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

if (isset($_GET['toggle'])) {
    $pdo->prepare("UPDATE mrbs_tipo_audiencia SET activa = 1 - activa WHERE id=?")->execute([$_GET['toggle']]);
    $fRedir = ['f_nombre' => trim($_GET['f_nombre'] ?? ''), 'f_instancia' => $_GET['f_instancia'] ?? '', 'f_activa' => $_GET['f_activa'] ?? '', 'f_esAudiencia' => $_GET['f_esAudiencia'] ?? '', 'f_etapa' => $_GET['f_etapa'] ?? ''];
    header('Location: listarTiposAudiencia.php?' . http_build_query($fRedir));
    exit;
}

$paginaActual = 'configuracion';
require __DIR__ . '/../../config/menu.php';

// Ordenamiento
$cols_ok = ['id', 'tipoAudiencia', 'tipoEnCalendario', 'instancia', 'activa', 'jurisdiccional', 'esAudiencia', 'etapa', 'ordenGrupo'];
$sort = in_array($_GET['sort'] ?? '', $cols_ok, true) ? $_GET['sort'] : 'ordenGrupo';
$dir  = strtoupper($_GET['dir'] ?? 'ASC') === 'DESC' ? 'DESC' : 'ASC';
$nextDir = $dir === 'ASC' ? 'DESC' : 'ASC';
$ind  = $dir === 'ASC' ? '▲' : '▼';
function sortLink($col, $lbl, $sort, $dir, $nextDir, $ind, $f) {
    $d = ($sort === $col) ? $nextDir : 'ASC';
    $q = http_build_query(array_merge($f, ['sort' => $col, 'dir' => $d]));
    return '<a href="?' . $q . '">' . $lbl . ($sort === $col ? ' ' . $ind : '') . '</a>';
}

// Filtros
$f = [
    'f_nombre'       => trim($_GET['f_nombre'] ?? ''),
    'f_instancia'    => $_GET['f_instancia'] ?? '',
    'f_activa'       => $_GET['f_activa'] ?? '',
    'f_esAudiencia'  => $_GET['f_esAudiencia'] ?? '',
    'f_etapa'        => $_GET['f_etapa'] ?? '',
];

$where  = [];
$params = [];
if ($f['f_nombre'])      { $where[] = "(tipoAudiencia LIKE ? OR tipoEnCalendario LIKE ?)"; $params[] = '%'.$f['f_nombre'].'%'; $params[] = '%'.$f['f_nombre'].'%'; }
if ($f['f_instancia'] !== '') { $where[] = "instancia = ?"; $params[] = (int)$f['f_instancia']; }
if ($f['f_activa'] !== '')    { $where[] = "activa = ?";    $params[] = (int)$f['f_activa']; }
if ($f['f_esAudiencia'] !== '') { $where[] = "esAudiencia = ?"; $params[] = (int)$f['f_esAudiencia']; }
if ($f['f_etapa'])        { $where[] = "etapa = ?";         $params[] = $f['f_etapa']; }

$wSql = $where ? 'WHERE ' . implode(' AND ', $where) : '';
$sql  = "SELECT * FROM mrbs_tipo_audiencia $wSql ORDER BY $sort $dir";
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

$etapas = ['IPP', 'Intermedia', 'JO', 'Ejecución', 'No Aplica'];
?>
<div class="ph">
  <div>
    <h1>Tipos de Audiencia</h1>
    <div class="bc"><a href="<?= BASE_URL ?>/index.php">Inicio</a> › Configuración › Tipos de Audiencia</div>
  </div>
  <?php if (perm('configuracion','agregar')): ?><a href="crearTipoAudiencia.php" class="btn btn-p">+ Nuevo Tipo</a><?php endif; ?>
</div>

<?php if (isset($_GET['ok'])): ?>
  <div class="msg msg-ok">Tipo de audiencia guardado correctamente.</div>
<?php endif; ?>

<div class="card">
  <form method="GET" class="fb">
    <div class="fi">
      <label>Nombre</label>
      <input type="text" name="f_nombre" value="<?= htmlspecialchars($f['f_nombre']) ?>" placeholder="Buscar...">
    </div>
    <div class="fi">
      <label>Instancia</label>
      <select name="f_instancia">
        <option value="">Todas</option>
        <option value="1" <?= $f['f_instancia']==='1'?'selected':'' ?>>1 - Penal</option>
        <option value="9" <?= $f['f_instancia']==='9'?'selected':'' ?>>9 - Otras</option>
      </select>
    </div>
    <div class="fi">
      <label>Activa</label>
      <select name="f_activa">
        <option value="">Todas</option>
        <option value="1" <?= $f['f_activa']==='1'?'selected':'' ?>>Sí</option>
        <option value="0" <?= $f['f_activa']==='0'?'selected':'' ?>>No</option>
      </select>
    </div>
    <div class="fi">
      <label>Es Audiencia</label>
      <select name="f_esAudiencia">
        <option value="">Todos</option>
        <option value="1" <?= $f['f_esAudiencia']==='1'?'selected':'' ?>>Sí</option>
        <option value="0" <?= $f['f_esAudiencia']==='0'?'selected':'' ?>>No</option>
      </select>
    </div>
    <div class="fi">
      <label>Etapa</label>
      <select name="f_etapa">
        <option value="">Todas</option>
        <?php foreach ($etapas as $e): ?>
          <option value="<?= htmlspecialchars($e) ?>" <?= $f['f_etapa']===$e?'selected':'' ?>><?= htmlspecialchars($e) ?></option>
        <?php endforeach; ?>
      </select>
    </div>
    <div class="fi" style="display:flex;align-items:flex-end;gap:6px">
      <button class="btn btn-p" type="submit">Filtrar</button>
      <a href="listarTiposAudiencia.php" class="btn btn-g">Limpiar</a>
    </div>
    <input type="hidden" name="sort" value="<?= htmlspecialchars($sort) ?>">
    <input type="hidden" name="dir"  value="<?= htmlspecialchars($dir) ?>">
  </form>
</div>

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

<div class="tw">
  <table>
    <thead><tr>
      <th style="width:70px"><?= sortLink('id','ID',$sort,$dir,$nextDir,$ind,$f) ?></th>
      <th><?= sortLink('tipoAudiencia','Tipo Audiencia',$sort,$dir,$nextDir,$ind,$f) ?></th>
      <th><?= sortLink('tipoEnCalendario','En Calendario',$sort,$dir,$nextDir,$ind,$f) ?></th>
      <th style="width:80px"><?= sortLink('instancia','Instancia',$sort,$dir,$nextDir,$ind,$f) ?></th>
      <th style="width:80px"><?= sortLink('etapa','Etapa',$sort,$dir,$nextDir,$ind,$f) ?></th>
      <th style="width:70px"><?= sortLink('esAudiencia','Audiencia',$sort,$dir,$nextDir,$ind,$f) ?></th>
      <th style="width:80px"><?= sortLink('jurisdiccional','Jurisdic.',$sort,$dir,$nextDir,$ind,$f) ?></th>
      <th style="width:70px"><?= sortLink('ordenGrupo','Orden',$sort,$dir,$nextDir,$ind,$f) ?></th>
      <th style="width:70px"><?= sortLink('activa','Activa',$sort,$dir,$nextDir,$ind,$f) ?></th>
      <th style="width:130px">Acciones</th>
    </tr></thead>
    <tbody>
    <?php foreach ($rows as $row): ?>
      <tr>
        <td><?= htmlspecialchars($row['id']) ?></td>
        <td><?= htmlspecialchars($row['tipoAudiencia'] ?? '') ?></td>
        <td><?= htmlspecialchars($row['tipoEnCalendario'] ?? '') ?></td>
        <td style="text-align:center"><?= $row['instancia'] ?></td>
        <td><?= htmlspecialchars($row['etapa'] ?? '') ?></td>
        <td style="text-align:center"><?= $row['esAudiencia'] ? 'Sí' : 'No' ?></td>
        <td style="text-align:center"><?= $row['jurisdiccional'] ? 'Sí' : 'No' ?></td>
        <td style="text-align:center"><?= $row['ordenGrupo'] ?></td>
        <td style="text-align:center">
          <?php if ($row['activa']): ?>
            <span class="bp bp-l">Sí</span>
          <?php else: ?>
            <span class="bp bp-r">No</span>
          <?php endif; ?>
        </td>
        <td>
          <div class="ac">
            <?php if (perm('configuracion','editar')): ?><a href="crearTipoAudiencia.php?id=<?= urlencode($row['id']) ?>" class="btn btn-i btn-sm">Editar</a><?php endif; ?>
            <?php if (perm('configuracion','editar')): ?>
            <?php if ($row['activa']): ?>
            <a href="?toggle=<?= urlencode($row['id']) ?>&<?= http_build_query($f) ?>"
               class="btn btn-r btn-sm"
               onclick="return confirm('¿Confirma la desactivación del tipo de audiencia?')">Desactivar</a>
            <?php else: ?>
            <a href="?toggle=<?= urlencode($row['id']) ?>&<?= http_build_query($f) ?>"
               class="btn btn-s btn-sm"
               onclick="return confirm('¿Confirma la activación del tipo de audiencia?')">Activar</a>
            <?php endif; ?>
            <?php endif; ?>
          </div>
        </td>
      </tr>
    <?php endforeach; ?>
    <?php if (!$rows): ?>
      <tr><td colspan="10" style="text-align:center;color:#94a3b8">Sin resultados</td></tr>
    <?php endif; ?>
    </tbody>
  </table>
</div>
</div></body></html>
