Error al inscribir a cursos

Estuve teniendo un problema al inscribir a cursos (Cursadas» Cursos »Inscribir a Cursos).
Al intentar inscribir a las personas me notificaba que no había un período de inscripción abierto.
Después de realizar una investigación, ya que período de inscripción estaba y las fechas/ubicaciones… estaban bien, me doy cuenta que el error es que cuando crearon las comisiones pusieron “Modalidades de Cursada para la Comisión” a todas como presencial y a distancia.

Mientras que en el período de inscripción lo pusieron bien, solo eligiendo presencial.
¿Por más que este haya sido un error de carga, si la comisión permite ambas modalidades, no debería mostrarlas de todas formas?
Si pongo en la comisión sólo presencial o pongo en el período de inscripción también a distancia ya me permite la inscripción.
¿Quería saber si esto es un bug o es un comportamiento deseado?

Saludos.
Pablo

Hola,
A ver… sacando en limpio: el PI tiene una sola modalidad y la comisión tiene seleccionadas las dos modalidades? en ese caso no te aparece la comisión? Según lo que vos me planteás, pareciera que debería aparecer el período. Tenés un log de la aplicación para ver que es lo que pasa?
Saludos!

Hola Hernan, si te sirve para ahorrar tiempo te paso el tracing que ya realicé. Si necesitas los logs, busco para enviarlos.

En
\php\nucleo\matriculas\inscripciones\inscripcion_nucleo.php

static function inscribir_propuesta_curso($persona, $propuesta, $comision, $params_sistema, $interfaz=comunes::interfaz_gestion)

// Se obtiene el período de inscripción


$datos_per_insc = toba::consulta_php('co_periodos_de_inscripcion')->get_periodo_inscripcion_para_insc_cursos($plan_version, $modalidad, $datos_comision['ubicacion'], $datos_comision['anio_academico'], $interfaz);

La Modalidad biene de

\php\nucleo\cursadas\comisiones\co_comisiones.php


function get_modalidad_inscripcion($comision)	
	/**
	 * Obtiene una modalidad de la una comisión para usar en la inscripción a 
	 * la propuesta que abarca el curso.
	 * 
	 * @param int $comision
	 */
	function get_modalidad_inscripcion($comision)
	{
		$comision = toba::db()->quote($comision);

		$sql = "SELECT	sga_comisiones_modalidad.modalidad
				FROM	sga_comisiones_modalidad
				WHERE	sga_comisiones_modalidad.comision = $comision
				LIMIT	1";                                                    <---- DEVUELVE UNA MODALIDAD

		$datos = guarani::db()->consultar_fila($sql);
		return $datos['modalidad'];
	}

El LIMIT 1 Hace que de las dos modalidades que estan en la tabla sólo devuelva la primera.

Volviendo a la consulta de períodos
\php\nucleo\calendario\periodos_de_inscripcion\co_periodos_de_inscripcion.php


    function get_periodo_inscripcion_para_insc_cursos($plan_version, $modalidad, $ubicacion, $anio_academico, $interfaz=comunes::interfaz_gestion)
    {
		$plan_version = toba::db()->quote($plan_version);
		$modalidad = toba::db()->quote($modalidad);
		$ubicacion = toba::db()->quote($ubicacion);
        $anio_academico = toba::db()->quote($anio_academico);
		$interfaz = toba::db()->quote($interfaz);
        $sql = "SELECT		vw_periodos_insc_propuesta.periodo_insc,  -- es el que va a sga_propuestas_aspira.periodo_insc
							vw_periodos_insc_propuesta.periodo_inscripcion
				FROM		vw_periodos_insc_propuesta,
							sga_per_insc_modalidad,
							sga_per_insc_ubicacion,
							sga_periodos_inscripcion_aplanado
				WHERE		vw_periodos_insc_propuesta.periodo_inscripcion = sga_per_insc_modalidad.periodo_inscripcion AND
							vw_periodos_insc_propuesta.periodo_inscripcion = sga_per_insc_ubicacion.periodo_inscripcion AND
							vw_periodos_insc_propuesta.periodo_insc = sga_periodos_inscripcion_aplanado.periodo_insc AND

							vw_periodos_insc_propuesta.anio_academico = $anio_academico AND
							vw_periodos_insc_propuesta.periodo_insc_tipo IN ('".periodo_de_inscripcion::tipo_inscripcion."', '".periodo_de_inscripcion::tipo_todos."') AND
							vw_periodos_insc_propuesta.habilitado = '".comunes::si."' AND
							vw_periodos_insc_propuesta.habilitado_interfaz IN (".comunes::interfaz_todas.", $interfaz) AND
							vw_periodos_insc_propuesta.fecha_inicio <= CURRENT_TIMESTAMP AND

							sga_per_insc_modalidad.modalidad = $modalidad AND                                           <---- No contempla la posibilidad de más de una modalidad
							sga_per_insc_ubicacion.ubicacion = $ubicacion AND 

							sga_periodos_inscripcion_aplanado.plan_version = $plan_version
				ORDER BY	vw_periodos_insc_propuesta.fecha_fin DESC
				LIMIT		1
		";
        return guarani_db::consultar_fila($sql);
    }

Yo acá en vez de tocar el código solucioné el error de carga, y prové como te dije de poner en la comisión la modalida correcta o poner el el período de inscripción las dos modalidades, y con eso funcionó.

Hernán, gracias por la pronta respuesta, el problema del momento lo solucioné, y está funcionando, pero te dejo esto porque no se si el comportamiento es el deseado.

Saludos.
Pablo