ajax()) { $data = TicketModel::where('user_id', auth()->user()->id)->select('*'); // Convert the Eloquent Collection to a regular PHP array $data->each(function ($item, $key) { $item->rowIndex = $key + 1; }); return Datatables::of($data) ->addIndexColumn() ->addColumn('title-post', function($row){ $text = '
' . $row->subject . '
Terakhir diperbarui pada ' . $row->updated_at->format('j F Y, h:i:s') . '
'; return $text; }) ->addColumn('action', function($row){ $view = route('ticket.view', ['id' => $row->id]); $delete = route('ticket.delete', ['id' => $row->id]); $btn = ' '; return $btn; }) ->addColumn('status', function($row){ if ($row->is_status == GlobalEnum::isTicketSellerPending) { return 'Pending'; } elseif($row->is_status == GlobalEnum::isTicketAdminReplied) { return 'Admin Membalas'; } elseif($row->is_status == GlobalEnum::isTicketSellerClosed) { return 'Ditutup'; } }) ->addColumn('priority', function($row){ if ($row->is_priority == GlobalEnum::isTicketPriorityNormal) { return 'Normal'; } elseif($row->is_priority == GlobalEnum::isTicketPriorityMedium) { return 'Medium'; } elseif($row->is_priority == GlobalEnum::isTicketPriorityHigh) { return 'Tinggi'; } }) ->rawColumns(['title-post','action','status','priority']) ->make(true); } $data = [ 'subtitle' => 'Semua Tiket', 'button' => true, 'module' => [ 'url' => route('ticket.create'), 'name' => 'Tambah baru' ] ]; return view('seller::ticket.index', compact('data')); } public function create() { $data = [ 'subtitle' => 'Tambah Baru', ]; return view('seller::ticket.add', compact('data')); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'subject' => 'required', 'message' => 'required', 'is_priority' => 'required', ]); if($validator->fails()) { return redirect()->back()->withErrors($validator->errors()); } $input = $request->all(); $ticket = new TicketModel([ 'id' => Str::uuid(), 'user_id' => auth()->user()->id, 'subject' => $input['subject'], 'is_priority' => $input['is_priority'], 'is_status' => 1 ]); $check = TicketModel::where('subject', $ticket->subject)->count(); $ticketResponse = new TicketResponseModel(); $ticketResponse->id = Str::uuid(); $ticketResponse->id_ticket = $ticket->id; // Isi dengan nilai yang sesuai $ticketResponse->user_id = $ticket->user_id; // Isi dengan nilai yang sesuai $ticketResponse->message = clean($input['message']); $postTicket = $ticket->save(); $postTicketResponse = $ticketResponse->save(); if($check == 0) { if($postTicket && $postTicketResponse) { return redirect()->route('ticket')->with('swal', swal_alert('success', 'Anda berhasil membuka tiket baru.')); } else { return redirect()->route('ticket')->with('swal', swal_alert('error', 'Terjadi kesalahan saat membuka tiket.')); } } else { return redirect()->route('ticket')->with('swal', swal_alert('error', 'Ditemukan data yang telah ada')); } } public function view($id) { $data = [ 'subtitle' => 'Ticket #' . explode('-', $id)[0], ]; $ticketResponse = TicketModel::find($id)->responses; return view('seller::ticket.detail', compact('data', 'ticketResponse')); } public function update(Request $request, $id) { $validator = Validator::make($request->all(), [ 'subject' => 'required', 'message' => 'required', 'is_priority' => 'required', ]); } public function destroy($id) { // } }