/**
  * 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();
 }
Exemple #2
0
 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;
     }
 }
Exemple #3
0
 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);
 }
Exemple #5
0
 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);
 }
Exemple #6
0
 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;
     }
 }
Exemple #7
0
 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);
 }