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