ticketRepository->filter($request->merge(['page' => $request->get('1') ?? 1])->all()); $title = "All Support Ticket"; return view('admin.support.index', compact('title', 'tickets')); } public function edit(int $ticket_num = 0) { $ticket = $this->ticketRepository->findWithRelationshipsByKey('ticket_num', $ticket_num, [ 'reply.user', 'customer' ]); if (! $ticket) { return back()->withErrors('Invalid Request'); } $title = "Ticket #" . $ticket_num; return view("admin.support.view", compact('title', 'ticket')); } public function reply(int $id = 0, TicketReplyRequest $request) { $ticket = $this->ticketRepository->find($id); if (! $ticket) { return back()->withInput()->withErrors('Invalid Request'); } $request->validated(); $request->merge(['user_id' => auth()->guard('admins')->id()]); DB::beginTransaction(); try { $this->ticketReplyRepository->create($request->all()); $this->ticketRepository->updateBy('ticket_num',$ticket->ticket_num,['status' => 1]); DB::commit(); } catch (Exception $error) { DB::rollBack(); return back()->withInput()->withErrors($error->getMessage()); } return back()->with('success', 'Reply successfully'); } public function close(int $ticket_num = 0) { $ticket = $this->ticketRepository->findBy('ticket_num', $ticket_num); if (! $ticket) { return back()->withErrors('Invalid Request'); } DB::beginTransaction(); try { $this->ticketRepository->updateBy('ticket_num',$ticket_num,['status' => 0]); DB::commit(); } catch (Exception $error) { DB::rollBack(); return back()->withInput()->withErrors($error->getMessage()); } return redirect()->route('support.index')->with('success', 'Closed successfully'); } }