ajax()) { $data = Order::where('user_id', auth()->user()->id)->orderBy('created_at', 'DESC'); // Convert the Eloquent Collection to a regular PHP array $data->each(function ($item, $key) { $item->rowIndex = $key + 1; }); return Datatables::of($data) ->addIndexColumn() ->addColumn('invoice', function($row){ $text = '
#' . $row->invoice_number . '
'; return $text; }) ->addColumn('status', function($row){ if ($row->is_status == 1) { return 'Pending'; } elseif($row->is_status == 2) { return 'Dalam pengerjaan'; } elseif($row->is_status == 3) { return 'Dikirim'; } elseif($row->is_status == 4) { return 'Dibatalkan'; } elseif($row->is_status == 5) { return 'Selesai'; } }) ->addColumn('harga', function($row){ return 'Rp. ' . number_format($row->price, 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(['invoice', 'status','harga']) ->make(true); } $data = [ 'subtitle' => 'Semua Pesanan' ]; return view('user::transaction.orders.index', compact('data')); } public function view($invoice) { $check = Order::where('id', $invoice)->where('user_id', auth()->user()->id)->first(); if($check) { $data = [ 'subtitle' => 'Detil Pesanan' ]; $getInfoOrders = $check; return view('user::transaction.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('user_id', auth()->user()->id)->first(); if($check) { $check->is_status = 4; $check->url_payment = NULL; $check->save(); $code = $check->invoice_number; DB::statement("UPDATE tbl_order_detail SET is_status = 4 where order_id = '$code'"); 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 complete(Request $request, $invoice) { $check = Order::where('id', $invoice)->where('user_id', auth()->user()->id)->first(); if($check) { $check->is_status = 5; $check->url_payment = NULL; $check->save(); $getDetail = OrderHistory::where('order_id', $check->invoice_number)->get(); foreach($getDetail as $items) { if($items->is_status == 3) { $price = $items->price; $seller_id = $items->seller_id; $id = $items->id; $update = DB::statement("UPDATE tbl_order_detail SET is_status = '4' where id = '$id'"); $save = DB::statement("UPDATE tbl_users SET income = income + $price where id = '$seller_id'"); if($save && $update) { return redirect()->back()->with('swal', swal_alert('success', 'Pesan telah anda terima dan sesuai permintaan anda.')); } else { return redirect()->back()->with('swal', swal_alert('error', 'Terjadi kesalahan saat melakukan penambahan saldo.')); } } else { return redirect()->back()->with('swal', swal_alert('error', 'Terdapat pesanan yang belum selesai')); } } } else { return redirect()->back()->with('swal', swal_alert('error', 'Tidak ditemukan data yang anda cari')); } } public function billing(Request $request) { if ($request->ajax()) { $data = Billing::where('buy_id', auth()->user()->id)->select('*'); 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('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(['ticket-invoice','title-post','status','price']) ->make(true); } $data = [ 'subtitle' => 'Semua Tagihan' ]; return view('user::transaction.billing.index', compact('data')); } public function return(Request $request) { $payment = Order::where('invoice_number', $request->input('merchantOrderId'))->get()->first(); if($payment) { if($request->input('statusCode') == 00) { return redirect()->to(site_url('user', 'orders'))->with('swal', swal_alert('success', 'Anda kembali ke laman detail deposit.')); } else { return redirect()->to(site_url('user', 'orders'))->with('swal', swal_alert('error', 'Terjadi kesalahan saat melakukan penambahan saldo.')); } } else { return redirect()->to(site_url('user', 'orders'))->with('swal', swal_alert('error', 'Tidak ditemukan data.')); } } }