Estamos teniendo dificultades al momento de valorizar un servicio de posgrado en SQ académico.
Agregamos el certificado y pudimos valorizar la instancia del servicio, pero al inscribir a un alumno a la propuesta el posgrado no aparece en el portal de pagos.
Lo que es Propuestas cobrables ademas de configurar la conexión entre Guaraní y SQ, necesitas configurar Rest-Hooks, Rest-Hooks se encarga de llamar a los Web Sevices de SQ de manera asíncrona encolandolos en una cola de Redis, esto permite que Guaraní pueda realizar la inscripción sin importar si SQ se encuentra corriendo o si esta caído.
Te recomiendo que hagas lo siguiente:
Anda a Guaraní Gestión en la operación “Sincronizar Novedades con SQ”, allí vas a ver si la inscripción quedo sin notificar a SQ. Esto para resolverlo manualmente.
Perdón por la demora. Entiendo que los rest-hooks están configurados correctamente; ya que pudimos realizar la sincronización de varios cursos y propuestas.
Lo que nos está sucediendo es que después de valorizar el curso, no se visualiza el posgrado en el portal de pagos del alumno.
Te voy pedir los logs de Guaraní Autogestión que se generan antes de ir al portal de pagos, los mismos se encuentran en la carpeta instalacion/log.
También revisa en el archivo instalacion/config.php que tengas bien configurada la directiva url_sq_pagos.
También hay un token que se genera en SQ, Guaraní llama al Web Service POST /gco-jwt y le pasa los siguiente datos: tipo_documento y numero_documento. Habría que ver si se genera bien dicho token.
Por lo leido a vos te trae los alumnos que inscribiste a la propuesta de postgrado, en mi caso no, adjunto imagen. Podrias mostrarme la query que trae al entrar a la pantalla al filtrar por inscripciones a propuestas, y además mencionarme que versión de guarani tenes, por favor.
Desde ya gracias!
Algo asi tiene que ser la query, cuando filtras en Sincronizar Novedades con SQ > Inscripciones a propuestas (La query lo podes ver en sistema.log de gestión)
SELECT inscripciones_propuestas.propuesta_aspira,
inscripciones_propuestas.fecha_inscripcion AS fecha,
inscripciones_propuestas.nro_transaccion,
sga_propuestas.propuesta,
sga_propuestas.nombre AS propuesta_nombre,
sga_propuestas.nombre_abreviado AS propuesta_nombre_abreviado,
sga_propuestas.codigo AS propuesta_codigo,
vw_personas.persona,
vw_personas.apellido_nombres AS persona_apellido_nombres,
sga_planes.plan,
sga_planes.nombre AS plan_nombre,
sga_planes.codigo AS plan_codigo,
inscripciones_propuestas.sq_sincronizado AS corte,
CASE inscripciones_propuestas.sq_sincronizado
WHEN '1' THEN 'Alta'
WHEN '3' THEN 'Cambio calidad activo'
WHEN '4' THEN 'Cambio calidad pasivo'
WHEN '5' THEN 'Rechazo'
WHEN '7' THEN 'Revertir rechazo'
END AS corte_nombre
FROM sga_propuestas_aspira AS inscripciones_propuestas
JOIN sga_propuestas ON (inscripciones_propuestas.propuesta = sga_propuestas.propuesta)
JOIN vw_personas ON (inscripciones_propuestas.persona = vw_personas.persona)
JOIN sga_planes_versiones ON (inscripciones_propuestas.plan_version = sga_planes_versiones.plan_version)
JOIN sga_planes ON (sga_planes.plan = sga_planes_versiones.plan)
WHERE sga_propuestas.estado = 'A'
AND sga_planes.estado = 'V'
AND sga_planes.sq_sincronizado = '1'
AND sga_planes.cobrable = 'S'
AND inscripciones_propuestas.sq_sincronizado NOT IN ('0', '6')
UNION
SELECT inscripciones_propuestas.propuesta_aspira,
inscripciones_propuestas.fecha_inscripcion AS fecha,
inscripciones_propuestas.nro_transaccion,
sga_propuestas.propuesta,
sga_propuestas.nombre AS propuesta_nombre,
sga_propuestas.nombre_abreviado AS propuesta_nombre_abreviado,
sga_propuestas.codigo AS propuesta_codigo,
vw_personas.persona,
vw_personas.apellido_nombres AS persona_apellido_nombres,
sga_planes.plan,
sga_planes.nombre AS plan_nombre,
sga_planes.codigo AS plan_codigo,
inscripciones_propuestas.sq_sincronizado AS corte,
'Baja' AS corte_nombre
FROM sga_propuestas_aspira_log AS inscripciones_propuestas
JOIN sga_propuestas ON (inscripciones_propuestas.propuesta = sga_propuestas.propuesta)
JOIN vw_personas ON (inscripciones_propuestas.persona = vw_personas.persona)
JOIN sga_planes_versiones ON (inscripciones_propuestas.plan_version = sga_planes_versiones.plan_version)
JOIN sga_planes ON (sga_planes.plan = sga_planes_versiones.plan)
WHERE sga_propuestas.estado = 'A'
AND sga_planes.estado = 'V'
AND sga_planes.sq_sincronizado = '1'
AND sga_planes.cobrable = 'S'
AND inscripciones_propuestas.sq_sincronizado = '2'
AND inscripciones_propuestas.operacion = 'B'
ORDER BY corte, fecha, persona_apellido_nombres, propuesta_nombre, plan_nombre
Intenté reproducir el error creando una nueva propuesta formativa de posgrado y realizando la inscripción a la misma.
1. La propuesta creada llegó correctamente a SQ Académico.
2. Se valorizó el servicio en SQ. 3. Al realizar la inscripción apareció el error que se muestra en la pantalla adjunta.
También revisa en el archivo instalacion/config.php que tengas bien configurada la directiva url_sq_pagos.
La ruta está bien configurada, adjunto una copia del archivo config.php
También hay un token que se genera en SQ, Guaraní llama al Web Service POST /gco-jwt y le pasa los siguiente datos: tipo_documento y numero_documento. Habría que ver si se genera bien dicho token.
Esto desde dónde podría chequearlo?
Respecto a los rest-hooks de Guaraní, estoy siguiendo el siguiente instructivo: https://gitlab.siu.edu.ar/siu/rest-hooks#requerimientos
y al ejecutar la línea [b]composer require siu/rest-hooks[/b] aparece el siguiente error:
ERROR: Could not find a matching version of package siu/rest-hooks. Check the package spelling, your version constraint and that the package is available in a stability which match
es your minimum-stability (stable).
Configuramos los permisos de los archivos de log y resthook.ini
Con eso funcionó todo.
Lo que me llama la atención y fue el motivo inicial de esta incidencia es que una vez realizada la inscripción a la propuesta, no me apareció la opción manual de SINCRONIZAR que debería aparecer en Guaraní Gestión.
En cuando al paquete siu/rest-hooks, no hace falta hacer composer require siu/rest-hooks, ya esta como dependencia en el archivo /composer.json:
"siu/rest-hooks": "^2.0",
Lo que me llama la atención y fue el motivo inicial de esta incidencia es que una vez realizada la inscripción a la propuesta, no me apareció la opción manual de SINCRONIZAR que debería aparecer en Guaraní Gestión.
Revisando un poco de código lo que veo es que primero intenta “notificar” a SQ usando Rest-Hooks, si falla la notificación vía Rest-Hooks recién ahí te va a aparecer en la operación Sincronizar Novedades con SQ.
La query trae inscripciones a propuestas cobrables con el siguiente filtro:
AND inscripciones_propuestas.sq_sincronizado NOT IN ('0', '6')
Inscripciones que no sean 0 = “Sin sincronizar” o 6 “Ya sincronizadas”.