diff --git a/controllers/BatteriesController.php b/controllers/BatteriesController.php index 76421813..05d8a803 100644 --- a/controllers/BatteriesController.php +++ b/controllers/BatteriesController.php @@ -22,10 +22,16 @@ class BatteriesController extends BaseController $nextChargeTimes[$battery->id] = $this->BatteriesService->GetNextChargeTime($battery->id); } + $nextXDays = 5; + $countDueNextXDays = count(FindAllItemsInArrayByValue($nextChargeTimes, date('Y-m-d', strtotime("+$nextXDays days")), '<')); + $countOverdue = count(FindAllItemsInArrayByValue($nextChargeTimes, date('Y-m-d', strtotime('-1 days')), '<')); return $this->AppContainer->view->render($response, 'batteriesoverview', [ 'batteries' => $this->Database->batteries(), 'current' => $this->BatteriesService->GetCurrent(), - 'nextChargeTimes' => $nextChargeTimes + 'nextChargeTimes' => $nextChargeTimes, + 'nextXDays' => $nextXDays, + 'countDueNextXDays' => $countDueNextXDays - $countOverdue, + 'countOverdue' => $countOverdue ]); } diff --git a/controllers/HabitsController.php b/controllers/HabitsController.php index 114f6ec9..9b0f8fc2 100644 --- a/controllers/HabitsController.php +++ b/controllers/HabitsController.php @@ -22,10 +22,16 @@ class HabitsController extends BaseController $nextHabitTimes[$habit->id] = $this->HabitsService->GetNextHabitTime($habit->id); } + $nextXDays = 5; + $countDueNextXDays = count(FindAllItemsInArrayByValue($nextHabitTimes, date('Y-m-d', strtotime("+$nextXDays days")), '<')); + $countOverdue = count(FindAllItemsInArrayByValue($nextHabitTimes, date('Y-m-d', strtotime('-1 days')), '<')); return $this->AppContainer->view->render($response, 'habitsoverview', [ 'habits' => $this->Database->habits(), 'currentHabits' => $this->HabitsService->GetCurrentHabits(), - 'nextHabitTimes' => $nextHabitTimes + 'nextHabitTimes' => $nextHabitTimes, + 'nextXDays' => $nextXDays, + 'countDueNextXDays' => $countDueNextXDays - $countOverdue, + 'countOverdue' => $countOverdue ]); } diff --git a/controllers/StockController.php b/controllers/StockController.php index c835157e..c553e2e8 100644 --- a/controllers/StockController.php +++ b/controllers/StockController.php @@ -17,11 +17,18 @@ class StockController extends BaseController public function Overview(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { + $currentStock = $this->StockService->GetCurrentStock(); + $nextXDays = 5; + $countExpiringNextXDays = count(FindAllObjectsInArrayByPropertyValue($currentStock, 'best_before_date', date('Y-m-d', strtotime('+5 days')), '<')); + $countAlreadyExpired = count(FindAllObjectsInArrayByPropertyValue($currentStock, 'best_before_date', date('Y-m-d', strtotime('-1 days')), '<')); return $this->AppContainer->view->render($response, 'stockoverview', [ 'products' => $this->Database->products(), 'quantityunits' => $this->Database->quantity_units(), - 'currentStock' => $this->StockService->GetCurrentStock(), - 'missingProducts' => $this->StockService->GetMissingProducts() + 'currentStock' => $currentStock, + 'missingProducts' => $this->StockService->GetMissingProducts(), + 'nextXDays' => $nextXDays, + 'countExpiringNextXDays' => $countExpiringNextXDays, + 'countAlreadyExpired' => $countAlreadyExpired ]); } diff --git a/helpers/extensions.php b/helpers/extensions.php index 7e40e3cd..ce439263 100644 --- a/helpers/extensions.php +++ b/helpers/extensions.php @@ -45,6 +45,38 @@ function FindAllObjectsInArrayByPropertyValue($array, $propertyName, $propertyVa return $returnArray; } +function FindAllItemsInArrayByValue($array, $value, $operator = '==') +{ + $returnArray = array(); + + foreach($array as $item) + { + switch($operator) + { + case '==': + if($item == $value) + { + $returnArray[] = $item; + } + break; + case '>': + if($item > $value) + { + $returnArray[] = $item; + } + break; + case '<': + if($item < $value) + { + $returnArray[] = $item; + } + break; + } + } + + return $returnArray; +} + function SumArrayValue($array, $propertyName) { $sum = 0; diff --git a/localization/de.php b/localization/de.php index 3a5e9312..ab3b43d8 100644 --- a/localization/de.php +++ b/localization/de.php @@ -157,5 +157,9 @@ return array( 'Alarm clock' => 'Wecker', 'Heat remote control' => 'Fernbedienung Heizung', 'About grocy' => 'Über grocy', - 'Close' => 'Schließen' + 'Close' => 'Schließen', + '#1 batteries are due to be charged within the next #2 days' => '#1 Batterien müssen in den nächsten #2 Tagen geladen werden', + '#1 batteries are overdue to be charged' => '#1 Batterien sind überfällig', + '#1 habits are due to be done within the next #2 days' => '#1 Gewohnheiten stehen in den nächsten #2 Tagen an', + '#1 habits are overdue to be done' => '#1 Gewohnheiten sind überfällig' ); diff --git a/services/BatteriesService.php b/services/BatteriesService.php index e8b4b3c0..b25ac5c9 100644 --- a/services/BatteriesService.php +++ b/services/BatteriesService.php @@ -26,7 +26,7 @@ class BatteriesService extends BaseService } else { - return date('Y-m-d H:i:s'); + return date('2999-12-31 23:59:59'); } return null; diff --git a/services/HabitsService.php b/services/HabitsService.php index dff00615..6256cafe 100644 --- a/services/HabitsService.php +++ b/services/HabitsService.php @@ -26,7 +26,7 @@ class HabitsService extends BaseService switch($habit->period_type) { case self::HABIT_TYPE_MANUALLY: - return date('Y-m-d H:i:s'); + return date('2999-12-31 23:59:59'); case self::HABIT_TYPE_DYNAMIC_REGULAR: return date('Y-m-d H:i:s', strtotime('+' . $habit->period_days . ' day', strtotime($habitLastLogRow->last_tracked_time))); } diff --git a/views/batteriesoverview.blade.php b/views/batteriesoverview.blade.php index 3e6aaad8..7d7c02a5 100644 --- a/views/batteriesoverview.blade.php +++ b/views/batteriesoverview.blade.php @@ -7,6 +7,15 @@ @section('content')