"Nouveau", 2 => "En cours", 3 => "Traité", 4 => "Archivé"]; public function index() { if (Auth::check()) { $tickets = Ticket::where('status', '<>', 4)->get(); $status = $this->status; return view('home', compact('tickets', 'status')); } else { return view('home'); } } public function create() { $projects = Project::all(); return view('ticket.create', compact('projects')); } public function store(Request $request) { if (Auth::user()->role === 1) { $projectId = $request->project_id; } else { $projectId = Auth::user()->project_id; } $type = $request->type; $text = $request->text; $fileTicket = $request->file_ticket; $request->validate([ 'text' => 'required|string', ]); if ($fileTicket !== null) { $request->validate([ 'file_ticket' => 'mimes:jpeg,jpg,png,pdf|max:2048', ]); $projectSlug = Str::slug(Project::find($projectId)->name); $ticketId = Ticket::count() + 1; $fileName = Str::slug($projectSlug) . "-" . ($type === 0 ? "bug" : "evo") . "-" . $ticketId . "." . $fileTicket->extension(); $fileTicket->move(public_path('fichiers/' . $projectSlug . "/" . $ticketId . "/"), $fileName); } $ticket = new Ticket(); $ticket->project_id = $projectId; $ticket->type = $type; $ticket->text = $text; if ($fileTicket !== null) $ticket->file = $fileName; $ticket->created_by = Auth::user()->id; $ticket->save(); return redirect()->route('home')->with('success', 'Ticket enregistré !'); } public function edit($id) { $ticket = Ticket::findOrFail($id); if ($ticket->created_by === Auth::user()->id || Auth::user()->role === 1) { $projects = Project::all(); $status = $this->status; return view('ticket.edit', compact('ticket', 'projects', 'status')); } return redirect()->back(); } public function update(Request $request, $id) { if (Auth::user()->role === 1) { $projectId = $request->project_id; $status = $request->status; } else { $projectId = Auth::user()->project_id; } $type = $request->type; $text = $request->text; $fileTicket = $request->file_ticket; $request->validate([ 'text' => 'required|string', ]); $ticket = Ticket::findOrFail($id); if ($fileTicket !== null) { $request->validate([ 'file_ticket' => 'mimes:jpeg,jpg,png,pdf|max:2048', ]); if (file_exists(public_path('fichiers/' . $ticket->project->name . '/' . $ticket->id . '/') . $ticket->file)) unlink(public_path('fichiers/' . $ticket->project->name . '/' . $ticket->id . '/') . $ticket->file); $projectSlug = Str::slug(Project::find($projectId)->name); $fileName = Str::slug($projectSlug) . "-" . ($type === 0 ? "bug" : "evo") . "-" . $ticket->id . "." . $fileTicket->extension(); $fileTicket->move(public_path('fichiers/' . $projectSlug . "/" . $ticket->id . "/"), $fileName); } $ticket->project_id = $projectId; $ticket->type = $type; $ticket->text = $text; if ($fileTicket !== null) $ticket->file = $fileName; if (Auth::user()->role === 1) $ticket->status = $status; $ticket->save(); return redirect()->route('edit-ticket', $ticket->id)->with('success', 'Modifications enregistrées !'); } }