/**
  * Método que retorna todos os professores associados a um determinado coordenador
  * @param \Kernel\Modelo\Perfis\Coordenador $coordenador O coordenador de filtro
  * @param \FiltrosSistema $filtros Objeto do sistema de filtros
  * @return \GGE\Lib\Sql\ResultSetHydrator Objeto contendo os professores relacionado ao coordenador
  * @throws \Kernel\Exception\UsuarioException
  */
 public function deCoordenador(\Kernel\Modelo\Perfis\Coordenador $coordenador, \FiltrosSistema $filtros)
 {
     if (!$coordenador->getId()) {
         throw new \Kernel\Exception\UsuarioException("O coordenador informado é inválido");
     }
     $professor = new \Kernel\Modelo\Perfis\Professor();
     $select = new \GGE\Lib\Sql\Querys\Select();
     return $this->gatWayUsuario->selectObj($select->join($professor->getPerfil()->getTabela(), array("pk_usuario" => "{$professor->getPerfil()->getTabela()}.fk_usuario"))->join("public.grade", array("public.grade.fk_usuario_professor" => "pk_usuario_professor"))->join("public.turma", array("pk_turma" => "public.grade.fk_turma"))->join("public.turma_vin", array("public.turma_vin.fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("public.coordenacao_vin.fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "fk_usuario_tipo_vin"))->where("public.usuario_tipo_vin.fk_usuario={$coordenador->getId()}")->limit(1));
 }
 /**
  * Método especialmente criado para o método "distribuicao_de_atendimentos_por_familiares "
  * 
  * @param Coordenador $coordenador
  * 
  * @return \PDOStatement
  */
 public function deCoordenadorDistr(Coordenador $coordenador)
 {
     $query = "SELECT pk_usuario as pk_responsavel, nome, pk_aluno FROM \n    (SELECT distinct on(pk_usuario) alunos.pk_usuario as pk_aluno, alunos.pk_turma FROM \n        (SELECT fk_usuario as pk_usuario, pk_turma FROM public.usuario_aluno \n\tINNER JOIN public.turma on public.turma.pk_turma=public.usuario_aluno.fk_turma\n        ) as alunos  \n    INNER JOIN public.turma_vin on public.turma_vin.fk_turma=pk_turma  \n    INNER JOIN public.coordenacao on public.coordenacao.pk_coordenacao=public.turma_vin.fk_coordenacao  \n    INNER JOIN public.coordenacao_vin on public.coordenacao_vin.fk_coordenacao=pk_coordenacao  \n    INNER JOIN public.usuario_tipo_vin on public.usuario_tipo_vin.pk_usuario_tipo_vin=public.coordenacao_vin.fk_usuario_tipo_vin \n    WHERE fk_usuario={$coordenador->getId()}\n    ) as alunos_de_coordenador  \nINNER JOIN public.usuario_aluno on public.usuario_aluno.fk_usuario=pk_aluno  \nINNER JOIN public.usuario_responsavel_vin on public.usuario_responsavel_vin.fk_usuario_aluno=pk_usuario_aluno  \nINNER JOIN public.usuario_responsavel on public.usuario_responsavel.pk_usuario_responsavel=fk_usuario_responsavel  \nINNER JOIN public.usuario on pk_usuario=public.usuario_responsavel.fk_usuario\norder by nome";
     $prepare = $this->tg->getPDO()->prepare($query);
     $prepare->execute();
     return $prepare;
 }
 /**
  * Método que lista os atendimentos feitos pelo coordenador
  * 
  * @param Coordenador $coordenador O coordenador autor dos atendimentos
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $where = "{$this->tabela}.fk_usuario_inc={$coordenador->getId()}";
     $select = $this->select()->join("public.grade", array("fk_usuario_professor" => "{$this->tabela}.fk_usuario_professor"));
     $this->filtrosPeriodo($where, $filtros);
     $this->filtrosUEST($select, $where, $filtros);
     return $this->tg->selectObj($select->distinct(array("pk_fap_registro"))->where($where)->order(array("pk_fap_registro"), Order::DSC));
 }
 /**
  * Método que retorna os atendimentos a familiares 
  * feitos pelo coordenador informado
  * 
  * @param Coordenador $coordenador O autor dos atendimentos
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator
  */
 public function deCoordenadorAtenFamilia(Coordenador $coordenador, Filtros $filtros)
 {
     $where = "{$this->tabela}.fk_usuario_inc={$coordenador->getId()} " . "and pk_afa_subtipo_anotacao=" . Subtipo::SUB_TIPO_CONVERSA_FAMILIA;
     $select = $this->select();
     $this->filtrosPeriodo($where, $filtros);
     $this->filtrosUEST($select, $where, $filtros, "public.usuario_aluno.fk_turma");
     return $this->tg->selectObj($select->where($where)->distinct("pk_afa_conceito_aluno")->order("pk_afa_conceito_aluno", Order::DSC));
 }
 /**
  * Método que retorna todos os professores associados ao coordenador informado
  * 
  * @param Coordenador $coordenador O coordenador usado como filtro
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator Um objeto contendo a resposta da consulta
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $where = "";
     $select = $this->select()->join("public.grade", array("fk_usuario_professor" => "pk_usuario_professor"))->join("public.materia_vin", array("pk_materia_vin" => "public.grade.fk_materia_vin"));
     $this->filtrosUEST($select, $where, $filtros);
     $this->filtrosAGD($select, $where, $filtros);
     $selOrdem = new Select(array("professores" => $select->order("nome")->where($where)));
     return $this->tg->selectObj($selOrdem->distinct(array("pk_usuario"))->join("public.grade", array("fk_usuario_professor" => "pk_usuario_professor"))->join("public.turma_vin", array("fk_turma" => "public.grade.fk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "public.coordenacao_vin.fk_usuario_tipo_vin"))->where("fk_usuario={$coordenador->getId()}"));
 }
Exemple #6
0
 /**
  * Método que lista apenas os ensinos associados ao coordenador informado
  * 
  * @param Coordenador $coordenador O coordenador usado como filtro
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator Um objeto contendo todos os dados da consulta
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $where = "public.turma.ano={$this->anoLetivo} ";
     $selectTemp = $this->select();
     if ($filtros->issetVar("unidade")) {
         $where .= "and pk_unidade={$filtros->get("unidade")} ";
     }
     $select = new Select(array("ensinos" => $selectTemp->columns(array("pk_turma"))->where($where)->order("nome_ensino")));
     return $this->tg->selectObj($select->join("public.turma_vin", array("fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "public.coordenacao_vin.fk_usuario_tipo_vin"))->where("fk_usuario={$coordenador->getId()}")->distinct("pk_ensino"));
 }
 /**
  * Método que retorna todos os registros do coordenador informado
  * 
  * @param Coordenador $coordenador O coordenador autor do registro
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator Um objeto contendo todos os registros retornados
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $where = "fk_usuario_inc={$coordenador->getId()} ";
     $this->filtrosPeriodo($where, $filtros);
     $this->filtrosTipoSub($where, $filtros);
     if ($filtros->issetGet("professor")) {
         $where .= "and public.usuario_professor.fk_usuario={$filtros->get("professor")} ";
     }
     $select = new Select(array("fap" => $this->select()->where($where)->distinct("pk_fap_registro")));
     return $this->tg->selectObj($select->order("fap_registro_data_evento", Order::DSC));
 }
 /**
  * Método que retorna os responsaveis associados ao coordenador informado
  * 
  * @param Coordenador $coordenador O coordenador usado como filtro
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator Retorna um objeto contendo a resposta da consulta
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $sqlFuncUsuario = new SqlFuncaoUsuario();
     $sqlPerfil = new SqlPerfil();
     $where = "public.usuario_tipo_vin.fk_usuario={$coordenador->getId()}";
     $selAlunos = new Select("public.usuario_aluno");
     $selAlunos->columns(array("pk_aluno" => "public.usuario_aluno.fk_usuario"))->join("public.turma_vin", array("fk_turma" => "public.usuario_aluno.fk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "fk_coordenacao"))->join("public.coordenacao_vin", array("fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "fk_usuario_tipo_vin"));
     $this->filtrosUEST($selAlunos, $where, $filtros, "public.turma_vin.fk_turma");
     $select = new Select(array("alunos" => $selAlunos->where($where)));
     //Retornando a consulta
     return $this->tg->selectObj($select->import($this->select(), array("colunas"))->join("public.usuario_aluno", array("fk_usuario" => "pk_aluno"))->join("public.usuario_responsavel_vin", array("fk_usuario_aluno" => "pk_usuario_aluno"))->join("public.usuario_responsavel", array("pk_usuario_responsavel" => "fk_usuario_responsavel"))->join("public.usuario", array("pk_usuario" => "public.usuario_responsavel.fk_usuario"))->join('public.funcao_usuario', array('pk_funcao_usuario' => "{$this->tg->getTabela()}.fk_funcao_usuario"), Join::LEFT_JOIN)->import($sqlFuncUsuario->select())->join('public.usuario_tipo_vin', array('fk_usuario' => 'pk_usuario'))->join('public.tipo_usuario', array('pk_tipo_usuario' => 'public.usuario_tipo_vin.fk_tipo_usuario'))->import($sqlPerfil->select())->distinct("public.usuario.pk_usuario"));
 }
Exemple #9
0
 /**
  * Método que lista as equipes(grupos de disciplinas)
  * relacionadas ao coordenador informado
  * 
  * @param Coordenador $coordenador
  * @param Filtros $filtros
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $select = new Select(array("grupos" => $this->listarTodosBase($filtros)->order("materia_mae_nome")));
     //Retornando a resposta da consulta
     return $this->tg->selectObj($select->join("public.turma_vin", array("fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "public.coordenacao_vin.fk_usuario_tipo_vin"))->where("fk_usuario={$coordenador->getId()}")->distinct("pk_materia_mae"));
 }
Exemple #10
0
 /**
  * Método que retorna todas as unidades associadas ao coordenador informado
  * @param \Kernel\Modelo\Perfis\Coordenador $coordenador
  * @return ResultSetHydrator Um objeto contendo a resposta da consulta
  */
 public function deCoordenador(\Kernel\Modelo\Perfis\Coordenador $coordenador)
 {
     $query = "select distinct on(pk_unidade) * " . "from {$this->tableGatway->getTabela()} " . "inner join public.coordenacao on pk_unidade=fk_unidade " . "inner join public.coordenacao_vin on pk_coordenacao=fk_coordenacao " . "inner join public.usuario_tipo_vin on pk_usuario_tipo_vin=fk_usuario_tipo_vin " . "inner join public.usuario_coordenador on " . "public.usuario_coordenador.fk_usuario=public.usuario_tipo_vin.fk_usuario " . "where public.usuario_tipo_vin.fk_usuario={$coordenador->getId()} " . "and public.usuario_coordenador.status=" . Status::ATIVO . " " . "and ano=" . Loader::data("config", "site", "ano_letivo");
     return $this->tableGatway->querySelect($query);
 }
