Exemple #1
0
 /**
  * Método usado para adicionar a coluna que informa o autor do registro
  *
  * @param string $indice A coluna referente ao apontador da tabela
  *
  * @return Select Um objeto Select contendo a coluna e o alias 
  *                para o retorno do usuário 
  */
 protected function usrAutor()
 {
     $t = $this->tg->getTabela();
     $select = new Select('  ');
     $sqlProf = new SqlProfessor();
     $sqlCoord = new SqlCoordenador();
     return $select->columns(array('afa_conceito_aluno_autor' => "(case when " . "{$t}.fk_usuario_coordenador=0 then (" . $sqlProf->select()->columnsReset()->columns("usuario||','||tipo_usuario||','||" . "funcao_usuario||','||usuario_professor")->where("pk_usuario_professor=public.aula.fk_usuario_professor " . "and public.tipo_usuario.pk_tipo_usuario=" . Perfil::PROFESSOR)->limit(1) . ") else (" . $sqlCoord->select()->columnsReset()->columns("usuario||','||tipo_usuario||','||" . "funcao_usuario||','||usuario_coordenador||','||coordenacao")->where("pk_usuario_coordenador=afa.afa_conceito_aluno.fk_usuario_coordenador " . "and public.tipo_usuario.pk_tipo_usuario=" . Perfil::COORDENADOR)->limit(1) . ") end)"));
 }
 /**
  * Método que gera uma consulta genérica para so geral da classe.
  *
  * @return Select Uma consulta genérica
  */
 public function select()
 {
     //Objetos responsáveis pelas consultas auxiliares
     $select = new Select();
     //Definindo as subconsultas
     $ia = "(SELECT indicadorgeral_cat FROM fap.pes_process_indicadoresgerais_cat " . "WHERE fk_usuario_professor=pk_usuario_professor " . "order by (fk_pesquisa_cat) desc LIMIT 1)";
     $ic = "(SELECT indicador_geral_professor FROM fap.par_respostas_indicadores_gerais " . "WHERE fk_usuario_professor=pk_usuario_professor " . "order by (fk_par_pesquisa) desc LIMIT 1)";
     $ir = "(SELECT score FROM fap.fap_registro " . "WHERE fk_usuario_professor=pk_usuario_professor " . "and extract(year from data_evento)={$this->anoLetivo} " . "order by (fap.fap_registro.pk_fap_registro) desc LIMIT 1)";
     $lastIa = "(SELECT max(fk_pesquisa_cat) FROM fap.pes_process_indicadoresgerais_cat " . "WHERE fap.pes_process_indicadoresgerais_cat.fk_usuario_professor=pk_usuario_professor )";
     $materiaId = "(SELECT max(fk_materia_mae) FROM public.materia " . "INNER JOIN public.materia_vin on pk_materia=fk_materia " . "INNER JOIN public.grade on fk_materia_vin=pk_materia_vin " . "WHERE public.grade.fk_usuario_professor=pk_usuario_professor )";
     $fapT = "SELECT count(pk_fap_registro) FROM fap.fap_registro " . "INNER JOIN fap.fap_subtipo on pk_fap_subtipo=fk_fap_subtipo " . "WHERE pk_usuario_professor=fk_usuario_professor " . "and fk_fap_tipo=";
     $fapS = "SELECT count(pk_fap_registro) FROM fap.fap_registro " . "WHERE pk_usuario_professor=fk_usuario_professor " . "and extract(year from data_evento)={$this->anoLetivo} " . "and fk_fap_subtipo=";
     $afa = "SELECT count(pk_afa_conceito_aluno) FROM afa.afa_conceito_aluno " . "INNER JOIN afa.afa_subtipo_anotacao on pk_afa_subtipo_anotacao=fk_afa_subtipo_anotacao " . "INNER JOIN public.aula on pk_aula=fk_aula " . "WHERE pk_usuario_professor=fk_usuario_professor " . "and extract(year from data_evento)={$this->anoLetivo} " . "and fk_afa_tipo_anotacao=";
     $aulaTmp = $select->reset()->from("public.aula")->columns("pk_aula");
     $where = "pk_usuario_professor=fk_usuario_professor";
     $aulaTmp->where($where);
     $aula = new Select(array("aula" => $aulaTmp->distinct("pk_aula")));
     $aula->columns("count(pk_aula)");
     //Objeto responsável pela consulta principal
     $selectProf = parent::select();
     return $selectProf->distinct("pk_usuario")->columns(array("last_ia" => $lastIa, "materia_id" => $materiaId, "ia" => $ia, "ic" => $ic, "ir" => $ir, "aulas" => $aula, "afa_p" => "({$afa}" . TipoAfa::TIPO_POSITIVO . ")", "afa_n" => "({$afa}" . TipoAfa::TIPO_NEGATIVO . ")", "fap_aten" => "({$fapT}" . TipoFap::TIPO_ATENDIMENTO . ")", "fap_fj" => "({$fapS}" . SubtipoFap::SUB_TIPO_FALTA_JUSTIFICADA . ")", "fap_fnj" => "({$fapS}" . SubtipoFap::SUB_TIPO_FALTA_N_JUSTIFICADA . ")", "fap_fl" => "({$fapS}" . SubtipoFap::SUB_TIPO_LICENCA . ")", "fap_a" => "({$fapT}" . TipoFap::TIPO_ATRASO . ")"));
 }