/** * 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'])); }
/** * 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.'); }