Example #1
0
 /**
  * Método que lista todos os alunos cadastrados e os retorna com todos os dados
  * @param FiltrosSistema $filtrosSistema Objeto contendo os dados para a filtragem
  * @param Kernel_Models_Usuario|NULL $usuario Objeto que permite sobrescrever o controle de acesso e listar
  * as turmas de um determinado usuário
  * @return PDOStatement|boolean Um objeto do tipo PDOStatement contendo todos os alunos ou FALSE em caso de erro
  */
 public function listarTodos(FiltrosSistema $filtrosSistema = NULL, Kernel_Models_Usuario $usuario = NULL)
 {
     //Definições padrão
     $where = "ano_mat='" . Loader::data("config", "site", "ano_letivo") . "' " . "and public.usuario_aluno.status=1 ";
     $inner = "inner join public.usuario_aluno on " . "public.usuario.pk_usuario=public.usuario_aluno.fk_usuario ";
     $inner .= "inner join public.turma on " . "public.turma.pk_turma=public.usuario_aluno.fk_turma ";
     $inner .= "inner join public.serie on " . "public.serie.pk_serie=public.turma.fk_serie ";
     //Controlle de acesso
     if (is_null($usuario)) {
         $id = $this->usuarioLogado->get_idUsuario();
         $tipo = $this->usuarioLogado->get_tipoUsuarioAtivo()->get_idTipoUsuario();
     } else {
         //Sobreescrevendo o controle de acesso
         $id = $usuario->getId();
         $tipo = $usuario->getTipo();
     }
     switch ($tipo) {
         case Kernel_Models_TiposUsuario::TIPO_COORDENADOR:
             //Coordenador(a)
             $inner .= "inner join public.turma_vin on public.turma_vin.fk_turma=pk_turma ";
             $inner .= "inner join public.coordenacao on " . "public.coordenacao.pk_coordenacao=public.turma_vin.fk_coordenacao ";
             $inner .= "inner join public.coordenacao_vin on " . "public.coordenacao_vin.fk_coordenacao=pk_coordenacao ";
             $inner .= "inner join public.usuario_tipo_vin on pk_usuario_tipo_vin=fk_usuario_tipo_vin ";
             $where .= "and public.usuario_tipo_vin.fk_usuario={$id} ";
             break;
         case Kernel_Models_TiposUsuario::TIPO_ALUNO:
             //Aluno(a)
             break;
         case Kernel_Models_TiposUsuario::TIPO_RESPONSAVEL:
             //Responsável
             $dependentes = array();
             $pers = $this->usuarioLogado->get_tipoUsuarioAtivo()->get_personalizacoes();
             foreach ($pers as $row) {
                 foreach ($row->get_dependentes() as $aluno) {
                     array_push($dependentes, $aluno->get_dep_pk_usuario_aluno());
                 }
             }
             $where .= "and pk_usuario_aluno=" . implode("or pk_usuario_aluno=", $dependentes);
             $where .= " ";
             break;
         case Kernel_Models_TiposUsuario::TIPO_PROFESSOR:
             //Professor(a)
             $where .= "and public.usuario_professor.fk_usuario={$id} ";
             $inner = "inner join public.grade on " . "public.grade.fk_turma=" . "public.turma.pk_turma ";
             $inner .= "inner join public.usuario_professor on " . "public.usuario_professor.pk_usuario_professor=" . "public.grade.fk_usuario_professor ";
             break;
         default:
             break;
     }
     //Definindo os filtros
     if ($filtrosSistema instanceof FiltrosSistema) {
         $where .= $filtrosSistema->validar(array("unidade")) ? "and fk_unidade=" . $filtrosSistema->getUnidade() . " " : "";
         $where .= $filtrosSistema->validar(array("ensino")) ? "and ensino=" . $filtrosSistema->getEnsino() . " " : "";
         $where .= $filtrosSistema->validar(array("serie")) ? "and fk_serie=" . $filtrosSistema->getSerie() . " " : "";
         $where .= $filtrosSistema->validar(array("turma")) ? "and fk_turma=" . $filtrosSistema->getTurma() . " " : "";
     }
     //Retornando os dados
     return $this->select($where, array("public.usuario.*", "public.usuario_aluno.*", "public.turma.*"), $inner, array(), array("public.usuario.pk_usuario"));
 }
