コード例 #1
0
ファイル: Teste.php プロジェクト: andersongimino/area51
 /**
  * Construtor
  */
 public function __construct($tabela)
 {
     parent::__construct();
     $this->tabela = $tabela;
     $this->ano = (int) Loader::data("config", "site", "ano_letivo");
     $this->nota = 0.0;
 }
コード例 #2
0
ファイル: Unidade.php プロジェクト: andersongimino/area51
 /**
  * Método que lista as unidades cadastradas de acordo com o código de vinculo informado
  * @param FiltrosSistema $filtrosSistema Objeto contendo os filtros do sistema de filtros
  * @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 Objeto contendo toda a resposta ou FALSE em caso de erro
  */
 public function listarTodas(FiltrosSistema $filtrosSistema = NULL, Kernel_Models_Usuario $usuario = NULL)
 {
     $ano = Loader::data("config", "site", "ano_letivo");
     //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.coordenacao on pk_unidade=fk_unidade ";
             $inner .= "inner join public.coordenacao_vin on pk_coordenacao=fk_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)
             $where = "public.turma.ano={$ano} ";
             $inner = "inner join public.turma on public.turma.fk_unidade=pk_unidade ";
             /////
             $where .= "and fk_usuario={$id} ";
             $inner .= "inner join public.usuario_aluno on " . "public.usuario_aluno.fk_turma=pk_turma";
             break;
         case Kernel_Models_TiposUsuario::TIPO_RESPONSAVEL:
             //Responsável
             $where = "public.turma.ano={$ano} ";
             $inner = "inner join public.turma on public.turma.fk_unidade=pk_unidade ";
             /////
             $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 = "public.turma.ano={$ano} ";
             $inner = "inner join public.turma on public.turma.fk_unidade=pk_unidade ";
             /////
             $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:
             $where = $inner = "";
             break;
     }
     return $this->select($where, array("public.unidade.*"), $inner, array(), array("public.unidade.pk_unidade"));
 }
コード例 #3
0
 /**
  * Método que retorna todas as materias com aulas amanhã
  * @param Turma $turma A turma a ser consultada
  * @return array Um array contendo as matérias com aulas amanhã
  */
 public function turmaAulasAmanha(Turma $turma)
 {
     $tableGatway = new TableGatway(new Disciplina(), "public.turma");
     $ano = Loader::data("config", "site", "ano_letivo");
     $dia = date("N", strtotime("+1 day"));
     $query = "select distinct on(fk_materia) * " . "from public.turma " . "inner join public.grade_horario on fk_turma=public.turma.pk_turma " . "inner join public.grade on pk_grade_horario=fk_grade_horario " . "inner join public.materia_vin on pk_materia_vin=fk_materia_vin " . "inner join public.materia on pk_materia=fk_materia " . "where public.turma.ano={$ano} " . "and dia={$dia} " . "and pk_turma={$turma->getId()}";
     return $tableGatway->querySelect($query);
 }
コード例 #4
0
ファイル: Filtros.php プロジェクト: andersongimino/area51
 /**
  * Construtor.
  */
 public function __construct($use = INPUT_GET)
 {
     $this->use = $use;
     $this->initGets = array();
     $this->initPosts = array();
     $this->getsSetados = array();
     $this->tipos = Loader::data('config', 'filtros_sistema', 'tipos');
     $this->instances = array();
 }
コード例 #5
0
ファイル: SqlSerie.php プロジェクト: andersongimino/area51
 /**
  * Método que retorna a série em que o aluno estuda
  * @param Aluno $aluno O aluno usado como filtro
  * @return Serie A série em que o aluno informado estuda
  */
 public function deAluno(Aluno $aluno)
 {
     $select = new Select();
     $serie = $this->tableGatway->selectObj($select->distinct("pk_serie")->join("public.turma", array("fk_serie" => "pk_serie"))->join("public.usuario_aluno", array("pk_turma" => "fk_turma"))->join("public.ensinos", array("ensino" => "pk_ensino"))->join("public.curso", array("pk_curso" => "fk_curso"))->where(array("fk_usuario" => $aluno->getId(), "ano" => \GGE\Lib\Controller\Loader::data("config", "site", "ano_letivo")))->limit(1));
     if (!$serie->rowCount()) {
         throw new Exception("Não foi encontrada nenhuma série para o aluno informado");
     }
     return $serie->fetch();
 }
