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; }
/** * 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)'); }