Example #2
0
 /**
  * Método que lista todos os professores de acordo com os filtros informados
  * @param FiltrosSistema $filtrosSsitema Objeto contendo os dados para filtragem
  * @param Kernel_Models_Usuario|NULL $usuario Objeto que permite sobrescrever o controle de acesso e listar
  * as turmas de um determinado usuário
  * @return PDOStatement Um objeto contendo todos os dados da resposta ou FALSE em caso de erro
  */
 public function listarTodos(FiltrosSistema $filtrosSsitema = NULL, Kernel_Models_Usuario $usuario = NULL)
 {
     $where = $inner = "";
     //Controlle de acesso
     if (is_null($usuario)) {
         $id = $this->usuarioLogado->get_idUsuario();
         $tipo = $this->usuarioLogado->get_tipoUsuarioAtivo()->get_idTipoUsuario();
     } else {
         //Sobreescrevendo o controle de acesso
         $id = $usuario->getId();
         $tipo = $usuario->getTipo();
     }
     switch ($tipo) {
         case Kernel_Models_TiposUsuario::TIPO_COORDENADOR:
             //Coordenador(a)
             $inner = "inner join public.turma_vin on public.turma_vin.fk_turma=pk_turma ";
             $inner .= "inner join public.coordenacao on " . "public.coordenacao.pk_coordenacao=public.turma_vin.fk_coordenacao ";
             $inner .= "inner join public.coordenacao_vin on " . "public.coordenacao_vin.fk_coordenacao=pk_coordenacao ";
             $inner .= "inner join public.usuario_tipo_vin on pk_usuario_tipo_vin=fk_usuario_tipo_vin ";
             $where .= "and public.usuario_tipo_vin.fk_usuario={$id} ";
             break;
         case Kernel_Models_TiposUsuario::TIPO_RESPONSAVEL:
             //Responsável
             $and = 0;
             foreach ($this->usuarioLogado->get_tipoUsuarioAtivo()->get_personalizacoes() as $row) {
                 foreach ($row->get_dependentes() as $aluno) {
                     $where .= !$and++ ? "and " : "";
                     $where .= "pk_usuario_aluno=" . $aluno->get_dep_pk_usuario_aluno() . " or ";
                 }
             }
             if (substr($where, -4) == " or ") {
                 $where = substr($where, 0, -4) . " ";
             }
             $inner .= "inner join public.usuario_aluno on " . "public.usuario_aluno.fk_turma=pk_turma ";
             break;
         case Kernel_Models_TiposUsuario::TIPO_PROFESSOR:
             //Professor(a)
             $where .= "and public.usuario_professor.fk_usuario={$id} ";
             break;
         default:
             break;
     }
     $query = "select distinct on (public.usuario.pk_usuario) * " . "from public.usuario_professor " . "inner join public.usuario on " . "public.usuario.pk_usuario=public.usuario_professor.fk_usuario " . "inner join public.grade on " . "public.grade.fk_usuario_professor=public.usuario_professor.pk_usuario_professor " . "inner join public.turma on " . "public.turma.pk_turma=public.grade.fk_turma " . "inner join public.materia_vin on " . "public.materia_vin.pk_materia_vin=public.grade.fk_materia_vin " . "inner join public.materia on " . "public.materia.pk_materia=public.materia_vin.fk_materia " . "inner join public.materia_mae on " . "public.materia.fk_materia_mae=public.materia_mae.pk_materia_mae " . "inner join public.serie on " . "public.turma.fk_serie=public.serie.pk_serie " . "{$inner} " . "where public.turma.ano='" . Loader::data("config", "site", "ano_letivo") . "' " . "and public.usuario_professor.status=1 {$where}";
     //Filtrando
     if ($filtrosSsitema instanceof FiltrosSistema) {
         $query .= $filtrosSsitema->validar(array("unidade")) ? "and public.turma.fk_unidade=" . $filtrosSsitema->getUnidade() . " " : "";
         $query .= $filtrosSsitema->validar(array("ensino")) ? "and public.serie.ensino=" . $filtrosSsitema->getEnsino() . " " : "";
         $query .= $filtrosSsitema->validar(array("serie")) ? "and public.turma.fk_serie=" . $filtrosSsitema->getSerie() . " " : "";
         $query .= $filtrosSsitema->validar(array("turma")) ? "and public.turma.pk_turma=" . $filtrosSsitema->getTurma() . " " : "";
         $query .= $filtrosSsitema->validar(array("equipe")) ? "and public.materia.fk_materia_mae=" . $filtrosSsitema->getEquipe() . " " : "";
         $query .= $filtrosSsitema->validar(array("areasDaNatureza")) ? "and public.materia_mae.area=" . $filtrosSsitema->getAreasDaNatureza() . " " : "";
         $query .= $filtrosSsitema->validar(array("buscar")) ? "and public.usuario.nome=" . $filtrosSsitema->getBuscar() . " " : "";
     }
     return $this->queryStatement($query);
 }
 /**
  * Método que lista todas as areas da natureza cadastradas de acordo com o usuario logado
  * @param FiltrosSistema $filtrosSistema
  * @param Kernel_Models_Usuario|NULL $usuario Objeto que permite sobrescrever o controle de acesso e listar
  * as turmas de um determinado usuário
  * @return PDOStatement Objeto contendo a resposta da consulta
  */
 public function listarTodas(FiltrosSistema $filtrosSistema = NULL, Kernel_Models_Usuario $usuario = NULL)
 {
     $inner = "inner join public.materia_mae on pk_area=fk_area ";
     $inner .= "inner join public.materia on fk_materia_mae=pk_materia_mae ";
     $inner .= "inner join public.materia_vin on public.materia_vin.fk_materia=pk_materia ";
     $inner .= "inner join public.turma on public.turma.fk_serie=public.materia_vin.fk_serie ";
     $inner .= "inner join public.serie on pk_serie=public.turma.fk_serie ";
     $where = "1=1 ";
     //Controlle de acesso
     if (is_null($usuario)) {
         $id = $this->usuarioLogado->get_idUsuario();
         $tipo = $this->usuarioLogado->get_tipoUsuarioAtivo()->get_idTipoUsuario();
     } else {
         //Sobreescrevendo o controle de acesso
         $id = $usuario->getId();
         $tipo = $usuario->getTipo();
     }
     switch ($tipo) {
         case Kernel_Models_TiposUsuario::TIPO_COORDENADOR:
             //Coordenador(a)
             $inner .= "inner join public.turma_vin on public.turma_vin.fk_turma=pk_turma ";
             $inner .= "inner join public.coordenacao on " . "public.coordenacao.pk_coordenacao=public.turma_vin.fk_coordenacao ";
             $inner .= "inner join public.coordenacao_vin on " . "public.coordenacao_vin.fk_coordenacao=pk_coordenacao ";
             $inner .= "inner join public.usuario_tipo_vin on pk_usuario_tipo_vin=fk_usuario_tipo_vin ";
             $where = "public.usuario_tipo_vin.fk_usuario={$id} ";
             break;
         case Kernel_Models_TiposUsuario::TIPO_ALUNO:
             //Aluno(a)
             break;
         case Kernel_Models_TiposUsuario::TIPO_RESPONSAVEL:
             //Responsável
             break;
         case Kernel_Models_TiposUsuario::TIPO_PROFESSOR:
             //Professor(a)
             break;
         default:
             break;
     }
     //Aplicando os filtros
     if ($filtrosSistema instanceof FiltrosSistema) {
         $where .= $filtrosSistema->validar(array("unidade")) ? "and fk_unidade=" . $filtrosSistema->getUnidade() . " " : "";
         $where .= $filtrosSistema->validar(array("ensino")) ? "and ensino=" . $filtrosSistema->getEnsino() . " " : "";
         $where .= $filtrosSistema->validar(array("serie")) ? "and pk_serie=" . $filtrosSistema->getSerie() . " " : "";
         $where .= $filtrosSistema->validar(array("turma")) ? "and pk_turma=" . $filtrosSistema->getTurma() . " " : "";
     }
     return $this->select($where, array("public.area.*"), $inner, array(), array("pk_area"));
 }