コード例 #6
0
ファイル: Pdf2Jpg.php プロジェクト: andersongimino/area51
 /**
  * Construtor
  * @param string $pdf Caso seja informado, inicializa o objeto com o arquivo PDF já definido
  * @param string $destino Define a pasta de destino do resultado da conversão. Opcional
  */
 public function __construct($pdf = false, $destino = false)
 {
     if (is_string($pdf)) {
         $this->setPdf($pdf);
     }
     if (is_string($destino)) {
         $this->setDestino($destino);
     }
     $this->mashapeKey = \GGE\Lib\Controller\Loader::data("config", "pdf2jpg", "X-Mashape-Key");
 }
コード例 #7
0
ファイル: SqlTurma.php プロジェクト: andersongimino/area51
 /**
  * Método que retorna a turma que o aluno estuda
  * @param Aluno $aluno
  * @return Turma Um objeto do tipo turma contendo o resultado da consulta
  * @throws Exception
  */
 public function deALuno(Aluno $aluno)
 {
     $ano = \GGE\Lib\Controller\Loader::data("config", "site", "ano_letivo");
     $select = new Select();
     $this->tableGatway->defineColuna("fk_usuario", new ResultSetMap(Column::INTEGER));
     $this->tableGatway->defineColuna("ano", new ResultSetMap(Column::VARCHAR));
     $turmaResultSet = $this->tableGatway->selectObj($select->join("public.usuario_aluno", array("pk_turma" => "fk_turma"))->where("fk_usuario={$aluno->getId()} " . "and ano={$ano} " . "and public.usuario_aluno.status=" . \GGE\Lib\Models\Status::ATIVO . " " . "and public.turma.status=" . \GGE\Lib\Models\Status::ATIVO)->limit(1));
     if (!$turmaResultSet->rowCount()) {
         throw new TurmaException("Não foi encontrada nenhuma turma associada ao aluno informado");
     }
     return $turmaResultSet->fetch();
 }
コード例 #8
0
ファイル: AlunoModels.php プロジェクト: andersongimino/area51
 /**
  * Método que retorna o código de associação do aluno com uma turma avançada
  * @param public_usuario_aluno $aluno Objeto referente ao aluno
  * @return int|boolean O código de associação do aluno com a turma avançada ou FALSE caso não encontre
  * @throws Exception Caso o aluno não esteja devidamente instanciado
  */
 public function pkAlunoTurmaAvancada()
 {
     $query = "SELECT distinct on(fk_usuario_aluno) " . "turmas_extras.te_alunos_vin.fk_usuario_aluno " . "FROM turmas_extras.te_alunos_vin, turmas_extras.te_aulas, alunos_view " . "WHERE turmas_extras.te_alunos_vin.fk_usuario_aluno=alunos_view.pk_usuario_aluno " . "and turmas_extras.te_alunos_vin.fk_turma=turmas_extras.te_aulas.fk_turma " . "and alunos_view.ano_mat='" . Loader::data("config", "site", "ano_letivo") . "' " . "and fk_te_tipo=" . Kernel_Models_Turma::EXTRA_COD_METAS_AVA . " " . "and alunos_view.pk_usuario=" . $this->getId();
     $retorno = FALSE;
     $ret = $this->queryStatement($query);
     if ($ret) {
         if ($ret->rowCount()) {
             $ret = $ret->fetchObject();
             $retorno = (int) $ret->fk_usuario_aluno;
         }
     }
     return $retorno;
 }
コード例 #9
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;
 }
