diff --git a/app/Http/Controllers/PiggyBankController.php b/app/Http/Controllers/PiggyBankController.php index 0ec3e190c7..38235d2e3e 100644 --- a/app/Http/Controllers/PiggyBankController.php +++ b/app/Http/Controllers/PiggyBankController.php @@ -175,7 +175,7 @@ class PiggyBankController extends Controller foreach ($piggyBanks as $piggyBank) { $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->leftToSave = bcsub($piggyBank->targetamount, strval($piggyBank->savedSoFar)); $piggyBank->percentage = $piggyBank->percentage > 100 ? 100 : $piggyBank->percentage; /* @@ -192,7 +192,7 @@ class PiggyBankController extends Controller 'leftToSave' => $piggyBank->leftToSave, ]; } else { - $accounts[$account->id]['sumOfSaved'] = bcadd($accounts[$account->id]['sumOfSaved'], $piggyBank->savedSoFar); + $accounts[$account->id]['sumOfSaved'] = bcadd($accounts[$account->id]['sumOfSaved'], strval($piggyBank->savedSoFar)); $accounts[$account->id]['sumOfTargets'] = bcadd($accounts[$account->id]['sumOfTargets'], $piggyBank->targetamount); $accounts[$account->id]['leftToSave'] = bcadd($accounts[$account->id]['leftToSave'], $piggyBank->leftToSave); } diff --git a/app/Http/Controllers/Transaction/MassController.php b/app/Http/Controllers/Transaction/MassController.php index b26b5778eb..b54f628668 100644 --- a/app/Http/Controllers/Transaction/MassController.php +++ b/app/Http/Controllers/Transaction/MassController.php @@ -1,4 +1,6 @@ app->bind( - 'FireflyIII\Crud\Split\JournalInterface', - function (Application $app, array $arguments) { - if (!isset($arguments[0]) && $app->auth->check()) { - return app('FireflyIII\Crud\Split\Journal', [$app->auth->user()]); - } - if (!isset($arguments[0]) && !$app->auth->check()) { - throw new FireflyException('There is no user present.'); - } + $this->registerJournal(); + $this->registerAccount(); + } - return app('FireflyIII\Crud\Split\Journal', $arguments); - } - ); + private function registerAccount() + { $this->app->bind( 'FireflyIII\Crud\Account\AccountCrudInterface', @@ -68,4 +61,22 @@ class CrudServiceProvider extends ServiceProvider } ); } + + private function registerJournal() + { + $this->app->bind( + 'FireflyIII\Crud\Split\JournalInterface', + function (Application $app, array $arguments) { + if (!isset($arguments[0]) && $app->auth->check()) { + return app('FireflyIII\Crud\Split\Journal', [$app->auth->user()]); + } + if (!isset($arguments[0]) && !$app->auth->check()) { + throw new FireflyException('There is no user present.'); + } + + return app('FireflyIII\Crud\Split\Journal', $arguments); + } + ); + + } } diff --git a/app/Repositories/Account/AccountRepository.php b/app/Repositories/Account/AccountRepository.php index 2462f3f0e1..19363a9a81 100644 --- a/app/Repositories/Account/AccountRepository.php +++ b/app/Repositories/Account/AccountRepository.php @@ -407,7 +407,7 @@ class AccountRepository implements AccountRepositoryInterface $balance = Steam::balanceIgnoreVirtual($account, $date); /** @var PiggyBank $p */ foreach ($account->piggybanks()->get() as $p) { - $balance -= $p->currentRelevantRep()->currentamount; + $balance = bcsub($balance, $p->currentRelevantRep()->currentamount); } return $balance;