From 3666ef8c59fc1193e7bdb6e22b28f15c4027c685 Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 29 Dec 2022 11:29:00 +0100 Subject: [PATCH] Fix piggy views. --- app/Transformers/PiggyBankTransformer.php | 29 ++++++++++------------- resources/views/list/piggy-banks.twig | 1 + 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/app/Transformers/PiggyBankTransformer.php b/app/Transformers/PiggyBankTransformer.php index aca43a7a69..016a0d5481 100644 --- a/app/Transformers/PiggyBankTransformer.php +++ b/app/Transformers/PiggyBankTransformer.php @@ -87,22 +87,19 @@ class PiggyBankTransformer extends AbstractTransformer } // get currently saved amount: - $currentAmountStr = $this->piggyRepos->getCurrentAmount($piggyBank); - $currentAmount = app('steam')->bcround($currentAmountStr, $currency->decimal_places); + $currentAmount = app('steam')->bcround($this->piggyRepos->getCurrentAmount($piggyBank), $currency->decimal_places); // Amounts, depending on 0.0 state of target amount - $percentage = null; - $targetAmountString = null; - $leftToSaveString = null; - $savePerMonth = null; - if (0 !== bccomp(app('steam')->bcround($currentAmountStr, $currency->decimal_places), '0')) { - $leftToSave = bcsub($piggyBank->targetamount, $currentAmountStr); - $targetAmount = (string)$piggyBank->targetamount; - $targetAmount = 1 === bccomp('0.01', $targetAmount) ? '0.01' : $targetAmount; - $percentage = (int)(0 !== bccomp('0', $currentAmountStr) ? $currentAmountStr / $targetAmount * 100 : 0); - $targetAmountString = app('steam')->bcround($targetAmount, $currency->decimal_places); - $leftToSaveString = app('steam')->bcround($leftToSave, $currency->decimal_places); - $savePerMonth = app('steam')->bcround($this->piggyRepos->getSuggestedMonthlyAmount($piggyBank), $currency->decimal_places); + $percentage = null; + $targetAmount = $piggyBank->targetamount; + $leftToSave = null; + $savePerMonth = null; + if (0 !== bccomp($targetAmount, '0')) { // target amount is not 0.00 + $leftToSave = bcsub($piggyBank->targetamount, $currentAmount); + $percentage = (int)bcmul(bcdiv($currentAmount, $targetAmount), '100'); + $targetAmount = app('steam')->bcround($targetAmount, $currency->decimal_places); + $leftToSave = app('steam')->bcround($leftToSave, $currency->decimal_places); + $savePerMonth = app('steam')->bcround($this->piggyRepos->getSuggestedMonthlyAmount($piggyBank), $currency->decimal_places); } $startDate = $piggyBank->startdate?->toAtomString(); $targetDate = $piggyBank->targetdate?->toAtomString(); @@ -119,10 +116,10 @@ class PiggyBankTransformer extends AbstractTransformer 'currency_code' => $currency->code, 'currency_symbol' => $currency->symbol, 'currency_decimal_places' => (int)$currency->decimal_places, - 'target_amount' => $targetAmountString, + 'target_amount' => $targetAmount, 'percentage' => $percentage, 'current_amount' => $currentAmount, - 'left_to_save' => $leftToSaveString, + 'left_to_save' => $leftToSave, 'save_per_month' => $savePerMonth, 'start_date' => $startDate, 'target_date' => $targetDate, diff --git a/resources/views/list/piggy-banks.twig b/resources/views/list/piggy-banks.twig index 582ae43411..8289c43d04 100644 --- a/resources/views/list/piggy-banks.twig +++ b/resources/views/list/piggy-banks.twig @@ -77,6 +77,7 @@ + {% if piggy.left_to_save > 0 or null == piggy.left_to_save %}