コード例 #10
0
ファイル: Afa.php プロジェクト: andersongimino/area51
 /**
  * Método que retorna um array contendo os dados resultantes da consulta ao banco organizados em um array
  * @param int $nivel Variavel que determina qual o nível buscar, 0 para fundamental e 1 para nivél médio
  * @param bootean|int $unidade O indice da unidade a ser usada como filtro
  * @param DateTime O ano referente a filtragem
  * @return array Um array contendo todas as séries organizadas em um array com os scores e os subtipos
  */
 public function buscarAvaliacoes($nivel = FALSE, $unidade = FALSE, $ano = FALSE)
 {
     ini_set('date.timezone', 'America/Recife');
     $anoFiltro = is_int($ano) ? $ano : Loader::data("config", "site", "ano_letivo");
     $data1 = new DateTime("{$anoFiltro}-02-01");
     $resposta = $this->buscar_avaiacoes($nivel, $unidade, $ano);
     if (!$resposta) {
         return FALSE;
     }
     $arrayRet = array();
     while ($row = $resposta->fetchObject()) {
         $arrayRet[$row->pk_serie]['qt'] = isset($arrayRet[$row->pk_serie]['qt']) ? $arrayRet[$row->pk_serie]['qt'] + 1 : 1;
         $this->listarAvaliacoesPreencheArray($arrayRet, $row, $data1);
         $arrayRet[$row->pk_serie]['serie_nome'] = $row->serie_nome;
     }
     return $arrayRet;
 }
コード例 #11
0
ファイル: Materia.php プロジェクト: andersongimino/area51
 /**
  * Método que lista todas as matérias cadastradas de acordo com os filtros definidos
  * @param FiltrosSistema $filtrosSistema Objeto do sistema de filtros
  * @return array Um array contedo todas as matérias retornadas pela consulta
  */
 public function listarTodas(FiltrosSistema $filtrosSistema = null)
 {
     $order = array('"public".materia.materia_nome');
     $distinct = array('"public".materia.materia_nome');
     $where = '"public".turma.ano=' . Loader::data("config", "site", "ano_letivo");
     $where .= ' and "public".materia.fk_materia_mae is not null';
     $where .= is_int($unidade) ? ' and "public".turma.fk_unidade=' . $unidade : '';
     $where .= is_int($serie) ? ' and "public".turma.fk_serie=' . $serie : '';
     $where .= is_int($turma) ? ' and "public".turma.pk_turma=' . $turma : '';
     $where .= is_int($ensino) ? ' and "public".serie.ensino=' . $ensino : '';
     $where .= is_int($frente) ? ' and "public".materia.fk_materia_mae=' . $frente : '';
     $where .= is_int($area) ? ' and "public".materia_mae.area=' . $area : '';
     $inner = 'inner join "public".materia_vin on "public".materia.pk_materia="public".materia_vin.fk_materia ';
     $inner .= 'inner join "public".turma on "public".turma.fk_serie="public".materia_vin.fk_serie ';
     $inner .= 'inner join "public".serie on "public".turma.fk_serie="public".serie.pk_serie ';
     $inner .= 'inner join "public".materia_mae on "public".materia.fk_materia_mae="public".materia_mae.pk_materia_mae ';
     return $this->select($where, array("*"), $inner, $order, $distinct)->fetchAll(PDO::FETCH_CLASS, "Kernel_Models_Materia");
 }
コード例 #12
0
ファイル: SqlBase.php プロジェクト: andersongimino/area51
 /**
  * Construtor.
  *
  * @param Model       $model     O modelo para retorno das consultas
  * @param string      $tabela    A tabela das consultas
  * @param string|bool $sequencia A sequência de retorno do comando insert
  */
 public function __construct(Model $model, $tabela, $sequencia = false)
 {
     $this->colInt = new ResultSetMap(Column::INTEGER);
     $this->colVarchar = new ResultSetMap(Column::VARCHAR);
     $this->anoLetivo = (int) Loader::data('config', 'site', 'ano_letivo');
     $this->tabela = $tabela;
     $this->tg = new TableGatway($model, $tabela, $sequencia);
     //Definindo o usuário logado para uso interno dos métodos
     $this->usuario = new Usuario();
     $sessaoId = Loader::data('config', 'session', 'id_usuario');
     if (isset($_SESSION[$sessaoId])) {
         $tmp = unserialize($_SESSION[$sessaoId]);
         if ($tmp instanceof \Usuario) {
             $perfil = $tmp->get_tipoUsuarioAtivo()->get_idTipoUsuario();
             $this->usuario->setId((int) $tmp->get_idUsuario());
             $this->usuario->setPerfil(new Perfil((int) $perfil));
         }
     }
 }
