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; }
public static function _valueSorter($a, $b) { if (is_string($a)) { $a = Portabilis_String_Utils::unaccent($a); } if (is_string($b)) { $b = Portabilis_String_Utils::unaccent($b); } if ($a == $b) { return 0; } return $a < $b ? -1 : 1; }