diff --git a/app/Http/Controllers/PiggyBankController.php b/app/Http/Controllers/PiggyBankController.php index 7b1a105ae4..c7dfb69ec9 100644 --- a/app/Http/Controllers/PiggyBankController.php +++ b/app/Http/Controllers/PiggyBankController.php @@ -175,6 +175,7 @@ class PiggyBankController extends Controller $piggyBank->savedSoFar = round($piggyBank->currentRelevantRep()->currentamount, 2); $piggyBank->percentage = $piggyBank->savedSoFar != 0 ? intval($piggyBank->savedSoFar / $piggyBank->targetamount * 100) : 0; $piggyBank->leftToSave = bcsub($piggyBank->targetamount, $piggyBank->savedSoFar); + $piggyBank->percentage = $piggyBank->percentage > 100 ? 100 : $piggyBank->percentage; /* * Fill account information: diff --git a/app/Repositories/PiggyBank/PiggyBankRepository.php b/app/Repositories/PiggyBank/PiggyBankRepository.php index c288e8b3a8..6c8e356a85 100644 --- a/app/Repositories/PiggyBank/PiggyBankRepository.php +++ b/app/Repositories/PiggyBank/PiggyBankRepository.php @@ -169,6 +169,14 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface $piggyBank->save(); + // if the piggy bank is now smaller than the current relevant rep, + // remove money from the rep. + $repetition = $piggyBank->currentRelevantRep(); + if ($repetition->currentamount > $piggyBank->targetamount) { + $repetition->currentamount = $piggyBank->targetamount; + $repetition->save(); + } + return $piggyBank; } }