ajax()) { $data = Order::where('sell_id', auth()->user()->id)->select('*')->orderBy('created_at', 'desc'); return Datatables::of($data) ->addIndexColumn() ->addColumn('ticket-invoice', function($row){ $text = '

#' . $row->invoice_number . '

'; return $text; }) ->addColumn('title-post', function($row){ $text = '

' . removeUrlPrefix($row->website_url) . '

Terakhir diperbarui pada ' . date_formatting($row->updated_at, 'timeago') . '

'; return $text; }) ->addColumn('author', function($row){ return '
' . $row->user->first()->name . '
'; }) ->addColumn('status', function($row){ if ($row->is_status == GlobalEnum::isOrderRequested) { return 'Menunggu'; } elseif($row->is_status == GlobalEnum::isOrderOnWorking) { return 'Dalam pengerjaan'; } elseif($row->is_status == GlobalEnum::isOrderSubmitted) { return 'Dikirim'; } elseif($row->is_status == GlobalEnum::isOrderCompleted) { return 'Selesai'; } elseif($row->is_status == GlobalEnum::isOrderReqCancel) { return 'Permintaan Ditolak'; } elseif($row->is_status == GlobalEnum::isOrderCancelled) { return 'Dibatalkan'; } elseif($row->is_status == GlobalEnum::isOrderRejected) { return 'Ditolak'; } }) ->addColumn('price', function($row){ return 'Rp. ' . number_format($row->total, 0, ',', '.'); }) ->filter(function ($query) use ($request) { if ($request->has('search')) { $search = $request->get('search')['value']; $filterCategory = explode('|', $search); if($filterCategory[0] === 'status') { if(!empty($filterCategory[1])) { $query->where('is_status', '=', $filterCategory[1]); } else { $query->get(); } } elseif($filterCategory[0] === 'orders') { if(!empty($filterCategory[1])) { $query->where('invoice_number', 'LIKE', "%$filterCategory[1]%"); } else { $query->get(); } } } }) ->rawColumns(['author','ticket-invoice','title-post','status','price']) ->make(true); } $data = [ 'subtitle' => 'Semua Pesanan' ]; return view('seller::orders.index', compact('data')); } public function view($invoice) { $check = Order::where('id', $invoice)->where('sell_id', user()->id)->first(); if($check) { $data = [ 'subtitle' => 'Detil Pesanan' ]; $getInfoOrders = $check; return view('seller::orders.detail', compact('data', 'getInfoOrders')); } else { return redirect()->back()->with('swal', swal_alert('error', 'Tidak ditemukan data yang anda cari')); } } public function cancelOrder(Request $request, $invoice) { $check = Order::where('id', $invoice)->where('sell_id', user()->id)->first(); if($check) { $check->is_status = GlobalEnum::isOrderCancelled; $check->cancel_reason = $request->cancel_reason; $check->save(); OrderHistory::create([ 'id' => Str::uuid(), 'order_id' => $check->id, 'asActor' => 2, 'is_status' => 5, 'comment' => $request->cancel_reason ]); return redirect()->back()->with('swal', swal_alert('success', 'Pesanan anda telah dibatalkan')); } else { return redirect()->back()->with('swal', swal_alert('error', 'Tidak ditemukan data yang anda cari')); } } public function accept(Request $request, $invoice) { $check = Order::where('id', $invoice)->where('sell_id', user()->id)->first(); if($check) { $check->is_status = GlobalEnum::isOrderOnWorking; $check->save(); OrderHistory::create([ 'id' => Str::uuid(), 'order_id' => $check->id, 'asActor' => 2, 'is_status' => 0, 'comment' => 'Reseller menerima pesanan ini' ]); return redirect()->back()->with('swal', swal_alert('success', 'Pesanan telah anda terima, Mohon segera kerjakan dalam kurung waktu produk yang telah anda tentukan!')); } else { return redirect()->back()->with('swal', swal_alert('error', 'Tidak ditemukan data yang anda cari')); } } public function process(Request $request, $invoice) { $check = Order::where('id', $invoice)->first(); if($check) { $check->is_status = GlobalEnum::isOrderSubmitted; $check->save(); OrderHistory::create([ 'id' => Str::uuid(), 'order_id' => $check->id, 'url' => $request->url, 'asActor' => 2, 'is_status' => GlobalEnum::isHistoryDone, 'comment' => 'Reseller mengirimkan laporan tugas' ]); return redirect()->back()->with('swal', swal_alert('success', 'Anda telah berhasil mengirimkan laporan tugas, silahkan tunggu 1x24 jam agar pemesan dapat melakukan review pesanan.')); } else { return redirect()->back()->with('swal', swal_alert('error', 'Tidak ditemukan data yang anda cari')); } } public function revision(Request $request, $invoice) { $check = Order::where('id', $invoice)->where('sell_id', user()->id)->first(); if($check) { $check->is_status = GlobalEnum::isOrderSubmitted; $check->save(); OrderHistory::create([ 'id' => Str::uuid(), 'order_id' => $check->id, 'url' => $request->url, 'asActor' => 2, 'is_status' => GlobalEnum::isHistoryDone, 'comment' => 'Reseller mengirimkan laporan tugas revisi' ]); return redirect()->back()->with('swal', swal_alert('success', 'Anda telah berhasil mengirimkan laporan tugas revisi, silahkan tunggu 1x24 jam agar pemesan dapat melakukan review pesanan.')); } else { return redirect()->back()->with('swal', swal_alert('error', 'Tidak ditemukan data yang anda cari')); } } public function feedback(Request $request, $invoice) { $check = Order::where('id', $invoice)->where('sell_id', user()->id)->first(); if($check) { $check->last_seller_message = clean($request->feedback); $check->save(); $save = auth()->user()->update([ 'income' => auth()->user()->income + $check->price ]); if($save) { LogActivites::default([ 'causedBy' => user()->id, 'withContent' => [ 'status' => 'add', 'text' => 'Anda telah menerima saldo sebesar ' . $check->price, ] ]); return redirect()->back()->with('swal', swal_alert('success', 'Anda telah berhasil mengirimkan ulasan untuk buyer dan tugas telah dinyatakan selesai.')); } else { return redirect()->back()->with('swal', swal_alert('error', 'Tidak ditemukan data yang anda cari')); } } else { return redirect()->back()->with('swal', swal_alert('error', 'Tidak ditemukan data yang anda cari')); } } }