Ejemplo n.º 1
0
 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']));
 }
Ejemplo n.º 5
0
 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);
                 }
             }
         }
     }
 }
Ejemplo n.º 7
0
 /**
  * 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';
 }
Ejemplo n.º 8
0
 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.');
 }