public function addRecipient($data) { //If this user is already a mailing recipient in the system if (MailingRecipient::where('email_address', $data['email_address'])->count() > 0) { $recipient = MailingRecipient::where('email_address', $data['email_address'])->first(); //If the recipient is already in the list, do nothing if ($this->recipients()->where('id', $recipient->id)->count() > 0) { return 0; } else { DB::table('mailing_list_recipients')->insert(['mailing_list_id' => $this->id, 'recipient_id' => $recipient->id]); return 1; } } else { $recipient = MailingRecipient::addNew(['first_name' => $data['first_name'], 'last_name' => $data['last_name'], 'email_address' => $data['email_address'], 'mobile_number' => $data['mobile_number']]); DB::table('mailing_list_recipients')->insert(['mailing_list_id' => $this->id, 'recipient_id' => $recipient->id]); $recipient->attemptLinkToPatient(); return 1; } }
public function doRecipientAdd(Request $request) { if (MailingRecipient::where('email_address', $request->input('email_address'))->count() == 0) { $recipient = MailingRecipient::addNew(['first_name' => $request->input('first_name'), 'last_name' => $request->input('last_name'), 'email_address' => $request->input('email_address'), 'mobile_number' => $request->input('mobile_number')]); $recipient->attemptLinkToPatient(); if (count($request->input('mailing_lists')) > 0) { foreach ($request->input('mailing_lists') as $list_id) { $list = MailingList::findOrFail($list_id); $recipient->addToList($list); } } return redirect()->to('marketing/recipients')->with('recipient-added', true); } else { return redirect()->to('marketing/recipients')->with(['recipient-already-exists' => true, 'recipient_id' => MailingRecipient::where('email_address', $request->input('email_address'))->first()->id]); } }