'bitte wählen', 'order' => 'markierte bezahlen', 'remove' => 'markierte entfernen', 'reset' => 'markierte zurücksetzen/bestellt']; private $filter_show = [10 => 'alle anzeigen', 1 => 'bestellt', 2 => 'bezahlt', 5 => 'entfernt']; protected $shopApiRepository; public function __construct(ShopApiRepository $shopApiRepository) { $this->middleware('active.shop'); $this->shopApiRepository = $shopApiRepository; } public function orders() { $this->setFilterVars(); $data = [ 'api_action' => $this->api_action, 'filter_show' => $this->filter_show, ]; return view('user.shop.sales.api_orders', $data); } public function action(){ $data = Request::all(); if(isset($data['user_shop_api_orders_action'])){ switch($data['user_shop_api_orders_action']){ case 'order': $shopApiOrderCart = $this->shopApiRepository->order($data); return view('user.shop.sales.api_order_list', compact('shopApiOrderCart', 'data')); break; case 'remove': $this->shopApiRepository->remove($data); break; case 'reset': $this->shopApiRepository->reset($data); break; } } return redirect(route('user_shop_api_orders')); } public function checkout(){ $data = Request::all(); return $this->shopApiRepository->checkout($data); } private function setFilterVars(){ if(!session('user_shop_api_orders_filter')){ session(['user_shop_api_orders_filter' => 1]); } if(Request::get('user_shop_api_orders_filter')){ session(['user_shop_api_orders_filter' => Request::get('user_shop_api_orders_filter')]); } } private function initSearch($archive = false, $request = true) { $this->setFilterVars(); $user = User::find(\Auth::user()->id); $query = ShoppingOrder::with('shopping_user')->select('shopping_orders.*') ->where('shopping_orders.member_id', $user->id) ->where('shopping_orders.payment_for', 7); //7 payment for extern if(Request::get('user_shop_api_orders_filter')){ if(Request::get('user_shop_api_orders_filter') < 10){ if(Request::get('user_shop_api_orders_filter') == 1){ $query->where(function($query) { return $query->where('shopping_orders.api_status', 0) ->orWhere('shopping_orders.api_status', 1) ->orWhereNull('shopping_orders.api_status'); }); }else{ $query->where('shopping_orders.api_status', Request::get('user_shop_api_orders_filter')); } } } return $query; } public function ordersDatatable(){ $query = $this->initSearch(); return \DataTables::eloquent($query) ->addColumn('id', function (ShoppingOrder $ShoppingOrder) { return ''; }) ->addColumn('api_status', function (ShoppingOrder $ShoppingOrder) { if($ShoppingOrder->api_status === 2){ $shopping_oder_id = isset($ShoppingOrder->api_notice['shopping_order_id']) ? $ShoppingOrder->api_notice['shopping_order_id'] : null; if($shopping_oder_id){ return ' '.$shopping_oder_id.''; } } return ''.$ShoppingOrder->getAPIStatusType().''; }) ->addColumn('created_at', function (ShoppingOrder $ShoppingOrder) { return $ShoppingOrder->created_at->format("d.m.Y"); }) ->addColumn('txaction', function (ShoppingOrder $ShoppingOrder) { return Payment::getShoppingOrderBadge($ShoppingOrder); }) ->addColumn('api_action', function (ShoppingOrder $ShoppingOrder) { return ''; }) ->addColumn('total_shipping', function (ShoppingOrder $ShoppingOrder) { return ''.$ShoppingOrder->getFormattedTotalShipping()." €"; }) ->addColumn('orders', function (ShoppingOrder $ShoppingOrder) { return $ShoppingOrder->shopping_user ? $ShoppingOrder->shopping_user->orders : ''; }) ->addColumn('user_shop_id', function (ShoppingOrder $ShoppingOrder) { return $ShoppingOrder->user_shop ? ''.$ShoppingOrder->user_shop->getSubdomain(false).'' : ''; }) ->addColumn('payment_for', function (ShoppingOrder $ShoppingOrder) { return ''.$ShoppingOrder->getPaymentForType().''; }) ->addColumn('shipped', function (ShoppingOrder $ShoppingOrder) { return ''.$ShoppingOrder->getShippedType().' '; }) ->orderColumn('payment_for', 'payment_for $1') ->orderColumn('id', 'id $1') ->orderColumn('api_action', 'id $1') ->orderColumn('txaction', 'txaction $1') ->orderColumn('user_shop_id', 'user_shop_id $1') ->orderColumn('total_shipping', 'total_shipping $1') ->rawColumns(['id', 'api_status', 'txaction', 'user_shop_id', 'api_action', 'shipped', 'total_shipping', 'payment_for']) ->make(true); } }