protected function loadComponentesCurricularesForMatricula($matriculaId)
 {
     $componentesCurriculares = array();
     $componenteCurricularId = $this->getRequest()->componente_curricular_id;
     $_componentesCurriculares = App_Model_IedFinder::getComponentesPorMatricula($matriculaId, null, null, $componenteCurricularId);
     foreach ($_componentesCurriculares as $_componente) {
         $componente = array();
         $componente['id'] = $_componente->get('id');
         $componente['nome'] = $this->safeString(strtoupper($_componente->get('nome')), false);
         $componente['nota_atual'] = $this->getNotaAtual($etapa = null, $componente['id']);
         $componente['nota_exame'] = $this->getNotaExame($componente['id']);
         $componente['falta_atual'] = $this->getFaltaAtual($etapa = null, $componente['id']);
         $componente['parecer_atual'] = $this->getParecerAtual($componente['id']);
         $componente['situacao'] = $this->getSituacaoMatricula($componente['id']);
         $componente['nota_necessaria_exame'] = $componente['situacao'] == 'Em Exame' ? $this->getNotaNecessariaExame($componente['id']) : null;
         if (!empty($componente['nota_necessaria_exame'])) {
             $this->createOrUpdateNotaExame($matriculaId, $componente['id'], $componente['nota_necessaria_exame']);
         } else {
             $this->deleteNotaExame($matriculaId, $componente['id']);
         }
         //buscando pela área do conhecimento
         $area = $this->getAreaConhecimento($componente['id']);
         $nomeArea = ($area->secao != '' ? $area->secao . ' - ' : '') . $area->nome;
         $componente['area_id'] = $area->id;
         $componente['area_nome'] = $this->safeString(strtoupper($nomeArea), false);
         //criando chave para ordenamento temporário
         //área de conhecimento + componente curricular
         $componente['my_order'] = Portabilis_String_Utils::unaccent(strtoupper($nomeArea)) . Portabilis_String_Utils::unaccent(strtoupper($_componente->get('nome')));
         $componentesCurriculares[] = $componente;
     }
     //ordenando pela chave temporária criada
     $componentesCurriculares = Portabilis_Array_Utils::sortByKey('my_order', $componentesCurriculares);
     //removendo chave temporária
     $len = count($componentesCurriculares);
     for ($i = 0; $i < $len; $i++) {
         unset($componentesCurriculares[$i]['my_order']);
     }
     return $componentesCurriculares;
 }
Beispiel #2
0
 /**
  * Setter.
  * @return App_Service_Boletim Provê interface fluída
  */
 protected function _setMatriculaInfo()
 {
     $codMatricula = $this->getOption('matricula');
     $this->_setRegra(App_Model_IedFinder::getRegraAvaliacaoPorMatricula($codMatricula, $this->getRegraDataMapper()))->_setComponentes(App_Model_IedFinder::getComponentesPorMatricula($codMatricula, $this->getComponenteDataMapper(), $this->getComponenteTurmaDataMapper()));
     // Valores scalar de referência
     $matricula = App_Model_IedFinder::getMatricula($codMatricula);
     $etapas = App_Model_IedFinder::getQuantidadeDeModulosMatricula($codMatricula);
     $this->setOption('matriculaData', $matricula);
     $this->setOption('aprovado', $matricula['aprovado']);
     $this->setOption('cursoHoraFalta', $matricula['curso_hora_falta']);
     $this->setOption('cursoCargaHoraria', $matricula['curso_carga_horaria']);
     $this->setOption('serieCargaHoraria', $matricula['serie_carga_horaria']);
     $this->setOption('etapas', $etapas);
     return $this;
 }
 /**
  * @depends App_Model_IedFinderTest::testGetRegraAvaliacaoPorMatricula
  */
 public function testGetComponentesPorMatricula()
 {
     // A turma possui apenas 2 componentes, com os ids: 1 e 2
     $mocks = $this->_getComponentesTurmaMock();
     // Retorna para clsPmieducarDispensaDisciplina
     $returnDispensa = array(array('ref_cod_matricula' => 1, 'ref_cod_disciplina' => 2));
     // Mock para clsPmieducarDispensaDisciplina
     $dispensaMock = $this->getCleanMock('clsPmieducarDispensaDisciplina');
     $dispensaMock->expects($this->once())->method('lista')->with(1, 1, 1)->will($this->returnValue($returnDispensa));
     CoreExt_Entity::addClassToStorage('clsPmieducarDispensaDisciplina', $dispensaMock, NULL, TRUE);
     $componentes = App_Model_IedFinder::getComponentesPorMatricula(1, $mocks['componenteMock'], $mocks['turmaMock']);
     $expected = $mocks['expected'];
     $expected = array(1 => clone $expected[1]);
     $this->assertEquals($expected, $componentes, '::getComponentesPorMatricula() retorna os componentes curriculares de uma matrícula, descartando aqueles em regime de dispensa (dispensa de componente)');
 }