/** * Método que insere um teste por capítulo no banco de dados. * * @param TesteTopico $teste O teste a ser inserido * * @return bool|int O código do teste inserido ou FALSE em caso de erro * * @throws TesteException */ public function insert(Model $teste) { if (!count($teste->getQuestoes())) { throw new TesteException('Não foram encontradas questões para ' . 'o teste'); } if ($teste instanceof TesteCapitulo) { $fk = "pk_capitulo"; } else { $fk = "pk_conteudo"; } $tIsert = $this->tg->insert(array("{$this->tabela}_pk_usuario" => $teste->getAluno()->getId(), "{$this->tabela}_{$fk}" => $teste->getAlvo()->getId(), "{$this->tabela}_ano" => $teste->getAno())); if (!$tIsert) { throw new TesteException('Não foi possível salvar o teste. ' . 'Tente novamente mais tarde'); } $lastId = $this->tg->lastInsertId(); //Salvando as questões do teste $query = "insert into testes.{$this->tabela}_questao(" . "{$this->tabela}_questao_pk_{$this->tabela}, " . "{$this->tabela}_questao_pk_questao" . ') values '; foreach ($teste->getQuestoes() as $questao) { $query .= "({$lastId}, {$questao->getId()}),"; } $query = substr($query, 0, -1); $prepare = $this->tg->getPDO()->prepare($query); if (!$prepare->execute()) { $this->tg->getPDO()->rollBack(); throw new TesteException('Não foi possível salvar o teste'); } return $lastId; }
/** * Método que faz o cadastro de um novo anexo. Método feito para substituri o cadastrar. * * @param Anexos $anexo O anexo a ser cadastrado * * @return int O código do anexo inserido * * @throws SqlException */ public function insert(Model $anexo) { $resultset = $this->tg->insert(array('posicao' => $anexo->getFinalidade(), 'anexo_desc' => $anexo->getDescricao(), 'arquivo_nome' => $anexo->getNome(), 'tipo' => $anexo->getTipo(), 'subtipo' => $anexo->getSubtipo(), 'objetivo' => $anexo->getObjetivo(), 'ano_envio' => $anexo->getAno(), 'obs' => $anexo->getObs(), 'extensao' => $anexo->getExtensao(), 'fonte' => $anexo->getFonte(), 'fonte_url' => $anexo->getFonteUrl(), 'anexos_perm_del' => $anexo->getPodeDeletar())); if (!$resultset) { throw new LivroException('Erro ao tentar cadastrar o anexo'); } return (int) $this->tg->lastInsertId(); }
/** * Método que salva o novo status no banco * @param Model $novo O status a ser inserido * @return int Retorna o código do status inserido */ public function insert(Model $novo) { return $this->tg->insert(array("status_aluno_topico_pk_usuario" => $novo->getAluno()->getId(), "status_aluno_topico_pk_conteudo" => $novo->getTopico()->getId(), "status_aluno_topico_status" => $novo->objStatusJson(), "status_aluno_topico_ano" => $novo->getAno())); }