public function getAdvisorsWhoHaveAnAvailabilityWithinGroup() { $advisors = Advisor::all(); $expertiseWithinGroup = $this->expertise()->get(); $advisorsWhoHaveAnExpertiseWithinGroup = []; $alreadyAddedAdvisorIds = []; $break = 0; foreach ($advisors as $advisor) { if ($advisor->availabilities()->first() !== null) { $expertisesOfAdv = $advisor->expertise()->get(); foreach ($expertisesOfAdv as $exp) { if ($exp->isInGroup($this)) { $advisorsWhoHaveAnExpertiseWithinGroup[] = $advisor; $break = 1; } if ($break == 1) { // break; } } } } if ($advisorsWhoHaveAnExpertiseWithinGroup == null) { return false; } return array_unique($advisorsWhoHaveAnExpertiseWithinGroup); }
public function getAdvisor($advisor_id) { if (Advisor::find($advisor_id) != null) { $advisor = Advisor::find($advisor_id); return $advisor; } else { return Redirect::route('home'); } }
public function requestNewExpertise() { $advisor = Advisor::find(Input::get('advisor_id')); $this->expertise->createExpertise(Input::get('requestedExpertise'), 'Description goes here.', $advisor->id, true); $data = ['expertise' => Input::get('requestedExpertise'), 'advisorEmail' => $advisor->email, 'advisorName' => $advisor->first_name . ' ' . $advisor->last_name]; \Mail::queue('emails.expertise.request-new', $data, function ($message) { $message->to('*****@*****.**', 'Henry Ventura')->subject('An advisor has requested a new expertise.'); }); \Mail::queue('emails.expertise.request-new', $data, function ($message) { $message->to('*****@*****.**', 'Ben Bock')->subject('An advisor has requested a new expertise.'); }); return Redirect::route('dashboard.index')->with('message', 'Your request has been submitted.'); }
public function getAdvisorsInGroup($id) { $expertiseGroup = ExpertiseGroup::find($id); if ($id == 'all') { $advisors = Advisor::where('permissions', '<', 999)->get()->sortBy('last_name'); return View::make('api.advisors.with-expertise-group', compact(['advisors'])); } // $advisors = $expertiseGroup->getAdvisorsWhoHaveAnAvailabilityWithinGroup(); $advisors = $expertiseGroup->getAdvisorsWhoHaveAnExpertiseWithinGroup('randomize'); if ($advisors == false) { $advisors = '<h2>There are currently no advisors with an availability.</h2>'; return View::make('api.advisors.with-expertise-group-none', compact(['advisors'])); } return View::make('api.advisors.with-expertise-group', compact(['advisors'])); }
public static function sendRequestInitializationEmail($day_id, $service_id, $advisor_id, $location_id, $availability_id, $requestee_name, $requestee_email, $requestee_notes, $requestee_phone) { $advisor = Advisor::find($advisor_id); $availability = Availability::find($availability_id); $advisorName = $advisor->first_name . ' ' . $advisor->last_name; $advisorEmail = $advisor->email; $data = ['day_id' => $day_id, 'service_id' => $service_id, 'advisor_id' => $advisor_id, 'location_id' => $location_id, 'availabilitiy_id' => $availability_id, 'requestee_name' => $requestee_name, 'requestee_email' => $requestee_email, 'requestee_notes' => $requestee_notes, 'requestee_phone' => $requestee_phone, 'advisor' => $advisor, 'advisorName' => $advisor->first_name . ' ' . $advisor->last_name, 'locationWebsite' => $availability->locations()->first()->website, 'locationName' => $availability->locations()->first()->name, 'availability' => $availability, 'availabilityTime' => $availability->days()->first()->prettyPrint() . ' at ' . $availability->days()->first()->pivot->time]; \Mail::queue('emails.requests.requestee', $data, function ($message) use($day_id, $service_id, $advisor_id, $location_id, $availability_id, $requestee_name, $requestee_email, $requestee_notes, $requestee_phone) { $message->to($requestee_email, $requestee_name)->subject('Your request has been submitted!'); }); \Mail::queue('emails.requests.advisor', $data, function ($message) use($day_id, $service_id, $advisor_id, $location_id, $availability_id, $requestee_name, $requestee_email, $requestee_notes, $requestee_phone, $advisorName, $advisorEmail) { $message->to($advisorEmail, $advisorName)->subject('You have been requested for an availability!'); }); }
/** * Execute the console command. * * @return mixed */ public function fire() { $recurringAvailabilities = RecurringAvailability::all(); $today = Day::where('date', Carbon::today())->first(); $daysInNextTwoWeeks = Day::whereBetween('id', [$today->id, (int) $today->id + 14])->lists('date'); $advisors = Advisor::all(); foreach ($advisors as $advisor) { if ($advisor->recurringAvailabilities()->count() == 0) { continue; } $availabilitiesInNextTwoWeeks = []; foreach ($advisor->availabilities()->get() as $avail) { if (in_array($avail->days()->first()->date, $daysInNextTwoWeeks)) { if (count(explode(':', $avail->days()->first()->pivot->time)) == 1) { if (explode(' ', $avail->days()->first()->pivot->time)[1] == 'AM') { if (explode(' ', $avail->days()->first()->pivot->time)[0] == '12') { $time = 0; } else { $time = (int) explode(' ', $avail->days()->first()->pivot->time)[0]; } } else { if (explode(' ', $avail->days()->first()->pivot->time)[0] == '12') { $time = (int) explode(' ', $avail->days()->first()->pivot->time)[0]; } else { $time = (int) explode(' ', $avail->days()->first()->pivot->time)[0] + 12; } } } else { if (explode(' ', explode(':', $avail->days()->first()->pivot->time)[1])[1] == 'AM') { if (explode(':', $avail->days()->first()->pivot->time)[0] == '12') { $time = 0; } else { $time = (int) explode(':', $avail->days()->first()->pivot->time)[0]; } } else { if (explode(':', $avail->days()->first()->pivot->time)[0] == '12') { $time = (int) explode(':', $avail->days()->first()->pivot->time)[0]; } else { $time = (int) explode(':', $avail->days()->first()->pivot->time)[0] + 12; } } } $availabilitiesInNextTwoWeeks[] = ['date' => $avail->days()->first()->date, 'time' => $time]; } } $recurringAvailabilitiesInNextTwoWeeks = []; foreach ($advisor->recurringAvailabilities()->get() as $recurAvail) { $difference = $recurAvail->day_of_week - Carbon::parse($today->date)->dayOfWeek; $this->info($difference); $dayOfWeekOfRecurAvail = Day::find($today->id + $difference); $nextWeeksDay = Day::find($today->id + $difference + 7); $timeOfRecurAvail = $recurAvail->time; if ($this->in_array_r([$dayOfWeekOfRecurAvail->date, $recurAvail->time], $availabilitiesInNextTwoWeeks)) { echo 'intersection of RecurAvail ID ' . $recurAvail->id . ' at date ' . $dayOfWeekOfRecurAvail->date . "\n"; } else { // Create it for this Week if ($difference > 0) { Availability::createRecurringAvailability($timeOfRecurAvail, $dayOfWeekOfRecurAvail->id, $advisor->id, Service::where('name', '25 Minute Free Consultation')->first()->id, $recurAvail->location_id); } if (!$this->in_array_r([$nextWeeksDay->date, $recurAvail->time], $availabilitiesInNextTwoWeeks)) { // Create it for next week Availability::createRecurringAvailability($timeOfRecurAvail, (int) $dayOfWeekOfRecurAvail->id + 7, $advisor->id, Service::where('name', '25 Minute Free Consultation')->first()->id, $recurAvail->location_id); } } } } }
/** * Edits an existing Advisor and returns the Advisor Object. * @return [type] [description] */ public function destroyAdvisor($id) { $advisor = Advisor::find($id); $advisor->delete(); return 'happy days'; }
public function resetPassword() { $advisor = Advisor::where('email', Input::get('email'))->first(); if ($advisor == null) { return Redirect::home()->with('message', 'There was no account associated with the email you provided.'); } $advisorName = $advisor->first_name . ' ' . $advisor->last_name; $newPassword = str_random(8); $data = ['newPassword' => $newPassword]; $advisor->password = Hash::make($newPassword); $advisor->save(); \Mail::queue('emails.user.new-password', $data, function ($message) use($advisor, $advisorName) { $message->to($advisor->email, $advisorName)->subject('You have been assigned a new password.'); }); return Redirect::home()->with('message', 'Your new password will be sent to your email shortly.'); }