🔍 Diagnóstico de Templates"; try { $conn = getConnection(); echo "✅ Conexión a base de datos: OK

"; // 1. Verificar si existe la tabla echo "

1. Verificando tabla templates_rapidos:

"; $sql_check = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'templates_rapidos'"; $stmt = sqlsrv_query($conn, $sql_check); if ($stmt && sqlsrv_fetch_array($stmt)) { echo "✅ La tabla templates_rapidos existe

"; // 2. Verificar estructura de la tabla echo "

2. Estructura de la tabla:

"; $sql_columns = "SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'templates_rapidos' ORDER BY ORDINAL_POSITION"; $stmt_cols = sqlsrv_query($conn, $sql_columns); echo ""; echo ""; $columnas_encontradas = []; while ($col = sqlsrv_fetch_array($stmt_cols, SQLSRV_FETCH_ASSOC)) { $columnas_encontradas[] = $col['COLUMN_NAME']; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
ColumnaTipoNullable
" . $col['COLUMN_NAME'] . "" . $col['DATA_TYPE'] . "" . $col['IS_NULLABLE'] . "
"; // 3. Verificar columnas específicas que usa el código echo "

3. Verificando columnas requeridas:

"; $columnas_requeridas = ['id', 'nombre', 'descripcion', 'icono', 'config_json', 'veces_usado', 'activo', 'id_usuario_creador', 'id_agencia']; foreach ($columnas_requeridas as $col) { if (in_array($col, $columnas_encontradas)) { echo "✅ Columna $col: Existe
"; } else { echo "❌ Columna $col: NO EXISTE
"; } } echo "
"; // 4. Contar registros echo "

4. Contando registros:

"; $sql_count = "SELECT COUNT(*) as total FROM dbo.templates_rapidos"; $stmt_count = sqlsrv_query($conn, $sql_count); if ($stmt_count && $row = sqlsrv_fetch_array($stmt_count, SQLSRV_FETCH_ASSOC)) { echo "📊 Total de registros en la tabla: " . $row['total'] . "
"; // 4.1 Contar activos $sql_active = "SELECT COUNT(*) as activos FROM dbo.templates_rapidos WHERE activo = 1"; $stmt_active = sqlsrv_query($conn, $sql_active); if ($stmt_active && $row_active = sqlsrv_fetch_array($stmt_active, SQLSRV_FETCH_ASSOC)) { echo "✅ Registros activos: " . $row_active['activos'] . "
"; } } echo "
"; // 5. Probar la consulta exacta del controlador echo "

5. Probando consulta del controlador:

"; $id_usuario = $_SESSION['usuario_id']; $id_agencia = $_SESSION['id_agencia_en_uso']; echo "👤 ID Usuario: $id_usuario
"; echo "🏢 ID Agencia: $id_agencia

"; $sql_controller = "SELECT id, nombre, descripcion, icono, config_json, veces_usado FROM dbo.templates_rapidos WHERE activo = 1 AND (id_agencia IS NULL OR id_agencia = ? OR id_usuario_creador = ?) ORDER BY veces_usado DESC, nombre ASC"; echo "SQL:
"; echo "" . str_replace('?', "'$id_agencia', '$id_usuario'", $sql_controller) . "

"; $stmt_test = sqlsrv_query($conn, $sql_controller, [$id_agencia, $id_usuario]); if ($stmt_test === false) { echo "❌ Error en la consulta:
"; $errors = sqlsrv_errors(); foreach ($errors as $error) { echo "- " . $error['message'] . "
"; } } else { $templates = []; $count = 0; while ($row = sqlsrv_fetch_array($stmt_test, SQLSRV_FETCH_ASSOC)) { $count++; $templates[] = $row; if ($count <= 3) { // Mostrar solo los primeros 3 para no saturar echo "📋 Template $count: " . htmlspecialchars($row['nombre']) . "
"; } } echo "
Consulta exitosa. Total encontrados: $count templates
"; if ($count === 0) { echo "
⚠️ No se encontraron templates. Posibles causas:
"; echo "1. No hay templates creados
"; echo "2. Todos los templates están inactivos (activo = 0)
"; echo "3. Los templates no pertenecen a tu usuario/agencia
"; } } // 6. Mostrar algunos registros de ejemplo echo "

6. Registros de muestra (últimos 5):

"; $sql_sample = "SELECT TOP 5 id, nombre, activo, id_usuario_creador, id_agencia FROM dbo.templates_rapidos ORDER BY id DESC"; $stmt_sample = sqlsrv_query($conn, $sql_sample); if ($stmt_sample) { echo ""; echo ""; while ($sample = sqlsrv_fetch_array($stmt_sample, SQLSRV_FETCH_ASSOC)) { echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
IDNombreActivoUsuarioAgencia
" . $sample['id'] . "" . htmlspecialchars($sample['nombre']) . "" . ($sample['activo'] ? '✅' : '❌') . "" . ($sample['id_usuario_creador'] ?? 'NULL') . "" . ($sample['id_agencia'] ?? 'NULL') . "
"; } } else { echo "❌ La tabla templates_rapidos NO EXISTE
"; echo "🔧 Necesitas crear la tabla primero."; } } catch (Exception $e) { echo "❌ Error: " . $e->getMessage(); } ?>