<?php
// modules/facturacion/pagos_titulacion.php
require_once __DIR__ . '/../../config/app.php';
require_once __DIR__ . '/../../includes/auth.php';
require_once __DIR__ . '/../../includes/functions.php';
require_once __DIR__ . '/../../includes/flash.php';
requireRol(ROL_FACTURACION);
$idInst = instId();

$user = currentUser();
$db   = getDB();
$pageTitle = 'Pagos de Titulación';

// ── Filtros ──
$filtroEstado = $_GET['estado'] ?? 'enviada';
$busqueda     = trim($_GET['q'] ?? '');
$idDetalle    = (int)($_GET['id'] ?? 0);

// ── POST: Aprobar o rechazar ──
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $accion      = $_POST['accion'] ?? '';
    $idTit       = (int)($_POST['id_titulacion'] ?? 0);
    $observacion = trim($_POST['observaciones'] ?? '');

    if ($idTit && in_array($accion, ['aprobar','rechazar'])) {
        $nuevoEstado = $accion === 'aprobar' ? 'aprobado' : 'rechazado';
        $db->prepare("
            UPDATE titulaciones
            SET estado=:e, observaciones=:o, updated_at=NOW()
            WHERE id_titulacion=:id AND estado='enviada'
        ")->execute([':e'=>$nuevoEstado, ':o'=>$observacion, ':id'=>$idTit]);

        // Al aprobar Examen Complexivo: activar PDF de preguntas de la carrera
        if ($accion === 'aprobar') {
            $stInfo = $db->prepare("
                SELECT t.modalidad, e.id_carrera
                FROM titulaciones t
                JOIN estudiantes e ON e.id_estudiante = t.id_estudiante
                WHERE t.id_titulacion = :id
            ");
            $stInfo->execute([':id' => $idTit]);
            $infoTit = $stInfo->fetch();
            if ($infoTit && $infoTit['modalidad'] === 'examen_complexivo' && $infoTit['id_carrera']) {
                $db->prepare("
                    UPDATE preguntas_complexivo
                    SET activo = 1, updated_at = NOW()
                    WHERE id_carrera = :c
                ")->execute([':c' => $infoTit['id_carrera']]);
            }
        }

        $msg = $accion === 'aprobar'
            ? 'Pago validado correctamente. La Coordinadora puede ahora aprobar la solicitud.'
            : 'Solicitud rechazada. El estudiante será notificado para corregir.';
        flashSet('ok', $msg);
        header('Location: pagos_titulacion.php'); exit;
    }
}

// ── Detalle de una solicitud ──
$detalle = null;
if ($idDetalle) {
    $st = $db->prepare("
        SELECT t.*,
               CONCAT(u.nombres,' ',u.apellidos) AS estudiante_nombre,
               u.email, u.cedula,
               c.nombre AS carrera,
               e.codigo_estudiante
        FROM   titulaciones t
        JOIN   estudiantes e ON e.id_estudiante = t.id_estudiante
        JOIN   usuarios u    ON u.id_usuario    = e.id_usuario
        JOIN   carreras c    ON c.id_carrera    = e.id_carrera
        WHERE  t.id_titulacion = :id
    ");
    $st->execute([':id' => $idDetalle]);
    $detalle = $st->fetch() ?: null;
}

// ── Lista de solicitudes ──
$where  = 'WHERE 1=1';
$params = [];
if ($filtroEstado !== 'todos') {
    $where .= ' AND t.estado = :est';
    $params[':est'] = $filtroEstado;
}
if ($busqueda) {
    $where .= ' AND (u.nombres LIKE :q OR u.apellidos LIKE :q OR u.cedula LIKE :q OR c.nombre LIKE :q)';
    $params[':q'] = '%'.$busqueda.'%';
}

$solicitudes = $db->prepare("
    SELECT t.*,
           CONCAT(u.nombres,' ',u.apellidos) AS estudiante_nombre,
           u.email, u.cedula,
           c.nombre AS carrera,
           e.codigo_estudiante
    FROM   titulaciones t
    JOIN   estudiantes e ON e.id_estudiante = t.id_estudiante
    JOIN   usuarios u    ON u.id_usuario    = e.id_usuario
    JOIN   carreras c    ON c.id_carrera    = e.id_carrera
    $where
    ORDER  BY
      FIELD(t.estado,'enviada','rechazado','pendiente','aprobado'),
      t.fecha_envio ASC
");
$solicitudes->execute($params);
$solicitudes = $solicitudes->fetchAll();

// ── Conteos para tabs ──
$conteos = $db->query("
    SELECT estado, COUNT(*) AS n FROM titulaciones GROUP BY estado
")->fetchAll(PDO::FETCH_KEY_PAIR);

$estadoLabel = [
    'pendiente' => ['txt'=>'Pendiente de envío', 'bg'=>'#fffbeb','color'=>'#92400e','border'=>'#fcd34d'],
    'enviada'   => ['txt'=>'Esperando validación','bg'=>'#eff6ff','color'=>'#1e40af','border'=>'#93c5fd'],
    'aprobado'  => ['txt'=>'Pago validado',       'bg'=>'#f0fdf4','color'=>'#065f46','border'=>'#86efac'],
    'rechazado' => ['txt'=>'Rechazado',            'bg'=>'#fef2f2','color'=>'#991b1b','border'=>'#fca5a5'],
];
?>
<!DOCTYPE html>
<html lang="es">
<head>
<?php include __DIR__ . '/../../includes/head.php'; ?>
<link rel="stylesheet" href="<?= BASE_URL ?>/assets/css/sidebar-facturacion.css">
<style>
.sec { background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:1.4rem 1.5rem; box-shadow:0 1px 4px rgba(0,0,0,.04); }
.est-badge { display:inline-flex; align-items:center; gap:5px; padding:3px 11px; border-radius:999px; font-size:11px; font-weight:600; }
.tab-btn { background:none; border:none; padding:8px 16px; font-size:13px; font-weight:500; color:#64748b; border-bottom:2px solid transparent; cursor:pointer; transition:all .15s; }
.tab-btn.active { color:#059669; border-bottom-color:#059669; font-weight:700; }
.tab-btn:hover:not(.active) { color:#0f172a; }
.comp-thumb { width:56px; height:56px; border-radius:8px; object-fit:cover; border:1px solid #e2e8f0; }
.comp-pdf { width:56px; height:56px; border-radius:8px; background:#fef2f2; display:flex; align-items:center; justify-content:center; border:1px solid #fecaca; }
.action-card { background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:1rem 1.25rem; }
</style>
</head>
<body>
<?php include __DIR__ . '/../../includes/navbar.php'; ?>
<div class="app-shell">

  <!-- SIDEBAR -->
  <?php $sbActivo = 'pagos'; include __DIR__ . '/../../includes/sidebar_facturacion.php'; ?>

  <!-- MAIN -->
  <main class="main-area">
    <?= flashHtml() ?>

    <div class="page-header d-flex justify-content-between align-items-center flex-wrap gap-2">
      <div>
        <h4 style="color:#0f172a;"><i class="fa fa-money-check-dollar me-2" style="color:#059669;"></i>Pagos de Titulación</h4>
        <p style="color:#64748b;">Validación de comprobantes de pago $2,00 · UIC Ciclo I 2026</p>
      </div>
    </div>

    <!-- ══ VISTA DETALLE ══ -->
    <?php if ($detalle): ?>

      <a href="pagos_titulacion.php" class="btn btn-outline-secondary btn-sm mb-3">
        <i class="fa fa-arrow-left me-1"></i>Volver a la lista
      </a>

      <div class="row g-3">
        <!-- Info estudiante -->
        <div class="col-md-7">
          <div class="sec mb-3">
            <p style="font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#94a3b8;margin-bottom:8px;">Datos del estudiante</p>
            <div style="font-size:1.1rem;font-weight:700;color:#0f172a;margin-bottom:2px;"><?= htmlspecialchars($detalle['estudiante_nombre']) ?></div>
            <div style="font-size:12px;color:#64748b;margin-bottom:12px;">
              <?= htmlspecialchars($detalle['carrera']) ?>
              <?php if ($detalle['codigo_estudiante']): ?>
                &nbsp;·&nbsp; <span style="font-family:monospace;"><?= htmlspecialchars($detalle['codigo_estudiante']) ?></span>
              <?php endif; ?>
            </div>
            <div class="row g-2" style="font-size:12px;">
              <div class="col-sm-6">
                <div style="color:#94a3b8;margin-bottom:2px;">Cédula</div>
                <div style="font-weight:600;color:#0f172a;"><?= htmlspecialchars($detalle['cedula'] ?? '—') ?></div>
              </div>
              <div class="col-sm-6">
                <div style="color:#94a3b8;margin-bottom:2px;">Correo</div>
                <div style="font-weight:600;color:#0f172a;"><?= htmlspecialchars($detalle['email'] ?? '—') ?></div>
              </div>
              <div class="col-sm-6 mt-2">
                <div style="color:#94a3b8;margin-bottom:2px;">Modalidad elegida</div>
                <div style="font-weight:600;color:#0f172a;">
                  <?= $detalle['modalidad'] === 'examen_complexivo'
                      ? '<i class="fa fa-file-pen me-1" style="color:#2563eb;"></i>Examen Complexivo'
                      : '<i class="fa fa-microscope me-1" style="color:#059669;"></i>Trabajo de Investigación' ?>
                </div>
              </div>
              <?php if (!empty($detalle['tema'])): ?>
              <div class="col-12 mt-2">
                <div style="color:#94a3b8;margin-bottom:2px;">Tema propuesto</div>
                <div style="font-weight:500;color:#0f172a;"><?= htmlspecialchars($detalle['tema']) ?></div>
              </div>
              <?php endif; ?>
              <div class="col-sm-6 mt-2">
                <div style="color:#94a3b8;margin-bottom:2px;">Fecha de envío</div>
                <div style="font-weight:600;color:#0f172a;">
                  <?= $detalle['fecha_envio'] ? date('d/m/Y H:i', strtotime($detalle['fecha_envio'])) : '—' ?>
                </div>
              </div>
              <div class="col-sm-6 mt-2">
                <div style="color:#94a3b8;margin-bottom:2px;">Estado actual</div>
                <?php $e = $estadoLabel[$detalle['estado']] ?? $estadoLabel['pendiente']; ?>
                <span class="est-badge" style="background:<?= $e['bg'] ?>;color:<?= $e['color'] ?>;border:1px solid <?= $e['border'] ?>;">
                  <?= $e['txt'] ?>
                </span>
              </div>
            </div>
          </div>

          <!-- Comprobante -->
          <div class="sec">
            <p style="font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#94a3b8;margin-bottom:12px;">
              Comprobante de pago ($2,00)
            </p>
            <?php if (!empty($detalle['comprobante_pago'])): ?>
              <?php
              $ext  = strtolower(pathinfo($detalle['comprobante_pago'], PATHINFO_EXTENSION));
              $url  = BASE_URL . '/assets/uploads/titulacion/' . rawurlencode($detalle['comprobante_pago']);
              ?>
              <div style="display:flex;align-items:center;gap:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 16px;margin-bottom:12px;">
                <?php if (in_array($ext, ['jpg','jpeg','png'])): ?>
                  <img src="<?= $url ?>" alt="Comprobante" class="comp-thumb">
                <?php else: ?>
                  <div class="comp-pdf"><i class="fa fa-file-pdf" style="font-size:22px;color:#dc2626;"></i></div>
                <?php endif; ?>
                <div>
                  <div style="font-weight:600;color:#0f172a;font-size:.9rem;"><?= htmlspecialchars($detalle['comprobante_pago']) ?></div>
                  <div style="font-size:12px;color:#64748b;margin-top:2px;">Archivo adjunto por el estudiante</div>
                  <a href="<?= $url ?>" target="_blank" class="btn btn-sm btn-outline-secondary mt-2" style="font-size:11px;">
                    <i class="fa fa-eye me-1"></i>Ver comprobante completo
                  </a>
                </div>
              </div>
            <?php else: ?>
              <div style="background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:12px 16px;color:#991b1b;font-size:13px;">
                <i class="fa fa-triangle-exclamation me-2"></i>No se adjuntó comprobante.
              </div>
            <?php endif; ?>
          </div>
        </div>

        <!-- Panel de acción -->
        <div class="col-md-5">
          <?php if ($detalle['estado'] === 'enviada'): ?>
          <div class="sec">
            <p style="font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#94a3b8;margin-bottom:14px;">
              Acción de validación
            </p>

            <!-- APROBAR -->
            <div class="action-card mb-3" style="border-color:#bbf7d0;background:#f0fdf4;">
              <div style="font-weight:700;color:#065f46;margin-bottom:8px;">
                <i class="fa fa-circle-check me-2"></i>Validar pago
              </div>
              <p style="font-size:12px;color:#059669;margin-bottom:12px;">
                El pago de $2,00 fue recibido correctamente. La solicitud pasará a la Coordinadora.
              </p>
              <form method="POST">
                <input type="hidden" name="accion" value="aprobar">
                <input type="hidden" name="id_titulacion" value="<?= $detalle['id_titulacion'] ?>">
                <input type="text" name="observaciones" class="form-control form-control-sm mb-2"
                       placeholder="Observación opcional (ej: N° recibo 0045)..."
                       style="font-size:12px;">
                <button type="submit" class="btn btn-success w-100"
                        onclick="return confirm('¿Confirmas que el pago de $2,00 fue recibido correctamente?')">
                  <i class="fa fa-check me-2"></i>Aprobar y pasar a Coordinadora
                </button>
              </form>
            </div>

            <!-- RECHAZAR -->
            <div class="action-card" style="border-color:#fecaca;background:#fef2f2;">
              <div style="font-weight:700;color:#991b1b;margin-bottom:8px;">
                <i class="fa fa-circle-xmark me-2"></i>Rechazar
              </div>
              <p style="font-size:12px;color:#dc2626;margin-bottom:12px;">
                El comprobante no es válido o el monto no corresponde.
              </p>
              <form method="POST">
                <input type="hidden" name="accion" value="rechazar">
                <input type="hidden" name="id_titulacion" value="<?= $detalle['id_titulacion'] ?>">
                <textarea name="observaciones" class="form-control form-control-sm mb-2" rows="2"
                          placeholder="Motivo del rechazo (obligatorio)..."
                          style="font-size:12px;" required></textarea>
                <button type="submit" class="btn btn-danger w-100"
                        onclick="return confirm('¿Seguro que deseas rechazar esta solicitud?')">
                  <i class="fa fa-xmark me-2"></i>Rechazar solicitud
                </button>
              </form>
            </div>
          </div>

          <?php else: ?>
          <div class="sec">
            <?php $e = $estadoLabel[$detalle['estado']] ?? $estadoLabel['pendiente']; ?>
            <div style="background:<?= $e['bg'] ?>;border:1px solid <?= $e['border'] ?>;border-radius:10px;padding:1rem 1.25rem;">
              <div style="font-weight:700;color:<?= $e['color'] ?>;margin-bottom:4px;">
                <?= $e['txt'] ?>
              </div>
              <?php if (!empty($detalle['observaciones'])): ?>
                <div style="font-size:12px;color:<?= $e['color'] ?>;margin-top:4px;">
                  Nota: <?= htmlspecialchars($detalle['observaciones']) ?>
                </div>
              <?php endif; ?>
            </div>
            <?php if ($detalle['estado'] === 'aprobado'): ?>
              <div style="font-size:12px;color:#64748b;margin-top:12px;text-align:center;">
                <i class="fa fa-clock me-1"></i>
                Procesado el <?= date('d/m/Y H:i', strtotime($detalle['updated_at'])) ?>
              </div>
            <?php endif; ?>
          </div>
          <?php endif; ?>
        </div>
      </div>

    <?php else: ?>
    <!-- ══ VISTA LISTA ══ -->

      <!-- Buscador -->
      <form method="GET" class="d-flex gap-2 mb-3">
        <input type="hidden" name="estado" value="<?= htmlspecialchars($filtroEstado) ?>">
        <input type="text" name="q" class="form-control" placeholder="Buscar por nombre, cédula o carrera..."
               value="<?= htmlspecialchars($busqueda) ?>" style="max-width:320px;">
        <button type="submit" class="btn btn-outline-secondary"><i class="fa fa-search"></i></button>
        <?php if ($busqueda): ?>
          <a href="pagos_titulacion.php?estado=<?= $filtroEstado ?>" class="btn btn-outline-secondary">
            <i class="fa fa-xmark"></i>
          </a>
        <?php endif; ?>
      </form>

      <!-- Tabs por estado -->
      <div style="border-bottom:1px solid #e2e8f0;margin-bottom:1rem;">
        <?php foreach (['enviada'=>'⏳ Pendientes','aprobado'=>'✅ Aprobados','rechazado'=>'❌ Rechazados','todos'=>'📋 Todos'] as $k=>$v): ?>
          <a href="?estado=<?= $k ?>" class="tab-btn <?= $filtroEstado===$k?'active':'' ?>">
            <?= $v ?>
            <?php if ($k !== 'todos' && !empty($conteos[$k])): ?>
              <span style="background:<?= $k==='enviada'?'#dc2626':($k==='aprobado'?'#059669':'#64748b') ?>;color:#fff;border-radius:999px;padding:1px 7px;font-size:10px;margin-left:4px;">
                <?= $conteos[$k] ?>
              </span>
            <?php endif; ?>
          </a>
        <?php endforeach; ?>
      </div>

      <!-- Tabla -->
      <?php if (empty($solicitudes)): ?>
        <div style="text-align:center;padding:3rem;color:#94a3b8;">
          <i class="fa fa-inbox" style="font-size:2.5rem;margin-bottom:.75rem;display:block;"></i>
          No hay solicitudes <?= $filtroEstado !== 'todos' ? 'con estado "'.htmlspecialchars($filtroEstado).'"' : '' ?>.
        </div>
      <?php else: ?>
        <div class="tbl-wrap">
          <table class="table table-borderless mb-0" style="color:#0f172a;">
            <thead style="background:#f8fafc;">
              <tr>
                <th style="font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:#94a3b8;padding:10px 16px;">Estudiante</th>
                <th style="font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:#94a3b8;padding:10px 16px;">Modalidad</th>
                <th style="font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:#94a3b8;padding:10px 16px;">Comprobante</th>
                <th style="font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:#94a3b8;padding:10px 16px;">Fecha envío</th>
                <th style="font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:#94a3b8;padding:10px 16px;">Estado</th>
                <th style="font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:#94a3b8;padding:10px 16px;">Acción</th>
              </tr>
            </thead>
            <tbody>
              <?php foreach ($solicitudes as $s):
                $e = $estadoLabel[$s['estado']] ?? $estadoLabel['pendiente'];
              ?>
              <tr style="border-bottom:1px solid #f1f5f9;">
                <td style="padding:12px 16px;">
                  <div style="font-weight:600;"><?= htmlspecialchars($s['estudiante_nombre']) ?></div>
                  <div style="font-size:11px;color:#64748b;"><?= htmlspecialchars($s['carrera']) ?></div>
                </td>
                <td style="padding:12px 16px;font-size:12px;">
                  <?= $s['modalidad'] === 'examen_complexivo'
                      ? '<i class="fa fa-file-pen me-1" style="color:#2563eb;"></i>Examen Complexivo'
                      : '<i class="fa fa-microscope me-1" style="color:#059669;"></i>Investigación' ?>
                </td>
                <td style="padding:12px 16px;font-size:12px;">
                  <?php if (!empty($s['comprobante_pago'])): ?>
                    <span style="color:#059669;"><i class="fa fa-paperclip me-1"></i>Adjunto</span>
                  <?php else: ?>
                    <span style="color:#dc2626;"><i class="fa fa-xmark me-1"></i>Sin adjunto</span>
                  <?php endif; ?>
                </td>
                <td style="padding:12px 16px;font-size:12px;color:#64748b;">
                  <?= $s['fecha_envio'] ? date('d/m/Y H:i', strtotime($s['fecha_envio'])) : '—' ?>
                </td>
                <td style="padding:12px 16px;">
                  <span class="est-badge" style="background:<?= $e['bg'] ?>;color:<?= $e['color'] ?>;border:1px solid <?= $e['border'] ?>;">
                    <?= $e['txt'] ?>
                  </span>
                </td>
                <td style="padding:12px 16px;">
                  <a href="?id=<?= $s['id_titulacion'] ?>" class="btn btn-sm <?= $s['estado']==='enviada' ? 'btn-primary' : 'btn-outline-secondary' ?>">
                    <i class="fa fa-<?= $s['estado']==='enviada' ? 'eye' : 'eye' ?> me-1"></i>
                    <?= $s['estado']==='enviada' ? 'Revisar' : 'Ver' ?>
                  </a>
                </td>
              </tr>
              <?php endforeach; ?>
            </tbody>
          </table>
        </div>
      <?php endif; ?>
    <?php endif; ?>

  </main>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/js/bootstrap.bundle.min.js"></script>
<script>var BASE_URL = '<?= BASE_URL ?>';</script>
<script src="<?= BASE_URL ?>/assets/js/sigvp.js"></script>
</body>
</html>