Quiero bloquear la carga de notas en las actas una vez que verifico que fue impresa y recepcionada.
Ya filtré las actas de curso en el listado generado a partir del resultado del procedimiento sp_actasCurDocente…
El tema es que si copio y pego la url de edicion vieja… igual carga la página… se podrá verificar en el controller de la operación y mostrar un error en caso de que no se pueda editar?
para el caso de ejemplo supongamos que quiero editar un acta y que si hago select 1 from tabla_control where acta=p_acta y devuelve datos quiero bloquear la operación de carga de notas estandar y mostrar un mensaje de error.
Hola Diego, en la operación Carga de notas a comisiones se están listado las actas que devuelve la llamada al catalogo carga_notas_cursada/lista_actas_abiertas_docente la cual ejecuta el procedure sp_actasCurDocente (este procedure vos lo personalizaste para que solo liste las actas que NO hayan sido impresas y recepcionadas, si no es así corregime).
Ahora cuando vos seleccionas un acta va a la acción de edición src/siu/operaciones/notas_cursada/controlador.php función accion__edicion y esta controla que el hash enviado en la URL se encuentre en el listado que devuelve la función info__actas_abiertas del archivo src/siu/modelo/transacciones/carga_notas_cursada.php esta llama al catalogo carga_notas_cursada/lista_actas_abiertas_docente el cual finalmente invoca el procedure lista_actas_abiertas_docente, es decir, el hash que se envía por URL NO debería existir en el listado de actas que devuelve el procedure y debería lanzar la excepción ‘Opcion invalida’ (src/siu/modelo/transacciones/transaccion.php función get_opcion_enviada).
Osea si modificaste el procedure sp_actasCurDocente no debería listar el acta ni tampoco permitirte cargar nota a los alumnos.
cualquier cosa enviame los logs que se generan cuando entras a cargar notas de una comisión.
“El tema es que si copio y pego la url de edición vieja… igual carga la página… se podrá verificar en el controller de la operación y mostrar un error en caso de que no se pueda editar?”
puede ser que te esta mostrando el titulo de la operación < Carga de notas a comisiones y el resto de la pagina en blanco?
Tu primer pregunta es exacto lo que dijiste, el SP lo modifiqué y ya no lista lo que no debe listar.
El tema es que el acta a pesar de que esta cargada, impresa y no es listada por el procedimiento sigue estando abierta.
El problema son los historiales de navegación o copiar y pegar una url vieja… si de alguna manera guardo la url de edición del acta y la utilizo, termino forzando la edición de un acta que no debería poder ser editada.
Con lo que antes mencionaste me suena que el problema es que yo generé un nuevo SP817 no reutilicé el mismo nombre… y en consecuencia no se lo utiliza en la última llamada y no se genera la excepción. ¿puede ser eso?
Si personalizaste el SP sp_actasCurDocente para que no liste las actas impresas y recepcionadas debería estar funcionando todo como vos decís, osea no te debería dejar editar ese tipo de actas, fíjate lo siguiente:
el listado de actas los traes del archivo src/siu/modelo/transacciones/carga_notas_cursada.php función info__actas_abiertas, la cual llama a src/siu/modelo/datos/db/carga_notas_cursada.php función lista_actas_abiertas_docente donde estas invocando a tu SP personalizado.
Ahora cuando queres editar un acta ingresa en src/siu/modelo/transacciones/carga_notas_cursada.php función info__acta_cabecera la cual llama a la función get_opcion_enviada la cual finalmente llama a tu SP personalizado, y si el acta seleccionada no pertenece a esa lista da la Excepción con el mensaje ‘Opcion invalida’.
Osea que con solo personalizar el procedure sp_actasCurDocente bastaría.