[Solucionado] Error al rectificar acta de examen.

Guarani 3.9

Estimados.

Estabamos teniendo un problema a la hora de rectificar un acta de examen.
En particular, nos decia que el alumno al que le estabamos rectificando la nota no tenia diferencias en la nota entre el acta original y la rectificada.
Tanto en el sistema como en la base nos mostraba que si habia esa diferencia (en el acta original estaba como ausente y en la rectificativa como aprobado).

Revisando un poco el codigo encontre que en el archivo “cn_ent_cerrar_acta_examen.php” que esta en “php/nucleo/examenes/actas/cerrar_acta” en la linea 93 habia un filtro bastante sospechoso:

$filtro = "vw_actas.id_acta <> $acta_rectificativa";

Ese filtro pertenece a la funcion “validar_datos” que, justamente, era la funcion donde el log me mostraba que saltaba el error.

La cosa es que, con ese filtro, me traia todas las actas en existencia y, la que usaba para validar dependia del azar.
Ademas, la funcion no contemplaba la existencia de mas de un alumno en el acta rectificativa.
Asique le agregue un for para que recorra todos los alumnos.

La funcion quedo definida de esta forma:


function validar_datos($mesa_examen, $alumnos, $datos_acta)
{
	$this->validar_acta_vacia($alumnos);
	$this->validar_campos_completados($alumnos);
	$this->validar_notas_cargadas($alumnos);
	if ($datos_acta['tipo_acta'] == acta::tipo_rectificativa) {
		foreach ($alumnos as $alumno) {
			$acta_original = $datos_acta['acta_referencia'];
			$acta_rectificativa = toba::db()->quote($datos_acta['id_acta']);
			$filtro = "vw_actas.llamado_mesa = $mesa_examen and vw_actas.alumno = ".$alumno['alumno'] . " and vw_actas.estado <> 'B' order by vw_actas.id_acta desc";
			$detalles_acta_original = toba::consulta_php('co_actas')->get_detalles_ultima_rectificacion_acta($acta_original, $filtro);
			$this->validar_cambios_rectificativa($alumnos, $detalles_acta_original);
		}
	}
	$this->validar_inscripciones_pendientes($mesa_examen);
	$this->validar_acta_impresa($datos_acta);

	if ($this->hay_errores()) {
		throw guarani::error($this->errores);
	}
}

Con esto se solucionaron los problemas y pudimos trabajar sin indicios de errores hasta el momento.

Espero que les sirva.

Hola Claudio,

Podrías por favor crear una solicitud en el Gestor de Solicitudes con este problema?

Gracias!
Saludos, Florencia.

Si, Florencia.
Esta subido con el usuario de un compañero porque el mio no tiene acceso al GDS.

Saludos.