Example #1
1
 private function queuePreMatchEmail(\PlayFooty\Event $event)
 {
     Log::info(__METHOD__);
     $reminderDate = new Carbon($event->event_date . " " . $event->start_time);
     $reminderDate->subDay(1);
     Queue::later($reminderDate, new SendOrganiserReminderEmail($event));
 }
 /**
  * @param Collection $accounts
  * @param Carbon     $start
  * @param Carbon     $end
  *
  * @return array
  */
 public function expenseAccounts(Collection $accounts, Carbon $start, Carbon $end)
 {
     $data = ['count' => 1, 'labels' => [], 'datasets' => [['label' => trans('firefly.spent'), 'data' => []]]];
     bcscale(2);
     $start->subDay();
     $ids = $this->getIdsFromCollection($accounts);
     $startBalances = Steam::balancesById($ids, $start);
     $endBalances = Steam::balancesById($ids, $end);
     $accounts->each(function (Account $account) use($startBalances, $endBalances) {
         $id = $account->id;
         $startBalance = $this->isInArray($startBalances, $id);
         $endBalance = $this->isInArray($endBalances, $id);
         $diff = bcsub($endBalance, $startBalance);
         $account->difference = round($diff, 2);
     });
     $accounts = $accounts->sortByDesc(function (Account $account) {
         return $account->difference;
     });
     foreach ($accounts as $account) {
         if ($account->difference > 0) {
             $data['labels'][] = $account->name;
             $data['datasets'][0]['data'][] = $account->difference;
         }
     }
     return $data;
 }
 /**
  * @param $dateSelected
  *
  * @return array
  */
 protected function getBeginningAndEndingWeekDates($dateSelected)
 {
     $dateSelected = $this->deriveDateSelected($dateSelected);
     $bwDate = new Carbon($dateSelected);
     if ($bwDate->dayOfWeek == 0) {
         $ewDate = new Carbon($bwDate);
         $iso_beginning_dow_date = new Carbon($bwDate);
         $ewDate->addDays(6);
     } else {
         $bwDate->startOfWeek();
         // iso standard; Monday is the start of week.
         $iso_beginning_dow_date = new Carbon($bwDate);
         $bwDate->subDay();
         // adjust to Sunday as this is our current offset.
         $ewDate = new Carbon($bwDate);
         $ewDate->addDays(6);
     }
     return [$bwDate, $ewDate, $iso_beginning_dow_date];
 }
Example #4
0
 private function visitorDiagramInfo(Article $article)
 {
     $chartDatas = Visit::select([DB::raw('DATE(created_at) AS date'), DB::raw('COUNT(id) AS count')])->whereBetween('created_at', [Carbon::now()->subDays(30), Carbon::now()])->where('visitable_id', $article->id)->where('visitable_type', 'App\\Article')->groupBy('date')->orderBy('date', 'ASC')->get();
     $chartDataByDay = [];
     $chartDataByDayShamsi = [];
     foreach ($chartDatas as $data) {
         $chartDataByDay[$data->date] = $data->count;
     }
     $date = new Carbon();
     for ($i = 0; $i < 30; $i++) {
         $dateString = $date->format('Y-m-d');
         if (!isset($chartDataByDay[$dateString])) {
             $chartDataByDay[$dateString] = 0;
         }
         $date->subDay();
     }
     //        foreach($chartDataByDay as $date=>$value){
     //            $chartDataByDayShamsi[jDate::forge($date)->format('date')] = $value;
     //        }
     return $chartDataByDay;
 }
Example #5
0
 /**
  * Same but a longer date range
  * TODO combine and smarter call.
  * @param type $id
  * @return type
  */
 public function showOverviewChart($object, $id = 0)
 {
     $key = cacheKey($object, 'overviewChart', $id, Session::get('period'));
     if (Cache::has($key)) {
         return Response::json(Cache::get($key));
     }
     $objects = Str::plural($object);
     $today = clone Session::get('period');
     $end = clone $today;
     $end->modify('last day of this month');
     $past = self::getFirst();
     $db = Auth::user()->{$objects}()->find($id);
     if ($object == 'budget') {
         $past = new Carbon($db->date);
         $past->subDay();
     }
     $data = array('cols' => array(array('id' => 'date', 'label' => 'Date', 'type' => 'date', 'p' => array('role' => 'domain')), array('id' => 'amount', 'label' => 'Amount', 'type' => 'number', 'p' => array('role' => 'data')), array('type' => 'boolean', 'p' => array('role' => 'certainty'))), 'rows' => array());
     $index = 0;
     // exceptions?
     switch ($object) {
         default:
             break;
         case 'account':
             $amount = $db->balance($past);
             break;
         case 'budget':
             $balance = $db->amount;
             // get the prediction points (if any):
             $points = $db->budgetpredictionpoints()->get();
             $prediction = array();
             foreach ($points as $p) {
                 $prediction[intval($p->day)] = floatval($p->amount);
             }
             break;
     }
     while ($past <= $end) {
         $month = intval($past->format('n')) - 1;
         $year = intval($past->format('Y'));
         $day = intval($past->format('j'));
         $data['rows'][$index]['c'][0]['v'] = 'Date(' . $year . ', ' . $month . ', ' . $day . ')';
         // exceptions?
         switch ($object) {
             default:
                 // let's actually do the defaults:
                 $transactions = floatval($db->transactions()->where('onetime', '=', 0)->where('date', '=', $past->format('Y-m-d'))->sum('amount'));
                 $sum = $transactions;
                 $data['rows'][$index]['c'][1]['v'] = $sum;
                 $data['rows'][$index]['c'][2]['v'] = true;
                 break;
             case 'budget':
                 if ($past <= $today) {
                     $balance = $db->left($past);
                     $data['rows'][$index]['c'][1]['v'] = $balance;
                     $data['rows'][$index]['c'][2]['v'] = true;
                 } else {
                     $balance = $balance - (isset($prediction[$day]) ? $prediction[$day] : 0);
                     $data['rows'][$index]['c'][1]['v'] = $balance;
                     $data['rows'][$index]['c'][2]['v'] = false;
                 }
                 break;
             case 'beneficiary':
                 $transactions = floatval(Auth::user()->transactions()->where('beneficiary_id', '=', $db->id)->where('date', '=', $past->format('Y-m-d'))->sum('amount'));
                 $data['rows'][$index]['c'][1]['v'] = $transactions;
                 $data['rows'][$index]['c'][2]['v'] = true;
                 break;
             case 'account':
                 if ($past > $today) {
                     $prediction = $db->predict($past);
                     $balance = $balance - $prediction;
                     $certain = false;
                 } else {
                     $balance = $db->balance($past);
                     $certain = true;
                 }
                 $data['rows'][$index]['c'][1]['v'] = $balance;
                 $data['rows'][$index]['c'][2]['v'] = $certain;
                 break;
         }
         $past->addDay();
         $index++;
     }
     Cache::put($key, $data, 1440);
     return Response::json($data);
 }