public function inserir(Livro $livro) { //Objetivo deste metodo é inserir um objeto no banco, fazendo-o ter persistencia. //utilizaremos a abstracao do SQL da classe TsqlInstruction //1. Foreach dos atributos . PRa cada existencia de atributo é um valor a ser adicionado. $instrucao = new TSqlInsert(); $instrucao->setEntity("livro"); if ($livro->getId() != null) { $instrucao->setRowData("id", $livro->getId()); } if ($livro->getTitulo() != null) { $instrucao->setRowData("titulo", $livro->getTitulo()); } if ($livro->getAutor() != null) { $instrucao->setRowData("autor", $livro->getAutor()); } if ($livro->getData() != null) { $instrucao->setRowData("data", $livro->getData()); } if ($livro->getHora() != null) { $instrucao->setRowData("hora", $livro->getHora()); } if ($livro->getUsuario() != null) { $instrucao->setRowData("usuario", $livro->getUsuario()); } if ($livro->getDescricao() != null) { $instrucao->setRowData("descricao", $livro->getDescricao()); } if ($livro->getLink0() != null) { $instrucao->setRowData("link0", $livro->getLink0()); } if ($livro->getLink1() != null) { $instrucao->setRowData("link1", $livro->getLink1()); } if ($livro->getLink2() != null) { $instrucao->setRowData("link2", $livro->getLink2()); } if ($livro->getVisibilidade() != null) { $instrucao->setRowData("visibilidade", $livro->getVisibilidade()); } if ($livro->getCaminhofoto() != null) { $instrucao->setRowData("caminhofoto", $livro->getCaminhofoto()); } if ($livro->getFdsifhsodfjos() != null) { $instrucao->setRowData("fdsifhsodfjos", $livro->getFdsifhsodfjos()); } echo $instrucao->getInstruction(); if ($this->Conexao->query($instrucao->getInstruction())) { return true; } else { return false; } }
/** * 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 Exception */ public function deLivroComAcompanhamento(Livro $livro, Disciplina $disciplina) { $select = new Select(); return $this->tg->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("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.acompanhamento", array("fk_conteudo" => "pk_conteudo"))->where("fk_livro={$livro->getId()} " . "and pk_materia={$disciplina->getId()} " . "and (status=" . Topico::STATUS_EM_ANDAMENTO . " " . "or status=" . Topico::STATUS_CONCLUIDO . ") " . "and id=(select max(id) from apostilas.acompanhamento " . "where fk_conteudo=pk_conteudo and status!=" . Topico::STATUS_REVISADO . ") " . "and extract(year from data_aula)={$this->anoLetivo}")->order("sequencial_topico")); }