Error al Inscribir a Propuesta desde Preinscripción

Buenos días. Tenemos el siguiente problema: Cuando se inscribe a Propuesta desde Preinscripción, al momento de apretar el botón Procesar Inscripción para inscribir a propuesta un alumno, sale un cartel con el siguiente error: “Ha ocurrido un error en la base de datos”. Nuestra versión del SIU es la 3.20, y no hemos tocado el código. Al parecer es un problema de como se hace la operación en SQL. ¿Alguno tuvo una experiencia similar o como se podría reparar el error? Comparto el error como aparece en el log del toba:

Inscribir a Propuesta desde Preinscripción
Hoy 08:38:03
Ver Encabezados

Mostrar mensajes

Todos
SQLSTATE[42601]: Syntax error: 7 ERROR: error de sintaxis en o cerca de «f241bc8bf3994c0b713b7d2de53b5539d5306»
LINE 2: SET usuario = ‘46285587’, clave = 058f241bc8bf3994c0…
^
toba_error_db: <p><b>SQLSTATE:</b> db_42601</p><p><b>CODIGO:</b> 7</p><p><b>MENSAJE:</b> ERROR: error de sintaxis en o cerca de «f241bc8bf3994c0b713b7d2de53b5539d5306» LINE 2: SET usuario = '46285587', clave = 058f241bc8bf3994c0… ^</p><p><b>SQL:</b> UPDATE mdp_personas SET usuario = '46285587', clave = 058f241bc8bf3994c0b713b7d2de53b5539d5306 WHERE persona = '961'; – toba_log: 738058788 </p> [TRAZA]
toba_db->ejecutar
Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/lib/db/toba_db.php, lInea 401

guarani_db_nucleo::ejecutar 

Archivo: /usr/local/proyectos/guarani/php/nucleo/matriculas/personas/act_personas_nucleo.php, lInea 289

act_personas_nucleo-&gt;actualizar_user_pass 

Archivo: /usr/local/proyectos/guarani/php/nucleo/matriculas/inscripciones/propuestas_preinscripcion/preinscripcion_nucleo.php, lInea 339

preinscripcion_nucleo::actualizar_usuario_contrasenia 

Archivo: /usr/local/proyectos/guarani/php/nucleo/matriculas/inscripciones/propuestas_preinscripcion/preinscripcion_nucleo.php, lInea 280

preinscripcion_nucleo::importar_persona 

Archivo: /usr/local/proyectos/guarani/php/nucleo/matriculas/inscripciones/propuestas_preinscripcion/preinscripcion_nucleo.php, lInea 267

preinscripcion_nucleo::procesar_persona 

Archivo: /usr/local/proyectos/guarani/php/nucleo/matriculas/inscripciones/propuestas_preinscripcion/cn_man_insc_prop_preinscripcion.php, lInea 344

cn_man_insc_prop_preinscripcion-&gt;procesar_persona 

Archivo: /usr/local/proyectos/guarani/php/operaciones/matriculas/inscripciones/propuestas_preinscripcion/ci_inscribir_propuesta_preinsc.php, lInea 99

ci_inscribir_propuesta_preinsc-&gt;procesar_desde_preinscripcion 

Archivo: /usr/local/proyectos/guarani/php/operaciones/matriculas/inscripciones/propuestas_preinscripcion/ci_inscribir_propuesta_preinsc.php, lInea 366

ci_inscribir_propuesta_preinsc-&gt;evt__procesar_insc 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/componentes/interface/toba_ci.php, lInea 282

toba_ci-&gt;disparar_evento_propio 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/componentes/interface/toba_ci.php, lInea 204

toba_ci-&gt;disparar_eventos 

Archivo: /usr/local/proyectos/guarani/php/extension_toba/componentes/interface/guarani_ci.php, lInea 28

guarani_ci-&gt;disparar_eventos 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 135

toba_solicitud_web-&gt;procesar_eventos 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 55

toba_solicitud_web-&gt;procesar 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_nucleo.php, lInea 96

toba_nucleo-&gt;acceso_web 

Archivo: /usr/local/proyectos/guarani/www/aplicacion.php, lInea 33

Hola Juan, buenos días!
Observamos que existe un error de sintáxis en el campo clave, el mismo se lo interpreta como un entero cuando debería ser tomado como un string.
Le hago unas consultas: ¿en qué versión de tercer dígito se encuentran para los módulos de Gestión y Preinscripción? ¿tienen realizada alguna personalización sobre la operación?

Saludos!

Buenos días Ariana! Tengo entendido que no hubo ninguna personalización del sistema, o al menos no me han avisando de ello (recién me incorporó en la gestión del SIU). Es raro lo que sucedió teniendo en cuenta eso. Brindo la solución que fue en línea con lo que comentás, el campo clave no lo interpretaba como string, para eso tuvimos que modificar el código php para que a la operación UPDATE del sql el campo clave que entre comillas. Comparto el código que solucionó el error, indicando cual fue la línea que tuvimos que agregar, en el archivo que pinchaba, que era el /usr/local/proyectos/guarani/php/nucleo/matriculas/personas/act_personas_nucleo.php

Código con la solución:

function actualizar_user_pass($persona, $user, $pass)
{
if (usuario::validar_id_usuario_permitido($user)) {
$persona = toba::db()->quote($persona);
$user = toba::db()->quote($user);
$pass = toba::db()->quote($pass); // Agregamos esta línea para poner entre comillas el valor de pass

    $sql = "UPDATE mdp_personas
            SET usuario = $user, clave = $pass
            WHERE persona = $persona";

    guarani_db::ejecutar($sql);
    toba::logger()->info('************ Se actualizó usuario y contraseña con éxito. ************');
}

}

Muchas gracias por la respuesta!!!
Juan Manuel