. */ declare(strict_types=1); namespace FireflyIII\Console\Commands\Correction; use FireflyIII\Console\Commands\ShowsFriendlyMessages; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionJournal; use Illuminate\Console\Command; class RemovesZeroAmount extends Command { use ShowsFriendlyMessages; protected $description = 'Delete transactions with zero amount.'; protected $signature = 'correction:zero-amounts'; /** * Execute the console command. */ public function handle(): int { $set = Transaction::where('amount', 0)->get(['transaction_journal_id'])->pluck('transaction_journal_id')->toArray(); $set = array_unique($set); $journals = TransactionJournal::whereIn('id', $set)->get(); /** @var TransactionJournal $journal */ foreach ($journals as $journal) { $this->friendlyWarning(sprintf('Deleted transaction journal #%d because the amount is zero (0.00).', $journal->id)); $journal->delete(); Transaction::where('transaction_journal_id', $journal->id)->delete(); } return 0; } }