<?php namespace App\Http\Controllers; use App\Arquivo; use App\Notificacao; use App\Trabalho; use App\User; use Auth; use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Storage; use Illuminate\Http\Request; use mysql_xdevapi\Exception; use Carbon\Carbon; use App\Notifications\RelatorioRecebimentoNotification; use App\Administrador; class ArquivoController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param \App\Arquivo $arquivo * @return \Illuminate\Http\Response */ public function show(Arquivo $arquivo) { // } /** * Show the form for editing the specified resource. * * @param \App\Arquivo $arquivo * @return \Illuminate\Http\Response */ public function edit(Arquivo $arquivo) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Arquivo $arquivo * @return \Illuminate\Http\Response */ public function update(Request $request, Arquivo $arquivo) { // } /** * Remove the specified resource from storage. * * @param \App\Arquivo $arquivo * @return \Illuminate\Http\Response */ public function destroy(Arquivo $arquivo) { // } public function baixarPlano($id) { $arquivo = Arquivo::find($id); if (Storage::disk()->exists($arquivo->nome)) { ob_end_clean(); return Storage::download($arquivo->nome); } return abort(404); } public function listar($id){ $trabalho = Trabalho::where('id',$id)->first(); $participantes = $trabalho->participantes; $arquivos = []; foreach ($participantes as $participante){ array_push($arquivos, $participante->planoTrabalho); } $hoje = Carbon::today('America/Recife'); $hoje = $hoje->toDateString(); return view('planosTrabalho.listar')->with(['arquivos' => $arquivos, 'hoje' => $hoje]); } public function anexarRelatorio(Request $request){ try{ $arquivo = Arquivo::where('id',$request->arqId)->first(); $pasta = 'planoTrabalho/' . $arquivo->id; if($request->relatorioParcial != null) { $arquivo->relatorioParcial = Storage::putFileAs($pasta, $request->relatorioParcial, "RelatorioParcial.pdf"); //Coordenador $userTemp = User::find($arquivo->trabalho->evento->coordenadorComissao->user_id); $notificacao = Notificacao::create([ 'remetente_id' => Auth::user()->id, 'destinatario_id' => $arquivo->trabalho->evento->coordenadorComissao->user_id, 'trabalho_id' => $arquivo->trabalho->id, 'lido' => false, 'tipo' => 3, ]); $notificacao->save(); Notification::send($userTemp, new RelatorioRecebimentoNotification($arquivo->trabalho->id,$userTemp, $arquivo->trabalho->evento->nome,$arquivo->trabalho->titulo,'Parcial')); //Admins $admins = Administrador::all(); foreach ($admins as $admin) { $userTemp = User::find($admin->user_id); $notificacao = Notificacao::create([ 'remetente_id' => Auth::user()->id, 'destinatario_id' => $admin->user_id, 'trabalho_id' => $arquivo->trabalho->id, 'lido' => false, 'tipo' => 3, ]); $notificacao->save(); Notification::send($userTemp, new RelatorioRecebimentoNotification($arquivo->trabalho->id,$userTemp, $arquivo->trabalho->evento->nome,$arquivo->trabalho->titulo,'Parcial')); } } if($request->relatorioFinal != null) { $arquivo->relatorioFinal = Storage::putFileAs($pasta, $request->relatorioFinal, "RelatorioFinal.pdf"); //Coordenador $userTemp = User::find($arquivo->trabalho->evento->coordenadorComissao->user_id); $notificacao = Notificacao::create([ 'remetente_id' => Auth::user()->id, 'destinatario_id' => $arquivo->trabalho->evento->coordenadorComissao->user_id, 'trabalho_id' => $arquivo->trabalho->id, 'lido' => false, 'tipo' => 4, ]); $notificacao->save(); Notification::send($userTemp, new RelatorioRecebimentoNotification($arquivo->trabalho->id,$userTemp, $arquivo->trabalho->evento->nome,$arquivo->trabalho->titulo,'Final')); //Admins $admins = Administrador::all(); foreach ($admins as $admin) { $userTemp = User::find($admin->user_id); $notificacao = Notificacao::create([ 'remetente_id' => Auth::user()->id, 'destinatario_id' => $admin->user_id, 'trabalho_id' => $arquivo->trabalho->id, 'lido' => false, 'tipo' => 4, ]); $notificacao->save(); Notification::send($userTemp, new RelatorioRecebimentoNotification($arquivo->trabalho->id,$userTemp, $arquivo->trabalho->evento->nome,$arquivo->trabalho->titulo,'Final')); } } $arquivo->save(); return redirect(route('planos.listar', ['id' => $request->projId]))->with(['sucesso' => "Relatório enviado com sucesso"]); }catch (Exception $th){ } } }