Exemple #11
0
 /**
  * Método que lista todas as turmas associadas ao coordenador informado
  * 
  * @param Coordenador $coordenador O coordenador usado como filtros
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator Um objeto contendo as turmas encontradas
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $where = "public.turma.ano={$this->anoLetivo} " . "and public.turma.status=" . Status::ATIVO;
     //Filtrando
     if ($filtros->issetGet("unidade")) {
         $where .= " and pk_unidade={$filtros->get("unidade")}";
     }
     if ($filtros->issetGet("ensino")) {
         $where .= " and pk_ensino={$filtros->get("ensino")}";
     }
     if ($filtros->issetGet("serie")) {
         $where .= " and pk_serie={$filtros->get("serie")}";
     }
     //Retornando a consulta
     $select = new Select(array("turmas" => $this->select()->distinct("pk_turma")->where($where)));
     return $this->tg->selectObj($select->join("public.turma_vin", array("fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "public.coordenacao_vin.fk_usuario_tipo_vin"))->where("fk_usuario={$coordenador->getId()}")->order("turma_nome"));
 }
Exemple #12
0
 /**
  * Método que retorna todas as unidades associadas ao coordenador informado.
  *
  * @param Coordenador $coordenador
  *
  * @return ResultSetHydrator Um objeto contendo a resposta da consulta
  */
 public function deCoordenador(Coordenador $coordenador)
 {
     return $this->tg->selectObj($this->select()->join('public.coordenacao', array('fk_unidade' => 'pk_unidade'))->join('public.coordenacao_vin', array('fk_coordenacao' => 'pk_coordenacao'))->join('public.usuario_tipo_vin', array('pk_usuario_tipo_vin' => 'fk_usuario_tipo_vin'))->join('public.usuario_coordenador', array('fk_usuario' => 'public.usuario_tipo_vin.fk_usuario'))->where(" public.usuario_tipo_vin.fk_usuario={$coordenador->getId()}" . ' and public.usuario_coordenador.status=' . Status::ATIVO . ' and ano=' . $this->anoLetivo)->distinct('pk_unidade'));
 }
