diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index eb48b4a263..0e5bd720c6 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -19,6 +19,7 @@ use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Collector\JournalCollectorInterface; use FireflyIII\Models\AccountType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Bill\BillRepositoryInterface; use Illuminate\Http\Request; use Illuminate\Routing\Route; use Illuminate\Support\Collection; @@ -132,6 +133,12 @@ class HomeController extends Controller $accounts = $repository->getAccountsById($frontPage->data); $showDeps = Preferences::get('showDepositsFrontpage', false)->data; + // zero bills? Hide some elements from view. + /** @var BillRepositoryInterface $billRepository */ + $billRepository = app(BillRepositoryInterface::class); + $billCount = $billRepository->getBills()->count(); + + foreach ($accounts as $account) { $collector = app(JournalCollectorInterface::class); $collector->setAccounts(new Collection([$account]))->setRange($start, $end)->setLimit(10)->setPage(1); @@ -140,7 +147,7 @@ class HomeController extends Controller } return view( - 'index', compact('count', 'subTitle', 'transactions', 'showDeps') + 'index', compact('count', 'subTitle', 'transactions', 'showDeps','billCount') ); } diff --git a/app/Http/Controllers/Json/BoxController.php b/app/Http/Controllers/Json/BoxController.php index b6c7751142..1cee4d0352 100644 --- a/app/Http/Controllers/Json/BoxController.php +++ b/app/Http/Controllers/Json/BoxController.php @@ -166,16 +166,30 @@ class BoxController extends Controller */ public function netWorth(AccountRepositoryInterface $repository) { - $today = new Carbon(date('Y-m-d')); // needed so its per day. + $date = new Carbon(date('Y-m-d')); // needed so its per day. + /** @var Carbon $start */ + $start = session('start', Carbon::now()->startOfMonth()); + /** @var Carbon $end */ + $end = session('end', Carbon::now()->endOfMonth()); + + // start and end in the future? use $end + if ($start->greaterThanOrEqualTo($date) && $end->greaterThanOrEqualTo($date)) { + $date = $end; + } + // start and end in the past? use $end + if ($start->lessThanOrEqualTo($date) && $end->lessThanOrEqualTo($date)) { + $date = $end; + } + // start in the past, end in the future? use $date $cache = new CacheProperties; - $cache->addProperty($today); + $cache->addProperty($date); $cache->addProperty('box-net-worth'); if ($cache->has()) { return Response::json($cache->get()); // @codeCoverageIgnore } $accounts = $repository->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]); $currency = app('amount')->getDefaultCurrency(); - $balances = app('steam')->balancesByAccounts($accounts, $today); + $balances = app('steam')->balancesByAccounts($accounts, $date); $sum = '0'; foreach ($balances as $entry) { $sum = bcadd($sum, $entry);