public function executeListConcepto() { // inicializando variables $optionsConcepto = array(); $optionsDivision = array(); $optionsCarrera = array(); $aAlumno = array(); $division_id = ""; $concepto_id = ""; $periodo_id = ""; $carrera_id = ""; $aPeriodo = array(); $aPosiblesNotas = array(); $optionsPeriodo = array(); $aNotaAlumno = array(); $aNotaAlumnoObs = array(); $sizeNota = 0; $establecimiento_id = $this->getUser()->getAttribute('fk_establecimiento_id'); // tomando los datos del formulario $division_id = $this->getRequestParameter('division_id'); $periodo_id = $this->getRequestParameter('periodo_id'); $concepto_id = $this->getRequestParameter('concepto_id'); $carrera_id = $this->getRequestParameter('carrera_id'); // llenando el combo de division segun establecimiento $optionsDivision = $this->getDivisiones($establecimiento_id, $carrera_id); $optionsCarrera = $this->getCarreras($establecimiento_id); $optionsConcepto[] = ""; $e = EstablecimientoPeer::retrieveByPk($establecimiento_id); $optionsConcepto = array_merge($optionsConcepto, $e->getConceptosArray()); $aAlumno = $this->getAlumnos($division_id); $criteria = new Criteria(); $criteria->add(PeriodoPeer::FK_CICLOLECTIVO_ID, $this->getUser()->getAttribute('fk_ciclolectivo_id')); $criteria->add(PeriodoPeer::CALCULAR, false); $aPeriodo = PeriodoPeer::doSelect($criteria); $optionsPeriodo[] = "Todos"; foreach ($aPeriodo as $periodo) { $optionsPeriodo[$periodo->getId()] = $periodo->getDescripcion(); } if ($periodo_id) { $aPeriodo = array(); $aPeriodo[] = PeriodoPeer::retrieveByPK($periodo_id); } if (count($aAlumno) > 0) { // esto puede ser mejorado con solo una query bastante facilmente foreach ($aAlumno as $alumno) { foreach ($aPeriodo as $periodo) { $criteria = new Criteria(); $criteria->add(BoletinConceptualPeer::FK_ALUMNO_ID, $alumno->getId()); $criteria->add(BoletinConceptualPeer::FK_PERIODO_ID, $periodo->getId()); $criteria->add(BoletinConceptualPeer::FK_CONCEPTO_ID, $concepto_id); $aBoletinConceptual = BoletinConceptualPeer::doSelect($criteria); $aNotaAlumno[$alumno->getId()][$periodo->getId()] = ""; $aNotaAlumnoObs[$alumno->getId()][$periodo->getId()] = ""; foreach ($aBoletinConceptual as $boletinConceptual) { //if(method_exists($legajopedagogico->getResumen(),'getContents')) { if ($boletinConceptual->getFkEscalanotaId()) { $aNotaAlumno[$alumno->getId()][$periodo->getId()] = $boletinConceptual->getEscalanota()->getNombre(); } if ($boletinConceptual->getObservacion()) { if ($boletinConceptual->getObservacion() != null) { $aNotaAlumnoObs[$alumno->getId()][$periodo->getId()] = $boletinConceptual->getObservacion(); } } } } } } $criteria = new Criteria(); $criteria->add(EscalanotaPeer::FK_ESTABLECIMIENTO_ID, $establecimiento_id); $aPosiblesNotas = EscalanotaPeer::doSelect($criteria); foreach ($aPosiblesNotas as $p) { $actual = strlen($p->getNombre()); if ($actual > $sizeNota) { $sizeNota = $actual; } } // llenar variables a mostrar en el template $this->optionsDivision = $optionsDivision; $this->optionsConcepto = $optionsConcepto; $this->aAlumno = $aAlumno; $this->division_id = $division_id; $this->concepto_id = $concepto_id; $this->periodo_id = $periodo_id; $this->carrera_id = $carrera_id; $this->optionsCarrera = $optionsCarrera; $this->aPeriodo = $aPeriodo; $this->aPosiblesNotas = $aPosiblesNotas; $this->optionsPeriodo = $optionsPeriodo; $this->aNotaAlumno = $aNotaAlumno; $this->aNotaAlumnoObs = $aNotaAlumnoObs; $this->sizeNota = $sizeNota; }