Exemple #13
0
 /**
  * Método que retorna um determinado aluno se este estiver associado ao coordenador informado.
  *
  * @param Coordenador $coordenador O coordenador usado como filtro
  * @param Aluno       $aluno       Objeto contendo o indice do aluno e um modelo para aresposta
  *
  * @throws UsuarioException
  *
  * @return Aluno Um objeto contendo todos os dados do aluno
  */
 public function getDeCoordenador(Coordenador $coordenador, Aluno $aluno)
 {
     $select = new Select(array("aluno" => $this->select()->columns(array("pk_turma" => "public.usuario_aluno.fk_turma"))->where("pk_usuario={$aluno->getId()} " . "and public.usuario_aluno.ano_mat='{$this->anoLetivo}' " . "and public.usuario_aluno.status=" . Status::ATIVO)));
     $resultset = $this->tg->selectObj($select->join('public.turma_vin', array('fk_turma' => 'pk_turma'))->join('public.coordenacao', array('pk_coordenacao' => 'fk_coordenacao'))->join('public.coordenacao_vin', array('fk_coordenacao' => 'pk_coordenacao'))->join('public.usuario_tipo_vin', array('pk_usuario_tipo_vin' => 'fk_usuario_tipo_vin'))->where("public.usuario_tipo_vin.fk_usuario={$coordenador->getId()}")->limit(1));
     if (!$resultset->rowCount()) {
         throw new UsuarioException('O aluno não foi encontrado ou não ' . 'esta associado ao coordenador logado');
     }
     return $resultset->fetch($aluno);
 }
 /**
  * Método que lista todas as áreas da natureza relacionadas ao coordenador informado
  * 
  * @param Coordenador $coordenador O coordenador usado como filtros
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator Um objeto contendo a resposta da requisição
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $selectAreas = new Select(array("areas" => $this->listarTodosBase($filtros)->order("area_nome")));
     return $this->tg->selectObj($selectAreas->join("public.turma_vin", array("fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "public.coordenacao_vin.fk_usuario_tipo_vin"))->where("fk_usuario={$coordenador->getId()}")->distinct("pk_area"));
 }