/**
  * 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]);
 }
예제 #2
0
 /**
  * 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;
 }