. */ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Json; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\PiggyBank; use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; use Response; /** * Class FrontpageController. */ class FrontpageController extends Controller { /** * @param PiggyBankRepositoryInterface $repository * * @return \Illuminate\Http\JsonResponse * * @throws \Throwable */ public function piggyBanks(PiggyBankRepositoryInterface $repository) { $set = $repository->getPiggyBanks(); $info = []; /** @var PiggyBank $piggyBank */ foreach ($set as $piggyBank) { $rep = $piggyBank->currentRelevantRep(); $amount = strval($rep->currentamount); if (null !== $rep->id && 1 === bccomp($amount, '0')) { // percentage! $pct = round(($amount / $piggyBank->targetamount) * 100); $entry = [ 'id' => $piggyBank->id, 'name' => $piggyBank->name, 'amount' => $amount, 'target' => $piggyBank->targetamount, 'percentage' => $pct, ]; $info[] = $entry; } } $html = ''; if (count($info) > 0) { $html = view('json.piggy-banks', compact('info'))->render(); } return Response::json(['html' => $html]); } }