/** * 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); }
/** * Método que retorna o tópico pedido * @param int $topico O código do tópico buscado * @return Topico Um objeto contendo os dados do tópico * @param boolea $apenasMinistrados Define se deve exibir qualquer tópico ou apenas os já ministrados em aula * @throws LivroException */ public function getTopico($topico, $apenasMinistrados = TRUE) { if (!is_int($topico)) { throw new LivroException("O tópico informado não é válido"); } $select = new Select(); $tableGatway = new TableGatway(new Topico(), "apostilas.conteudo"); $tableGatway->defineColuna("pk_conteudo", new ResultSetMap(Column::INTEGER)); $select->columns("*, " . "apostilas.acompanhamento.data_aula as topico_data_aula," . "apostilas.acompanhamento.status as topico_status")->join("apostilas.capitulo", array("pk_capitulo" => "fk_capitulo"))->join("public.materia_vin", array("pk_materia_vin" => "fk_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.livro", array("pk_livro" => "fk_livro"))->join("apostilas.livro_cat", array("pk_livro_cat" => "fk_livro_cat")); if ((bool) $apenasMinistrados) { $select->join("apostilas.acompanhamento", array("pk_conteudo" => "fk_conteudo")); } else { $select->join("apostilas.acompanhamento", array("pk_conteudo" => "fk_conteudo"), Join::LEFT_JOIN); } $select->where(array("pk_conteudo" => $topico)); $resultSet = $tableGatway->selectObj($select); if (!$resultSet->rowCount()) { throw new LivroException("O tópico informado não foi encontrado ou ainda não foi dado em aula"); } return $resultSet->fetch(); }
/** * 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)); }
/** * Método que insere um comentário para o anexo informado * @return boolean Retorna TRUE caso tenha sido inserido com sucesso ou FALSE emc aso de erro * @throws Exception */ public function inserirComentario(AnexosComentario $comentario) { return $this->tableGatway->insert(array("comentario_texto" => $comentario->getComentario(), "comentario_dt_hora" => $comentario->getDataHora()->format("Y-m-d G:i:s"), "comentario_fk_usuario" => $comentario->getUsuario()->getId(), "comentario_fk_anexo" => $comentario->getAnexo()->getId())); }