/**
  * Método que cadastra os destinatários da mensagem
  * @return boolean Retorna true em caso de sucesso ou false em caso de erro
  * @throws Exception Gera um exceção caso não hava destinatários definidos, inválidos ou a mensagem seja inváldia
  */
 protected function cadastrarDestinatarios()
 {
     if (!is_int($this->id)) {
         throw new Exception("Não foi possivél associar os destinatários a mensagem");
     }
     //Inserindo os destinatários
     $destinatarios = new ModelBase($this->getTabela() . "_destinatarios");
     $destinatarios->setAutoCriarTabelas(TRUE);
     $destinatarios->pk_destinatario = 0;
     $destinatarios->mensagem = 0;
     $destinatarios->mapearVar("pk_destinatario", PDO::PARAM_INT)->mapearVar("mensagem", PDO::PARAM_INT);
     //Montando a query de inserção multipla
     $query = "insert into " . $this->getTabela() . "_destinatarios ";
     $query .= "(user_insert, tipo_usuario_insert, dt_insert, pk_destinatario, mensagem) values ";
     foreach ($this->destinatarios as $destinatario) {
         $query .= "(";
         $query .= $destinatarios->getUser_insert() . ", ";
         $query .= $destinatarios->getTipo_usuario_insert() . ", ";
         $query .= "'" . $destinatarios->getDtInsert() . "', ";
         $query .= $destinatario->getId() . ", ";
         $query .= $this->id;
         $query .= "), ";
     }
     $query = substr($query, 0, -2);
     if (!$destinatarios->query($query, array())) {
         $this->delete();
         throw new Exception("Ocorreu um erro ao tenar cadastrar a mensagem. " . "Entre em contato com o administrador do sistema");
     }
     return true;
 }
Example #2
0
 /**
  * Método que envia uma mensagem para o chamado instanciado, se estive estiver aberto.
  *
  * @param string $mensagem O texto da mensagem
  *
  * @return bool Retorna TRUE em caso de sucesso ou FALSE em caso de erro
  */
 public function enviarMensagem($mensagem)
 {
     //Validando a mensagem
     if (!is_string($mensagem)) {
         //A mensagem não é uma string
         $this->appendErro('A mensagem não é uma string');
         return false;
     }
     if (!strlen($mensagem)) {
         //A mensagem não possue caracteres
         $this->appendErro('A mensagem é muito curta');
         return false;
     }
     //Atualizando a data da última mensagem
     $this->update(false);
     //Criando o objeto e enviando a mensagem
     $mensagemObj = new ModelBase($this->getTabela() . '_mensagens');
     $mensagemObj->setAutoCriarTabelas(true);
     //        $mensagemObj->chamado = $this->getId();
     $mensagemObj->chamado = $this->id;
     $mensagemObj->mensagem = $mensagem;
     //Mapeando a tabela de mensagens
     $mensagemObj->mapearVar('mensagem', PDO::PARAM_STR, 500)->mapearVar('chamado', PDO::PARAM_INT);
     return $mensagemObj->insert();
 }