コード例 #13
0
 /**
  * Método que lista os professores de acordo com os filtros informados e adiciona o número total de faltas de cada um
  * @param int $unidade
  * @param int $ensino
  * @param int $serie
  * @param int $turma
  * @param int $area
  * @param int $frente
  * @param int $disciplina
  * @param int $periodoDe
  * @param int $periodoAte
  * @return PDOStatement
  */
 public function listarPorUnidadeEnsinoSerieTurmaFrente($unidade = FALSE, $ensino = FALSE, $serie = FALSE, $turma = FALSE, $area = FALSE, $frente = FALSE, $disciplina = FALSE, $periodoDe = FALSE, $periodoAte = FALSE)
 {
     $anoLetivo = Loader::data("config", "site", "ano_letivo");
     $where = "public.usuario_professor.status=1 and public.turma.ano='{$anoLetivo}'";
     $where .= " and public.usuario.nome!='Integral'";
     $where .= $unidade ? ' and public.turma.fk_unidade=' . $unidade : '';
     $where .= is_int($ensino) ? ' and "public".serie.ensino = ' . $ensino : '';
     $where .= $serie ? ' and public.turma.fk_serie=' . $serie : '';
     $where .= $turma ? ' and public.turma.pk_turma=' . $turma : '';
     $where .= $frente ? ' and "public".materia.fk_materia_mae=' . $frente : '';
     $where .= $area ? ' and "public".materia_mae.area=' . $area : '';
     $where .= $disciplina ? ' and "public".materia.pk_materia=' . $disciplina : '';
     $inner = 'inner join "public".usuario on "public".usuario.pk_usuario="public".usuario_professor.fk_usuario ';
     $inner .= 'inner join "public".grade on "public".grade.fk_usuario_professor="public".usuario_professor.pk_usuario_professor ';
     $inner .= 'inner join "public".turma on "public".turma.pk_turma="public".grade.fk_turma ';
     $inner .= 'inner join "public".materia_vin on "public".materia_vin.pk_materia_vin="public".grade.fk_materia_vin ';
     $inner .= 'inner join "public".materia on "public".materia.pk_materia="public".materia_vin.fk_materia ';
     $inner .= 'inner join "public".materia_mae on "public".materia.fk_materia_mae="public".materia_mae.pk_materia_mae ';
     $inner .= 'inner join "public".serie on "public".turma.fk_serie="public".serie.pk_serie';
     $outrasColunas = '(select count(public.aula.pk_aula) from "public".aula ' . 'WHERE "public".aula.fk_usuario_professor="public".usuario_professor.pk_usuario_professor ' . 'and extract (year from "public".aula.data_aula)=\'' . $anoLetivo . '\'' . (Data::validar($periodoDe, 'd/m/Y') && Data::validar($periodoAte, 'd/m/Y') ? ' and "public".aula.data_aula >= \'' . Data::brasilParaSql($periodoDe) . '\' and "public".aula.data_aula <= \'' . Data::brasilParaSql($periodoAte) . '\'' : '') . ') as totalaulas ';
     $distinct = array('"public".usuario.pk_usuario');
     return $this->usuarioProfessor->select($where, array('*', $outrasColunas), $inner, array(), $distinct);
 }
