🔍 Debug Simple de Templates"; echo "

Usuario actual: " . $_SESSION['usuario_id'] . "

"; echo "

Agencia actual: " . ($_SESSION['id_agencia_en_uso'] ?? 'NULL') . "

"; try { $conn = getConnection(); // 1. Ver todos los templates sin filtros echo "

1. Todos los templates en la base de datos:

"; $sql = "SELECT id, nombre, descripcion, activo, id_usuario_creador, id_agencia, fecha_creacion, config_json FROM dbo.templates_rapidos ORDER BY fecha_creacion DESC"; $stmt = sqlsrv_query($conn, $sql); if ($stmt === false) { $errors = sqlsrv_errors(); echo "
❌ Error en consulta: " . print_r($errors, true) . "
"; } else { $count = 0; echo ""; echo ""; while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) { $count++; $fecha = $row['fecha_creacion'] instanceof DateTime ? $row['fecha_creacion']->format('Y-m-d H:i:s') : $row['fecha_creacion']; $tieneConfig = !empty($row['config_json']) ? 'Sí' : 'No'; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
ID Nombre Descripción Activo Usuario Creador Agencia Fecha Creación Tiene Config
" . $row['id'] . "" . htmlspecialchars($row['nombre']) . "" . htmlspecialchars($row['descripcion'] ?? '') . "" . ($row['activo'] ? '✅' : '❌') . "" . ($row['id_usuario_creador'] ?? 'NULL') . "" . ($row['id_agencia'] ?? 'NULL') . "" . $fecha . "" . $tieneConfig . "
"; echo "

Total de templates encontrados: $count

"; } // 2. Probar la consulta exacta del endpoint echo "

2. Probando consulta del endpoint (con filtros):

"; $id_usuario = $_SESSION['usuario_id']; $id_agencia = $_SESSION['id_agencia_en_uso']; $sql_endpoint = "SELECT id, nombre, descripcion, icono, config_json, ISNULL(veces_usado, 0) as veces_usado, id_usuario_creador, id_agencia FROM dbo.templates_rapidos WHERE activo = 1 AND (id_usuario_creador = ? OR id_agencia = ? OR id_agencia IS NULL) ORDER BY CASE WHEN id_usuario_creador = ? THEN 0 ELSE 1 END, veces_usado DESC, nombre ASC"; $stmt_endpoint = sqlsrv_query($conn, $sql_endpoint, [$id_usuario, $id_agencia, $id_usuario]); if ($stmt_endpoint === false) { $errors = sqlsrv_errors(); echo "
❌ Error en consulta endpoint: " . print_r($errors, true) . "
"; } else { $count_endpoint = 0; echo ""; echo ""; while ($row = sqlsrv_fetch_array($stmt_endpoint, SQLSRV_FETCH_ASSOC)) { $count_endpoint++; $esMio = ($row['id_usuario_creador'] == $id_usuario) ? 'SÍ' : 'NO'; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
ID Nombre Es Mío Usuario Creador Agencia Debería Aparecer
" . $row['id'] . "" . htmlspecialchars($row['nombre']) . "$esMio" . ($row['id_usuario_creador'] ?? 'NULL') . "" . ($row['id_agencia'] ?? 'NULL') . "✅ SÍ
"; echo "

Templates que deberían aparecer en el formulario: $count_endpoint

"; } // 3. Probar el endpoint AJAX directamente echo "

3. Prueba del endpoint AJAX:

"; echo "

🔗 Abrir endpoint AJAX en nueva pestaña

"; // 4. Verificar la sesión echo "

4. Estado de la sesión:

"; echo "
";
    echo "SESSION:\n";
    foreach ($_SESSION as $key => $value) {
        if (is_string($value) || is_numeric($value)) {
            echo "  $key: $value\n";
        }
    }
    echo "
"; } catch (Exception $e) { echo "
Error: " . $e->getMessage() . "
"; } ?>

5. Prueba AJAX en tiempo real:


💡 Instrucciones:
1. Revisa los templates en la tabla de arriba
2. Verifica que tu usuario_id y agencia_id sean correctos
3. Haz clic en "Probar AJAX ahora" para ver la respuesta en tiempo real
4. Abre la consola del navegador (F12) para ver logs detallados