DISTRIBUIR COMISIONES [Solucionado]

Estimados:

Esta vez les escribo para contarles una solucion, no un problema.

Habiamos encontrado que al momento de distribuir comisiones, si la comision de origen y la comision de destino superponian horarios, tiraba el error correspondiente. (osea, no lo permitia porque decia que se superponian los horarios).
El tema que, por lo menos a nosotros, no nos interesa si se superpone el horario de origen y el de destino porque, una vez finalizado el proceso, el alumno no va a estar mas inscripto a esa comision.

Revisando un poco, descubri que la logica estaba en los archivos:
php/nucleo/_lib/reglas/regla_superposicion_horaria_comision.php
y
php/nucleo/ug/espacios/co_bandas_horarias.php

En regla_superposicion_horaria_comision.php hay una funcion “validar” que termina en un bucle preguntando si hay superposicion horaria con el metodo “existe_inscripcion_superpuesta”
Este metodo esta en co_bandas_horarias.php y es basicamente una consulta a la base de datos.

Lo ideal hubiera sido, a esa consulta, pedirle que no tenga en cuenta la comision de origen… pero no tenia de donde sacar el dato.
Como tenemos por regla no permitir dos inscripciones a la misma materia, se me ocurrio pasarle como parametro a ese metodo, la materia y decirle a la query que no tenga en cuenta esos resultados. (el parametro esta puesto como para que si no se pasa, todo funcione igual y tambien tuve que hacer un join [antes y otro despues del union all] con la sga_comisiones para poder relacionarlo con el elemento)
De esta forma no me toma la comision de origen.

Dato no menor, antes no nos funcionaba esta regla (la de no permitir superposiciones horarias) porque en la consulta que se hace en el metodo “get_listado_asignaciones_comision” hace un inner join con “sga_espacios”. Entonces, si la comision no tiene asignada un aula, la regla no funciona. Le puse un “left outer join” y santo remedio.

Espero que les sirva.

Abrazos.

Emilio, hay que ver si ese control tiene sentido en esta operaciòn. Solo daria error si pasa esto que decis, que la comision origen y destino tienen definido la misma banda horaria, es decir que las clases se superponen en cuanto a dia de la semana, horario y espacio (y fecha calendario, ya que podrìan cursarse cada 15 dias y no superponerse con otra que se cursa cada 15 dias pero en semanas diferentes…)

Este control como el control de que no existan mas de n inscripciones a diferentes comisiones de la misma actividad y perìodo lectivo pasa lo mismo, no deberia estar este control.

En el caso que igual quieras controlar superposicion horaria entre la comision destino y las otras comisiones de otras actividades que el alumno este inscripto entonces el control que hoy existe no sirve ya que al no recibir la comision origen, la considera como una comision mas contra la cual comparar y el control fallará en el caso que ya explique al comienzo.

Pero si saco esos dos controles, los alumnos en g3w3 pueden anotarse a comisiones superpuestas y a n comisiones de la misma materia.
Quizas no entendi bien lo que me explicaste, pero me parecen fundamentales estos dos controles.

Hola Emilio,
lo que te plantea Alejandro, con respecto al requisito de “Que el alumno no exista en otra comisión de la actividad y mismo período lectivo”, es configurar ese control para desactivarlo para esta operación particular “Distribuir Comisiones”, que no da de alta una inscripción de cero, sino que la mueve de una Comisión a otra.
Por este motivo, desactivando el control sólo en este caso, se sigue asegurando que el alumno no estará inscripto en N comisiones de la misma actividad, ya que el control se habrá hecho en la inscripción original del Alumno y se obvia al moverla a otra comisión.
Esto podés hacerlo desde la operación de “Configurar Requisitos por Operación”.
Si de todas formas se desea dejar el control, debe modificarse para que considere la Comisión origen y la excluya en las sqls correspondientes.
En cuanto a la asignación que puede no tener un aula asociada, vericaremos entonces esa regla para corregirla de ser necesario.

Gracias y saludos,
Gabriela.

El control de superposiciòn horaria respecto de las comisiones en las que esta inscripto el alumno se va a modificar para que reciba la comision origen desde la que se lo esta sacando al alumno para que no lo considere en este control. Ademas como indicò Gabriela, se sacará la consulta por el aula de la banda horaria ya que en este control no tiene sentido ya que lo que se busca es que no se superpongan en horario-fecha-dia de la semana las diferentes inscripciones a comisiones que tenga el alumno.

Respecto del control de que no este inscripto a n comisiones de la misma materia para el mismo perìodo lectivo, es que no tiene sentido en esta operaciòn, ya que si lo cambio de comision al alumno y el control ese esta activo y falla (suponiendo que no considero la comision desde la que lo estoy sacando) entonces quiere decri que el alumno esta inscripto en otra comision de la misma actividad y perìodo lectivo y si eso sucede es porque en la inscripción a cursada ese control no estuvo activo sino tuvo que fallar. Es por eso que si se lo permitió en la inscripción a cursadas, entonces porque no permitirlo aca cuando lo moves de una comision a otra ya que a lo que hace ese control aca no afectaria porque es cambiar una comision por otra, no es agregar una inscripcion a una comision de la misma actividad. Se entiende o compliqué con la explicación?

Te avisaremos en cuanto este resuelto.
Saludos.

sisi, se entiende. El control de no estar anotado a mas de n comisiones, aca no es necesario.
En realidad encontre que me equivoque en la mencion de la regla.

La regla que estaba trayendo problemas era la de superposicion horaria. La otra no se para que la mencione.
Si la comision de origen y la de destino comparten algun horario, la regla me impedia el cambio.