Control de Pagos

Hola a todos,

Estoy tratando de implementar un control de pagos en todas las operaciones relacionadas con inscripción a propuesta, reinscripción a propuesta, inscripción en examen e inscripción a cursada.

Hasta ahora como prueba me creé una regla que a la hora de validar siempre devuelve false (return $this->resultado_final(false);), y seguí los pasos descriptos en https://repositorio.siu.edu.ar/trac/Portal-G3/wiki/NotasTecnicas/requisito_proceso, es decir, que también agregué el requisito de tipo proceso y lo asocié con la acción de cursada en la tabla sga_requisitos_validos… incluso, desde guaraní le asocié varios puntos de control.

Hasta ahora en todas las pruebas realizadas, permite la inscripción sin restricciones.

Traté de administrar requisitos por operación, y requisitos por acción, pero no pude agregar requisitos.

¿Que me estaría faltando para poder controlar este requisito en las operaciones indicadas?

Saludos.

Perdón, me faltó agregar que la versión de Guaraní en la que estoy probando es la 3.9.0 y pruebo desde la interfaz administrativa.

Saludos.

Pudiste verificar si se ejecuta ese control de pagos o nunca se ejecuta?
¿Es decir se ejecuta la regla relacionada con ese control?

Si al requisito que creaste, por ejemplo requisito nro 1002, este lo asociaste a una o mas acciones, por ejemplo la accion “Inscripción a Cursada”, es decir que el control de pagos este disponible en todas las operaciones de esta accion (inscripcion a cursada, inscripcion a cursda fuera de termino, cierre de actas de cursadas, agregar alumno a un acta de cursadas, etc), por lo que decis realizaste el insert en sga_requisitos_validos donde alli especificas la accion y el requisito.

Luego de esto, si vas por sistema y en la operacion de Configurar requisitos por Accion, tenes o no disponible ese requisito para seleccionarlo y activarlo en las operaciones de la accion?

Hola Ale,

La regla nunca se ejecuta. En el caso de prueba que hice, asocié la regla a la acción cursada (accion 1) en la tabla sga_requisitos_validos (con lo cual, sospecho se debería ejectutar en todas las operaciones relacionadas a cursadas).

Cuando voy a configurar requisitos por acción no me aparece ningún requisito para seleccionar.

Saludos.

El requisito lo incluiste en algun punto de control? (Tabla sga_requisitos_x_punto_control). Ademas debe corresponderse los parámetros que tiene ese punto de control con los parámetros de la regla relacionada con el control/requisito.

Ya que si el requisito no esta en ningún punto de control, nunca se ejecutará.

Por ejemplo:

-- Inserta el requisito nro 65 (Actividad Aprobada) en el punto de control Nro 3 (Alumno - Actividad), en el orden 1, es decir que en ese punto de control es el 1er control que se ejecuta.
INSERT INTO sga_requisitos_x_punto_control (pto_control, requisito, orden) VALUES (3, 65, 1);  -- Actividad Aprobada

En el menú de administración de requisitos (no el de requisitos por operación, ni el de acción) pude configurarle el punto de control 4 y 6… y viendo ahora el contenido de esa tabla, la asociación ya estaba hecha.

Le configuré el 4 porque en los logs aparece la siguiente frase cuando se ejecuta la inscripción a cursada “Controles del Punto de control 4 = array ()”…

Saludos.

Ese punto de control tiene que ver cuando el alumno se inscribe como regular, con lo cual solo actua en la inscripcion a cursadas.

Supongo que deberias incluirlo en el punto de control 2 - Alumno Operacion.
Este punto de control tiene los parámetros: alumno y fecha
En este punto de control estan los siguients requisitos:
52 – Sanciones
53 – Alumnos Activo
59 – Alumnos Regular
55 – No Adeudar Cuotas de la Propuesta
60 – Requisitos de Ingreso Obligatorios
64 – Legajo generado

Podrias insertarlo en la posicion 7:
INSERT INTO sga_requisitos_x_punto_control (pto_control, requisito, orden) VALUES (2, , 7); – Control de Pago

La regla deberia tener dos parametros definidos:
– Parámetros de Contexto
INSERT INTO sga_reglas_param_contexto (regla, parametro) VALUES (,‘alumno’);
INSERT INTO sga_reglas_param_contexto (regla, parametro) VALUES (,‘fecha’);

Sacalo del punto de control 4 y proba esto.

Hola Agustín,

Esto está resuelto? Ahora la regla se ejecuta?
Ajusté la documentación agregando la tabla que faltaba completar al momento de crear el requisito: ‘sga_requisitos_x_punto_control’.

Saludos, Florencia.

Agustin, volviendo al tema
Creo te convenia meter el control de pagos en el control ya existente:
55 – No Adeudar Cuotas de la Propuesta

Creo que solo bastaba con programar la regla asociada a ese control, regla nro 305.

Si miras el archivo de esta regla esta vacio, esperandote para que le metas el control correspondiente (y bueno cambiar el nombre del requisito a “Control de Pagos”)


<?php 
class regla_no_adeudar_cuotas_de_propuesta extends regla
{
	function validar()
	{
		$resultado = true;
		
		// -------------------------------------------------
		// Aca va el control de pago de cuotas del alumno
		// -------------------------------------------------

		return $resultado;
	}
}
?>

Hola Ale, ayer no pude ver nada de este tema.

Gracias por mencionar esa regla, voy a probarla antes de seguir con otra cosa.

Otra pregunta relacionada… como puedo hacer para saber que puntos de control podría ejecutar una operación?..

Por ejemplo, después de esto, necesitaría hacer otro requisito de tipo proceso en donde si un alumno se inscribe a cursada asocia automáticamente al mismo a un aula virtual, dependiendo de la comisión en la cual se inscribe… es decir, que necesito el alumno y la comisión como parámetro.

Otro caso sería cuando un alumno se inscribe exitosamente a propuesta (despues del control de pago), yo necesito un requisito de tipo proceso para informar al sistema de pagos que tiene que empezar a devengar cuotas por esa propuesta… es decir que necesito el alumno y la propuesta como parámetro.

En estos dos ejemplos el punto de control 2 no me serviría, ya que sólo me devuelve alumno y fecha.

Habría forma de saber para una operación cuales son los parámetros de los puntos de control que puedo obtener?
Se puede configurar para cada operación que puntos de control revisar, o esta harcodeado en php?

Saludos.

Agustin, esto que mencionas no se desarrollaria a traves de un control, ya que no es solo enviar un mensaje al usuario ante una situacion x, sino que implica registrar algo en la base.

Si te parece carga una solicitud y vemos de guiarte por alli cual seria la mejor opcion de implementar estas dos funcionalidades.

Saludos.