コード例 #14
0
ファイル: Anotacoes.php プロジェクト: andersongimino/area51
 /**
  * Método que lista os responsáveis ligados ao coordendaor informado
  * @param Kernel_Models_Coordenador $coordenador
  * @return PDOStatement Um objeto contendo a resposta da consulta
  */
 public function responsaveis(Kernel_Models_Coordenador $coordenador)
 {
     $query = "SELECT distinct on(pk_usuario)responsavel, " . "pk_usuario as aluno_pk " . "from public.usuario_coordenador " . "inner join public.usuario_tipo_vin on " . "public.usuario_tipo_vin.fk_usuario=public.usuario_coordenador.fk_usuario " . "inner join public.coordenacao_vin on pk_usuario_tipo_vin=fk_usuario_tipo_vin " . "inner join public.turma_vin on " . "public.turma_vin.fk_coordenacao=public.coordenacao_vin.fk_coordenacao " . "inner join public.usuario_aluno on public.usuario_aluno.fk_turma=public.turma_vin.fk_turma " . "inner join public.usuario on pk_usuario=public.usuario_aluno.fk_usuario " . "WHERE public.usuario_coordenador.fk_usuario=" . $coordenador->getId() . " " . "and ano_mat='" . Loader::data("config", "site", "ano_letivo") . "'";
     return $this->queryStatement($query);
 }
コード例 #15
0
ファイル: Afa.php プロジェクト: andersongimino/area51
 /**
  * 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);
 }
コード例 #16
0
 /**
  * Método que gera a URL da página de apresentação da disciplina.
  *
  * @return string Uma URL apontando para a página de apresentação da disciplina
  */
 public function urlApresentacao()
 {
     $urlBase = Loader::data("config", "urls", "sisGGE");
     return "{$urlBase}apresentacao_da_disciplina/{$this->disciplina->getId()}" . "/{$this->serie->getId()}";
 }
コード例 #17
0
 /**
  * Lista todos os dias que a turma informada tem aula
  * @param Turma $turma
  * @return array Um array de objetos contendo os dias que a turma tem aula
  */
 public function turmasAulas(Turma $turma)
 {
     $ano = Loader::data("config", "site", "ano_letivo");
     $query = "select distinct on (dia) *, public.turma.status as turma_status, " . "public.turma.ano as turma_ano " . "from public.turma " . "inner join public.grade_horario on fk_turma=public.turma.pk_turma " . "where public.turma.ano={$ano} and pk_turma={$turma->getId()}";
     return $this->tableGatway->querySelect($query);
 }
コード例 #18
0
 /**
  * Método que retorna os conteúdos do livro informado com o seu andamento
  * @param Livro $livro O livro alvo da busca
  * @param Disciplina $disciplina A disciplina referente ao conteúdo
  * @throws \GGE\Lib\Base\Exception
  */
 public function deLivroComAcompanhamento(Livro $livro, Disciplina $disciplina)
 {
     $select = new Select();
     return $this->tableGatway->selectObj($select->distinct("sequencial_topico")->columns("*, apostilas.acompanhamento.status as topico_status, " . "data_aula as topico_data_aula ")->join("apostilas.capitulo", array("pk_capitulo" => "fk_capitulo"))->join("public.materia_vin", array("fk_materia_vin" => "pk_materia_vin"))->join("public.materia", array("pk_materia" => "fk_materia"))->join("public.materia_mae", array("pk_materia_mae" => "fk_materia_mae"))->join("public.area", array("pk_area" => "fk_area"))->join("apostilas.acompanhamento", array("pk_conteudo" => "fk_conteudo"))->where("fk_livro={$livro->getId()} " . "and pk_materia={$disciplina->getId()} " . "and (status=" . \Kernel\Modelo\Livro\Topico::STATUS_EM_ANDAMENTO . " " . "or status=" . \Kernel\Modelo\Livro\Topico::STATUS_CONCLUIDO . ") " . "and id=(select max(id) from apostilas.acompanhamento " . "where fk_conteudo=pk_conteudo and status!=" . \Kernel\Modelo\Livro\Topico::STATUS_REVISADO . ") " . "and extract(year from data_aula)=" . Loader::data("config", "site", "ano_letivo"))->order("sequencial_topico"));
 }
