fileRepo = $fileRepo; } public function create() { if(!Auth::check()){ return redirect('login'); } $user = User::findOrFail(Auth::user()->id); if(!$user->account){ $account = UserAccount::create([]); $user->account_id = $account->id; $user->save(); return redirect(route('wizard')); } $step = !$user->wizard ? 0 : $user->wizard; if($step == 10){ return redirect('/'); } $data = [ 'user' => Auth::user(), 'step' => $step, 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), ]; return view('user.wizard.create', $data); } public function register() { if(!Auth::check()){ return redirect('login'); } $user = User::findOrFail(Auth::user()->id); if(!$user->account){ $account = UserAccount::create([]); $user->account_id = $account->id; $user->save(); return redirect(route('wizard')); } $step = !$user->wizard ? 0 : $user->wizard; if($step == 10){ return redirect('/'); } $data = [ 'user' => Auth::user(), 'step' => $step, 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), ]; if($step == 5){ return view('user.wizard.register_release', $data); } return view('user.wizard.register', $data); } public function storeRegister($step = false) { if (!Auth::check()) { return redirect('login'); } $user = User::findOrFail(Auth::user()->id); if (!$user->account) { $user->account = new UserAccount(); } if ($step == 0) { $rules = array( 'accepted_data_protection' => 'required', 'accepted_active' => 'required', ); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { $data = [ 'user' => Auth::user(), 'step' => $step, 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), ]; $user->wizard = 0; $user->save(); return view('user.wizard.register', $data)->withErrors($validator); } $account = $user->account; if($account->data_protection === null){ $account->data_protection = now(); } if($user->agreement === null){ $user->agreement = now(); } $user->wizard = 1; $user->save(); return redirect(route('wizard_register')); } if ($step == 1) { $rules = array( 'salutation' => 'required', 'first_name' => 'required', 'last_name' => 'required', 'address' => 'required', 'zipcode' => 'required', 'city' => 'required', 'phone' => 'required_without:mobil', 'mobil' => 'required_without:phone', 'country_id' => 'required|integer|min:1', 'birthday' => 'required', ); if (!Input::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|integer|min:1', ]); } $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { $user->wizard = 1; $user->save(); return redirect(route('wizard_register', [1]))->withErrors($validator)->withInput(Input::all()); } $data = Input::all(); $data['same_as_billing'] = Input::get('same_as_billing') == NULL ? 0 : 1; $user->account->fill($data)->save(); $user->wizard = 2; $user->save(); return redirect(route('wizard_register')); } if ($step == 2) { if(Input::get('submit') === 'do'){ if(File::whereUserId($user->id)->whereIdentifier('id_card')->count() == 0){ $validator = Validator::make(Input::all(), []); $validator->errors()->add('field', __('Kein Ausweis hinterlegt, bitte erst hochladen.')); $user->wizard = 2; $user->save(); return redirect(route('wizard_register'))->withErrors($validator)->withInput(Input::all()); } $user->wizard = 3; $user->save(); return redirect(route('wizard_register')); } $this->fileRepo->_set('disk', 'user'); $this->fileRepo->_set('dir', '/'.$user->id.'/verification/'); $this->fileRepo->_set('user_id', $user->id); $this->fileRepo->_set('identifier', 'id_card'); return $this->fileRepo->uploadFile(Input::all()); } if ($step == 3) { if(Input::get('submit') === 'do'){ if(File::whereUserId($user->id)->whereIdentifier('business_license')->count() == 0){ $validator = Validator::make(Input::all(), []); $validator->errors()->add('field', __('Kein Gewerbeschein hinterlegt, bitte erst hochladen.')); $user->wizard = 3; $user->save(); return redirect(route('wizard_register'))->withErrors($validator)->withInput(Input::all()); } $user->wizard = 4; $user->save(); return redirect(route('wizard_register')); } $this->fileRepo->_set('disk', 'user'); $this->fileRepo->_set('dir', '/'.$user->id.'/verification/'); $this->fileRepo->_set('user_id', $user->id); $this->fileRepo->_set('identifier', 'business_license'); return $this->fileRepo->uploadFile(Input::all()); } if ($step == 4) { $user->wizard = 5; $user->release_account = now(); $user->save(); Mail::to('kevin@adametz.media')->bcc(['kevin.adametz@me.com'])->send(new MailReleaseAccount($user)); return redirect(route('wizard_register')); } } public function storeCreate($step = 0) { if(!Auth::check()){ return redirect('login'); } $user = User::findOrFail(Auth::user()->id); if(!$user->account){ $user->account = new UserAccount(); } if($step == 0){ $rules = array( 'accepted_data_protection' => 'required', 'accepted_active' => 'required', ); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { $data = [ 'user' => Auth::user(), 'step' => $step, ]; return view('user.wizard.show', $data)->withErrors($validator); } $account = $user->account; $account->data_protection = now(); $account->save(); $user->agreement = now(); if($user->wizard < 1){ $user->wizard = 1; } $user->save(); return redirect(route('wizard', [1])); } if($step == 1){ if($user->isPasswort()){ if($user->wizard < 2){ $user->wizard = 2; } //has Passwort -> delete Code! $user->confirmation_code = null; $user->confirmation_code_to = null; $user->confirmation_code_remider = 0; $user->save(); return redirect(route('wizard', [2])); } $rules = array( 'password' => 'required|string|min:6|confirmed', ); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { $data = [ 'user' => Auth::user(), 'step' => $step, ]; return view('user.wizard.show', $data)->withErrors($validator); }else{ $user->fill([ 'password' => Hash::make(Input::get('password')) ])->save(); if($user->wizard < 2){ $user->wizard = 2; } //has Passwort -> delete Code! $user->confirmation_code = null; $user->confirmation_code_to = null; $user->confirmation_code_remider = 0; $user->save(); return redirect(route('wizard', [2])); } } if($step == 2){ $rules = array( 'salutation' => 'required', 'first_name'=>'required', 'last_name'=>'required', 'address'=>'required', 'zipcode'=>'required', 'city' => 'required', ); if(!Input::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' ]); } $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { return redirect(route('wizard', [2]))->withErrors($validator)->withInput(Input::all()); }else{ $data = Input::all(); $data['same_as_billing'] = Input::get('same_as_billing') == NULL ? 0 : 1; $user->account->fill($data)->save(); if($user->wizard < 3){ $user->wizard = 3; } $user->active_date = now(); $user->active = 1; $user->save(); return redirect(route('wizard', [3])); } } if($step == 3){ if(Input::get('switchers-package-wizard')){ Yard::instance('shopping')->destroy(); $product = Product::find(Input::get('switchers-package-wizard')); if($product && $product->active && $product->show_at == 3){ $image = ""; if($product->images->count()){ $image = $product->images->first()->slug; } Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, $product->price, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]); do { $identifier = Util::getToken(); } while( ShoppingInstance::where('identifier', $identifier)->count() ); ShoppingInstance::create([ 'identifier' => $identifier, 'user_shop_id' => 1, //is first faker shop! 'auth_user_id' => $user->id, 'subdomain' => url('/'), 'country_id' => Yard::instance('shopping')->getShippingCountryId(), ]); Yard::instance('shopping')->store($identifier); //add to DB $path = route('checkout.checkout_card', ['identifier'=>$identifier]); //$path = str_replace('http', 'https', $path); return redirect()->secure($path); } } \Session()->flash('alert-error', "Fehler beim Produkt"); return redirect(route('wizard', [3])); } } public function delete($id, $relation){ if($relation === 'upload'){ $user = User::findOrFail(Auth::user()->id); $file = $user->files()->findOrFail($id); //remove file \Storage::disk('user')->delete($file->dir.$file->filename); $file->delete(); \Session()->flash('alert-success', "Datei gelöscht"); } return back(); } }