Inscripción a posgrados

Buenas,

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.

Hola Agustín,

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:

  1. 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.

  2. Configura Rest-Hooks así se notifica todo de forma automática.

saludos.
2

Buenas,

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.

Estuvimos viendo que no tenemos configurado correctamente los RestHooks de la instancia de Guaraní que estamos usando como prueba.

Vamos a revisar eso y volvemos a escribir.

Muchas gracias

Hola Agustín,

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.

saludos.
2

Hola Agustín,

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


Screenshot_2020-11-06 Guarani - Sincronizar Novedades con SQ.png

Screenshot_2020-11-06 Guarani - Sincronizar Novedades con SQ.png

Estimados,

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).

Archive.zip (276 KB)

Buenas,

Pude levantar un redis dockerizado y hacerlo correr.

Pude crear la base e iniciar los workers.

Intenté nuevamente realizar la inscripción a la propuesta pero el error de “No se pudo sincronizar son SQ” persiste.

Estimados,

Finalmente pude lograr resolver el tema.

Les paso el procedimiento por si alguno le sirve:

  1. Levantamos un Redis dockerizado y apuntamos el archivo resthooks.ini a este redis.
  2. Creamos los archivos indicados en el instructivo (https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.16.0/interfaces/rest-hooks).
  3. 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.

Hola, me alegro que lo hayan podido solucionar!!!

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”.

saludos.
2

Ah perfecto.

Eso despeja mis dudas.

Muchas gracias!!