コード例 #19
0
ファイル: Anexos.php プロジェクト: andersongimino/area51
 /**
  * Método que gera a url para uma imagem do QR code referente ao anexo instanciado
  * @return string A url do QR code
  */
 public function getQr()
 {
     if ($this->getId()) {
         $paginaInterna = Loader::data("config", "urls", "sisGGE") . "conteudos_extras_do_livro/{$this->getId()}";
         $url = "http://chart.apis.google.com/chart?" . "cht=qr&chl={$paginaInterna}&chld=l&chs=300x300";
     } else {
         $url = "";
     }
     return $url;
 }
コード例 #20
0
ファイル: Fap.php プロジェクト: andersongimino/area51
 /**
  * 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);
 }
コード例 #21
0
ファイル: Turma.php プロジェクト: andersongimino/area51
 /**
  * Método que faz a tradução da resposta das consultas para o objeto
  * @param array $dados
  */
 public function exchangeArray(array $dados)
 {
     $this->id = (int) (empty($dados["pk_turma"]) ? 0 : $dados["pk_turma"]);
     $this->status = (bool) (empty($dados["turma_status"]) ? false : $dados["turma_status"]);
     $this->nome = empty($dados["turma_nome"]) ? "" : $dados["turma_nome"];
     $this->ano = (int) (empty($dados["turma_ano"]) ? Loader::data("config", "site", "ano_letivo") : $dados["turma_ano"]);
     $this->serie->exchangeArray($dados);
     $this->unidade->exchangeArray($dados);
 }
コード例 #22
0
 /**
  * Método que lista todos os vídeos cadastrados como anexos dos conteúdos
  * para o aluno informado
  * @param Aluno $aluno O aluno relacionado ao matérial
  * @param int $limit Define o máximo de vídeos a serem retornados
  * @return ResultSetHydrator Um objeto contendo os anexos busacdos
  */
 public function videosAcompanahemto(Aluno $aluno, $limit = 3)
 {
     $tableGatway = new TableGatway(new Anexos(), "apostilas.anexos");
     $sqlAnexos = new SqlAnexos();
     return $tableGatway->selectObj($sqlAnexos->select()->join("apostilas.anexos_vin", array("fk_anexo" => "pk_anexo"))->join("apostilas.acompanhamento", array("fk_conteudo" => "apostilas.anexos_vin.fk_conteudo"))->join("public.usuario_aluno", array("fk_turma" => "apostilas.acompanhamento.fk_turma"))->where("pk_usuario_aluno={$aluno->getIdEspecifico()} " . "and extract(year from data_aula)=" . Loader::data("config", "site", "ano_letivo") . " " . "and apostilas.anexos.tipo=" . Anexos::TIPO_VIDEO)->order("data_aula", Order::DSC)->limit($limit));
 }
