protected function getComponentesCurriculares()
 {
     if ($this->canGetComponentesCurriculares()) {
         $userId = $this->getSession()->id_pessoa;
         $instituicaoId = $this->getRequest()->instituicao_id;
         $turmaId = $this->getRequest()->turma_id;
         $ano = $this->getRequest()->ano;
         $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId);
         if ($isProfessor) {
             $componentesCurriculares = Portabilis_Business_Professor::componentesCurricularesAlocado($turmaId, $ano, $userId);
         } else {
             $sql = "select cc.id, cc.nome, ac.nome as area_conhecimento, ac.secao as secao_area_conhecimento\n                from pmieducar.turma, modules.componente_curricular_turma as cct, modules.componente_curricular as cc, modules.area_conhecimento as ac, \n                pmieducar.escola_ano_letivo as al where turma.cod_turma = \$1 and cct.turma_id = turma.cod_turma and\n                cct.escola_id = turma.ref_ref_cod_escola and cct.componente_curricular_id = cc.id and al.ano = \$2\n                and cct.escola_id = al.ref_cod_escola and cc.area_conhecimento_id = ac.id\n                order by ac.secao, ac.nome, cc.nome";
             $componentesCurriculares = $this->fetchPreparedQuery($sql, array($turmaId, $ano));
             if (count($ComponentesCurriculares) < 1) {
                 $sql = "select cc.id, cc.nome, ac.nome as area_conhecimento, ac.secao as secao_area_conhecimento from\n                  pmieducar.turma as t, pmieducar.escola_serie_disciplina as esd, modules.componente_curricular\n                  as cc, modules.area_conhecimento as ac, pmieducar.escola_ano_letivo as al where t.cod_turma = \$1 and esd.ref_ref_cod_escola =\n                  t.ref_ref_cod_escola and esd.ref_ref_cod_serie = t.ref_ref_cod_serie and esd.ref_cod_disciplina =\n                  cc.id and al.ano = \$2 and esd.ref_ref_cod_escola = al.ref_cod_escola and t.ativo = 1 and\n                  esd.ativo = 1 and al.ativo = 1 and cc.area_conhecimento_id = ac.id\n                  order by ac.secao, ac.nome, cc.nome";
                 $componentesCurriculares = $this->fetchPreparedQuery($sql, array($turmaId, $ano));
             }
         }
         $options = array();
         foreach ($componentesCurriculares as $componenteCurricular) {
             $areaConhecimento = ($componenteCurricular['secao_area_conhecimento'] != '' ? $componenteCurricular['secao_area_conhecimento'] . ' - ' : '') . $componenteCurricular['area_conhecimento'];
             $options['__' . $componenteCurricular['id']] = array('value' => $this->toUtf8($componenteCurricular['nome']), 'group' => $this->toUtf8($areaConhecimento));
         }
         return array('options' => $options);
     }
 }