Example #4
0
 /**
  * Método que retorna uma string para facilitar a filtragem de periodos
  * para o método "distribuicaoDeRegistros"
  * @param FiltrosSistema $filtrosSistema
  * @return string Uma string contedo os dados para afiltragem dos
  * registros
  */
 private function stringFiltroPeriodo(FiltrosSistema $filtrosSistema)
 {
     $ret = " ";
     if ($filtrosSistema->validar(array("de")) || $filtrosSistema->validar(array("ate"))) {
         if ($filtrosSistema->validar(array("de"))) {
             $ret .= "and data_evento>='" . $filtrosSistema->getDe() . "' ";
         }
         if ($filtrosSistema->validar(array("ate"))) {
             $ret .= "and data_evento<='" . $filtrosSistema->getAte() . "' ";
         }
     } else {
         $ret .= "and extract(year from data_evento)=" . Loader::data("config", "site", "ano_letivo") . " ";
     }
     return $ret;
 }
Example #5
0
<?php

/**
 * Script contendo todos os gets dos filtros
 * @author Servidor
 */
$usuarioParaFiltros = $this->_ci_cached_vars["usuarioParaFiltros"];
if (isset($this->_ci_cached_vars['filtros'])) {
    if ($this->_ci_cached_vars['filtros'] instanceof FiltrosSistema) {
        $filtros = $this->_ci_cached_vars['filtros'];
    }
} else {
    include_once dirname(__FILE__) . '/../../../../application/libraries/FiltrosSistema.php';
    $filtros = new FiltrosSistema();
    $filtros->init($this->_ci_cached_vars['arrayFiltros']);
}
Example #6
0
 /**
  * Método que lista todos os registros exceto os iniciais cadastrados
  * de acorod com os filtros informados
  * @param FiltrosSistema $filtrosSistema Filtros do sistema de filtros
  * @param int|array|boolean $tipo Define como filtro o tipo do registro
  * @param int|array|boolean $subTipo Define como filtro o subtipo
  * @return PDOStatement|boolean Objeto contendo a resposta da consulta ou FALSE em caso de erro
  */
 public function listarTodos(FiltrosSistema $filtrosSistema = NULL, $tipo = FALSE, $subTipo = FALSE)
 {
     //removendo o registro inicial da listagem
     $inner = "";
     $where = "where fap.fap_tipo.pk_fap_tipo!=0 ";
     //Filtrando os valores por tipo e subtipo
     if (is_int($tipo)) {
         $where .= "and pk_fap_tipo={$tipo} ";
     } elseif (is_array($tipo)) {
         if (Arrays::checarValores($tipo, FILTER_VALIDATE_INT)) {
             $where .= "and (pk_fap_tipo=" . implode(" or pk_fap_tipo=", $tipo) . ") ";
         }
     }
     if (is_int($subTipo)) {
         $where .= "and fk_fap_subtipo={$subTipo} ";
     } elseif (is_array($subTipo)) {
         if (Arrays::checarValores($subTipo, FILTER_VALIDATE_INT)) {
             $where .= "and (fk_fap_subtipo=" . implode(" or fk_fap_subtipo=", $subTipo) . ") ";
         }
     }
     //Fintrando os registros
     if ($filtrosSistema instanceof FiltrosSistema) {
         //Filtrando por data
         if ($filtrosSistema->validar(array("de")) || $filtrosSistema->validar(array("ate"))) {
             $where .= $filtrosSistema->validar(array("de")) ? "and data_evento>='" . $filtrosSistema->getDe() . "' " : "";
             $where .= $filtrosSistema->validar(array("ate")) ? "and data_evento<='" . $filtrosSistema->getAte() . "' " : "";
         } else {
             $where .= "and extract(year from data_evento)=" . Loader::data("config", "site", "ano_letivo") . " ";
         }
         //Filtrando por unidade, ensino, série, turma, equipe e etc
         if ($filtrosSistema->validar(array("unidade")) || $filtrosSistema->validar(array("ensino")) || $filtrosSistema->validar(array("serie")) || $filtrosSistema->validar(array("turma")) || $filtrosSistema->validar(array("areasDaNatureza")) || $filtrosSistema->validar(array("equipe"))) {
             $inner .= "inner join public.aula on pk_aula=fk_aula ";
             $inner .= "inner join public.grade on pk_grade=fk_grade ";
             $inner .= "inner join public.turma on pk_turma=fk_turma ";
             $inner .= "inner join public.serie on pk_serie=fk_serie ";
         }
         if ($filtrosSistema->validar(array("unidade"))) {
             $where .= "and fk_unidade=" . $filtrosSistema->getUnidade() . " ";
         }
         if ($filtrosSistema->validar(array("ensino"))) {
             $where .= "and ensino=" . $filtrosSistema->getEnsino() . " ";
         }
         if ($filtrosSistema->validar(array("serie"))) {
             $where .= "and pk_serie=" . $filtrosSistema->getSerie() . " ";
         }
         if ($filtrosSistema->validar(array("turma"))) {
             $where .= "and pk_turma=" . $filtrosSistema->getTurma() . " ";
         }
         if ($filtrosSistema->validar(array("areasDaNatureza")) || $filtrosSistema->validar(array("equipe"))) {
             $inner .= "inner join public.materia_vin on public.turma.fk_serie=public.materia_vin.fk_serie ";
             $inner .= "inner join public.materia on pk_materia=fk_materia ";
             $inner .= "inner join public.materia_mae on fk_materia_mae=pk_materia_mae ";
         }
         if ($filtrosSistema->validar(array("areasDaNatureza"))) {
             $inner .= "inner join public.area on pk_area=fk_area ";
             $where .= "and pk_area=" . $filtrosSistema->getAreasDaNatureza() . " ";
         }
         if ($filtrosSistema->validar(array("equipe"))) {
             $where .= "and pk_materia_mae=" . $filtrosSistema->getEquipe() . " ";
         }
     }
     $query = "select fap.fap_registro.*, fap.fap_subtipo.*, fap.fap_tipo.* " . "from fap.fap_registro " . "inner join fap.fap_subtipo on " . "fap.fap_subtipo.pk_fap_subtipo=fap.fap_registro.fk_fap_subtipo " . "inner join fap.fap_tipo on " . "fap.fap_tipo.pk_fap_tipo=fap.fap_subtipo.fk_fap_tipo " . "inner join public.usuario on " . "public.usuario.pk_usuario=fap.fap_registro.fk_usuario_inc " . "{$inner} " . "{$where} ";
     return $this->queryStatement($query);
 }
