예제 #1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     // This would be a great place to remove code and
     // put into a package, so that the command simply
     // calls the package function.
     // Get unsent reminders
     $remindersToSend = Reminder::where('fires_at', '<=', new \DateTime('now'))->where('fired_at', '=', NULL)->get();
     // Send each reminder
     foreach ($remindersToSend as $reminder) {
         echo 'Sending text: ' . $reminder->message . "\n";
         // Send text message reminder
         $account_sid = env('TWILIO_ACCOUNT_SID', '');
         // Your Twilio account sid
         $auth_token = env('TWILIO_AUTH_TOKEN', '');
         // Your Twilio auth token
         $client = new \Services_Twilio($account_sid, $auth_token);
         $message = $client->account->messages->sendMessage(env('TWILIO_PHONE_NUMBER', ''), env('TEST_RECEIVE_PHONE_NUMBER', ''), $reminder->message);
         /*
             echo 'Sent from ' . env('TWILIO_PHONE_NUMBER', '') . '<br/>';
             print $message->sid;
         */
         // Record that we have sent this reminder
         $reminder->fired_at = new \DateTime('now');
         $reminder->save();
     }
 }
예제 #2
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     require_once './vendor/twilio/sdk/Services/Twilio.php';
     // Get Current TimeStamp
     $date = new DateTime();
     $date = $date->format('Y-m-d H:i:00');
     // Get Reminders With TimeStamp
     $reminders = Reminder::where('reminder', '=', $date)->get();
     // Loop Through Reminders
     foreach ($reminders as $reminder) {
         // Get User for Reminder
         $user = User::where('id', '=', $reminder->user_id)->first();
         if ($user->textsent < $user->textlimit) {
             $user->textsent++;
             // Send Text to User with Reminder Text
             $account_sid = Config::get('twilio.sid');
             $auth_token = Config::get('twilio.token');
             $client = new \Services_Twilio($account_sid, $auth_token);
             $client->account->messages->create(array('To' => $user->telephone, 'From' => Config::get('twilio.from'), 'Body' => $reminder->text));
             $reminder->sent = true;
             $user->save();
         }
     }
     $reminders->save();
     return "Sent Texts";
 }
예제 #3
0
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function show($id)
 {
     $user = Auth::user()->id;
     $lists = Reminder::where('user_id', '=', $user)->where('category_id', '=', $id)->where('sent', '=', false)->get();
     foreach ($lists as $list) {
         $list->reminder = DateTime::createFromFormat('Y-m-d H:i:s', $list->reminder)->format('d/m/Y H:i');
     }
     return Response::json($lists, 200);
 }
예제 #4
0
 public function index(Request $request)
 {
     Reminder::where('active', '=', true)->where('expiry', '<', DB::raw('NOW()'))->update(['active' => false]);
     $sequence = array();
     $month_offset = 3;
     $alarms = Alarm::where('closed', '=', false)->where('date1', '<', DB::raw('NOW() + INTERVAL ' . $month_offset . ' MONTH'))->orderBy('date1', 'asc')->get();
     $reminders = Reminder::where('active', '=', true)->where('expiry', '<', DB::raw('NOW() + INTERVAL ' . $month_offset . ' MONTH'))->orderBy('expiry', 'asc')->get();
     $alarms = $alarms->merge($reminders)->sort(function ($first, $second) {
         return $first->time() - $second->time();
     });
     $m = $start = date('n');
     if (count($alarms) != 0) {
         $first = $alarms->first();
         $m = min($first->month(), $m);
     }
     while ($m < $start + $month_offset) {
         $name = strftime('%B', mktime(0, 0, 0, $m, 1));
         $sequence[$name] = array();
         $m++;
     }
     $managed = array();
     foreach ($alarms as $a) {
         $this->alarmSetStatus($a);
         $name = strftime('%B', mktime(0, 0, 0, $a->month(), 1));
         $sequence[$name][] = $a;
         $managed[] = $a->id;
     }
     if ($request->has('target')) {
         $target = $request->input('target');
         $data['focus'] = $target;
         if (array_search($target, $managed) === false) {
             $a = Alarm::find($target);
             $this->alarmSetStatus($a);
             $name = strftime('... %B %Y', mktime(0, 0, 0, $a->month(), 1, $a->year()));
             $sequence[$name] = [$a];
         }
     } else {
         $data['focus'] = -1;
     }
     $data['alarms'] = $sequence;
     $data['iterable_mails'] = $this->getIterableMails();
     return view('alarms.index', $data);
 }
예제 #5
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     // Get Current TimeStamp
     $date = new DateTime();
     $diff = new DateInterval('PT1H');
     $date = $date->sub($diff);
     $date = $date->format('Y-m-d H:i:00');
     // Get Reminders With TimeStamp
     $reminders = Reminder::where('reminder', '=', $date)->get();
     // Loop Through Reminders
     foreach ($reminders as $reminder) {
         // Get User for Reminder
         $user = User::where('id', '=', $reminder->user_id)->first();
         $user->textsent--;
         $user->save();
     }
     $reminders->delete();
     return "Sent Texts";
 }
예제 #6
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $reminders = Reminder::where('utcReminderDate', '<=', \Carbon\Carbon::now()->format('Y-m-d H:i'))->get();
     foreach ($reminders as $reminder) {
         $data = array('title' => $reminder->title, 'date' => $reminder->userReminderDate, 'description' => $reminder->description, 'name' => $reminder->user->firstname);
         Mail::send('emails.reminder', $data, function ($message) use($reminder) {
             $message->to($reminder->user->email, $reminder->user->firstname . ' ' . $reminder->user->lastname);
             $message->subject('A Friendly Remindr');
         });
         $moveReminder = new SentReminders();
         $moveReminder->id = $reminder->id;
         $moveReminder->memberid = $reminder->memberid;
         $moveReminder->title = $reminder->title;
         $moveReminder->userReminderDate = $reminder->userReminderDate;
         $moveReminder->utcReminderDate = $reminder->utcReminderDate;
         $moveReminder->description = $reminder->description;
         $moveReminder->save();
         Reminder::destroy($reminder->id);
     }
 }
예제 #7
0
 public function getIcs()
 {
     $alarms = Alarm::where('closed', '=', false)->orderBy('date1', 'asc')->get();
     $reminders = Reminder::where('active', '=', true)->orderBy('expiry', 'asc')->get();
     return view('export.ics', ['alarms' => $alarms, 'reminders' => $reminders]);
 }
예제 #8
0
<?php

use App\Reminder;
use App\Worker;
use App\User;
// Get the worker.
$worker = Worker::find(Auth::user()->TypeId);
// Now get the Reminders of the worker.
$reminders = Reminder::where('WorkerId', '=', $worker->Id)->get();
?>
<ul class="news-items">
@foreach($reminders as $reminder)
	<li id='reminder-{{ $reminder->Id }}'>
		<div class="news-item-date"><span class="news-item-day">{{ date('d', strtotime($reminder->Date))}}</span> <span class="news-item-month">{{ date('M', strtotime($reminder->Date))}}</span></div>
		<div class="news-item-detail" style="width:100%;padding-left:15px;"><p class="news-item-preview">{{ $reminder->Note }}</p>
		</div>
	</li>
@endforeach
</ul>
예제 #9
0
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     $reminders = Reminder::where('memberid', '=', Auth::user()->id)->orderBy('utcReminderDate', 'desc')->paginate(15);
     return view('reminder.index', compact('reminders'));
 }