Error grabando en la base de datos - Inscripción a cursadas

Buenos dias

tenemos un problema con el mensaje de error que nos da al querer inscribir a cursadas a término y fuera de término desde gestión.

Cuando la comisión no tiene cupo disponible sale un error “Ha ocurrido un error grabando en la base de datos” Estamos en versión 3.16.2

Cómo deberíamos hacer para que el cartel sea el correcto? Muchas gracias


Error cursadas.pdf (198 KB)

Por el mensaje de error que da es en la tabla men_destinatarios.
Esto corresponde con el mensaje que se le envía al alumno avisando que se inscribió en esa actividad.
Finalmente queda inscripto en la comisión?
O en realidad salta el control de que no hay cupo, no lo inscribe pero igualmente intenta enviar el mensaje al alumno y ahi es donde falla y envia este mensaje de error?

No, no queda inscripto porque no hay cupo

Ok. Revisaremos el proceso de registro de la inscripción y posterior envio del mensaje. Si hubo algun ajuste en versiones posteriores. Te informaremos de cualquier novedad.

Hola, agrego a lo de Ale:

Claro, no esta llegando valor en la columna persona de la tabla men_destinatarios, la cual es obligatoria ya que la PK se forma con las columnas mensaje y persona.

Estaría bueno que nos envíes los logs para poder ver la traza del error.

saludos.
2

Hice una prueba, pero esta validando bien el cupo (en la versión 3.18.1 al menos), adjunto captura de pantalla.

¿ustedes tienen personalizaciones?

Quedo a la espera de los logs.

saludos.
2


Screenshot from 2020-12-02 12-19-51.png

Screenshot from 2020-12-02 12-19-51.png

Adjunto log


Error cursadas.doc (89.5 KB)

Hola Sabrina,

¿que te devuelve si ejecutas la siguiente query?


SELECT
					vw_insc_cursada.inscripcion,
					vw_insc_cursada.alumno,
					vw_insc_cursada.estado,
					vw_insc_cursada.fecha_inscripcion,
					vw_insc_cursada.nro_transaccion,
					sga_comisiones.elemento,
					vw_actividades_plan.codigo 	AS codigo_actividad,
					vw_actividades_plan.nombre	AS actividad_nombre,
					sga_comisiones.comision,
					sga_comisiones_cupo.cupo,
					sga_comisiones_cupo.cant_inscriptos,
					f_docentes_comision(sga_comisiones.comision, true) AS comision_docentes,
					(SELECT	COUNT(sga_subcomisiones.subcomision)
					 FROM	sga_subcomisiones
					 WHERE	sga_subcomisiones.comision = sga_comisiones.comision
					) AS cant_subcomisiones,
					sga_alumnos.persona,
					sga_alumnos.plan_version,
					sga_alumnos.propuesta,
					sga_comisiones.nombre			AS comision_nombre,
					sga_ubicaciones.nombre			AS ubicacion_nombre,
					sga_turnos_cursadas.nombre		AS turno_nombre,
					vw_personas.apellido_nombres	AS apellido_y_nombres,
					vw_personas.apellido,
					vw_personas.nombres,
					vw_personas.documento,
					vw_personas.tipo_documento,
					vw_personas.tipo_nro_documento	AS alumno_identificacion,
					sga_alumnos.legajo,
					sga_propuestas.nombre			AS propuesta_nombre
				    
				FROM
					vw_insc_cursada
					JOIN sga_alumnos ON vw_insc_cursada.alumno = sga_alumnos.alumno
				    JOIN vw_personas ON sga_alumnos.persona = vw_personas.persona
					JOIN sga_propuestas ON sga_alumnos.propuesta = sga_propuestas.propuesta
					JOIN sga_comisiones ON vw_insc_cursada.comision = sga_comisiones.comision
					JOIN vw_actividades_plan ON (sga_comisiones.elemento = vw_actividades_plan.elemento AND vw_insc_cursada.plan_version = vw_actividades_plan.plan_version)
					JOIN sga_ubicaciones ON sga_comisiones.ubicacion = sga_ubicaciones.ubicacion
					JOIN vw_periodos_lectivos ON sga_comisiones.periodo_lectivo = vw_periodos_lectivos.periodo_lectivo
					JOIN sga_comisiones_cupo ON sga_comisiones.comision = sga_comisiones_cupo.comision
					LEFT JOIN sga_turnos_cursadas ON sga_comisiones.turno = sga_turnos_cursadas.turno
					LEFT JOIN sga_catedras ON sga_comisiones.catedra = sga_catedras.catedra

				WHERE
					vw_insc_cursada.prioridad = 1
					AND vw_periodos_lectivos.fecha_tope_movimientos >= CURRENT_DATE
				   	 AND vw_insc_cursada.nro_transaccion = 640683

				ORDER BY
					sga_comisiones.comision,
					vw_personas.apellido,
				   	vw_personas.nombres;

La cual es la que se llama en la función guardar de la clase php/nucleo/cursadas/inscripciones/cn_man_inscripcion_cursadas.php donde hace:

$datos = toba::consulta_php('co_inscripciones_cursadas')->get_listado_alumnos_inscripciones_a_comisiones('vw_insc_cursada.nro_transaccion = ' . $nro_transaccion);

Luego cuando hace la siguiente query ya la hace mal porque no filtra por persona en el WHERE:

$parametros['email'] = toba::consulta_php('co_personas')->get_emails_personas([$fila['persona']]);

SELECT persona,
						COALESCE((	SELECT	email
									FROM	mdp_personas_contactos
									WHERE	mdp_personas_contactos.persona = mdp_personas.persona 
											AND contacto_tipo IN ('MP', 'MS', 'MI')
									ORDER BY	contacto_tipo = 'MP' DESC, contacto_tipo = 'MS' DESC, contacto_tipo = 'MI' DESC
									LIMIT 1), 
									'') AS email
						FROM	mdp_personas
						WHERE
						 recibe_mensajes_x_mail = 1 AND 
						 false;

saludos.
2

Sabrina, encontramos el problema. Por favor crea una solicitud asi les indicamos que deben modificar para que no les de este error cuando falla algun requisito como en este caso el control de cupo.

Se continua en GDS 49113.

Dicho bug saldrá solucionado en la versión 3.19.0 (también en una 3.18.2 si llegase a liberarse).

saludos.
2