Example #7
0
 /**
  * Método que lista e filtra os coordenadores cadastrados(Método temporário até que seja feito um ACL correto)
  * @param FiltrosSistema $filtrosSistema
  * @param Kernel_Models_Usuario|NULL $usuario Objeto que permite sobrescrever o controle de acesso e listar
  * as turmas de um determinado usuário
  * @return PDOStatement
  */
 public function listarTodos(FiltrosSistema $filtrosSistema = NULL, Kernel_Models_Usuario $usuario = NULL)
 {
     $where = $inner = "";
     $inner .= "inner join public.coordenacao_vin on fk_usuario_tipo_vin=pk_usuario_tipo_vin ";
     $inner .= "inner join public.coordenacao on pk_coordenacao=fk_coordenacao ";
     $inner .= "inner join public.turma_vin on public.turma_vin.fk_coordenacao=pk_coordenacao ";
     if ($filtrosSistema instanceof FiltrosSistema) {
         $inner .= "inner join public.turma on public.turma_vin.fk_turma=pk_turma ";
         //
         $where .= $filtrosSistema->validar(array("unidade")) ? "and public.coordenacao.fk_unidade=" . $filtrosSistema->getUnidade() . " " : "";
         $where .= $filtrosSistema->validar(array("serie")) ? "and public.turma.fk_serie=" . $filtrosSistema->getSerie() . " " : "";
         $where .= $filtrosSistema->validar(array("turma")) ? "and public.turma_vin.fk_turma=" . $filtrosSistema->getTurma() . " " : "";
         $where .= $filtrosSistema->validar(array("funcao")) ? "and fk_funcao_usuario=" . $filtrosSistema->getFuncao() . " " : "";
     }
     //Controlle de acesso
     if (is_null($usuario)) {
         $id = $this->usuarioLogado->get_idUsuario();
         $tipo = $this->usuarioLogado->get_tipoUsuarioAtivo()->get_idTipoUsuario();
     } else {
         //Sobreescrevendo o controle de acesso
         $id = $usuario->getId();
         $tipo = $usuario->getTipo();
     }
     switch ($tipo) {
         case Kernel_Models_TiposUsuario::TIPO_RESPONSAVEL:
             //Responsável
             $and = 0;
             foreach ($this->usuarioLogado->get_tipoUsuarioAtivo()->get_personalizacoes() as $row) {
                 foreach ($row->get_dependentes() as $aluno) {
                     $where .= !$and++ ? "and " : "";
                     $where .= "pk_usuario_aluno=" . $aluno->get_dep_pk_usuario_aluno() . " or ";
                 }
             }
             if (substr($where, -4) == " or ") {
                 $where = substr($where, 0, -4) . " ";
             }
             $inner .= "inner join public.usuario_aluno on " . "public.usuario_aluno.fk_turma=public.turma_vin.fk_turma ";
             break;
         default:
             break;
     }
     $query = "select distinct on(pk_usuario) * from public.usuario " . "left join public.funcao_usuario on fk_funcao_usuario=pk_funcao_usuario ";
     $query .= "inner join public.usuario_tipo_vin on fk_usuario=pk_usuario ";
     $query .= "inner join public.tipo_usuario on pk_tipo_usuario=fk_tipo_usuario " . "{$inner} ";
     $query .= "where fk_tipo_usuario=" . $this->getTipo() . " " . $where;
     return $this->queryStatement($query);
 }
