/** * 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; }
/** * 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(); }