/** * store Contact * * @param Business $business Business that will hold the Contact * @param ContactFormRequest $request Contact form Request * @return Response Rendered view or Redirect */ public function store(Business $business, ContactFormRequest $request) { $this->log->info(__METHOD__); $this->log->info(sprintf("businessId:%s", $business->id)); if (Gate::denies('manageContacts', $business)) { abort(403); } ////////////////// // FOR REFACTOR // ////////////////// if (trim($request->input('nin'))) { $existing_contacts = Contact::whereNotNull('nin')->where(['nin' => $request->input('nin')])->get(); foreach ($existing_contacts as $existing_contact) { $this->log->info(" [ADVICE] Found existing contactId:{$existing_contact->id}"); if ($existing_contact->isSubscribedTo($business)) { $this->log->info(" [ADVICE] Existing contact is already linked to business"); Flash::warning(trans('manager.contacts.msg.store.warning_showing_existing_contact')); return redirect()->route('manager.business.contact.show', [$business, $existing_contact]); } } } $contact = Contact::create($request->except('notes', '_token')); $business->contacts()->attach($contact); $business->save(); $this->log->info(" Contact created contactId:{$contact->id}"); if ($request->get('notes')) { $business->contacts()->find($contact->id)->pivot->update(['notes' => $request->get('notes')]); } event(new NewRegisteredContact($contact)); Flash::success(trans('manager.contacts.msg.store.success')); return redirect()->route('manager.business.contact.show', [$business, $contact]); }
/** * Find an existing contact with the same NIN. * * @param User $user * @param Business $business * @param string $nin * * @return App\Models\Contact */ public function getExisting(User $user, Business $business, $nin) { if (trim($nin) == '') { return false; } $existingContacts = Contact::whereNotNull('nin')->where(['nin' => $nin])->get(); foreach ($existingContacts as $existingContact) { logger()->info("[ADVICE] Found existing contactId:{$existingContact->id}"); if ($existingContact->isSubscribedTo($business->id)) { logger()->info('[ADVICE] Existing contact is already linked to business'); return $existingContact; } } return false; }