コード例 #23
0
ファイル: RegistroFap.php プロジェクト: andersongimino/area51
 /**
  * Método que lista os conceitos do professor
  * @param int $pkUsuarioProfessor
  * @param int $unidade
  * @param int $ensino
  * @param int $serie
  * @param int $turma
  * @param int $area
  * @param int $frente
  * @param int $disciplina
  * @param DateInterval $periodoDe
  * @param DateTime $periodoAte
  * @param int $ano
  */
 public function listarConceitos($pkUsuarioProfessor, $unidade = FALSE, $ensino = FALSE, $serie = FALSE, $turma = FALSE, $area = FALSE, $frente = FALSE, $disciplina = FALSE, $periodoDe = FALSE, $periodoAte = FALSE, $ano = FALSE, $tipoFap = FALSE, array $order = array('fap.fap_registro.pk_fap_registro'), $oderAsc = FALSE)
 {
     if (!$this->fapRegistros instanceof fap_fap_registro) {
         throw new Exception('Invalid object: o objeto informado é inválido');
     }
     $where = 'fap.fap_registro.fk_usuario_professor=' . $pkUsuarioProfessor;
     $where .= ' and "public".usuario_tipo_vin.fk_tipo_usuario!=11';
     $where .= is_int($unidade) ? ' and "public".turma.fk_unidade=' . $unidade : '';
     $where .= is_int($ensino) ? ' and "public".serie.ensino=' . $ensino : '';
     $where .= is_int($serie) ? ' and "public".serie.pk_serie=' . $serie : '';
     $where .= is_int($turma) ? ' and "public".turma.pk_turma=' . $turma : '';
     $where .= is_int($area) ? ' and "public".materia_mae.are=' . $area : '';
     $where .= is_int($disciplina) ? ' and "public".materia.pk_materia=' . $disciplina : '';
     $where .= Data::validar($periodoDe, "d/m/Y") ? ' and fap.fap_registro.data_evento>\'' . Data::brasilParaSql($periodoDe) . '\'' : '';
     $where .= Data::validar($periodoAte, "d/m/Y") ? ' and fap.fap_registro.data_evento<\'' . Data::brasilParaSql($periodoAte) . '\'' : '';
     $where .= !Data::validar($periodoDe, "d/m/Y") && !Data::validar($periodoAte, "d/m/Y") ? ' and extract(year from fap.fap_registro.data_evento)=' . (Data::validar($ano, "Y") ? $ano : Loader::data("config", "site", "ano_letivo")) : '';
     $where .= is_int($tipoFap) ? ' and fap.fap_tipo.pk_fap_tipo=' . $tipoFap : '';
     $inner = 'inner join fap.fap_subtipo on fap.fap_subtipo.pk_fap_subtipo=fap.fap_registro.fk_fap_subtipo ';
     $inner .= 'inner join fap.fap_tipo on fap.fap_tipo.pk_fap_tipo=fap.fap_subtipo.fk_fap_tipo ';
     $inner .= 'inner join "public".usuario on "public".usuario.pk_usuario=fap.fap_registro.fk_usuario_inc ';
     $inner .= 'inner join "public".usuario_tipo_vin on "public".usuario_tipo_vin.fk_usuario="public".usuario.pk_usuario ';
     $inner .= 'inner join "public".tipo_usuario on "public".tipo_usuario.pk_tipo_usuario="public".usuario_tipo_vin.fk_tipo_usuario ';
     /////////////////////////
     $inner .= 'left join "public".coordenacao_vin on "public".coordenacao_vin.fk_usuario_tipo_vin="public".usuario_tipo_vin.pk_usuario_tipo_vin ';
     $inner .= 'left join "public".coordenacao on "public".coordenacao.pk_coordenacao="public".coordenacao_vin.fk_coordenacao ';
     /////////////////////Tabelas usadas para filtragem de conteúdo
     $inner .= 'left join "public".aula on "public".aula.pk_aula=fap.fap_registro.fk_aula ';
     $inner .= 'left join "public".grade on "public".grade.pk_grade="public".aula.fk_grade ';
     $inner .= 'left join "public".turma on "public".turma.pk_turma="public".grade.fk_turma ';
     $inner .= 'left join "public".serie on "public".serie.pk_serie="public".turma.fk_serie ';
     $inner .= 'left join "public".materia_vin on "public".materia_vin.pk_materia_vin="public".grade.fk_materia_vin ';
     $inner .= 'left join "public".materia on "public".materia.pk_materia="public".materia_vin.fk_materia ';
     if (is_int($frente)) {
         #?Apenas se for filtrar por materia mãe
         $where .= ' and "public".materia.fk_materia_mae=' . $frente;
         $inner .= 'left join "public".materia_mae on "public".materia_mae.pk_materia_mae=' . '"public".materia.fk_materia_mae';
     }
     $tmp = $this->fapRegistros->select($where, array(), $inner, $order, array(), 0, 0, $oderAsc);
     return $tmp;
 }
