Example #1
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 #2
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);
 }