<?php
require_once __DIR__ . '/../../config/app.php';
require_once __DIR__ . '/../../includes/auth.php';
require_once __DIR__ . '/../../includes/functions.php';
requireRol(ROL_COORDINADOR, ROL_ADMIN);

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

$st = $db->prepare("
    SELECT t.*,
           CONCAT(u.apellidos,' ',u.nombres)     AS estudiante,
           u.cedula, u.email,
           car.nombre                             AS carrera,
           per.nombre                             AS periodo,
           CONCAT(utut.apellidos,' ',utut.nombres) AS tutor_nombre,
           utut.cedula                            AS tutor_cedula,
           utut.email                             AS tutor_email,
           CONCAT(udir.apellidos,' ',udir.nombres) AS director_nombre,
           udir.cedula                            AS director_cedula,
           CONCAT(ulec.apellidos,' ',ulec.nombres) AS lector_nombre,
           ulec.cedula                            AS lector_cedula,
           CONCAT(utri.apellidos,' ',utri.nombres) AS tribunal_nombre,
           utri.cedula                            AS tribunal_cedula
    FROM titulaciones t
    JOIN estudiantes est ON est.id_estudiante = t.id_estudiante
    JOIN usuarios u      ON u.id_usuario      = est.id_usuario
    JOIN carreras car    ON car.id_carrera     = est.id_carrera
    LEFT JOIN periodos_academicos per ON per.id_periodo = est.id_periodo_ingreso
    LEFT JOIN usuarios utut ON utut.id_usuario = t.id_tutor
    LEFT JOIN usuarios udir ON udir.id_usuario = t.id_director_trib
    LEFT JOIN usuarios ulec ON ulec.id_usuario = t.id_lector_trib
    LEFT JOIN usuarios utri ON utri.id_usuario = t.id_tribunal_trib
    WHERE t.id_titulacion = :id
");
$st->execute([':id' => $idTit]);
$d = $st->fetch();
if (!$d) { header('Location: titulacion.php'); exit; }

// Calcular nota global
$notaTutor = $d['nota_trabajo'] !== null ? round((float)$d['nota_trabajo'] * 10, 2) : null;
$ng        = $d['nota_global']  !== null ? (float)$d['nota_global'] : null;
$ng10      = $ng !== null ? round($ng / 10, 2) : null;
$aprobado  = $ng !== null && $ng >= 70;

function fld($v, $def = '________________') { $v = trim($v ?? ''); return $v !== '' ? htmlspecialchars($v) : $def; }
function nf($v) { return $v !== null ? number_format((float)$v, 2) : '——'; }
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Acta de Titulación — <?= htmlspecialchars($d['estudiante']) ?></title>
<?php
// Generar QR como base64
$verifyUrl = BASE_URL . '/verificar_acta.php?id=' . $idTit . '&token=' . md5('acta-' . $idTit . '-sigvp');
$qrBase64  = '';
try {
    $qrFile = sys_get_temp_dir() . '/acta_qr_' . $idTit . '.png';
    // Usar enderezo local del servidor para generar QR
    $qrData = $verifyUrl;
    // Generar QR con API pública (solo para visualización, no requiere internet al imprimir)
    $qrBase64 = 'data:image/png;base64,' . base64_encode(
        file_get_contents('https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=' . urlencode($qrData))
    );
} catch (Exception $e) { $qrBase64 = ''; }
?>
<style>
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:Arial,sans-serif;font-size:10pt;color:#000;background:#fff;}
.btn-print{position:fixed;top:14px;right:18px;z-index:999;background:#1d4ed8;color:#fff;
  border:none;border-radius:8px;padding:10px 22px;font-size:13px;cursor:pointer;font-weight:700;
  box-shadow:0 2px 8px rgba(0,0,0,.25);}
.page{width:210mm;min-height:297mm;margin:0 auto;padding:12mm 14mm 10mm;}
/* ── Header con logo ── */
.inst-header{border:2px solid #1f3864;margin-bottom:5px;overflow:hidden;}
.inst-header-inner{display:flex;align-items:center;gap:0;}
.logo-col{width:90px;min-width:90px;padding:6px 10px;border-right:2px solid #1f3864;display:flex;align-items:center;justify-content:center;background:#f8fafc;}
.logo-col img{width:70px;height:auto;}
.title-col{flex:1;padding:8px 12px;text-align:center;}
.inst-name{font-size:12.5pt;font-weight:bold;letter-spacing:.4px;color:#1f3864;}
.inst-sub{font-size:10pt;font-weight:bold;margin-top:2px;color:#374151;}
.acta-title{font-size:11pt;font-weight:bold;margin-top:4px;color:#1f3864;}
.qr-col{width:90px;min-width:90px;padding:6px 8px;border-left:2px solid #1f3864;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f8fafc;gap:2px;}
.qr-col img{width:72px;height:72px;}
.qr-label{font-size:6.5pt;color:#6b7280;text-align:center;line-height:1.3;}
/* ── Acta num ── */
.acta-num{display:flex;justify-content:space-between;font-size:8.5pt;color:#555;margin-bottom:6px;padding:0 2px;}
.section{background:#1f3864;color:#fff;font-weight:bold;font-size:9.5pt;
  padding:4px 8px;margin-top:7px;letter-spacing:.4px;text-transform:uppercase;}
.tbl{width:100%;border-collapse:collapse;font-size:9.5pt;}
.tbl td{border:1px solid #888;padding:4px 6px;vertical-align:middle;}
.lbl{background:#d6dce4;font-weight:bold;font-size:8.5pt;color:#1f3864;white-space:nowrap;width:38%;}
.notas-tbl{width:100%;border-collapse:collapse;font-size:9.5pt;margin-top:2px;}
.notas-tbl th{background:#1f3864;color:#fff;padding:5px 8px;font-size:9pt;text-align:center;}
.notas-tbl td{border:1px solid #888;padding:5px 8px;text-align:center;}
.nota-val{font-size:14pt;font-weight:800;}
.nota-ok{color:#166534;}
.nota-bad{color:#991b1b;}
.global-box{border:2px solid #1f3864;border-radius:6px;padding:10px;text-align:center;margin-top:8px;}
.global-num{font-size:26pt;font-weight:900;line-height:1;}
.firmas{display:flex;justify-content:space-around;margin-top:24px;flex-wrap:wrap;gap:16px;}
.firma{text-align:center;min-width:130px;}
.firma-line{border-top:1px solid #000;padding-top:4px;margin-top:34px;}
.firma-name{font-weight:bold;font-size:9pt;}
.firma-rol{font-size:8pt;color:#555;}
.firma-ced{font-size:8pt;color:#555;}
.verify-strip{margin-top:14px;border:1px dashed #9ca3af;border-radius:6px;padding:6px 10px;
  display:flex;align-items:center;gap:10px;background:#f8fafc;}
.verify-strip img{width:48px;height:48px;}
.verify-text{font-size:7.5pt;color:#6b7280;line-height:1.5;}
.verify-url{font-size:7pt;font-family:monospace;color:#1d4ed8;word-break:break-all;}
@media print{
  .btn-print{display:none;}
  .page{padding:8mm 12mm;}
  @page{size:A4;margin:0;}
}
</style>
</head>
<body>
<button class="btn-print" onclick="window.print()">🖨️ Imprimir / Guardar PDF</button>
<div class="page">

  <!-- HEADER CON LOGO Y QR -->
  <div class="inst-header">
    <div class="inst-header-inner">
      <!-- Logo izquierdo -->
      <div class="logo-col">
        <img src="<?= BASE_URL ?>/uploads/logo/tecnopolis-logo.png" alt="Tecnópolis"
             onerror="this.style.display='none'">
      </div>
      <!-- Título central -->
      <div class="title-col">
        <div class="inst-name">INSTITUTO SUPERIOR TECNOLÓGICO TECNÓPOLIS</div>
        <div class="inst-sub">PROCESO DE TITULACIÓN — TRABAJO DE INVESTIGACIÓN</div>
        <div class="acta-title">ACTA DE CALIFICACIÓN DEL TRABAJO DE TITULACIÓN</div>
      </div>
      <!-- QR derecho -->
      <div class="qr-col">
        <?php if ($qrBase64): ?>
          <img src="<?= $qrBase64 ?>" alt="QR Verificación">
        <?php else: ?>
          <div style="width:72px;height:72px;background:#e5e7eb;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:8pt;color:#9ca3af;">QR</div>
        <?php endif; ?>
        <div class="qr-label">Verificar<br>autenticidad</div>
      </div>
    </div>
  </div>

  <div class="acta-num">
    <span>N° Acta: <strong>TIT-<?= str_pad($idTit, 4, '0', STR_PAD_LEFT) ?></strong></span>
    <span>Fecha de emisión: <strong><?= date('d/m/Y') ?></strong></span>
  </div>

  <!-- 1. Datos del estudiante -->
  <div class="section">1. Datos del Graduando</div>
  <table class="tbl">
    <tr><td class="lbl">Apellidos y Nombres:</td><td><strong><?= fld($d['estudiante']) ?></strong></td></tr>
    <tr><td class="lbl">Cédula de Identidad:</td><td><?= fld($d['cedula']) ?></td></tr>
    <tr><td class="lbl">Carrera:</td><td><?= fld($d['carrera']) ?></td></tr>
    <tr><td class="lbl">Período Académico:</td><td><?= fld($d['periodo']) ?></td></tr>
    <tr><td class="lbl">Tema del Trabajo:</td><td><strong><?= fld($d['tema']) ?></strong></td></tr>
    <tr><td class="lbl">Modalidad:</td><td>Trabajo de Investigación</td></tr>
  </table>

  <!-- 2. Notas -->
  <div class="section">2. Calificaciones del Tribunal</div>
  <table class="notas-tbl">
    <thead>
      <tr>
        <th>Rol</th>
        <th>Nombre del Evaluador</th>
        <th>Cédula</th>
        <th>Nota /100</th>
        <th>Equivalente /10</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><strong>Tutor de Investigación</strong></td>
        <td><?= fld($d['tutor_nombre']) ?></td>
        <td><?= fld($d['tutor_cedula']) ?></td>
        <td class="nota-val <?= $notaTutor!==null&&$notaTutor>=70?'nota-ok':'nota-bad' ?>"><?= nf($notaTutor) ?></td>
        <td><?= $notaTutor!==null?nf(round($notaTutor/10,2)):'——' ?></td>
      </tr>
      <tr>
        <td><strong>Director</strong></td>
        <td><?= fld($d['director_nombre']) ?></td>
        <td><?= fld($d['director_cedula']) ?></td>
        <td class="nota-val <?= $d['nota_director']!==null&&$d['nota_director']>=70?'nota-ok':'nota-bad' ?>"><?= nf($d['nota_director']) ?></td>
        <td><?= $d['nota_director']!==null?nf(round($d['nota_director']/10,2)):'——' ?></td>
      </tr>
      <tr>
        <td><strong>Lector</strong></td>
        <td><?= fld($d['lector_nombre']) ?></td>
        <td><?= fld($d['lector_cedula']) ?></td>
        <td class="nota-val <?= $d['nota_lector']!==null&&$d['nota_lector']>=70?'nota-ok':'nota-bad' ?>"><?= nf($d['nota_lector']) ?></td>
        <td><?= $d['nota_lector']!==null?nf(round($d['nota_lector']/10,2)):'——' ?></td>
      </tr>
      <tr>
        <td><strong>Tribunal (Miembro)</strong></td>
        <td><?= fld($d['tribunal_nombre']) ?></td>
        <td><?= fld($d['tribunal_cedula']) ?></td>
        <td class="nota-val <?= $d['nota_tribunal']!==null&&$d['nota_tribunal']>=70?'nota-ok':'nota-bad' ?>"><?= nf($d['nota_tribunal']) ?></td>
        <td><?= $d['nota_tribunal']!==null?nf(round($d['nota_tribunal']/10,2)):'——' ?></td>
      </tr>
    </tbody>
  </table>

  <!-- Nota global -->
  <div class="global-box" style="border-color:<?= $aprobado?'#166534':'#991b1b' ?>;">
    <div style="font-size:9pt;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:<?= $aprobado?'#166534':'#991b1b' ?>;margin-bottom:4px;">
      NOTA GLOBAL — PROMEDIO DE LAS 4 CALIFICACIONES
    </div>
    <div class="global-num" style="color:<?= $aprobado?'#166534':'#991b1b' ?>;">
      <?= $ng!==null?nf($ng).'<span style="font-size:14pt;"> / 100</span>':'Pendiente' ?>
    </div>
    <?php if($ng10!==null): ?>
    <div style="font-size:10pt;color:#555;margin-top:4px;">
      Equivalente CES: <strong><?= nf($ng10) ?> / 10</strong>
    </div>
    <?php endif; ?>
    <div style="font-size:11pt;font-weight:900;margin-top:6px;color:<?= $aprobado?'#166534':'#991b1b' ?>;">
      <?= $ng!==null?($aprobado?'✅ APROBADO':'❌ REPROBADO — Mínimo requerido: 70/100'):'——' ?>
    </div>
    <div style="font-size:8pt;color:#6b7280;margin-top:4px;">
      Fórmula: (Tutor + Director + Lector + Tribunal) ÷ 4
    </div>
  </div>

  <!-- 3. Firmas -->
  <div class="section" style="margin-top:14px;">3. Firmas del Tribunal</div>
  <div style="border:1px solid #888;padding:10px;font-size:9pt;color:#555;margin-bottom:6px;">
    Los miembros del tribunal certificamos que la presente calificación fue emitida en sesión del
    <strong><?= date('d') ?> de <?= ['','enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre'][date('n')] ?> de <?= date('Y') ?></strong>
    y que el estudiante obtuvo la nota global indicada.
  </div>

  <div class="firmas">
    <div class="firma">
      <div class="firma-line"></div>
      <div class="firma-name"><?= fld($d['tutor_nombre']) ?></div>
      <div class="firma-rol">TUTOR DE INVESTIGACIÓN</div>
      <div class="firma-ced">C.I.: <?= fld($d['tutor_cedula']) ?></div>
    </div>
    <div class="firma">
      <div class="firma-line"></div>
      <div class="firma-name"><?= fld($d['director_nombre']) ?></div>
      <div class="firma-rol">DIRECTOR</div>
      <div class="firma-ced">C.I.: <?= fld($d['director_cedula']) ?></div>
    </div>
    <div class="firma">
      <div class="firma-line"></div>
      <div class="firma-name"><?= fld($d['lector_nombre']) ?></div>
      <div class="firma-rol">LECTOR</div>
      <div class="firma-ced">C.I.: <?= fld($d['lector_cedula']) ?></div>
    </div>
    <div class="firma">
      <div class="firma-line"></div>
      <div class="firma-name"><?= fld($d['tribunal_nombre']) ?></div>
      <div class="firma-rol">TRIBUNAL (MIEMBRO)</div>
      <div class="firma-ced">C.I.: <?= fld($d['tribunal_cedula']) ?></div>
    </div>
  </div>

  <!-- 4. Secretaría -->
  <div style="margin-top:28px;display:flex;justify-content:center;">
    <div class="firma" style="min-width:200px;">
      <div class="firma-line"></div>
      <div class="firma-name">SECRETARÍA ACADÉMICA</div>
      <div class="firma-rol">INSTITUTO SUPERIOR TECNOLÓGICO TECNÓPOLIS</div>
      <div class="firma-ced">Sello institucional</div>
    </div>
  </div>

</div>
</body>
</html>