コード例 #24
0
ファイル: SqlUnidade.php プロジェクト: andersongimino/area51
 /**
  * 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);
 }
コード例 #25
0
ファイル: Imagens.php プロジェクト: andersongimino/area51
 /**
  * Método que gera a galeria de imagens para os anexos
  */
 public function galeriaDosAnexos()
 {
     try {
         $sqlAnexo = new \Kernel\Sql\SqlAnexos();
         $imagensQt = 0;
         $anexo = $sqlAnexo->get($this->get("anexo"));
         if ($anexo->getTipo() != Anexos::TIPO_GALERIA) {
             throw new Exception("Esta página não suporta este tipo de anexo");
         }
         $imagens = "";
         $pasta = dirname(__FILE__) . "/../../../uploadArquivos/{$anexo->getNome()}/";
         if (!file_exists($pasta)) {
             throw new Exception("O anexo informado não possue imagens");
         }
         foreach (scandir($pasta) as $arquivo) {
             if ($arquivo != "." && $arquivo != ".." && !is_dir("{$pasta}{$arquivo}")) {
                 $imagensQt++;
                 $imagens .= $this->loadSnippet("galeriaMiniatura", array("urlImagem" => "/uploadArquivos/{$anexo->getNome()}/{$arquivo}"));
             }
         }
         if (!$imagensQt) {
             throw new Exception("Não forma encontradas imagens para a galeria informada");
         }
         //Carregando e passando os dados para o view
         $this->loadView();
         $this->setViewValue("imagensFaGaleria", $imagens)->setViewValue("descricao", $anexo->getDescricao())->setViewValue("urlSite", "/")->setViewValue("ano", Loader::data("config", "site", "ano_letivo"))->printView();
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         echo Javascript::close();
         die(Javascript::history_back());
     }
 }
コード例 #26
0
ファイル: Livreto.php プロジェクト: andersongimino/area51
 /**
  * Metodo que retorna a url do livro digitalizado
  * @param int $pageStart Caso seja informado, abre o livro na página
  * @return string A url do livro digitalizado
  */
 public function livroUrl($pageStart = false)
 {
     if (!$this->getId()) {
         throw new LivroException("o livro ainda não foi definido");
     }
     if (!$this->disciplina->getId()) {
         throw new LivroException("A disciplina do livro não foi definida");
     }
     if (!$this->livroDigitalizado) {
         throw new LivroException("Este livro não possue conteúdo digitalizado");
     }
     $urlGGE = Loader::data("config", "urls", "ggeCI");
     $urlGGE .= self::DIR_LIVRO_DIGITAL . "/{$this->getId()}/{$this->disciplina->getId()}";
     if ($pageStart && is_int($pageStart)) {
         $urlGGE .= "#{$pageStart}";
     }
     return $urlGGE;
 }
コード例 #27
0
ファイル: SqlAfa.php プロジェクト: andersongimino/area51
 /**
  * Método que faz a busca por notas para a exibição do relatório de notas
  * @param int $unidade A unidade a ser usada como filtro
  * @param int $ano O ano referente ao relatório a ser exibido
  * @return boolean|PDOStatement Retorna um objeto do tipo PDOStatement em caso de sucesso ou FALSE em caso de erro
  */
 public function listarNotas($unidade, $ano = FALSE)
 {
     $ret = FALSE;
     try {
         if (is_int($unidade)) {
             $anoLetivo = Loader::data("config", "site", "ano_letivo");
             $query = "SELECT distinct on (mestre.medias.mat_n11,public.serie.pk_serie)" . "public.serie.pk_serie,mestre.medias.mat_discod,mestre.medias.mat_n11," . "mestre.medias.mat_n12,mestre.medias.mat_n13,mestre.medias.mat_n21," . "mestre.medias.mat_n22,mestre.medias.mat_n23,mestre.medias.mat_n31," . "mestre.medias.mat_n32,mestre.medias.mat_n33,mestre.medias.mat_n41," . "mestre.medias.mat_n42,mestre.medias.mat_n43 from public.serie " . "inner join public.turma on public.turma.fk_serie=public.serie.pk_serie " . "inner join mestre.medias on mestre.medias.mat_tmacod=public.turma.tmacod " . "WHERE mestre.medias.mat_ano='" . (is_int($ano) ? $ano > 0 ? $ano : $anoLetivo : $anoLetivo) . "' " . "and mestre.medias.unidade={$unidade} order by pk_serie";
             $prepare = $this->getDb()->prepare($query);
             $ret = !$prepare->execute() ? FALSE : $prepare;
         }
     } catch (PDOException $exc) {
         echo $exc->getTraceAsString();
     }
     return $ret;
 }