Example #8
0
 /**
  * Método que lista todos os usuários cadastrados
  * @param FiltrosSistema $filtrosSistema
  * @param int $tipo Define a filtragem por tipo
  * @return PDOStatement|boolean Retorna um objeto do tipo PDOStatement ou FALSE em caso de erro
  */
 public function listarTodos(FiltrosSistema $filtrosSistema = NULL)
 {
     $query = "select * from public.usuario " . "left join public.funcao_usuario on fk_funcao_usuario=pk_funcao_usuario ";
     if ($this->getTipo()) {
         $query .= "inner join public.usuario_tipo_vin on fk_usuario=pk_usuario ";
         $query .= "inner join public.tipo_usuario on pk_tipo_usuario=fk_tipo_usuario ";
         $query .= "where fk_tipo_usuario=" . $this->getTipo();
     }
     //Filtrando os usuários
     if ($filtrosSistema instanceof FiltrosSistema) {
         $query .= $filtrosSistema->validar(array("funcao")) ? "and fk_funcao_usuario=" . $filtrosSistema->getFuncao() . " " : "";
     }
     return $this->queryStatement($query);
 }
Example #9
0
 /**
  * @param Kernel_Models_Usuario $usuario        O usuário de destino do chamado
  * @param int                   $status         Define se deve filtrar por status
  * @param FiltrosSistema        $filtrosSistema
  *
  * @return PDOStatement|bool Retorna um objeto contendo a resposta da consulta ou FALSE em caso de erro
  */
 public function listarTodasPara(Kernel_Models_Usuario $usuario, $status = false, FiltrosSistema $filtrosSistema = null)
 {
     $inner = 'inner join public.usuario on pk_usuario=user_insert ';
     $inner .= 'inner join public.usuario_tipo_vin on ' . 'fk_tipo_usuario=tipo_usuario_insert and fk_usuario=user_insert ';
     $where = 'destinatario=' . $usuario->getId() . ' ' . 'and destinatario_tipo=' . $usuario->getTipo() . ' ';
     $where .= is_int($status) ? "and public.helpdesk.status={$status} " : '';
     if ($filtrosSistema instanceof FiltrosSistema) {
         $where .= $filtrosSistema->validar(array('de')) ? 'and dt_insert>=' . $filtrosSistema->getDe() . ' ' : '';
         $where .= $filtrosSistema->validar(array('ate')) ? 'and dt_insert<=' . $filtrosSistema->getAte() . ' ' : '';
     }
     $colunas = array('public.helpdesk.*', 'public.usuario.nome as responsavel_nome');
     return $this->select($where, $colunas, $inner);
 }
