diff --git a/app/Console/Commands/Correction/FixUnevenAmount.php b/app/Console/Commands/Correction/FixUnevenAmount.php index 3a94018bdf..2e1b0bef4c 100644 --- a/app/Console/Commands/Correction/FixUnevenAmount.php +++ b/app/Console/Commands/Correction/FixUnevenAmount.php @@ -47,7 +47,7 @@ class FixUnevenAmount extends Command */ public function handle(): int { - $count = 0; + $count = 0; $journals = DB::table('transactions') ->groupBy('transaction_journal_id') ->whereNull('deleted_at') @@ -55,15 +55,23 @@ class FixUnevenAmount extends Command /** @var stdClass $entry */ foreach ($journals as $entry) { $sum = (string)$entry->the_sum; - if (!is_numeric($sum)) { - $message = sprintf('Journal #%d has an invalid sum ("%s"). No sure what to do.', $entry->transaction_journal_id, $entry->the_sum); + if (!is_numeric($sum) || '' === $sum || str_contains($sum, 'e') || str_contains($sum, ',')) { + $message = sprintf( + 'Journal #%d has an invalid sum ("%s"). No sure what to do.', + $entry->transaction_journal_id, + $entry->the_sum + ); $this->friendlyWarning($message); app('log')->warning($message); $count++; continue; } if (0 !== bccomp((string)$entry->the_sum, '0')) { - $message = sprintf('Sum of journal #%d is %s instead of zero.', $entry->transaction_journal_id, $entry->the_sum); + $message = sprintf( + 'Sum of journal #%d is %s instead of zero.', + $entry->transaction_journal_id, + $entry->the_sum + ); $this->friendlyWarning($message); app('log')->warning($message); $this->fixJournal((int)$entry->transaction_journal_id); @@ -78,7 +86,7 @@ class FixUnevenAmount extends Command } /** - * @param int $param + * @param int $param */ private function fixJournal(int $param): void {