/** * 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; }
/** * 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); }
/** * @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); }
/** * 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); }