Example #10
0
 /**
  * Método que limpa o nome da série de acordo com os filtros selecionados
  * @param FiltrosSistema $filtrosSistema Objeto referente ao sistema de filtros do sistema
  * @return string O nome da série com o nome limpo
  */
 public function nomeLimpo(FiltrosSistema $filtrosSistema)
 {
     $tmpNome = $this->serie_nome;
     if ($filtrosSistema->validar(array("ensino"))) {
         $tmpNome = str_replace(array(" do Ens. Fundamental", " do Ens. Médio"), array("", ""), $tmpNome);
     }
     return $tmpNome;
 }
Example #11
0
 /**
  * Método que retorna todas as anotações feitas pelo professor informado
  * @param Kernel_Models_Professor $professor
  * @param int|array|boolean O código do tipo do registro ou array de códigos. Informe FALSE para ignorar
  * @param int|array|boolean O código do subtipo do registro ou array de códigos. Informe FALSE para ignorar
  * @param FiltrosSistema $filtrosSistema Objeto contendo os filtros do sistema de filtros
  * @return PDOStatement|boolean Objeto contendo a resposta da consulta ou FALSE em caso de erro
  * @throws Exception Gera uma exceção ao introduzir dados inválidos,
  * como um professor não instanciado e etc
  */
 public function getAfaDeProfessor(Kernel_Models_Professor $professor, $tipo = FALSE, $subTipo = FALSE, FiltrosSistema $filtrosSistema = NULL)
 {
     $query = "select distinct on(afa.afa_conceito_aluno.pk_afa_conceito_aluno)" . "afa.afa_conceito_aluno.*, afa.afa_tipo_anotacao.*, " . "afa.afa_subtipo_anotacao.*, pk_turma, " . "public.usuario.pk_usuario as pk_aluno, " . "public.usuario_aluno.pk_usuario_aluno, " . "public.usuario.nome as aluno_nome, " . "public.turma.turma_nome " . "from afa.afa_conceito_aluno " . "inner join afa.afa_subtipo_anotacao on " . "pk_afa_subtipo_anotacao=fk_afa_subtipo_anotacao " . "inner join afa.afa_tipo_anotacao on " . "pk_afa_tipo_anotacao=fk_afa_tipo_anotacao " . "inner join public.aula on " . "public.aula.pk_aula=fk_aula " . "inner join public.usuario_professor on " . "pk_usuario_professor=public.aula.fk_usuario_professor " . "left join public.usuario_aluno on " . "pk_usuario_aluno=afa.afa_conceito_aluno.fk_usuario_aluno " . "left join public.usuario on " . "pk_usuario=public.usuario_aluno.fk_usuario " . "left join public.turma on " . "pk_turma=public.usuario_aluno.fk_turma " . "where public.usuario_professor.fk_usuario=" . $professor->getId() . " ";
     //Filtrando por tipo e subtipo
     if (is_int($tipo)) {
         $query .= "and pk_afa_tipo_anotacao={$tipo} ";
     } elseif (is_array($tipo)) {
         if (Arrays::checarValores($tipo, FILTER_VALIDATE_INT)) {
             $query .= "and (pk_afa_tipo_anotacao=" . implode(" or pk_afa_tipo_anotacao=", $tipo) . ") ";
         }
     }
     if (is_int($subTipo)) {
         $query .= "and pk_afa_subtipo_anotacao={$subTipo} ";
     } elseif (is_array($subTipo)) {
         if (Arrays::checarValores($subTipo, FILTER_VALIDATE_INT)) {
             $query .= "and (pk_afa_subtipo_anotacao=" . implode(" or pk_afa_subtipo_anotacao=", $subTipo) . ") ";
         }
     }
     //Aplicando os filtros
     if ($filtrosSistema instanceof FiltrosSistema) {
         if ($filtrosSistema->validar(array("de")) || $filtrosSistema->validar(array("ate"))) {
             $query .= $filtrosSistema->validar(array("de")) ? "and afa.afa_conceito_aluno.data_evento>='" . $filtrosSistema->getDe() . "' " : "";
             $query .= $filtrosSistema->validar(array("ate")) ? "and afa.afa_conceito_aluno.data_evento>='" . $filtrosSistema->getAte() . "' " : "";
         } else {
             $query .= "extract(year from afa.afa_conceito_aluno.data_evento)=" . Loader::data("config", "site", "ano_letivo") . " ";
         }
     }
     //Ordenando
     $query .= "order by(afa.afa_conceito_aluno.pk_afa_conceito_aluno) desc";
     return $this->queryStatement($query);
 }
