middleware('active.account'); } public function index() { $data = [ ]; return view('user.order.index', $data); } public function detail($id) { $user = User::find(\Auth::user()->id); $shopping_order = ShoppingOrder::findOrFail($id); if($shopping_order->member_id !== $user->id){ abort(404); } $data = [ 'shopping_order' => $shopping_order, 'isAdmin' => false, ]; return view('user.shop.sales.order_detail', $data); } public function delivery($for, $id=null) { $user = User::find(\Auth::user()->id); $shopping_user = null; $delivery_id = null; if($for === 'ot'){ $shopping_user = $this->checkShoppingUser($id, $user); $delivery_id = $shopping_user->id; if(!$this->checkShoppingCountry($for, $delivery_id) && !\Session()->has('custom-error')){ \Session()->flash('custom-error', __('validation.custom.shipping_not_found')); return redirect(route('user_order_my_delivery', [$for, $delivery_id])); } } if(Request::get('action') === 'next'){ Yard::instance('shopping')->destroy(); if(Request::get('switchers-radio-is-for') === 'ot'){ $delivery_id = $id; } return redirect(route('user_order_my_list', [Request::get('switchers-radio-is-for'), $delivery_id])); } $data = [ 'shopping_user' => $shopping_user, 'isAdmin' => false, 'isView' => 'customer', 'for' => $for, 'delivery_id' => $delivery_id, ]; return view('user.order.delivery', $data); } public function list($for, $id=null) { $user = User::find(\Auth::user()->id); $shopping_user = null; $delivery_id = null; if($for === 'ot'){ $shopping_user = $this->checkShoppingUser($id, $user); $delivery_id = $shopping_user->id; } $shipping_country_id = $this->checkShoppingCountry($for, $id); if(!$shipping_country_id){ \Session()->flash('custom-error', __('validation.custom.shipping_not_found')); return redirect(route('user_order_my_delivery', [$for, $delivery_id])); } Yard::instance('shopping')->setShippingCountryWithPrice($shipping_country_id, $for); $comp_products = null; if($for === 'me'){ $comp_products = Product::whereActive(true)->where('show_at', '=', 1)->where('shipping_addon', true)->orderBy('pos', 'DESC')->get(); } $data = [ 'shopping_user' => $shopping_user, 'user' => $user, 'isAdmin' => false, 'isView' => 'customer', 'for' => $for, 'delivery_id' => $delivery_id, 'comp_products' => $comp_products, ]; return view('user.order.list', $data); } public function payment($for, $id=null){ $data = Request::all(); $user = User::find(Auth::user()->id); $rules = array( 'shipping_salutation' => 'required', 'shipping_firstname'=>'required', 'shipping_lastname'=>'required', 'shipping_address'=>'required', 'shipping_zipcode'=>'required', 'shipping_city' => 'required', 'shipping_state' => 'required', ); $validator = Validator::make(Request::all(), $rules); if ($validator->fails()) { return back()->withErrors($validator)->withInput(Request::all()); } do { $identifier = Util::getToken(); } while( ShoppingInstance::where('identifier', $identifier)->count() ); $data['is_from'] = 'user_order'; $data['is_for'] = $for; $data['shopping_user_id'] = $id; unset($data['quantity']); unset($data['_token']); ShoppingInstance::create([ 'identifier' => $identifier, 'user_shop_id' => 1, //is first faker shop for buy intern 'auth_user_id' => Auth::user()->id, 'payment' => 2, //Berater Shop 'subdomain' => url('/'), 'country_id' => Yard::instance('shopping')->getShippingCountryId(), 'shopping_data' => $data, 'back' => url()->previous(), ]); Yard::instance('shopping')->store($identifier); //add to DB $path = route('checkout.checkout_card', ['identifier'=>$identifier]); UserHistory::create(['user_id' => $user->id, 'action'=>'user_order_payment', 'status'=>1, 'product_id'=>null, 'identifier'=>$identifier, 'abo_options'=>0]); //$path = str_replace('http', 'https', $path); return redirect()->secure($path); } private function checkShoppingCountry($for, $id=null){ $country_id = null; if($for === 'me'){ $user = User::find(\Auth::user()->id); if($user->same_as_billing){ $country_id = $user->account->country_id; }else{ $country_id = $user->account->shipping_country_id; } } if($for === 'ot' && $id){ $shopping_user = ShoppingUser::findOrFail($id); if($shopping_user->same_as_billing){ $country_id = $shopping_user->billing_country_id; }else{ $country_id = $shopping_user->shipping_country_id; } } if($country_id){ if($shipping_country = ShippingCountry::whereCountryId($country_id)->first()){ return $shipping_country->id; } } return false; } private function checkShoppingUser($id, $user){ if($id === null){ abort(403, 'Error: Keine User ID'); } $shopping_user = ShoppingUser::findOrFail($id); if($shopping_user->member_id !== $user->id){ abort(403, 'Error: Falsche User ID'); } $shopping_user = ShoppingUser::findOrFail($id); if($shopping_user->is_like){ abort(403, 'Error: Kunde in Prüfung'); } return $shopping_user; } public function datatable(){ // $user = User::find(\Auth::user()->id); $query = Product::select('products.*')->where('active', true) ->where('show_at', '=', 1); //Kunden und Berater //->orWhere('show_at', '=', 2); // Nur Berater //->orderBy('pos', 'DESC') //->orderBy('id', 'DESC'); return \DataTables::eloquent($query) ->addColumn('add_card', function (Product $product) { return ''; }) ->addColumn('quantity', function (Product $product) { $cartItem = Yard::instance('shopping')->getCartItemByProduct($product->id); $qty = isset($cartItem->qty) ? $cartItem->qty : 0; $rowId = isset($cartItem->rowId) ? $cartItem->rowId : ''; return '