/** * post Import * * @param Business $business Business to import Contacts to * @param Request $request Submitted form data * @return Response Redirect to Business addressbook */ public function postImport(Business $business, Request $request) { $this->log->info(__METHOD__); $this->log->info(sprintf(" businessId:%s", $business->id)); ////////////////// // FOR REFACTOR // ////////////////// $csv = $this->csvToArray(Request::get('data')); foreach ($csv as $import) { $import = array_map(function ($item) { return $item == 'NULL' ? null : $item; }, $import); if ($import['birthdate'] !== null) { $date = \DateTime::createFromFormat('Ymd', $import['birthdate']); $import['birthdate'] = $date->format('m/d/Y'); } $notes = $import['notes']; unset($import['notes']); $contact = Contact::create($import); $business->contacts()->attach($contact, ['notes' => $notes]); $business->save(); } $count = count($csv); $this->log->info(" Imported {$count} contacts"); Notifynder::category('user.importedContacts')->from('App\\Models\\User', auth()->user()->id)->to('App\\Models\\Business', $business->id)->url('http://localhost')->extra(compact('count'))->send(); Flash::success(trans('manager.contacts.msg.import.success')); return redirect()->route('manager.business.contact.index', [$business]); }
/** * Copy Contact from provided exiting. * * @param User $user * @param Business $business * @param Contact $existingContact * * @return App\Models\Contact */ public function copyFrom(User $user, Business $business, Contact $existingContact) { $contact = Contact::create($existingContact->toArray()); $contact->user()->associate($user->id); $contact->businesses()->detach(); $contact->save(); $business->contacts()->attach($contact); $business->save(); return $contact; }
/** * store Business * * @param BusinessFormRequest $request Business form Request * @return Response Redirect */ public function store(BusinessFormRequest $request) { $this->log->info(__METHOD__); ////////////////// // FOR REFACTOR // ////////////////// // Search Existing $existingBusiness = Business::withTrashed()->where(['slug' => $request->input('slug')])->first(); // If found if ($existingBusiness !== null) { $this->log->info(" Found existing businessId:{$existingBusiness->id}"); // If owned, restore if (auth()->user()->isOwner($existingBusiness)) { $this->log->info(" Restoring owned businessId:{$existingBusiness->id}"); $existingBusiness->restore(); Flash::success(trans('manager.businesses.msg.store.restored_trashed')); return redirect()->route('manager.business.service.create', $existingBusiness); } // If not owned, return message $this->log->info(" Already taken businessId:{$existingBusiness->id}"); Flash::error(trans('manager.businesses.msg.store.business_already_exists')); return redirect()->back()->withInput(request()->all()); } // Register new Business $business = new Business($request->all()); $category = Category::find($request->get('category')); $business->strategy = $category->strategy; $business->category()->associate($category); $business->save(); auth()->user()->businesses()->attach($business); auth()->user()->save(); // Generate local notification $business_name = $business->name; Notifynder::category('user.registeredBusiness')->from('App\\Models\\User', auth()->user()->id)->to('App\\Models\\Business', $business->id)->url('http://localhost')->extra(compact('business_name'))->send(); // Redirect success Flash::success(trans('manager.businesses.msg.store.success')); return redirect()->route('manager.business.service.create', $business); }
/** * Set category to a Business and save. * * @param Business $business * @param int $category * * @return App\Models\Business */ public function setCategory(Business $business, $category) { $category = Category::find($category); $business->category()->associate($category); $business->save(); return $business; }