/** * Método que retorna uma consulta genérica para uso da classe * * @return Select */ public function select() { //Consultas internas $selAfaT = "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.usuario_aluno " . "on pk_usuario_aluno=fk_usuario_aluno " . "where fk_usuario=pk_usuario and fk_afa_tipo_anotacao="; $selAfaS = "select count(pk_afa_conceito_aluno) " . "from afa.afa_conceito_aluno " . "inner join public.usuario_aluno " . "on pk_usuario_aluno=fk_usuario_aluno " . "where fk_usuario=pk_usuario and fk_afa_subtipo_anotacao="; $select = new Select(); return parent::select()->columns(array("unidade" => "(select fk_unidade from public.turma " . "where pk_turma=public.usuario_aluno.fk_turma limit 1)", "in" => $select->reset()->columns("media_aluno")->from("mestre.medias_alunos")->where("media_aluno<>-1 " . "and mat_alumat=public.usuario_aluno.matricula " . "and mestre.medias_alunos.ano='{$this->anoLetivo}'")->order("referencia", Order::DSC)->limit(1), "if" => $select->reset()->columns("score")->from("afa.afa_conceito_aluno")->join("public.usuario_aluno", array("pk_usuario_aluno" => "fk_usuario_aluno"))->where("fk_usuario=pk_usuario")->order("pk_afa_conceito_aluno", Order::DSC)->limit(1), "afa_p" => "(" . $selAfaT . Tipo::TIPO_POSITIVO . ")", "afa_n" => "(" . $selAfaT . Tipo::TIPO_NEGATIVO . ")", "acao" => "(" . $selAfaT . Tipo::TIPO_ACAO_PEDAGOGICA_FORMATIVA . ")", "aten" => "(" . $selAfaT . Tipo::TIPO_ATENDIMENTO . ")", "falta" => "(" . $selAfaS . Subtipo::SUB_TIPO_FALTA . ")", "atraso" => "(" . $selAfaS . Subtipo::SUB_TIPO_ATRASO . ")")); }
/** * 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 . ")")); }