/** * seta o like da entidadeAtiva atual pra um comentario específico * * @param [integer] id do comentario * @return */ public function getLikecomentario($id) { //Verifica se o comentario existe $comentario = Comentario::findOrFail($id); //Testo se o usuário está logado $user = Auth::user(); $entidadeAtiva = $user->entidadeAtiva; //Se já tiver dado like no comentario com esse id, //consigo encontralo pelo Collention->find() $alreadyLiked = $entidadeAtiva->likeComentario->find($comentario->id); if (!$alreadyLiked) { //Salvando relação (Dando o like finalmente!) $entidadeAtiva->likeComentario()->attach($comentario->id); // Aumenta a relevancia do post $comentario->post->relevancia += $comentario->post->relevancia_rate; $comentario->post->push(); //Só levantar uma notificacao se o like for em um //comentario que nao seja seu ou de alguma de suas entidades if ($entidadeAtiva->user->id != $comentario->author->user->id) { //Criando nova notificacao $novaNotificacao = Notificacao::create(['titulo' => 'Curtiram seu comentario', 'mensagem' => $entidadeAtiva->apelido . ' curtiu seu comentario', 'tipo_notificacao' => 'like_comentario', 'url' => $comentario->post->url]); //associando a entidadeAtiva com o from e o autor do comentario likeado como target $entidadeAtiva->fromNotificacoes()->save($novaNotificacao); $comentario->author->notificacoes()->save($novaNotificacao); $novaNotificacao->push(); } } else { //se ja estiver dando like, remover like $entidadeAtiva->likeComentario()->detach($comentario->id); } // Retorna a quantidade de likes para utilizar na view return $comentario->getQuantidadeLikes(); }
public function enviar_notificacao_nova_mensagem_chamado() { $usuario = Auth::user(); $notificacao = new Notificacao(); $notificacao->mensagem = 'Você possui uma nova mensagem no chamado: ' . $this->chamado->titulo . '. <a href="' . route('responder-chamado-usuario', ['id' => $this->id_chamado]) . '">Visualizar.</a>'; $notificacao->id_usuario = Auth::user()->id; $notificacao->save(); try { \Illuminate\Support\Facades\Mail::send('emails.nova-mensagem-chamado', ['nome' => $usuario->nome, 'id_chamado' => $this->id_chamado], function ($m) use($usuario) { $m->from('*****@*****.**', 'WEBContabilidade'); $m->to($usuario->email)->subject('Nova Mensagem'); }); \Illuminate\Support\Facades\Mail::send('emails.nova-mensagem-chamado-admin', ['nome' => $usuario->nome, 'id_chamado' => $this->id_chamado], function ($m) { $m->from('*****@*****.**', 'WEBContabilidade'); $m->to('*****@*****.**')->subject('Nova Mensagem'); }); } catch (\Exception $ex) { return true; } }
public function enviar_notificacao_cobranca() { $usuario = Auth::user(); $notificacao = new Notificacao(); $valor = number_format($this->valor, 2, ',', '.'); $notificacao->mensagem = '<a href="' . route('listar-pagamentos-pendentes') . '">Você possui uma nova cobrança de R$' . $valor . '. Clique aqui para visualizar seus pagamentos pendentes.</a>'; $notificacao->id_usuario = Auth::user()->id; $notificacao->save(); try { \Illuminate\Support\Facades\Mail::send('emails.nova-cobranca', ['nome' => $usuario->nome, 'empresa' => $this->empresa->nome_fantasia, 'valor' => $valor], function ($m) use($usuario) { $m->from('*****@*****.**', 'WEBContabilidade'); $m->to($usuario->email)->subject('Você possui uma nova cobrança.'); }); \Illuminate\Support\Facades\Mail::send('emails.nova-cobranca-admin', ['nome' => $this->empresa->nome_fantasia, 'valor' => $valor], function ($m) { $m->from('*****@*****.**', 'WEBContabilidade'); $m->to('*****@*****.**')->subject('Uma nova cobrança foi gerada.'); }); } catch (\Exception $ex) { var_dump($ex); return true; } }
public function abrir($id) { $this->post = Post::where('id', $id)->first(); $this->post->concluido = false; $this->post->update(); $notificacao = new Notificacao(); $notificacao->ok = false; $notificacao->user_id = $this->post->autor_id; $notificacao->conteudo = "Uma publicação sua foi desmarcada como finalizado por um Administrador!"; $notificacao->caminho = route('dashboard') . "#post-" . $this->post->id; $notificacao->save(); return redirect(route('dashboard') . "#post-" . $this->post->id); }
public function ajaxNotificacao(Request $request) { \App\Notificacao::where('id', '=', $request->get('id'))->where('id_usuario', '=', Auth::user()->id)->first()->delete(); $notificacoes = \App\Notificacao::where('id_usuario', '=', Auth::user()->id)->orderBy('created_at', 'desc')->get(); return response()->json($notificacoes); }
public function enviar_notificacao_conclusao($nome) { $usuario = Auth::user(); $notificacao = new Notificacao(); $notificacao->mensagem = 'O processo de abertura da empresa ' . $nome . ' foi concluído.'; $notificacao->id_usuario = Auth::user()->id; $notificacao->save(); try { \Illuminate\Support\Facades\Mail::send('emails.conclusao-abertura-empresa', ['nome' => $usuario->nome, 'empresa' => $nome], function ($m) use($usuario) { $m->from('*****@*****.**', 'WEBContabilidade'); $m->to($usuario->email)->subject('Processo de Abertura de Empresa Concluído'); }); } catch (\Exception $ex) { return true; } }
public function enviar_notificacao_status() { $usuario = Auth::user(); $notificacao = new Notificacao(); $notificacao->mensagem = '<a href="' . route('editar-empresa', [$this->id]) . '">A empresa ' . $this->nome_fantasia . ' mudou seu status para ' . $this->status . '. Clique aqui para visualizar a empresa.</a>'; $notificacao->id_usuario = Auth::user()->id; $notificacao->save(); try { \Illuminate\Support\Facades\Mail::send('emails.status-empresa', ['nome' => $usuario->nome, 'id_empresa' => $this->id, 'nome_empresa' => $this->nome_fantasia, 'status' => $this->status], function ($m) use($usuario) { $m->from('*****@*****.**', 'WEBContabilidade'); $m->to($usuario->email)->subject('Mudança de Status em Empresa'); }); } catch (\Exception $ex) { return true; } }
/** * Estabele a relação de seguir uma ong * @param String $id Id da ong a ser seguida * @return JSON Resultado da requisicao */ public function getFollowong($id) { //$entidadeAtiva do usuario logado. $entidadeAtiva = Auth::user()->entidadeAtiva; $ong = Ong::findOrFail($id); //se ja nao seguir essa ong if (!$entidadeAtiva->followOng->find($ong->id)) { $entidadeAtiva->followOng()->attach($ong->id); $entidadeAtiva->push(); //Criando nova notificacao $novaNotificacao = Notificacao::create(['titulo' => 'Voce tem um novo seguidor', 'mensagem' => $entidadeAtiva->apelido . ' agora está te seguindo e vai receber seus posts', 'tipo_notificacao' => 'seguidor', 'url' => $entidadeAtiva->getUrl()]); //associando a entidadeAtiva com o from e o $ong seguido como target $entidadeAtiva->fromNotificacoes()->save($novaNotificacao); $ong->notificacoes()->save($novaNotificacao); $novaNotificacao->push(); } $return['success'] = true; return json_encode($return); }