/** * Método que lista todas as equipes(materia_mae) cadastradas de acordo com o tipo do usuário 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 Um objeto contendo a resposta da consulta */ public function listarTodas(FiltrosSistema $filtrosSistema = NULL, Kernel_Models_Usuario $usuario = NULL) { $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() . " " : ""; if ($filtrosSistema->validar(array("areasDaNatureza"))) { $inner .= "inner join public.area on pk_area=fk_area "; $where .= "and pk_area=" . $filtrosSistema->getAreasDaNatureza() . " "; } } return $this->select($where, array("public.materia_mae.*"), $inner, array(), array("pk_materia_mae")); }
/** * 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); }
/** * 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); }