middleware('admin'); $this->customerRepository = $customerRepository; } public function index() { if(Request::get('reset') === 'filter'){ set_user_attr('filter_member_id', null); set_user_attr('filter_customer_member', null); return redirect(route('admin_customers')); } $filter_members = ShoppingUser::join('users', 'member_id', '=', 'users.id')->groupBy('member_id')->join('user_accounts', 'account_id', '=', 'user_accounts.id')->select('users.id', 'users.email', 'user_accounts.first_name', 'user_accounts.last_name')->get(); //->pluck('email', 'id')->unique()->toArray(); $data = [ 'filter_members' => $filter_members, ]; return view('admin.customer.index', $data); } public function detail($id) { $shopping_user = ShoppingUser::findOrFail($id); $data = [ 'shopping_user' => $shopping_user, 'isAdmin' => true, 'isView' => 'customer', ]; return view('admin.customer.detail', $data); } public function edit($id) { if($id === "new"){ $shopping_user = new ShoppingUser(); $shopping_user->id = "new"; }else{ $shopping_user = ShoppingUser::findOrFail($id); } $data = [ 'shopping_user' => $shopping_user, 'isAdmin' => true, 'isView' => 'customer', ]; return view('admin.customer.edit', $data); } public function store($id) { $data = Request::all(); if ($data['action'] === 'shopping-user-change-member') { if (!isset($data['change_member_key']) || $data['change_member_key'] !== config('mivita.edit_data_pass')) { $data = [ 'change_member_error' => "Das Passwort ist falsch.", 'shopping_user' => ShoppingUser::find($id), 'isAdmin' => true, 'isView' => 'customer', ]; return view('admin.customer.detail', $data); } //change $shopping_user = ShoppingUser::findOrFail($data['id']); CustomerPriority::newMemberForCustomer($shopping_user, $data['change_member_id'], $data['customer_set_member_for']); \Session()->flash('alert-save', true); return redirect(route('admin_customer_detail', [$shopping_user->id])); } if ($data['action'] === 'shopping-user-store') { $rules = array( 'billing_salutation' => 'required', 'billing_firstname'=>'required', 'billing_lastname'=>'required', 'billing_email'=>'required|email', 'billing_address'=>'required', 'billing_zipcode'=>'required', 'billing_city' => 'required', 'billing_country_id' => 'required' ); if(!Request::get('same_as_billing')){ $rules = array_merge($rules, [ 'shipping_firstname'=>'required', 'shipping_lastname'=>'required', 'shipping_address'=>'required', 'shipping_zipcode'=>'required', 'shipping_city' => 'required', 'shipping_salutation' => 'required', 'shipping_country_id' => 'required' ]); } $validator = Validator::make(Request::all(), $rules); if ($validator->fails()) { return back()->withErrors($validator)->withInput(Request::all()); } $shopping_user = ShoppingUser::findOrFail($id); $data['has_buyed'] = true; $data['subscribed'] = true; if($shopping_user->auth_user_id > 0){ $data['has_buyed'] = true; $data['subscribed'] = false; } $data['same_as_billing'] = isset($data['same_as_billing']) ? true : false; $data['shipping_country_id'] = isset($data['shipping_country_id']) ? $data['shipping_country_id'] : $data['billing_country_id']; CustomerPriority::checkChangeOne($shopping_user, $data, true); $shopping_user->fill($data); $shopping_user->save(); \App\Services\Shop::newUserOrder($shopping_user->number); \Session()->flash('alert-save', true); } return redirect(route('admin_customer_detail', [$shopping_user->id])); } public function getCustomers() { $query = ShoppingUser::select('shopping_users.*')->where('auth_user_id', '=', NULL); set_user_attr('filter_member_id', Request::get('filter_member_id')); if(Request::get('filter_member_id') != ""){ $query->where('member_id', '=', Request::get('filter_member_id')); } /* set_user_attr('filter_customer_member', Request::get('filter_customer_member')); if(Request::get('filter_customer_member') != ""){ if(Request::get('filter_customer_member') === 'customers'){ $query->where('auth_user_id', '=', NULL); } if(Request::get('filter_customer_member') === 'members'){ $query->where('auth_user_id', '!=', NULL); } }*/ return \DataTables::eloquent($query) ->addColumn('id', function (ShoppingUser $ShoppingUser) { return ''; }) ->addColumn('billing_salutation', function (ShoppingUser $ShoppingUser) { return HTMLHelper::getSalutationLang($ShoppingUser->billing_salutation); }) ->addColumn('billing_country_id', function (ShoppingUser $ShoppingUser) { return $ShoppingUser->billing_country ? $ShoppingUser->billing_country->getLocated() : ''; }) ->addColumn('isMember', function (ShoppingUser $ShoppingUser) { return get_active_badge($ShoppingUser->auth_user_id).($ShoppingUser->mode==='dev' ? ' dev' : ''); }) ->addColumn('member_id', function (ShoppingUser $ShoppingUser) { if($ShoppingUser->member_id){ return ''.$ShoppingUser->member->getFullName().''; } if($ShoppingUser->is_like){ return ''; } return ''; }) ->addColumn('created_at', function (ShoppingUser $ShoppingUser) { return $ShoppingUser->created_at->format('d.m.Y'); }) ->addColumn('subscribed', function (ShoppingUser $ShoppingUser) { return get_active_badge($ShoppingUser->subscribed); }) ->orderColumn('id', 'id $1') ->orderColumn('billing_country_id', 'billing_country_id $1') ->orderColumn('billing_salutation', 'billing_salutation $1') ->orderColumn('created_at', 'created_at $1') ->orderColumn('isMember', 'auth_user_id $1') ->orderColumn('member_id', 'member_id $1') ->orderColumn('subscribed', 'subscribed $1') ->rawColumns(['id', 'subscribed', 'isMember', 'member_id']) ->make(true); } }