/** * Método que lista todos os subtipos FAP * * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator Retorna um objeto contendo a resposat da consulta */ public function listarTodos(Filtros $filtros) { $select = $this->select(); if ($filtros->issetVar("tipo_fap")) { $select->where("pk_fap_tipo={$filtros->get("tipo_fap")}"); } return $this->tg->selectObj($select); }
/** * Método que retorna todos os subtipos AFA de acordo com os * filtros informados. * * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator Objeto contendo o resultado da consulta */ public function listarTodos(Filtros $filtros) { $select = $this->select(); if ($filtros->issetGet('tipo_afa')) { $select->where(array('pk_afa_tipo_anotacao' => $filtros->get('tipo_afa'))); } $this->defColInteger(array('pk_afa_tipo_anotacao')); return $this->tg->selectObj($select); }
/** * Método que preenche os where referentes aos tipos e subtipos * * @param string|array $where O teste where das consultas * @param Filtros $filtros Objeto do sistema de filtros */ public function filtrosTipoSub(&$where, Filtros $filtros) { if ($filtros->issetVar("tipo_fap")) { $this->defWhere($where, 'pk_fap_tipo', $filtros->read('tipo_fap')); } if ($filtros->issetVar("subtipo_fap")) { $this->defWhere($where, 'pk_fap_subtipo', $filtros->read('subtipo_fap')); } return $this; }
/** * Metodo que retorna todos os tipos de registros cadastrados * @param Filtros $filtros Objeto do sistema de filtros * @return ResultSetHydrator Um objeto contendo a resposta da consulta */ public function listarTodos(Filtros $filtros) { $select = $this->select(); if ($filtros->issetGet("tipo_afa")) { $select->where(array("pk_afa_tipo_anotacao" => $filtros->get("tipo_afa"))); } else { $where = "(pk_afa_tipo_anotacao=" . Tipo::TIPO_POSITIVO . " "; $where .= "or pk_afa_tipo_anotacao=" . Tipo::TIPO_NEGATIVO . ") "; $select = $this->select()->where($where); } return $this->tg->selectObj($select->order("afa_tipo_anotacao_nome", Order::DSC)); }
/** * Objeto que monta um filtro de tipo e subtipo para as consultas. * Caso o filtro de tipo não seja válido, define a filtragem para apenas registros * * @param string $where A clausula da consulta * @param Filtros $filtros Objeto do sistema de filtros */ protected function filtrosTipoSub(&$where, Filtros $filtros) { if ($filtros->issetVar("tipo_afa")) { $this->defWhere($where, "pk_afa_tipo_anotacao", $filtros->read("tipo_afa")); } else { //Caso não seja definido o tipo, lista apenas registros $where .= strlen($where) ? ' and ' : ''; $where .= " ( " . "pk_afa_tipo_anotacao=" . Afa\Tipo::TIPO_POSITIVO . " or " . "pk_afa_tipo_anotacao=" . Afa\Tipo::TIPO_NEGATIVO . " ) "; } if ($filtros->issetVar("subtipo_afa")) { $where .= (strlen($where) ? ' and ' : '') . " pk_afa_subtipo_anotacao={$filtros->read("subtipo_afa")} "; } }
/** * Método que retorna todos os capítulos cadastrados de acordo com o filtro informado * @param Filtros $filtros Objeto do sistema de filtros * @return ResultSetHydrator Objeto contendo a resposta da consulta */ public function listarTodos(Filtros $filtros) { $where = array("ano" => $this->anoLetivo); //Filtrando if ($filtros->issetGet("livro")) { $where["pk_livro"] = $filtros->get("livro"); } if ($filtros->issetGet("disciplina")) { $where["pk_materia"] = $filtros->get("disciplina"); } //Realizando a consulta return $this->tg->selectObj($this->select()->distinct("pk_capitulo")->where($where)); }
/** * Método que retorna o total de aulas ministradas pelo profesor informado * * @param Professor $professor O professor que ministrou as aulas * @param Filtros $filtros Objeto do sistema de filtros * * @return int O total de aulas ministradas */ public function totalAulas(Professor $professor, Filtros $filtros) { $query = "select distinct on(pk_aula) pk_aula " . "from {$this->tabela} " . "INNER JOIN public.usuario_professor on " . "pk_usuario_professor={$this->tabela}.fk_usuario_professor "; $where = "public.usuario_professor.fk_usuario={$professor->getId()} "; if ($filtros->issetVar(array("unidade", "ensino", "serie", "turma"), false)) { //Adicionando as tabelas para a filtragem $query .= "INNER JOIN public.grade on pk_grade=public.aula.fk_grade "; $query .= "INNER JOIN public.turma on pk_turma=public.grade.fk_turma "; $query .= "INNER JOIN public.serie on pk_serie=public.turma.fk_serie "; $query .= "INNER JOIN public.ensinos on pk_ensino=public.serie.ensino "; //Definindo os filtros especificos if ($filtros->issetVar('unidade')) { $this->defWhere($where, 'fk_unidade', $filtros->read('unidade')); } if ($filtros->issetVar('ensino')) { $this->defWhere($where, 'pk_ensino', $filtros->read('ensino')); } if ($filtros->issetVar('serie')) { $this->defWhere($where, 'pk_serie', $filtros->read('serie')); } if ($filtros->issetVar('turma')) { $this->defWhere($where, 'pk_turma', $filtros->read('turma')); } } $this->filtrosPeriodo($where, $filtros, "data_aula"); $queryCount = "select count(pk_aula) as total from ({$query} where {$where}) as aulas"; $prepare = $this->tg->getPDO()->prepare($queryCount); $prepare->execute(); $obj = $prepare->fetchObject(); return (int) $obj->total; }
/** * Método que gera um Select para uso dos métodos de listagem * * @param Filtros $filtros * * @return Select Um objeto contendo a consulta base para os metodos de listagem em geral */ protected function listarTodosBase(Filtros $filtros) { $select = $this->select()->columns(array("pk_turma"))->join("public.materia_mae", array("fk_area" => "pk_area"))->join("public.materia", array("fk_materia_mae" => "pk_materia_mae"))->join("public.materia_vin", array("fk_materia" => "pk_materia"))->join("public.serie", array("pk_serie" => "public.materia_vin.fk_serie"))->join("public.ensinos", array("pk_ensino" => "ensino"))->join("public.turma", array("fk_serie" => "pk_serie"))->join("public.unidade", array("pk_unidade" => "fk_unidade")); //Filtrando $where = ""; if ($filtros->issetGet("unidade")) { $this->defWhere($where, "pk_unidade", $filtros->get("unidade")); } if ($filtros->issetGet("ensino")) { $this->defWhere($where, "pk_ensino", $filtros->get("ensino")); } if ($filtros->issetGet("serie")) { $this->defWhere($where, "pk_serie", $filtros->get("serie")); } if ($filtros->issetGet("turma")) { $this->defWhere($where, "pk_turma", $filtros->get("turma")); } return $select->where($where); }
/** * Método que lista todos os dados de acompanhamento. * * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator Um objeto contendo a resposta da consulta */ public function listarTodos(Filtros $filtros) { $where = "1=1 "; $t = $this->tg->getTabela(); //Filtrando if ($filtros->getInstance("periodo") instanceof Periodo) { $where .= $filtros->issetGet("de") ? "and {$t}.data_aula>={$filtros->get("de")->format(Date::FORMAT_SQL_DATE)} " : ""; $where .= $filtros->issetGet("ate") ? "and {$t}.data_aula<={$filtros->get("ate")->format(Date::FORMAT_SQL_DATE)} " : ""; } else { $where .= "and extract(year from {$t}.data_aula)={$this->anoLetivo} "; } if ($filtros->issetGet("turma")) { $where .= "and pk_turma={$filtros->get("turma")}"; } return $this->tg->selectObj($this->select()->where($where)->distinct("pk_acompanhamento")); }
/** * Método que retorna apenas os coordenadores com funções distintas * * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator Um objeto contendo a resposta da consulta */ public function listarFuncoes(Filtros $filtros) { $coordenador = new Coordenador(); $select = new Select(array("tipos" => $this->listarTodosBase($filtros->dontUseVar("funcao_coordenador"))->distinct("public.usuario_coordenador.tipo"))); return $this->tg->selectObj($select->order("{$coordenador->getColunaBase()}tipo")); }
/** * Método que retorna as turmas associadas ao professor informado * * @param Professor $professor O professor usado como filtro * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator */ public function deProfessor(Professor $professor, Filtros $filtros) { $where = "public.usuario_professor.fk_usuario={$professor->getId()} " . "and ano={$this->anoLetivo}"; $select = $this->select()->distinct("pk_turma")->join("public.grade", array("fk_turma" => "pk_turma"))->join("public.usuario_professor", array("pk_usuario_professor" => "fk_usuario_professor")); if ($filtros->issetVar("unidade")) { $this->defWhere($where, "pk_unidade", $filtros->read("unidade")); } if ($filtros->issetVar("ensino")) { $this->defWhere($where, "pk_ensino", $filtros->read("ensino")); } if ($filtros->issetVar("serie")) { $this->defWhere($where, "pk_serie", $filtros->read("serie")); } return $this->tg->selectObj($select->where($where)); }
/** * Método que lista todas as questões de acordo com os filtros informados. * * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator Um objeto contendo os dados retornados da consulta */ public function listarTodos(Filtros $filtros) { $where = array(); //Filtrando if ($filtros->issetGet('tipo_questao')) { $where['questao_tipo'] = $filtros->get('tipo_questao'); } if ($filtros->issetGet('disciplina')) { $where['fk_materia'] = $filtros->get('disciplina'); } //Listando return $this->tg->selectObj($this->select()->distinct('pk_questao')->order('pk_questao', Order::DSC)->where($where)); }
/** * Método que retorna todos os registros do professor informado * * @param Professor $professor O professor alvo dos registros * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator Um objeto contendo a resposta da consulta */ public function deProfessor(Professor $professor, Filtros $filtros) { $where = "{$this->tabela}.fk_usuario_professor = {$professor->getIdEspecifico()} "; $subSelect = $this->select()->distinct("pk_fap_registro"); //Filtrando pro tipo e subtipo if ($filtros->issetGet("tipo_fap")) { $where .= "and pk_fap_tipo = {$filtros->get("tipo_fap")} "; } if ($filtros->issetGet("subtipo_fap")) { $where .= "and pk_fap_subtipo = {$filtros->get("subtipo_fap")} "; } //Filtrando por periodo if ($filtros->issetVar(array('unidade', 'ensino', 'serie', 'turma'))) { $subSelect->join("public.aula", array("pk_aula" => "{$this->tabela}.fk_aula"))->join("public.grade", array("pk_grade" => "public.aula.fk_grade")); $this->filtrosUEST($subSelect, $where, $filtros); } $this->filtrosPeriodo($where, $filtros); $select = new Select(array("fap" => $subSelect->where($where))); return $this->tg->selectObj($select->order(array("fap_registro_data_evento", "pk_fap_registro"), Order::DSC)); }
/** * Metodo que lista todos os registros do aluno informado feitos pelo coordenador informado. * * @param Aluno $aluno O aluno usado como filtro * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator Um objeto contendo a resposta da consulta * * @throws RegistrosException */ public function deAlunoCoordenador(Coordenador $coordenador, Aluno $aluno, Filtros $filtros) { if (!$aluno->getId()) { throw new RegistrosException('O aluno informado não é válido'); } $where = "public.usuario_aluno.fk_usuario={$aluno->getId()} " . "and {$this->tabela}.fk_usuario_coordenador={$coordenador->getIdEspecifico()} "; //Aplicando os filtros //-Pertiodo if ($filtros->issetVar('de')) { $where .= "and data_evento>='{$filtros->read('de')->format(Date::FORMAT_SQL_DATE)}' "; } if ($filtros->issetVar('ate')) { $where .= "and data_evento<='{$filtros->read('ate')->format(Date::FORMAT_SQL_DATE)}' "; } //-Tipo e subtipo if (!$filtros->issetVar(array('tipo_afa', 'subtipo_afa'))) { //Este trecho bloqueia a exibição de qualquer outro tipo de anotação $where .= 'and (pk_afa_tipo_anotacao=' . Tipo::TIPO_POSITIVO . ' '; $where .= 'or pk_afa_tipo_anotacao=' . Tipo::TIPO_NEGATIVO . ') '; } else { $this->filtrosTipoSub($where, $filtros); } // $select = new Select(array('afa' => $this->select()->distinct('pk_afa_conceito_aluno')->join("public.usuario_aluno", array("pk_usuario_aluno" => "{$this->tg->getTabela()}.fk_usuario_aluno"))->where($where))); return $this->tg->selectObj($select->order('afa.pk_afa_conceito_aluno', Order::DSC)); }
/** * Método que define a filtragem por periodo para a consulta. * O where neste caso deve ser exclusivamente uma string * * @param string $where A clausula de teste da consulta * @param Filtros $filtros Objeto do sistema de filtros * @param string $colData A coluna referente a data a ser usada na filtragem */ protected function filtrosPeriodo(&$where, Filtros $filtros, $colData = 'data_evento') { if (!is_string($where)) { throw new SqlException("A consulta foi mal elaborada", 100); } if ($filtros->getInstance("periodo") instanceof Periodo) { if ($filtros->getInstance("periodo")->getDe() instanceof Date) { $where .= (strlen($where) ? ' and ' : '') . "{$colData}>='{$filtros->getInstance("periodo")->getDe()->format(Date::FORMAT_SQL_DATE)}' "; } if ($filtros->getInstance("periodo")->getAte() instanceof Date) { $where .= (strlen($where) ? ' and ' : '') . "{$colData}<='{$filtros->getInstance("periodo")->getAte()->format(Date::FORMAT_SQL_DATE)}' "; } } else { $where .= strlen($where) ? ' and ' : ''; $where .= "extract(year from {$colData})={$this->anoLetivo} "; } }
/** * Método que lista os anexos cadastrados * @param Filtros $filtros Objeto do sistema de filtros * @return ResultSetHydrator Um objeto contendo os anexos encontrados */ public function listarTodos(Filtros $filtros) { $select = $this->select()->distinct("pk_anexo"); //Filtrando o conteúdo if ($filtros->issetGet(array("livro", "capitulo", "topico"))) { $select->join("apostilas.anexos_vin", array("fk_anexo" => "pk_anexo")); $where = array(); if ($filtros->issetGet("livro")) { $select->join("apostilas.capitulo", array("pk_capitulo" => "fk_capitulo")); $where["fk_livro"] = $filtros->get("livro"); } if ($filtros->issetGet("capitulo")) { $where["fk_capitulo"] = $filtros->get("capitulo"); } if ($filtros->issetGet("topico")) { $where["fk_conteudo"] = $filtros->get("topico"); } $this->defColInteger(array_keys($where)); $select->where($where); } //Retornando return $this->tg->selectObj($select); }
/** * Método que retorna os ensinos associados ao professor informado * * @param Professor $professor O professor usado como filtro * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator */ public function deProfessor(Professor $professor, Filtros $filtros) { $where = "public.turma.ano={$this->anoLetivo} " . "and public.usuario_professor.fk_usuario={$professor->getId()}"; $selectTemp = $this->select()->join("public.grade", array("fk_turma" => "pk_turma"))->join("public.usuario_professor", array("pk_usuario_professor" => "public.grade.fk_usuario_professor")); if ($filtros->issetVar("unidade")) { $where .= "and pk_unidade={$filtros->get("unidade")} "; } $select = new Select(array("ensinos" => $selectTemp->where($where)->order("nome_ensino"))); return $this->tg->selectObj($select->distinct("pk_ensino")); }
/** * Lista todas as disciplinas associadas a um determinado professor. * * @param Professor $professor * @param Filtros $filtros */ public function deProfessor(Professor $professor, Filtros $filtros) { $select = $this->select()->distinct(array('pk_materia'))->join('public.grade', array('fk_materia_vin' => 'pk_materia_vin'))->join('public.usuario_professor', array('pk_usuario_professor' => 'fk_usuario_professor')); //Definições de filtragem $where = array('fk_usuario' => $professor->getId()); $filUnidade = array('unidade', 'ensino', 'serie', 'turma'); $filLivro = array('livro'); //Configurando os filtros do pacote Unidade if ($filtros->issetGet($filUnidade, false)) { $select->join('public.turma', array('fk_serie' => 'public.materia_vin.fk_serie'))->join('public.unidade', array('pk_unidade' => 'public.turma.fk_unidade'))->join('public.serie', array('pk_serie' => 'public.turma.fk_serie'))->join('public.ensinos', array('public.serie.ensino' => 'pk_ensino')); } //Configurando os filtros do pacote Livro if ($filtros->issetGet($filLivro, false)) { $select->join('apostilas.capitulo', array('fk_materia_vin' => 'pk_materia_vin')); } //Filtrando if ($filtros->issetGet('unidade')) { $where['pk_unidade'] = $filtros->get('unidade'); } if ($filtros->issetGet('ensino')) { $where['pk_ensino'] = $filtros->get('ensino'); } if ($filtros->issetGet('serie')) { $where['pk_serie'] = $filtros->get('serie'); } if ($filtros->issetGet('turma')) { $where['pk_turma'] = $filtros->get('turma'); } if ($filtros->issetGet('grupo')) { $where['pk_materia_mae'] = $filtros->get('grupo'); } if ($filtros->issetGet('area_da_natureza')) { $where['pk_area'] = $filtros->get('area_da_natureza'); } if ($filtros->issetGet('livro')) { $where['fk_livro'] = $filtros->get('livro'); } //Mapeando as colunas da filtragem $this->defColInteger(array_keys($where)); //Realizando a consulta return $this->tg->selectObj($select->where($where)); }