From ee76cc6761e5f9498179d1f30b34b1ba8ffe3d0a Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 18 Dec 2024 16:13:32 +0100 Subject: [PATCH] Fix methods --- .../Commands/Correction/CorrectAmounts.php | 18 ------------------ .../PiggyBank/PiggyBankRepository.php | 12 +++++++++++- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/app/Console/Commands/Correction/CorrectAmounts.php b/app/Console/Commands/Correction/CorrectAmounts.php index 10e65e07be..9f45e30f3c 100644 --- a/app/Console/Commands/Correction/CorrectAmounts.php +++ b/app/Console/Commands/Correction/CorrectAmounts.php @@ -161,24 +161,6 @@ class CorrectAmounts extends Command $this->friendlyInfo(sprintf('Corrected %d currency exchange rate(s).', $count)); } - private function fixRepetitions(): void - { - $set = PiggyBankRepetition::where('current_amount', '<', 0)->get(); - $count = $set->count(); - if (0 === $count) { - $this->friendlyPositive('All piggy bank repetition amounts are positive.'); - - return; - } - - /** @var PiggyBankRepetition $item */ - foreach ($set as $item) { - $item->current_amount = app('steam')->positive($item->current_amount); - $item->save(); - } - $this->friendlyInfo(sprintf('Corrected %d piggy bank repetition amount(s).', $count)); - } - private function fixPiggyBanks(): void { $set = PiggyBank::where('target_amount', '<', 0)->get(); diff --git a/app/Repositories/PiggyBank/PiggyBankRepository.php b/app/Repositories/PiggyBank/PiggyBankRepository.php index 2326e88bf9..1033d7037f 100644 --- a/app/Repositories/PiggyBank/PiggyBankRepository.php +++ b/app/Repositories/PiggyBank/PiggyBankRepository.php @@ -370,7 +370,17 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface #[\Override] public function purgeAll(): void { - throw new FireflyException('TODO Not implemented'); + PiggyBank::withTrashed() + ->whereNotNull('piggy_banks.deleted_at') + ->leftJoin('account_piggy_bank', 'account_piggy_bank.piggy_bank_id', '=', 'piggy_banks.id') + ->leftJoin('accounts', 'accounts.id', '=', 'account_piggy_bank.account_id') + ->where('accounts.user_id', auth()->user()->id) + ->with( + [ + 'objectGroups', + ] + ) + ->delete(); } #[\Override]