Example #12
0
 /**
  * Método que retorna o nome da turma limpo de acordo com os filtros selecionados
  * @param FiltrosSistema $filtrosSistema Objeto referente ao sistema de filtros do sistema
  * @return string O nome da turma sem os caracteres já exibidos em outros filtros
  */
 public function nomeLimpo(FiltrosSistema $filtrosSistema)
 {
     $nomeTmp = $this->turma_nome;
     if ($filtrosSistema->validar(array("unidade"))) {
         $nomeTmp = str_replace(array("GGE 1", "GGE 2", "GGE 3", "GGE 4"), array("", "", "", ""), $nomeTmp);
     }
     if ($filtrosSistema->validar(array("serie"))) {
         $nomeTmp = str_replace(array(" do Ens. Médio", " do Ens. Fund.", " do Ens. Fundamental", "Infantil 1", "Infantil 2", "Infantil 3", "Infantil 4", "Infantil 5", "Integral Fundamental - "), array("", "", "", "", "", "", "", "", ""), $nomeTmp);
     }
     if ($filtrosSistema->validar(array("ensino"))) {
         $nomeTmp = str_replace(array(" do Ens. Médio", " do Ens. Fund."), array("", ""), $nomeTmp);
     }
     if ($filtrosSistema->validar(array("unidade")) || $filtrosSistema->validar(array("serie"))) {
         $nomeTmp = str_replace(array(" - "), array(" "), $nomeTmp);
     }
     return $nomeTmp;
 }