<?php
$pageTitle = 'Exámenes';
require_once __DIR__ . '/../../config/config.php';
requireLogin();

$db = getDB();

// ===== Procesar eliminación =====
if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'delete_examen') {
    $examId = intval($_POST['examen_id'] ?? 0);
    if ($examId > 0) {
        try {
            // Verificar si el examen está usado en órdenes
            $stmtCheck = $db->prepare("SELECT COUNT(*) FROM orden_detalle WHERE examen_id = ?");
            $stmtCheck->execute([$examId]);
            $enOrdenes = $stmtCheck->fetchColumn();

            if ($enOrdenes > 0) {
                // Tiene órdenes asociadas: solo desactivar
                $stmtDes = $db->prepare("UPDATE examenes SET activo = 0 WHERE id = ?");
                $stmtDes->execute([$examId]);
                showAlert("El examen tiene $enOrdenes orden(es) asociada(s) y no se puede eliminar. Se ha desactivado en su lugar.", 'warning');
            } else {
                // Sin órdenes: eliminar (CASCADE borra parámetros, rangos, insumos, perfiles)
                $stmtDel = $db->prepare("DELETE FROM examenes WHERE id = ?");
                $stmtDel->execute([$examId]);
                showAlert('Examen eliminado junto con sus parámetros y rangos.');
            }
        } catch (PDOException $e) {
            showAlert('Error al eliminar: ' . $e->getMessage(), 'danger');
        }
    }
    header('Location: list.php');
    exit;
}

$stmt = $db->query("
    SELECT e.*, c.nombre as categoria_nombre,
           (SELECT COUNT(*) FROM parametros_examen WHERE examen_id = e.id) as num_parametros
    FROM examenes e 
    LEFT JOIN categorias_examenes c ON e.categoria_id = c.id 
    ORDER BY c.nombre, e.nombre
");
$examenes = $stmt->fetchAll();

require_once __DIR__ . '/../../includes/header.php';
?>

<div class="d-flex justify-content-between align-items-center mt-4 mb-4">
    <h2><i class="bi bi-droplet"></i> Catálogo de Exámenes</h2>
    <div>
        <a href="precios.php" class="btn btn-outline-warning">
            <i class="bi bi-tags"></i> Precios
        </a>
        <a href="perfiles.php" class="btn btn-outline-success">
            <i class="bi bi-collection"></i> Perfiles
        </a>
        <a href="categorias.php" class="btn btn-outline-secondary">
            <i class="bi bi-folder"></i> Categorías
        </a>
        <a href="create.php" class="btn btn-primary">
            <i class="bi bi-plus"></i> Nuevo Examen
        </a>
    </div>
</div>

<div class="card">
    <div class="card-body">
        <table class="table table-hover datatable">
            <thead>
                <tr>
                    <th>Código</th>
                    <th>Nombre</th>
                    <th>Categoría</th>
                    <th>Precio</th>
                    <th>Parámetros</th>
                    <th>Estado</th>
                    <th>Acciones</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($examenes as $examen): ?>
                <tr>
                    <td><strong><?= $examen['codigo'] ?></strong></td>
                    <td>
                        <?= $examen['nombre'] ?>
                        <?php if ($examen['requiere_ayuno']): ?>
                        <span class="badge bg-warning text-dark">Ayuno</span>
                        <?php endif; ?>
                    </td>
                    <td><?= $examen['categoria_nombre'] ?: '-' ?></td>
                    <td><?= formatMoney($examen['precio']) ?></td>
                    <td><span class="badge bg-secondary"><?= $examen['num_parametros'] ?></span></td>
                    <td>
                        <?php if ($examen['activo']): ?>
                        <span class="badge bg-success">Activo</span>
                        <?php else: ?>
                        <span class="badge bg-danger">Inactivo</span>
                        <?php endif; ?>
                    </td>
                    <td class="text-nowrap">
                        <a href="edit.php?id=<?= $examen['id'] ?>" class="btn btn-sm btn-outline-primary" title="Editar">
                            <i class="bi bi-pencil"></i>
                        </a>
                        <a href="parametros.php?id=<?= $examen['id'] ?>" class="btn btn-sm btn-outline-info" title="Parámetros y Rangos">
                            <i class="bi bi-sliders"></i>
                        </a>
                        <a href="<?= SITE_URL ?>/modules/inventario/insumos_examen.php?examen_id=<?= $examen['id'] ?>" class="btn btn-sm btn-outline-warning" title="Insumos del Examen">
                            <i class="bi bi-box-seam"></i>
                        </a>
                        <form method="POST" class="d-inline" onsubmit="return confirm('¿Eliminar el examen \'<?= htmlspecialchars(addslashes($examen['nombre'])) ?>\'?\n\nSe eliminarán todos sus parámetros y rangos.\nSi tiene órdenes asociadas, se desactivará en su lugar.')">
                            <input type="hidden" name="action" value="delete_examen">
                            <input type="hidden" name="examen_id" value="<?= $examen['id'] ?>">
                            <button type="submit" class="btn btn-sm btn-outline-danger" title="Eliminar">
                                <i class="bi bi-trash"></i>
                            </button>
                        </form>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    </div>
</div>

<?php require_once __DIR__ . '/../../includes/footer.php'; ?>
