/**
  * 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;
 }
Example #2
0
 /**
  * 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()));
 }