コード例 #1
0
 /**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function index()
 {
     $availabilities = Availability::where('is_booked', false)->get();
     if (!$availabilities) {
         $availabilities = '';
     }
     return View::make('availabilities.index', compact(['availabilities']));
 }
コード例 #2
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     $availabilities = [];
     foreach (Availability::where('reminder_sent', false)->where('is_booked', true)->get() as $availability) {
         if ($availability->reminder_sent == true) {
             continue;
         }
         $date = $availability->days()->first()->date;
         $time = $availability->days()->first()->pivot->time;
         $dt = Carbon::parse($date . ' ' . $availability->timeToTimeStamp($time));
         if (Carbon::now()->diffInHours($dt, false) < 48) {
             $availabilities[] = $availability;
         }
     }
     foreach ($availabilities as $avail) {
         $this->info($avail->reminder_sent);
         $meeting = $avail->meetings()->first();
         $advisorEmail = $avail->advisors()->first()->email;
         $adviseeEmail = $avail->meetings()->first()->requestees()->first()->email;
         $advisor = $meeting->advisors()->first();
         $requestee = $meeting->requestees()->first();
         $avail = $meeting->availabilities()->first();
         $advisorName = $advisor->first_name . ' ' . $advisor->last_name;
         $advisorEmail = $advisor->email;
         $data = ['requestee_name' => $requestee->name, 'requestee_email' => $requestee->email, 'requestee_notes' => $requestee->notes, 'requestee_phone' => $requestee->phone, 'advisorName' => $advisor->first_name . ' ' . $advisor->last_name, 'locationWebsite' => $avail->locations()->first()->website, 'locationName' => $avail->locations()->first()->name, 'availabilityTime' => $avail->days()->first()->prettyPrint() . ' at ' . $availability->days()->first()->pivot->time];
         \Mail::queue('emails.reminder.advisor', $data, function ($message) use($advisorEmail, $advisorName) {
             $message->to($advisorEmail, $advisorName)->subject('Reminder: Your Office Hours meeting is tomorrow.');
         });
         $this->info($advisorEmail . ' emailed.');
         \Mail::queue('emails.reminder.requestee', $data, function ($message) use($requestee) {
             $message->to($requestee->email, $requestee->name)->subject('Reminder: Your Office Hours meeting is tomorrow.');
         });
         $this->info($requestee->email . ' emailed.');
         $avail->reminder_sent = true;
         $avail->save();
     }
     $this->info('end.');
 }