/**
  * 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;
 }
Exemple #2
0
 /**
  * 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;
 }
Exemple #3
0
 /**
  * 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")} ";
     }
 }
Exemple #4
0
 /**
  * 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 gera uma busca basica generica para as diversas listagens
  * 
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return Select
  */
 protected function listarTodosBase(Filtros $filtros)
 {
     $where = "";
     $select = $this->select()->join("public.turma_vin", array("fk_coordenacao" => "pk_coordenacao"))->join('public.turma', array('pk_turma' => "public.turma_vin.fk_turma"))->join('public.serie', array('pk_serie' => 'public.turma.fk_serie'))->join('public.ensinos', array('pk_ensino' => 'public.serie.ensino'));
     //Definindo os filtros especificos
     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'));
     }
     if ($filtros->issetVar('turma')) {
         $this->defWhere($where, 'pk_turma', $filtros->read('turma'));
     }
     if ($filtros->issetGet("funcao_coordenador")) {
         $this->defWhere($where, "public.usuario_coordenador.tipo", $filtros->get("funcao_coordenador"));
     }
     return $select->where($where);
 }
Exemple #6
0
 /**
  * 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"));
 }
Exemple #7
0
 /**
  * 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 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));
 }
Exemple #10
0
 /**
  * Método que adiciona as configurações para a filtragem por área da natureza,
  * frente(grupo) e disciplina.
  * 
  * @param Select  $select       A consulta base a ser configurada
  * @param type    $where        O teste para a consulta
  * @param Filtros $filtros      Objeto do sistema de filtros
  * @param type    $fkmateriaCol A coluna que se liga a tabela de disciplina
  * @param array   $filtrosArray Um array contendo so filtros a serem usados 
  * 
  * @return Select Uma consulta já configurada com os filtros
  */
 protected function filtrosAGD(Select &$select, &$where, Filtros $filtros, $fkmateriaCol = 'public.materia_vin.fk_materia', array $filtrosArray = array('disciplina', 'grupo', 'area_da_natureza'))
 {
     if ($filtros->issetVar($filtrosArray, false)) {
         //Adicionando as tabelas para a filtragem
         $select->join('public.materia', array('pk_materia' => $fkmateriaCol))->join('public.materia_mae', array('pk_materia_mae' => 'public.materia.fk_materia_mae'))->join('public.area', array('pk_area' => 'public.materia_mae.fk_area'));
         //Definindo os filtros especificos
         if ($filtros->issetVar('disciplina')) {
             $this->defWhere($where, 'pk_materia', $filtros->read('disciplina'));
         }
         if ($filtros->issetVar('grupo')) {
             $this->defWhere($where, 'pk_materia_mae', $filtros->read('grupo'));
         }
         if ($filtros->issetVar('area_da_natureza')) {
             $this->defWhere($where, 'pk_area', $filtros->read('area_da_natureza'));
         }
     }
     return $select;
 }