From a09d831613425e09de4c20ce9867ee6ef1f59fef Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 4 Jul 2021 07:58:11 +0200 Subject: [PATCH] Fix #4894 --- app/Repositories/PiggyBank/ModifiesPiggyBanks.php | 7 ++++--- app/Support/ExpandedForm.php | 9 +++++---- app/Support/Http/Controllers/ModelInformation.php | 4 ++-- changelog.md | 13 ++++++++++++- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/app/Repositories/PiggyBank/ModifiesPiggyBanks.php b/app/Repositories/PiggyBank/ModifiesPiggyBanks.php index 5235d66d27..b608fd8eb2 100644 --- a/app/Repositories/PiggyBank/ModifiesPiggyBanks.php +++ b/app/Repositories/PiggyBank/ModifiesPiggyBanks.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Repositories\PiggyBank; + use Carbon\Carbon; use Exception; use FireflyIII\Exceptions\FireflyException; @@ -90,7 +91,7 @@ trait ModifiesPiggyBanks $leftOnAccount = $this->leftOnAccount($piggyBank, today(config('app.timezone'))); $savedSoFar = (string)$this->getRepetition($piggyBank)->currentamount; $leftToSave = bcsub($piggyBank->targetamount, $savedSoFar); - $maxAmount = (string)min(round((float)$leftOnAccount, 12), round((float)$leftToSave, 12)); + $maxAmount = 1 === bccomp($leftOnAccount, $leftToSave) ? $leftToSave : $leftOnAccount; $compare = bccomp($amount, $maxAmount); $result = $compare <= 0; @@ -304,7 +305,7 @@ trait ModifiesPiggyBanks $piggyBank = PiggyBank::create($piggyData); } catch (QueryException $e) { Log::error(sprintf('Could not store piggy bank: %s', $e->getMessage()), $piggyData); - throw new FireflyException('400005: Could not store new piggy bank.',0,$e); + throw new FireflyException('400005: Could not store new piggy bank.', 0, $e); } // reset order then set order: @@ -315,7 +316,7 @@ trait ModifiesPiggyBanks // repetition is auto created. $repetition = $this->getRepetition($piggyBank); - if (null !== $repetition && array_key_exists('current_amount',$data) && '' !== $data['current_amount']) { + if (null !== $repetition && array_key_exists('current_amount', $data) && '' !== $data['current_amount']) { $repetition->currentamount = $data['current_amount']; $repetition->save(); } diff --git a/app/Support/ExpandedForm.php b/app/Support/ExpandedForm.php index d700106ca4..29c6c04c0a 100644 --- a/app/Support/ExpandedForm.php +++ b/app/Support/ExpandedForm.php @@ -58,9 +58,9 @@ class ExpandedForm unset($options['currency'], $options['placeholder']); // make sure value is formatted nicely: - if (null !== $value && '' !== $value) { - $value = round((float)$value, 8); - } + //if (null !== $value && '' !== $value) { + //$value = round((float)$value, 8); + //} try { $html = prefixView('form.amount-no-currency', compact('classes', 'name', 'label', 'value', 'options'))->render(); } catch (Throwable $e) { // @phpstan-ignore-line @@ -224,6 +224,7 @@ class ExpandedForm } $selectList[$entryId] = $title; } + return $selectList; } @@ -246,7 +247,7 @@ class ExpandedForm // make sure value is formatted nicely: if (null !== $value && '' !== $value) { - $value = round((float)$value, $selectedCurrency->decimal_places); + // $value = round((float)$value, $selectedCurrency->decimal_places); } try { $html = prefixView('form.non-selectable-amount', compact('selectedCurrency', 'classes', 'name', 'label', 'value', 'options'))->render(); diff --git a/app/Support/Http/Controllers/ModelInformation.php b/app/Support/Http/Controllers/ModelInformation.php index 9798b973e0..d91cbb83a4 100644 --- a/app/Support/Http/Controllers/ModelInformation.php +++ b/app/Support/Http/Controllers/ModelInformation.php @@ -130,8 +130,8 @@ trait ModelInformation $billTriggers = ['currency_is', 'amount_more', 'amount_less', 'description_contains']; $values = [ $bill->transactionCurrency()->first()->name, - round((float)$bill->amount_min, 12), - round((float)$bill->amount_max, 12), + round((float)$bill->amount_min, 24), + round((float)$bill->amount_max, 24), $bill->name, ]; foreach ($billTriggers as $index => $trigger) { diff --git a/changelog.md b/changelog.md index ee6fd4f701..8fd6251160 100644 --- a/changelog.md +++ b/changelog.md @@ -8,7 +8,6 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Added - A few new pages for the new v2 layout. Thanks @alex6480! -- Feature to be able to rebuild Docker images and show security warnings in new builds. - Added a new currency yay! - You can now manage loans and debts a little better. @@ -16,10 +15,22 @@ This project adheres to [Semantic Versioning](http://semver.org/). - A better cache routine for layout v2 pages. - All LDAP libraries have been upgrade. +### Deprecated +- Initial release. + +### Removed +- All telemetry options have been removed. + + ### Fixed +- #4894 Bad number comparison - Various Sonarqube issues, thanks @hazma-fadil! - Correct menu display, thanks @vonsogt! + +### Security +- Feature to be able to rebuild Docker images and show security warnings in new builds. + ### API - You can disable webhooks with an extra field in API submissions. - There is a static cron token (see `.env.example`) which is useful for Docker.