. */ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Json; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\PiggyBank; use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; use Illuminate\Http\JsonResponse; /** * Class FrontpageController. */ class FrontpageController extends Controller { /** * @param PiggyBankRepositoryInterface $repository * * @return JsonResponse */ public function piggyBanks(PiggyBankRepositoryInterface $repository): JsonResponse { $set = $repository->getPiggyBanks(); $info = []; /** @var PiggyBank $piggyBank */ foreach ($set as $piggyBank) { $amount = $repository->getCurrentAmount($piggyBank); if (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]); } }