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

$id = (int)($_GET['id'] ?? 0);
if (!$id) { header('Location: listarAutos.php'); exit; }

$stmt = $pdo->prepare("SELECT * FROM agj_autos_apertura WHERE id = ? AND deleted_at IS NULL");
$stmt->execute([$id]);
$aa = $stmt->fetch();
if (!$aa) { header('Location: listarAutos.php?msg=No+encontrado'); exit; }

$juez_aa = null;
if ($aa['juez_aa_id']) {
    $sv = $pdo->prepare("SELECT nombre FROM mrbs_juez WHERE juez_id = ?");
    $sv->execute([$aa['juez_aa_id']]);
    $juez_aa = $sv->fetchColumn();
}

$litigantes = cargar_litigantes_aa($pdo, $id);
$jueces_ipp = cargar_jueces_ipp_aa($pdo, $id);

$stmt_ag = $pdo->prepare("
    SELECT ag.*,
           jPte.nombre AS presidente_nombre,
           jV1.nombre  AS vocal_1_nombre,
           jV2.nombre  AS vocal_2_nombre
    FROM agj_agendamientos ag
    LEFT JOIN mrbs_juez jPte ON ag.presidente_id = jPte.juez_id
    LEFT JOIN mrbs_juez jV1  ON ag.vocal_1_id    = jV1.juez_id
    LEFT JOIN mrbs_juez jV2  ON ag.vocal_2_id    = jV2.juez_id
    WHERE ag.aa_id = ? AND ag.deleted_at IS NULL
    ORDER BY ag.created_at DESC
");
$stmt_ag->execute([$id]);
$agendamientos = $stmt_ag->fetchAll();

$pp_urgente = false;
$dias_pp    = null;
if ($aa['vencimiento_pp_actual'] && $aa['estado_imputado'] === 'Preso') {
    $dias_pp    = (int)(new DateTime())->diff(new DateTime($aa['vencimiento_pp_actual']))->days
                  * ((new DateTime($aa['vencimiento_pp_actual'])) >= (new DateTime()) ? 1 : -1);
    $pp_urgente = $dias_pp <= 60;
}

$paginaActual = 'juicios';
require __DIR__ . '/../../config/menu.php';
?>
<div class="ph">
  <div>
    <h1>📄 <?= htmlspecialchars($aa['cuij_principal']) ?>
      <?php if ($aa['otros_cuijs']): ?>
        <small style="font-size:13px;color:#64748b;font-weight:400"> + <?= htmlspecialchars($aa['otros_cuijs']) ?></small>
      <?php endif; ?>
    </h1>
    <div class="bc"><a href="listarAutos.php">Autos de Apertura</a> · Ver</div>
  </div>
  <div style="display:flex;gap:6px;flex-wrap:wrap">
    <a href="editarAuto.php?id=<?= $id ?>" class="btn btn-w">✏️ Editar</a>
    <a href="../agendamientos/crearAgendamiento.php?aa_id=<?= $id ?>" class="btn btn-s">📅 Agendar</a>
    <a href="listarAutos.php" class="btn btn-g">← Volver</a>
  </div>
</div>

<?php if (isset($_GET['msg'])): ?>
  <div class="msg msg-ok"><?= htmlspecialchars($_GET['msg']) ?></div>
<?php endif; ?>

<?php if ($pp_urgente): ?>
  <div class="msg msg-err" style="font-size:14px">
    ⚠️ <strong>Prisión Preventiva próxima a vencer:</strong>
    <?= $dias_pp < 0 ? '<strong>VENCIDA hace ' . abs($dias_pp) . ' días</strong>' : "vence en <strong>$dias_pp días</strong>" ?>
    (<?= fmtFecha($aa['vencimiento_pp_actual']) ?>)
  </div>
<?php endif; ?>

<!-- ── Grid 4 columnas ────────────────────────────────────────────────────── -->
<div style="display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px;align-items:start">

<!-- ── F1C1 Identificación ────────────────────────────────────────────────── -->
<div class="card" style="grid-row:1;grid-column:1">
  <div class="sec">Identificación</div>
  <table style="width:100%;table-layout:auto;font-size:13px">
    <tr><td style="width:200px;font-weight:600;color:#475569">Imputados</td>
        <td class="w"><?= htmlspecialchars($aa['imputados']) ?></td></tr>
    <?php if (!empty($aa['cantidad_imputados'])): ?>
    <tr><td style="font-weight:600;color:#475569">Cantidad Imputados</td>
        <td><?= (int)$aa['cantidad_imputados'] ?></td></tr>
    <?php endif; ?>
    <tr><td style="font-weight:600;color:#475569">Delitos</td>
        <td class="w"><?= nl2br(htmlspecialchars($aa['delitos'] ?? '—')) ?></td></tr>
    <tr><td style="font-weight:600;color:#475569">Estado</td><td>
      <?php
        $ec = ['Para Agendar'=>'#2563eb','Programado'=>'#7c3aed','Agendado'=>'#0891b2',
               'Sobreagendado'=>'#7c3aed','Realizado'=>'#16a34a','Cancelado'=>'#dc2626',
               'En espera'=>'#d97706','Abreviado'=>'#64748b'];
        $c = $ec[$aa['estado']] ?? '#64748b';
      ?>
      <span style="background:<?= $c ?>20;color:<?= $c ?>;padding:2px 10px;border-radius:10px;font-size:12px;font-weight:700"><?= htmlspecialchars($aa['estado']) ?></span>
      <?php if (in_array($aa['estado'], ['Agendado','Sobreagendado'])):
        $agsActivos = array_filter($agendamientos, fn($ag) => $ag['estado'] !== 'Cancelado');
        foreach ($agsActivos as $agAct): ?>
        <div style="font-size:12px;color:#0369a1;margin-top:3px">
          Del <strong><?= fmtFecha($agAct['debate_desde']) ?></strong>
          al <strong><?= fmtFecha($agAct['debate_hasta']) ?></strong>
          <?php if ($agAct['fecha_fallo']): ?>, fallo: <strong><?= fmtFecha($agAct['fecha_fallo']) ?></strong><?php endif; ?>
          <?php if ($agAct['fecha_fin_bloqueo']): ?>, bloqueo: <strong><?= fmtFecha($agAct['fecha_fin_bloqueo']) ?></strong><?php endif; ?>
        </div>
      <?php endforeach; endif; ?>
    </td></tr>
    <tr><td style="font-weight:600;color:#475569">Prioridad</td><td>
      <?php $pv = (int)$aa['prioridad'];
        $pc = $pv >= 700 ? '#dc2626' : ($pv >= 350 ? '#d97706' : '#16a34a'); ?>
      <span id="prio_val" style="color:<?= $pc ?>;font-weight:700"><?= $pv ?></span>
      <button type="button" id="btnRecalc" onclick="recalcPrioridad()"
              title="Recalcula y guarda la prioridad.&#10;&#10;Fórmula:&#10;• Base: 100&#10;• + días desde AA&#10;• + días en PP × 3 (si Preso)&#10;• + días desde AA × 3 (si Libre con medidas familia)&#10;• + 1000 si PP vencida&#10;• + 500 si PP vence en &lt; 90 días&#10;• + 500 si prescripción vence en &lt; 90 días&#10;• + ajuste manual"
              class="btn btn-g btn-sm" style="margin-left:6px">🔄</button>
    </td></tr>
    <?php if ($aa['motivo_no_agendamiento']): ?>
    <tr><td style="font-weight:600;color:#475569">Motivo no agendamiento</td>
        <td class="w"><?= htmlspecialchars($aa['motivo_no_agendamiento']) ?></td></tr>
    <?php endif; ?>
    <tr><td style="font-weight:600;color:#475569">Tipo Tribunal</td><td><?= htmlspecialchars($aa['tipo_tribunal'] ?? '—') ?></td></tr>
    <?php
      $tfis = $aa['testigos_fiscalia'] ?? null;
      $tque = $aa['testigos_querella'] ?? null;
      $tdef = $aa['testigos_defensa']  ?? null;
      $hayTestigosSplit = ($tfis !== null || $tque !== null || $tdef !== null);
    ?>
    <?php if ($hayTestigosSplit): ?>
    <tr><td style="font-weight:600;color:#475569">Testigos Fiscalía</td><td><?= (int)$tfis ?></td></tr>
    <tr><td style="font-weight:600;color:#475569">Testigos Querella</td><td><?= (int)$tque ?></td></tr>
    <tr><td style="font-weight:600;color:#475569">Testigos Defensa</td><td><?= (int)$tdef ?></td></tr>
    <?php elseif ($aa['testigos_aa']): ?>
    <tr><td style="font-weight:600;color:#475569">Testigos (total)</td><td><?= $aa['testigos_aa'] ?></td></tr>
    <?php endif; ?>
    <tr><td style="font-weight:600;color:#475569">Jornadas AA</td>
        <td><?= $aa['jornadas_en_aa'] ?? '—' ?><?= $aa['jornadas_agregadas_juez'] ? ' (+' . $aa['jornadas_agregadas_juez'] . ' por juez/a)' : '' ?></td></tr>
  </table>
</div>

<!-- ── F1C2 Fechas Procesales ─────────────────────────────────────────────── -->
<div class="card" style="grid-row:1;grid-column:2">
  <div class="sec">Fechas Procesales</div>
  <table style="width:100%;table-layout:auto;font-size:13px">
    <?php foreach ([
      'fecha_acusacion'             => 'Acusación',
      'fecha_preliminar'            => 'Preliminar',
      'fecha_resolucion_preliminar' => 'Resolución Preliminar',
      'fecha_auto_apertura'         => 'Auto de Apertura',
      'fecha_ingreso_agenda'        => 'Ingreso a UAJ',
      'fecha_entrega_fundamentos'   => 'Entrega Fundamentos',
    ] as $col => $lbl): ?>
    <tr>
      <td style="width:200px;font-weight:600;color:#475569"><?= $lbl ?></td>
      <td><?= fmtFecha($aa[$col] ?? null) ?></td>
    </tr>
    <?php endforeach; ?>
    <?php if ($aa['fecha_auto_apertura']): ?>
    <tr>
      <td style="font-weight:600;color:#475569">Días desde AA</td>
      <td><?= (new DateTime())->diff(new DateTime($aa['fecha_auto_apertura']))->days ?> días</td>
    </tr>
    <?php endif; ?>
    <tr>
      <td style="font-weight:600;color:#475569">Duplicidad de plazos</td>
      <td><?= $aa['duplicidad_plazos'] ? '<span style="color:#b45309;font-weight:600">Sí</span>' : 'No' ?></td>
    </tr>
  </table>
</div>

<!-- ── F1C3 Partes del AA ─────────────────────────────────────────────────── -->
<div class="card" style="grid-row:1;grid-column:3">
  <div class="sec">Partes del AA</div>
  <table style="width:100%;table-layout:auto;font-size:13px">
    <tr><td style="width:120px;font-weight:600;color:#475569;vertical-align:top">Juez del AA</td>
        <td><?= htmlspecialchars($juez_aa ?? '—') ?></td></tr>
    <tr><td style="font-weight:600;color:#475569;vertical-align:top">Jueces IPP</td>
        <td><?php if (!empty($jueces_ipp)) { foreach ($jueces_ipp as $j) echo htmlspecialchars($j['nombre']) . '<br>'; } else { echo '—'; } ?></td></tr>
    <tr><td style="font-weight:600;color:#475569;vertical-align:top">Fiscal/es</td>
        <td><?php if (!empty($litigantes['Fiscal'])) { foreach ($litigantes['Fiscal'] as $l) echo htmlspecialchars($l['nombre']) . '<br>'; } else { echo '—'; } ?></td></tr>
    <tr><td style="font-weight:600;color:#475569;vertical-align:top">Defensor/es</td>
        <td><?php if (!empty($litigantes['Defensor'])) { foreach ($litigantes['Defensor'] as $l) echo htmlspecialchars($l['nombre']) . '<br>'; } else { echo '—'; } ?></td></tr>
    <tr><td style="font-weight:600;color:#475569;vertical-align:top">Querellante/s</td>
        <td><?php if (!empty($litigantes['Querellante'])) { foreach ($litigantes['Querellante'] as $l) echo htmlspecialchars($l['nombre']) . '<br>'; } else { echo '—'; } ?></td></tr>
  </table>
</div>

<!-- ── F1C4 Situación Imputados + Medidas + Prescripción ─────────────────── -->
<div style="grid-row:1;grid-column:4;display:flex;flex-direction:column;gap:12px">
<div class="card">
  <div class="sec">Situación Imputados</div>
  <table style="width:100%;table-layout:auto;font-size:13px">
    <tr><td style="font-weight:600;color:#475569">
          Estado Imputados
          <span title="Al menos uno detenido: consigne Preso. Todos en libertad: consigne En Libertad o el que corresponda." style="cursor:help;color:#2563eb">ℹ️</span>
        </td>
        <td><?= badgeEstadoImp($aa['estado_imputado']) ?></td></tr>
    <tr><td style="font-weight:600;color:#475569">Cantidad Imputados</td>
        <td><?= (int)($aa['cantidad_imputados'] ?? 0) ?></td></tr>
    <tr><td style="font-weight:600;color:#475569">Detenidos</td><td><?= $aa['cantidad_detenidos'] ?></td></tr>
    <?php if ($aa['estado_imputado'] === 'Preso'): ?>
    <tr><td style="font-weight:600;color:#475569">menor Fecha Detención</td>
        <td><?= fmtFecha($aa['fecha_detencion']) ?></td></tr>
    <tr><td style="font-weight:600;color:#475569">PP 2 años</td><td><?= fmtFecha($aa['vencimiento_pp_2']) ?></td></tr>
    <tr><td style="font-weight:600;color:#475569">PP 3 años</td><td><?= fmtFecha($aa['vencimiento_pp_3']) ?></td></tr>
    <tr>
      <td style="font-weight:600;color:#475569">PP Actual</td>
      <td>
        <span style="<?= $pp_urgente ? 'color:#dc2626;font-weight:700' : '' ?>"><?= fmtFecha($aa['vencimiento_pp_actual']) ?></span>
        <?php if ($dias_pp !== null): ?>
          <small style="color:<?= $dias_pp < 0 ? '#dc2626' : ($dias_pp < 30 ? '#d97706' : '#64748b') ?>">
            (<?= $dias_pp < 0 ? 'vencida hace ' . abs($dias_pp) . 'd' : $dias_pp . 'd restantes' ?>)
          </small>
        <?php endif; ?>
      </td>
    </tr>
    <?php endif; ?>
  </table>
</div>
<?php if ($aa['medidas_juzgado_familia']): ?>
<div class="card" style="border-color:#fca5a5;background:#fff7f7">
  <div class="sec" style="color:#dc2626;border-color:#fca5a5">⚠️ Medidas Juzgado de Familia</div>
  <p style="font-size:13px"><?= htmlspecialchars($aa['detalle_medidas_familia'] ?? 'Sí (sin detalle)') ?></p>
</div>
<?php endif; ?>
<?php if ($aa['delito_menor'] || $aa['delito_mayor']): ?>
<div class="card">
  <div class="sec">Prescripción</div>
  <table style="width:100%;table-layout:auto;font-size:12px">
    <thead><tr style="background:#f1f5f9">
      <th style="text-align:left;padding:4px 6px;color:#475569">Delito</th>
      <th style="text-align:left;padding:4px 6px;color:#475569">Arts.</th>
      <th style="text-align:left;padding:4px 6px;color:#475569">Plazo</th>
      <th style="text-align:left;padding:4px 6px;color:#475569">Últ. interruptiva</th>
      <th style="text-align:left;padding:4px 6px;color:#475569">Prescripción</th>
    </tr></thead>
    <tbody>
    <?php if ($aa['delito_menor']): ?>
    <tr>
      <td style="padding:4px 6px"><?= htmlspecialchars($aa['delito_menor']) ?></td>
      <td style="padding:4px 6px"><?= htmlspecialchars($aa['articulos_delito_menor'] ?? '') ?></td>
      <td style="padding:4px 6px"><?= ($aa['prescripcion_menor_anios'] ?? 0) ?>a <?= ($aa['prescripcion_menor_meses'] ?? 0) ?>m</td>
      <td style="padding:4px 6px"><?= fmtFecha($aa['ultima_interruptiva_menor'] ?? null) ?></td>
      <td style="padding:4px 6px"><?= fmtFecha($aa['fecha_prescripcion_menor'] ?? null) ?></td>
    </tr>
    <?php endif; ?>
    <?php if ($aa['delito_mayor']): ?>
    <tr>
      <td style="padding:4px 6px"><?= htmlspecialchars($aa['delito_mayor']) ?></td>
      <td style="padding:4px 6px"><?= htmlspecialchars($aa['articulos_delito_mayor'] ?? '') ?></td>
      <td style="padding:4px 6px"><?= ($aa['prescripcion_mayor_anios'] ?? 0) ?>a <?= ($aa['prescripcion_mayor_meses'] ?? 0) ?>m</td>
      <td style="padding:4px 6px"><?= fmtFecha($aa['ultima_interruptiva_mayor'] ?? null) ?></td>
      <td style="padding:4px 6px"><?= fmtFecha($aa['fecha_prescripcion_mayor'] ?? null) ?></td>
    </tr>
    <?php endif; ?>
    </tbody>
  </table>
</div>
<?php endif; ?>
</div><!-- F1C4 -->

<!-- ── F2C1 Desglose de Prioridad ────────────────────────────────────────── -->
<?php $det = calcular_prioridad_detalle($aa); ?>
<div class="card" style="grid-row:2;grid-column:1">
  <div class="sec">Desglose de Prioridad</div>
  <table style="width:100%;font-size:12px;border-collapse:collapse">
    <?php foreach($det['componentes'] as $c): ?>
    <tr style="border-top:1px solid #f1f5f9">
      <td style="padding:3px 8px;color:#475569"><?= htmlspecialchars($c['label']) ?></td>
      <td style="padding:3px 8px;text-align:right;font-weight:600;color:#1e293b;white-space:nowrap">+ <?= number_format($c['valor']) ?></td>
    </tr>
    <?php endforeach; ?>
    <tr style="border-top:2px solid #2563eb;background:#eff6ff">
      <td style="padding:5px 8px;font-weight:700;color:#1e40af">Total</td>
      <td style="padding:5px 8px;text-align:right;font-size:16px;font-weight:700;color:#2563eb"><?= number_format($det['total']) ?></td>
    </tr>
  </table>
  <?php if (!empty($aa['prioridad_agregada'])): ?>
  <p style="font-size:11px;color:#64748b;margin-top:6px">Incluye ajuste manual de <?= (int)$aa['prioridad_agregada'] ?> puntos. Editable en <a href="editarAuto.php?id=<?= $aa['id'] ?>">Editar AA</a>.</p>
  <?php endif; ?>
</div>

<!-- ── F2C2 Observaciones ─────────────────────────────────────────────────── -->
<?php if ($aa['observaciones']): ?>
<div class="card" style="grid-row:2;grid-column:2">
  <div class="sec">Observaciones</div>
  <p style="font-size:13px"><?= nl2br(htmlspecialchars($aa['observaciones'])) ?></p>
</div>
<?php endif; ?>

<!-- ── F2C3-4 Agendamientos ───────────────────────────────────────────────── -->
<div class="card" style="grid-row:2;grid-column:<?= $aa['observaciones'] ? '3/5' : '2/5' ?>">
  <div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:12px">
    <div class="sec" style="margin:0;border:0;padding:0">📅 Agendamientos (<?= count($agendamientos) ?>)</div>
    <a href="../agendamientos/crearAgendamiento.php?aa_id=<?= $id ?>" class="btn btn-s btn-sm">+ Nuevo agendamiento</a>
  </div>
  <?php if (empty($agendamientos)): ?>
    <p style="color:#94a3b8;font-size:13px;text-align:center;padding:16px">Sin agendamientos aún.</p>
  <?php else: ?>
  <div class="tw">
  <table style="table-layout:auto">
    <thead><tr>
      <th>Cond.</th><th>Turno</th><th>Estado</th>
      <th>Debate Desde</th><th>Debate Hasta</th><th>Fallo</th><th>Fin Bloq.</th>
      <th>Jorn.</th><th>Presidente</th><th>Vocal 1</th><th>Vocal 2</th><th>Acc.</th>
    </tr></thead>
    <tbody>
    <?php foreach ($agendamientos as $ag):
      $ec2 = ['Programado'=>'#7c3aed','Agendado'=>'#0891b2','Realizado'=>'#16a34a','Suspendido'=>'#d97706','Cancelado'=>'#dc2626'];
      $ce  = $ec2[$ag['estado']] ?? '#64748b';
      $cancelado = $ag['estado'] === 'Cancelado';
    ?>
    <tr style="<?= $cancelado ? 'opacity:.5' : '' ?>">
      <td><?= badgeCondicion($ag['condicion']) ?><br><small style="color:#94a3b8"><?= htmlspecialchars($ag['sub_condicion']) ?></small></td>
      <td><?= htmlspecialchars($ag['turno'] ?? '—') ?></td>
      <td><span style="background:<?= $ce ?>20;color:<?= $ce ?>;padding:1px 7px;border-radius:10px;font-size:11px;font-weight:700"><?= $ag['estado'] ?></span></td>
      <td><?= fmtFecha($ag['debate_desde']) ?></td>
      <td><?= fmtFecha($ag['debate_hasta']) ?></td>
      <td><?= fmtFecha($ag['fecha_fallo']) ?></td>
      <td><?= fmtFecha($ag['fecha_fin_bloqueo']) ?></td>
      <td style="text-align:center"><?= $ag['jornadas'] ?><?= $ag['jornadas_extras'] ? '+' . $ag['jornadas_extras'] : '' ?></td>
      <td><?= htmlspecialchars($ag['presidente_nombre'] ?? '—') ?></td>
      <td><?= htmlspecialchars($ag['vocal_1_nombre'] ?? '—') ?></td>
      <td><?= htmlspecialchars($ag['vocal_2_nombre'] ?? '—') ?></td>
      <td class="ac">
        <a href="../agendamientos/editarAgendamiento.php?id=<?= $ag['id'] ?>" class="btn btn-w btn-sm">✏️</a>
      </td>
    </tr>
    <?php endforeach; ?>
    </tbody>
  </table>
  </div>
  <?php endif; ?>
</div>

</div><!-- grid 4 cols -->

</div></body></html>
<script>
function recalcPrioridad() {
    const btn = document.getElementById('btnRecalc');
    btn.disabled = true;
    btn.textContent = '⏳';
    fetch('ajax_recalc_prioridad.php', {
        method: 'POST',
        headers: {'Content-Type':'application/x-www-form-urlencoded'},
        body: 'id=<?= $id ?>'
    })
    .then(r => r.json())
    .then(data => {
        if (data.error) { alert('Error: ' + data.error); return; }
        const span = document.getElementById('prio_val');
        span.textContent = data.prioridad;
        const p = data.prioridad;
        span.style.color = p >= 700 ? '#dc2626' : (p >= 350 ? '#d97706' : '#16a34a');
    })
    .catch(() => alert('Error al recalcular'))
    .finally(() => { btn.disabled = false; btn.textContent = '🔄'; });
}
</script>
