Replace log.

This commit is contained in:
James Cole
2025-10-05 12:49:39 +02:00
parent 362705ec71
commit 072212c112
39 changed files with 194 additions and 195 deletions

View File

@@ -28,5 +28,5 @@ parameters:
# The level 8 is the highest level. original was 5 # The level 8 is the highest level. original was 5
# 7 is more than enough, higher just leaves NULL things. # 7 is more than enough, higher just leaves NULL things.
level: 7 level: 6

View File

@@ -259,59 +259,6 @@ class BudgetController extends Controller
return $return; return $return;
} }
// /**
// * Function that processes each budget limit (per budget).
// *
// * If you have a budget limit in EUR, only transactions in EUR will be considered.
// * If you have a budget limit in GBP, only transactions in GBP will be considered.
// *
// * If you have a budget limit in EUR, and a transaction in GBP, it will not be considered for the EUR budget limit.
// *
// * @throws FireflyException
// */
// private function budgetLimits(Budget $budget, Collection $limits): array
// {
// Log::debug(sprintf('Now in budgetLimits(#%d)', $budget->id));
// $data = [];
//
// /** @var BudgetLimit $limit */
// foreach ($limits as $limit) {
// $data = array_merge($data, $this->processLimit($budget, $limit));
// }
//
// return $data;
// }
// /**
// * @throws FireflyException
// */
// private function processLimit(Budget $budget, BudgetLimit $limit): array
// {
// Log::debug(sprintf('Created new ExchangeRateConverter in %s', __METHOD__));
// $end = clone $limit->end_date;
// $end->endOfDay();
// $spent = $this->opsRepository->listExpenses($limit->start_date, $end, null, new Collection()->push($budget));
// $limitCurrencyId = $limit->transaction_currency_id;
//
// /** @var array $entry */
// // only spent the entry where the entry's currency matches the budget limit's currency
// // so $filtered will only have 1 or 0 entries
// $filtered = array_filter($spent, fn ($entry) => $entry['currency_id'] === $limitCurrencyId);
// $result = $this->processExpenses($budget->id, $filtered, $limit->start_date, $end);
// if (1 === count($result)) {
// $compare = bccomp($limit->amount, (string)app('steam')->positive($result[$limitCurrencyId]['spent']));
// $result[$limitCurrencyId]['budgeted'] = $limit->amount;
// if (1 === $compare) {
// // convert this amount into the primary currency:
// $result[$limitCurrencyId]['left'] = bcadd($limit->amount, (string)$result[$limitCurrencyId]['spent']);
// }
// if ($compare <= 0) {
// $result[$limitCurrencyId]['overspent'] = app('steam')->positive(bcadd($limit->amount, (string)$result[$limitCurrencyId]['spent']));
// }
// }
//
// return $result;
// }
private function filterLimit(int $currencyId, Collection $limits): ?BudgetLimit private function filterLimit(int $currencyId, Collection $limits): ?BudgetLimit
{ {

View File

@@ -107,11 +107,11 @@ class CategoryController extends Controller
$type = $journal['transaction_type_type']; $type = $journal['transaction_type_type'];
$currency = $currencies[$journalCurrencyId] ?? $this->currencyRepos->find($journalCurrencyId); $currency = $currencies[$journalCurrencyId] ?? $this->currencyRepos->find($journalCurrencyId);
$currencies[$journalCurrencyId] = $currency; $currencies[$journalCurrencyId] = $currency;
$currencyId = (int)$currency->id; $currencyId = $currency->id;
$currencyName = (string)$currency->name; $currencyName = $currency->name;
$currencyCode = (string)$currency->code; $currencyCode = $currency->code;
$currencySymbol = (string)$currency->symbol; $currencySymbol = $currency->symbol;
$currencyDecimalPlaces = (int)$currency->decimal_places; $currencyDecimalPlaces = $currency->decimal_places;
$amount = Steam::positive((string)$journal['amount']); $amount = Steam::positive((string)$journal['amount']);
$pcAmount = null; $pcAmount = null;
@@ -120,11 +120,11 @@ class CategoryController extends Controller
$pcAmount = $amount; $pcAmount = $amount;
} }
if ($this->convertToPrimary && $journalCurrencyId !== $this->primaryCurrency->id) { if ($this->convertToPrimary && $journalCurrencyId !== $this->primaryCurrency->id) {
$currencyId = (int)$this->primaryCurrency->id; $currencyId = $this->primaryCurrency->id;
$currencyName = (string)$this->primaryCurrency->name; $currencyName = $this->primaryCurrency->name;
$currencyCode = (string)$this->primaryCurrency->code; $currencyCode = $this->primaryCurrency->code;
$currencySymbol = (string)$this->primaryCurrency->symbol; $currencySymbol = $this->primaryCurrency->symbol;
$currencyDecimalPlaces = (int)$this->primaryCurrency->decimal_places; $currencyDecimalPlaces = $this->primaryCurrency->decimal_places;
$pcAmount = $converter->convert($currency, $this->primaryCurrency, $journal['date'], $amount); $pcAmount = $converter->convert($currency, $this->primaryCurrency, $journal['date'], $amount);
Log::debug(sprintf('Converted %s %s to %s %s', $journal['currency_code'], $amount, $this->primaryCurrency->code, $pcAmount)); Log::debug(sprintf('Converted %s %s to %s %s', $journal['currency_code'], $amount, $this->primaryCurrency->code, $pcAmount));
} }
@@ -141,10 +141,10 @@ class CategoryController extends Controller
'currency_symbol' => $currencySymbol, 'currency_symbol' => $currencySymbol,
'currency_decimal_places' => $currencyDecimalPlaces, 'currency_decimal_places' => $currencyDecimalPlaces,
'primary_currency_id' => (string)$this->primaryCurrency->id, 'primary_currency_id' => (string)$this->primaryCurrency->id,
'primary_currency_name' => (string)$this->primaryCurrency->name, 'primary_currency_name' => $this->primaryCurrency->name,
'primary_currency_code' => (string)$this->primaryCurrency->code, 'primary_currency_code' => $this->primaryCurrency->code,
'primary_currency_symbol' => (string)$this->primaryCurrency->symbol, 'primary_currency_symbol' => $this->primaryCurrency->symbol,
'primary_currency_decimal_places' => (int)$this->primaryCurrency->decimal_places, 'primary_currency_decimal_places' => $this->primaryCurrency->decimal_places,
'period' => null, 'period' => null,
'start_date' => $start->toAtomString(), 'start_date' => $start->toAtomString(),
'end_date' => $end->toAtomString(), 'end_date' => $end->toAtomString(),

View File

@@ -34,6 +34,7 @@ use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
class CorrectsOpeningBalanceCurrencies extends Command class CorrectsOpeningBalanceCurrencies extends Command
{ {
@@ -78,7 +79,7 @@ class CorrectsOpeningBalanceCurrencies extends Command
$account = $this->getAccount($journal); $account = $this->getAccount($journal);
if (!$account instanceof Account) { if (!$account instanceof Account) {
$message = sprintf('Transaction journal #%d has no valid account. Can\'t fix this line.', $journal->id); $message = sprintf('Transaction journal #%d has no valid account. Can\'t fix this line.', $journal->id);
app('log')->warning($message); Log::warning($message);
$this->friendlyError($message); $this->friendlyError($message);
return 0; return 0;

View File

@@ -28,6 +28,7 @@ use FireflyIII\Console\Commands\ShowsFriendlyMessages;
use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Enums\TransactionTypeEnum;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class CorrectsTransferBudgets extends Command class CorrectsTransferBudgets extends Command
{ {
@@ -53,13 +54,13 @@ class CorrectsTransferBudgets extends Command
foreach ($set as $entry) { foreach ($set as $entry) {
$message = sprintf('Transaction journal #%d is a %s, so has no longer a budget.', $entry->id, $entry->transactionType->type); $message = sprintf('Transaction journal #%d is a %s, so has no longer a budget.', $entry->id, $entry->transactionType->type);
$this->friendlyInfo($message); $this->friendlyInfo($message);
app('log')->debug($message); Log::debug($message);
$entry->budgets()->sync([]); $entry->budgets()->sync([]);
++$count; ++$count;
} }
if (0 !== $count) { if (0 !== $count) {
$message = sprintf('Corrected %d invalid budget/journal entries (entry).', $count); $message = sprintf('Corrected %d invalid budget/journal entries (entry).', $count);
app('log')->debug($message); Log::debug($message);
$this->friendlyInfo($message); $this->friendlyInfo($message);
} }

View File

@@ -152,7 +152,7 @@ class CorrectsUnevenAmount extends Command
$entry->the_sum $entry->the_sum
); );
$this->friendlyWarning($message); $this->friendlyWarning($message);
app('log')->warning($message); Log::warning($message);
++$this->count; ++$this->count;
continue; continue;
@@ -230,7 +230,7 @@ class CorrectsUnevenAmount extends Command
$message = sprintf('Sum of journal #%d is not zero, journal is broken and now fixed.', $journal->id); $message = sprintf('Sum of journal #%d is not zero, journal is broken and now fixed.', $journal->id);
$this->friendlyWarning($message); $this->friendlyWarning($message);
app('log')->warning($message); Log::warning($message);
$destination->amount = $amount; $destination->amount = $amount;
$destination->save(); $destination->save();

View File

@@ -30,6 +30,7 @@ use FireflyIII\Models\TransactionJournal;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class RemovesEmptyJournals extends Command class RemovesEmptyJournals extends Command
{ {
@@ -68,8 +69,8 @@ class RemovesEmptyJournals extends Command
$journal = TransactionJournal::find($row->transaction_journal_id); $journal = TransactionJournal::find($row->transaction_journal_id);
$journal?->delete(); $journal?->delete();
} catch (QueryException $e) { } catch (QueryException $e) {
app('log')->info(sprintf('Could not delete journal: %s', $e->getMessage())); Log::info(sprintf('Could not delete journal: %s', $e->getMessage()));
app('log')->error($e->getTraceAsString()); Log::error($e->getTraceAsString());
} }
Transaction::where('transaction_journal_id', $row->transaction_journal_id)->delete(); Transaction::where('transaction_journal_id', $row->transaction_journal_id)->delete();
@@ -96,8 +97,8 @@ class RemovesEmptyJournals extends Command
$journal = TransactionJournal::find($entry->id); $journal = TransactionJournal::find($entry->id);
$journal?->delete(); $journal?->delete();
} catch (QueryException $e) { } catch (QueryException $e) {
app('log')->info(sprintf('Could not delete entry: %s', $e->getMessage())); Log::info(sprintf('Could not delete entry: %s', $e->getMessage()));
app('log')->error($e->getTraceAsString()); Log::error($e->getTraceAsString());
} }
$this->friendlyInfo(sprintf('Deleted empty transaction journal #%d', $entry->id)); $this->friendlyInfo(sprintf('Deleted empty transaction journal #%d', $entry->id));

View File

@@ -37,6 +37,7 @@ use FireflyIII\Support\Export\ExportDataGenerator;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Exception; use Exception;
use Illuminate\Support\Facades\Log;
use InvalidArgumentException; use InvalidArgumentException;
use function Safe\file_put_contents; use function Safe\file_put_contents;
@@ -189,7 +190,7 @@ class ExportsData extends Command
try { try {
$date = Carbon::createFromFormat('!Y-m-d', $this->option($field)); $date = Carbon::createFromFormat('!Y-m-d', $this->option($field));
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException $e) {
app('log')->error($e->getMessage()); Log::error($e->getMessage());
$this->friendlyError(sprintf('%s date "%s" must be formatted YYYY-MM-DD. Field will be ignored.', $field, $this->option('start'))); $this->friendlyError(sprintf('%s date "%s" must be formatted YYYY-MM-DD. Field will be ignored.', $field, $this->option('start')));
$error = true; $error = true;
} }
@@ -200,7 +201,7 @@ class ExportsData extends Command
} }
} }
if (null === $this->option($field)) { if (null === $this->option($field)) {
app('log')->info(sprintf('No date given in field "%s"', $field)); Log::info(sprintf('No date given in field "%s"', $field));
$error = true; $error = true;
} }

View File

@@ -43,6 +43,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use function Safe\mb_regex_encoding; use function Safe\mb_regex_encoding;
use function Safe\json_encode; use function Safe\json_encode;
@@ -95,7 +96,7 @@ class ForcesDecimalSize extends Command
*/ */
public function handle(): int public function handle(): int
{ {
app('log')->debug('Now in ForceDecimalSize::handle()'); Log::debug('Now in ForceDecimalSize::handle()');
$this->determineDatabaseType(); $this->determineDatabaseType();
$this->friendlyError('Running this command is dangerous and can cause data loss.'); $this->friendlyError('Running this command is dangerous and can cause data loss.');

View File

@@ -27,6 +27,7 @@ namespace FireflyIII\Console\Commands\System;
use FireflyIII\Console\Commands\ShowsFriendlyMessages; use FireflyIII\Console\Commands\ShowsFriendlyMessages;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use League\Flysystem\FilesystemException; use League\Flysystem\FilesystemException;
@@ -54,7 +55,7 @@ class VerifySecurityAlerts extends Command
$disk = Storage::disk('resources'); $disk = Storage::disk('resources');
// Next line is ignored because it's a Laravel Facade. // Next line is ignored because it's a Laravel Facade.
if (!$disk->has('alerts.json')) { // @phpstan-ignore-line if (!$disk->has('alerts.json')) { // @phpstan-ignore-line
app('log')->debug('No alerts.json file present.'); Log::debug('No alerts.json file present.');
return 0; return 0;
} }
@@ -64,19 +65,19 @@ class VerifySecurityAlerts extends Command
/** @var array $array */ /** @var array $array */
foreach ($json as $array) { foreach ($json as $array) {
if ($version === $array['version'] && true === $array['advisory']) { if ($version === $array['version'] && true === $array['advisory']) {
app('log')->debug(sprintf('Version %s has an alert!', $array['version'])); Log::debug(sprintf('Version %s has an alert!', $array['version']));
// add advisory to configuration. // add advisory to configuration.
$this->saveSecurityAdvisory($array); $this->saveSecurityAdvisory($array);
// depends on level // depends on level
if ('info' === $array['level']) { if ('info' === $array['level']) {
app('log')->debug('INFO level alert'); Log::debug('INFO level alert');
$this->friendlyInfo($array['message']); $this->friendlyInfo($array['message']);
return 0; return 0;
} }
if ('warning' === $array['level']) { if ('warning' === $array['level']) {
app('log')->debug('WARNING level alert'); Log::debug('WARNING level alert');
$this->friendlyWarning('------------------------ :o'); $this->friendlyWarning('------------------------ :o');
$this->friendlyWarning($array['message']); $this->friendlyWarning($array['message']);
$this->friendlyWarning('------------------------ :o'); $this->friendlyWarning('------------------------ :o');
@@ -84,7 +85,7 @@ class VerifySecurityAlerts extends Command
return 0; return 0;
} }
if ('danger' === $array['level']) { if ('danger' === $array['level']) {
app('log')->debug('DANGER level alert'); Log::debug('DANGER level alert');
$this->friendlyError('------------------------ :-('); $this->friendlyError('------------------------ :-(');
$this->friendlyError($array['message']); $this->friendlyError($array['message']);
$this->friendlyError('------------------------ :-('); $this->friendlyError('------------------------ :-(');
@@ -95,7 +96,7 @@ class VerifySecurityAlerts extends Command
return 0; return 0;
} }
} }
app('log')->debug(sprintf('No security alerts for version %s', $version)); Log::debug(sprintf('No security alerts for version %s', $version));
$this->friendlyPositive(sprintf('No security alerts for version %s', $version)); $this->friendlyPositive(sprintf('No security alerts for version %s', $version));
return 0; return 0;
@@ -107,7 +108,7 @@ class VerifySecurityAlerts extends Command
app('fireflyconfig')->delete('upgrade_security_message'); app('fireflyconfig')->delete('upgrade_security_message');
app('fireflyconfig')->delete('upgrade_security_level'); app('fireflyconfig')->delete('upgrade_security_level');
} catch (QueryException $e) { } catch (QueryException $e) {
app('log')->debug(sprintf('Could not delete old security advisory, but thats OK: %s', $e->getMessage())); Log::debug(sprintf('Could not delete old security advisory, but thats OK: %s', $e->getMessage()));
} }
} }
@@ -117,7 +118,7 @@ class VerifySecurityAlerts extends Command
app('fireflyconfig')->set('upgrade_security_message', $array['message']); app('fireflyconfig')->set('upgrade_security_message', $array['message']);
app('fireflyconfig')->set('upgrade_security_level', $array['level']); app('fireflyconfig')->set('upgrade_security_level', $array['level']);
} catch (QueryException $e) { } catch (QueryException $e) {
app('log')->debug(sprintf('Could not save new security advisory, but thats OK: %s', $e->getMessage())); Log::debug(sprintf('Could not save new security advisory, but thats OK: %s', $e->getMessage()));
} }
} }
} }

View File

@@ -315,7 +315,7 @@ class ApplyRules extends Command
// if in rule selection, or group in selection or all rules, it's included. // if in rule selection, or group in selection or all rules, it's included.
$test = $this->includeRule($rule, $group); $test = $this->includeRule($rule, $group);
if (true === $test) { if (true === $test) {
app('log')->debug(sprintf('Will include rule #%d "%s"', $rule->id, $rule->title)); Log::debug(sprintf('Will include rule #%d "%s"', $rule->id, $rule->title));
$rulesToApply->push($rule); $rulesToApply->push($rule);
} }
} }

View File

@@ -76,8 +76,8 @@ class Cron extends Command
try { try {
$this->exchangeRatesCronJob($force, $date); $this->exchangeRatesCronJob($force, $date);
} catch (FireflyException $e) { } catch (FireflyException $e) {
app('log')->error($e->getMessage()); Log::error($e->getMessage());
app('log')->error($e->getTraceAsString()); Log::error($e->getTraceAsString());
$this->friendlyError($e->getMessage()); $this->friendlyError($e->getMessage());
} }
} }
@@ -87,8 +87,8 @@ class Cron extends Command
try { try {
$this->checkForUpdates($force); $this->checkForUpdates($force);
} catch (FireflyException $e) { } catch (FireflyException $e) {
app('log')->error($e->getMessage()); Log::error($e->getMessage());
app('log')->error($e->getTraceAsString()); Log::error($e->getTraceAsString());
$this->friendlyError($e->getMessage()); $this->friendlyError($e->getMessage());
} }
} }
@@ -98,8 +98,8 @@ class Cron extends Command
try { try {
$this->recurringCronJob($force, $date); $this->recurringCronJob($force, $date);
} catch (FireflyException $e) { } catch (FireflyException $e) {
app('log')->error($e->getMessage()); Log::error($e->getMessage());
app('log')->error($e->getTraceAsString()); Log::error($e->getTraceAsString());
$this->friendlyError($e->getMessage()); $this->friendlyError($e->getMessage());
} }
} }
@@ -109,8 +109,8 @@ class Cron extends Command
try { try {
$this->autoBudgetCronJob($force, $date); $this->autoBudgetCronJob($force, $date);
} catch (FireflyException $e) { } catch (FireflyException $e) {
app('log')->error($e->getMessage()); Log::error($e->getMessage());
app('log')->error($e->getTraceAsString()); Log::error($e->getTraceAsString());
$this->friendlyError($e->getMessage()); $this->friendlyError($e->getMessage());
} }
} }
@@ -120,8 +120,8 @@ class Cron extends Command
try { try {
$this->subscriptionWarningCronJob($force, $date); $this->subscriptionWarningCronJob($force, $date);
} catch (FireflyException $e) { } catch (FireflyException $e) {
app('log')->error($e->getMessage()); Log::error($e->getMessage());
app('log')->error($e->getTraceAsString()); Log::error($e->getTraceAsString());
$this->friendlyError($e->getMessage()); $this->friendlyError($e->getMessage());
} }
} }
@@ -130,8 +130,8 @@ class Cron extends Command
try { try {
$this->webhookCronJob($force, $date); $this->webhookCronJob($force, $date);
} catch (FireflyException $e) { } catch (FireflyException $e) {
app('log')->error($e->getMessage()); Log::error($e->getMessage());
app('log')->error($e->getTraceAsString()); Log::error($e->getTraceAsString());
$this->friendlyError($e->getMessage()); $this->friendlyError($e->getMessage());
} }
} }

View File

@@ -31,6 +31,7 @@ use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Journal\JournalCLIRepositoryInterface; use FireflyIII\Repositories\Journal\JournalCLIRepositoryInterface;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
class AddsTransactionIdentifiers extends Command class AddsTransactionIdentifiers extends Command
@@ -147,7 +148,7 @@ class AddsTransactionIdentifiers extends Command
->first() ->first()
; ;
} catch (QueryException $e) { } catch (QueryException $e) {
app('log')->error($e->getMessage()); Log::error($e->getMessage());
$this->friendlyError('Firefly III could not find the "identifier" field in the "transactions" table.'); $this->friendlyError('Firefly III could not find the "identifier" field in the "transactions" table.');
$this->friendlyError(sprintf('This field is required for Firefly III version %s to run.', config('firefly.version'))); $this->friendlyError(sprintf('This field is required for Firefly III version %s to run.', config('firefly.version')));
$this->friendlyError('Please run "php artisan migrate --force" to add this field to the table.'); $this->friendlyError('Please run "php artisan migrate --force" to add this field to the table.');

View File

@@ -31,6 +31,7 @@ use Illuminate\Console\Command;
use Illuminate\Contracts\Encryption\DecryptException; use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use JsonException; use JsonException;
use stdClass; use stdClass;
@@ -96,7 +97,7 @@ class RemovesDatabaseDecryption extends Command
try { try {
$configVar = app('fireflyconfig')->get($configName, false); $configVar = app('fireflyconfig')->get($configName, false);
} catch (FireflyException $e) { } catch (FireflyException $e) {
app('log')->error($e->getMessage()); Log::error($e->getMessage());
} }
if (null !== $configVar) { if (null !== $configVar) {
return (bool) $configVar->data; return (bool) $configVar->data;
@@ -129,8 +130,8 @@ class RemovesDatabaseDecryption extends Command
} catch (FireflyException $e) { } catch (FireflyException $e) {
$message = sprintf('Could not decrypt field "%s" in row #%d of table "%s": %s', $field, $id, $table, $e->getMessage()); $message = sprintf('Could not decrypt field "%s" in row #%d of table "%s": %s', $field, $id, $table, $e->getMessage());
$this->friendlyError($message); $this->friendlyError($message);
app('log')->error($message); Log::error($message);
app('log')->error($e->getTraceAsString()); Log::error($e->getTraceAsString());
} }
// A separate routine for preferences table: // A separate routine for preferences table:
@@ -175,9 +176,9 @@ class RemovesDatabaseDecryption extends Command
} catch (JsonException $e) { } catch (JsonException $e) {
$message = sprintf('Could not JSON decode preference row #%d: %s. This does not have to be a problem.', $id, $e->getMessage()); $message = sprintf('Could not JSON decode preference row #%d: %s. This does not have to be a problem.', $id, $e->getMessage());
$this->friendlyError($message); $this->friendlyError($message);
app('log')->warning($message); Log::warning($message);
app('log')->warning($value); Log::warning($value);
app('log')->warning($e->getTraceAsString()); Log::warning($e->getTraceAsString());
return; return;
} }

View File

@@ -29,6 +29,7 @@ use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Attachment; use FireflyIII\Models\Attachment;
use FireflyIII\Models\Note; use FireflyIII\Models\Note;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class UpgradesAttachments extends Command class UpgradesAttachments extends Command
{ {
@@ -75,7 +76,7 @@ class UpgradesAttachments extends Command
$att->description = ''; $att->description = '';
$att->save(); $att->save();
app('log')->debug(sprintf('Migrated attachment #%s description to note #%d.', $att->id, $note->id)); Log::debug(sprintf('Migrated attachment #%s description to note #%d.', $att->id, $note->id));
++$count; ++$count;
} }
} }

View File

@@ -27,6 +27,7 @@ namespace FireflyIII\Console\Commands\Upgrade;
use FireflyIII\Console\Commands\ShowsFriendlyMessages; use FireflyIII\Console\Commands\ShowsFriendlyMessages;
use FireflyIII\Models\BudgetLimit; use FireflyIII\Models\BudgetLimit;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class UpgradesBudgetLimitPeriods extends Command class UpgradesBudgetLimitPeriods extends Command
{ {
@@ -84,7 +85,7 @@ class UpgradesBudgetLimitPeriods extends Command
$limit->end_date->format('Y-m-d') $limit->end_date->format('Y-m-d')
); );
$this->friendlyWarning($message); $this->friendlyWarning($message);
app('log')->warning($message); Log::warning($message);
return; return;
} }
@@ -98,7 +99,7 @@ class UpgradesBudgetLimitPeriods extends Command
$limit->end_date->format('Y-m-d'), $limit->end_date->format('Y-m-d'),
$period $period
); );
app('log')->debug($msg); Log::debug($msg);
} }
private function getLimitPeriod(BudgetLimit $limit): ?string private function getLimitPeriod(BudgetLimit $limit): ?string

View File

@@ -28,6 +28,7 @@ use FireflyIII\Console\Commands\ShowsFriendlyMessages;
use FireflyIII\Models\Note; use FireflyIII\Models\Note;
use FireflyIII\Models\TransactionJournalMeta; use FireflyIII\Models\TransactionJournalMeta;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class UpgradesJournalNotes extends Command class UpgradesJournalNotes extends Command
{ {
@@ -66,7 +67,7 @@ class UpgradesJournalNotes extends Command
$note->text = $meta->data; $note->text = $meta->data;
$note->save(); $note->save();
app('log')->debug(sprintf('Migrated meta note #%d to Note #%d', $meta->id, $note->id)); Log::debug(sprintf('Migrated meta note #%d to Note #%d', $meta->id, $note->id));
$meta->delete(); $meta->delete();
++$count; ++$count;

View File

@@ -35,6 +35,7 @@ use FireflyIII\Services\Internal\Destroy\TransactionGroupDestroyService;
use FireflyIII\Services\Internal\Support\CreditRecalculateService; use FireflyIII\Services\Internal\Support\CreditRecalculateService;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class UpgradesLiabilitiesEight extends Command class UpgradesLiabilitiesEight extends Command
{ {
@@ -186,7 +187,7 @@ class UpgradesLiabilitiesEight extends Command
return; return;
} }
app('log')->warning('Did not find opening balance.'); Log::warning('Did not find opening balance.');
} }
private function deleteTransactions(Account $account): int private function deleteTransactions(Account $account): int

View File

@@ -38,6 +38,7 @@ use Illuminate\Console\Command;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Exception; use Exception;
use Illuminate\Support\Facades\Log;
class UpgradesToGroups extends Command class UpgradesToGroups extends Command
{ {
@@ -127,11 +128,11 @@ class UpgradesToGroups extends Command
{ {
// double check transaction count. // double check transaction count.
if ($journal->transactions->count() <= 2) { if ($journal->transactions->count() <= 2) {
app('log')->debug(sprintf('Will not try to convert journal #%d because it has 2 or fewer transactions.', $journal->id)); Log::debug(sprintf('Will not try to convert journal #%d because it has 2 or fewer transactions.', $journal->id));
return; return;
} }
app('log')->debug(sprintf('Will now try to convert journal #%d', $journal->id)); Log::debug(sprintf('Will now try to convert journal #%d', $journal->id));
$this->journalRepository->setUser($journal->user); $this->journalRepository->setUser($journal->user);
$this->groupFactory->setUser($journal->user); $this->groupFactory->setUser($journal->user);
@@ -144,15 +145,15 @@ class UpgradesToGroups extends Command
]; ];
$destTransactions = $this->getDestinationTransactions($journal); $destTransactions = $this->getDestinationTransactions($journal);
app('log')->debug(sprintf('Will use %d positive transactions to create a new group.', $destTransactions->count())); Log::debug(sprintf('Will use %d positive transactions to create a new group.', $destTransactions->count()));
/** @var Transaction $transaction */ /** @var Transaction $transaction */
foreach ($destTransactions as $transaction) { foreach ($destTransactions as $transaction) {
$data['transactions'][] = $this->generateTransaction($journal, $transaction); $data['transactions'][] = $this->generateTransaction($journal, $transaction);
} }
app('log')->debug(sprintf('Now calling transaction journal factory (%d transactions in array)', count($data['transactions']))); Log::debug(sprintf('Now calling transaction journal factory (%d transactions in array)', count($data['transactions'])));
$group = $this->groupFactory->create($data); $group = $this->groupFactory->create($data);
app('log')->debug('Done calling transaction journal factory'); Log::debug('Done calling transaction journal factory');
// delete the old transaction journal. // delete the old transaction journal.
$this->service->destroy($journal); $this->service->destroy($journal);
@@ -160,7 +161,7 @@ class UpgradesToGroups extends Command
++$this->count; ++$this->count;
// report on result: // report on result:
app('log')->debug( Log::debug(
sprintf( sprintf(
'Migrated journal #%d into group #%d with these journals: #%s', 'Migrated journal #%d into group #%d with these journals: #%s',
$journal->id, $journal->id,
@@ -190,7 +191,7 @@ class UpgradesToGroups extends Command
*/ */
private function generateTransaction(TransactionJournal $journal, Transaction $transaction): array private function generateTransaction(TransactionJournal $journal, Transaction $transaction): array
{ {
app('log')->debug(sprintf('Now going to add transaction #%d to the array.', $transaction->id)); Log::debug(sprintf('Now going to add transaction #%d to the array.', $transaction->id));
$opposingTr = $this->findOpposingTransaction($journal, $transaction); $opposingTr = $this->findOpposingTransaction($journal, $transaction);
if (!$opposingTr instanceof Transaction) { if (!$opposingTr instanceof Transaction) {
@@ -282,8 +283,8 @@ class UpgradesToGroups extends Command
static function (Transaction $subject) use ($transaction) { static function (Transaction $subject) use ($transaction) {
$amount = (float) $transaction->amount * -1 === (float) $subject->amount; // intentional float $amount = (float) $transaction->amount * -1 === (float) $subject->amount; // intentional float
$identifier = $transaction->identifier === $subject->identifier; $identifier = $transaction->identifier === $subject->identifier;
app('log')->debug(sprintf('Amount the same? %s', var_export($amount, true))); Log::debug(sprintf('Amount the same? %s', var_export($amount, true)));
app('log')->debug(sprintf('ID the same? %s', var_export($identifier, true))); Log::debug(sprintf('ID the same? %s', var_export($identifier, true)));
return $amount && $identifier; return $amount && $identifier;
} }
@@ -294,13 +295,13 @@ class UpgradesToGroups extends Command
private function getTransactionBudget(Transaction $left, Transaction $right): ?int private function getTransactionBudget(Transaction $left, Transaction $right): ?int
{ {
app('log')->debug('Now in getTransactionBudget()'); Log::debug('Now in getTransactionBudget()');
// try to get a budget ID from the left transaction: // try to get a budget ID from the left transaction:
/** @var null|Budget $budget */ /** @var null|Budget $budget */
$budget = $left->budgets()->first(); $budget = $left->budgets()->first();
if (null !== $budget) { if (null !== $budget) {
app('log')->debug(sprintf('Return budget #%d, from transaction #%d', $budget->id, $left->id)); Log::debug(sprintf('Return budget #%d, from transaction #%d', $budget->id, $left->id));
return $budget->id; return $budget->id;
} }
@@ -309,11 +310,11 @@ class UpgradesToGroups extends Command
/** @var null|Budget $budget */ /** @var null|Budget $budget */
$budget = $right->budgets()->first(); $budget = $right->budgets()->first();
if (null !== $budget) { if (null !== $budget) {
app('log')->debug(sprintf('Return budget #%d, from transaction #%d', $budget->id, $right->id)); Log::debug(sprintf('Return budget #%d, from transaction #%d', $budget->id, $right->id));
return $budget->id; return $budget->id;
} }
app('log')->debug('Neither left or right have a budget, return NULL'); Log::debug('Neither left or right have a budget, return NULL');
// if all fails, return NULL. // if all fails, return NULL.
return null; return null;
@@ -321,13 +322,13 @@ class UpgradesToGroups extends Command
private function getTransactionCategory(Transaction $left, Transaction $right): ?int private function getTransactionCategory(Transaction $left, Transaction $right): ?int
{ {
app('log')->debug('Now in getTransactionCategory()'); Log::debug('Now in getTransactionCategory()');
// try to get a category ID from the left transaction: // try to get a category ID from the left transaction:
/** @var null|Category $category */ /** @var null|Category $category */
$category = $left->categories()->first(); $category = $left->categories()->first();
if (null !== $category) { if (null !== $category) {
app('log')->debug(sprintf('Return category #%d, from transaction #%d', $category->id, $left->id)); Log::debug(sprintf('Return category #%d, from transaction #%d', $category->id, $left->id));
return $category->id; return $category->id;
} }
@@ -336,11 +337,11 @@ class UpgradesToGroups extends Command
/** @var null|Category $category */ /** @var null|Category $category */
$category = $right->categories()->first(); $category = $right->categories()->first();
if (null !== $category) { if (null !== $category) {
app('log')->debug(sprintf('Return category #%d, from transaction #%d', $category->id, $category->id)); Log::debug(sprintf('Return category #%d, from transaction #%d', $category->id, $category->id));
return $category->id; return $category->id;
} }
app('log')->debug('Neither left or right have a category, return NULL'); Log::debug('Neither left or right have a category, return NULL');
// if all fails, return NULL. // if all fails, return NULL.
return null; return null;
@@ -354,7 +355,7 @@ class UpgradesToGroups extends Command
$orphanedJournals = $this->cliRepository->getJournalsWithoutGroup(); $orphanedJournals = $this->cliRepository->getJournalsWithoutGroup();
$total = count($orphanedJournals); $total = count($orphanedJournals);
if ($total > 0) { if ($total > 0) {
app('log')->debug(sprintf('Going to convert %d transaction journals. Please hold..', $total)); Log::debug(sprintf('Going to convert %d transaction journals. Please hold..', $total));
$this->friendlyInfo(sprintf('Going to convert %d transaction journals. Please hold..', $total)); $this->friendlyInfo(sprintf('Going to convert %d transaction journals. Please hold..', $total));
/** @var array $array */ /** @var array $array */

View File

@@ -33,6 +33,7 @@ use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Journal\JournalCLIRepositoryInterface; use FireflyIII\Repositories\Journal\JournalCLIRepositoryInterface;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class UpgradesTransferCurrencies extends Command class UpgradesTransferCurrencies extends Command
{ {
@@ -262,7 +263,7 @@ class UpgradesTransferCurrencies extends Command
// source account must have a currency preference. // source account must have a currency preference.
if (!$this->sourceCurrency instanceof TransactionCurrency) { if (!$this->sourceCurrency instanceof TransactionCurrency) {
$message = sprintf('Account #%d ("%s") must have currency preference but has none.', $this->sourceAccount->id, $this->sourceAccount->name); $message = sprintf('Account #%d ("%s") must have currency preference but has none.', $this->sourceAccount->id, $this->sourceAccount->name);
app('log')->error($message); Log::error($message);
$this->friendlyError($message); $this->friendlyError($message);
return true; return true;
@@ -275,7 +276,7 @@ class UpgradesTransferCurrencies extends Command
$this->destinationAccount->id, $this->destinationAccount->id,
$this->destinationAccount->name $this->destinationAccount->name
); );
app('log')->error($message); Log::error($message);
$this->friendlyError($message); $this->friendlyError($message);
return true; return true;

View File

@@ -27,6 +27,7 @@ namespace FireflyIII\Console\Commands;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Support\Facades\Log;
/** /**
* Trait VerifiesAccessToken. * Trait VerifiesAccessToken.
@@ -76,19 +77,19 @@ trait VerifiesAccessToken
$user = $repository->find($userId); $user = $repository->find($userId);
if (null === $user) { if (null === $user) {
app('log')->error(sprintf('verifyAccessToken(): no such user for input "%d"', $userId)); Log::error(sprintf('verifyAccessToken(): no such user for input "%d"', $userId));
return false; return false;
} }
$accessToken = app('preferences')->getForUser($user, 'access_token'); $accessToken = app('preferences')->getForUser($user, 'access_token');
if (null === $accessToken) { if (null === $accessToken) {
app('log')->error(sprintf('User #%d has no access token, so cannot access command line options.', $userId)); Log::error(sprintf('User #%d has no access token, so cannot access command line options.', $userId));
return false; return false;
} }
if ($accessToken->data !== $token) { if ($accessToken->data !== $token) {
app('log')->error(sprintf('Invalid access token for user #%d.', $userId)); Log::error(sprintf('Invalid access token for user #%d.', $userId));
app('log')->error(sprintf('Token given is "%s", expected something else.', $token)); Log::error(sprintf('Token given is "%s", expected something else.', $token));
return false; return false;
} }

View File

@@ -26,6 +26,7 @@ namespace FireflyIII\Console;
use Illuminate\Console\Scheduling\Schedule; use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel; use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use Illuminate\Support\Facades\Log;
use Override; use Override;
/** /**
@@ -52,7 +53,7 @@ class Kernel extends ConsoleKernel
{ {
$schedule->call( $schedule->call(
static function (): void { static function (): void {
app('log')->error( Log::error(
'Firefly III no longer users the Laravel scheduler to do cron jobs! Please read the instructions at https://docs.firefly-iii.org/' 'Firefly III no longer users the Laravel scheduler to do cron jobs! Please read the instructions at https://docs.firefly-iii.org/'
); );
echo "\n"; echo "\n";

View File

@@ -26,6 +26,7 @@ namespace FireflyIII\Events;
use FireflyIII\Models\TransactionGroup; use FireflyIII\Models\TransactionGroup;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
/** /**
* Class DestroyedTransactionGroup. * Class DestroyedTransactionGroup.
@@ -39,6 +40,6 @@ class DestroyedTransactionGroup extends Event
*/ */
public function __construct(public TransactionGroup $transactionGroup) public function __construct(public TransactionGroup $transactionGroup)
{ {
app('log')->debug(sprintf('Now in %s', __METHOD__)); Log::debug(sprintf('Now in %s', __METHOD__));
} }
} }

View File

@@ -29,6 +29,7 @@ use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\TransactionGroup; use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
/** /**
* Class ChangedAmount * Class ChangedAmount
@@ -45,7 +46,7 @@ class ChangedAmount extends Event
*/ */
public function __construct(PiggyBank $piggyBank, string $amount, public ?TransactionJournal $transactionJournal, public ?TransactionGroup $transactionGroup) public function __construct(PiggyBank $piggyBank, string $amount, public ?TransactionJournal $transactionJournal, public ?TransactionGroup $transactionGroup)
{ {
app('log')->debug(sprintf('Created piggy bank event for piggy bank #%d with amount %s', $piggyBank->id, $amount)); Log::debug(sprintf('Created piggy bank event for piggy bank #%d with amount %s', $piggyBank->id, $amount));
$this->piggyBank = $piggyBank; $this->piggyBank = $piggyBank;
$this->amount = $amount; $this->amount = $amount;
} }

View File

@@ -26,6 +26,7 @@ namespace FireflyIII\Events\Model\Rule;
use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleAction;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
/** /**
* Class RuleActionFailedOnArray * Class RuleActionFailedOnArray
@@ -36,6 +37,6 @@ class RuleActionFailedOnArray
public function __construct(public RuleAction $ruleAction, public array $journal, public string $error) public function __construct(public RuleAction $ruleAction, public array $journal, public string $error)
{ {
app('log')->debug('Created new RuleActionFailedOnArray'); Log::debug('Created new RuleActionFailedOnArray');
} }
} }

View File

@@ -27,6 +27,7 @@ namespace FireflyIII\Events\Model\Rule;
use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
/** /**
* Class RuleActionFailedOnObject * Class RuleActionFailedOnObject
@@ -37,6 +38,6 @@ class RuleActionFailedOnObject
public function __construct(public RuleAction $ruleAction, public TransactionJournal $journal, public string $error) public function __construct(public RuleAction $ruleAction, public TransactionJournal $journal, public string $error)
{ {
app('log')->debug('Created new RuleActionFailedOnObject'); Log::debug('Created new RuleActionFailedOnObject');
} }
} }

View File

@@ -29,6 +29,7 @@ use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
/** /**
* Class RequestedReportOnJournals * Class RequestedReportOnJournals
@@ -44,7 +45,7 @@ class RequestedReportOnJournals
*/ */
public function __construct(public int $userId, public Collection $groups) public function __construct(public int $userId, public Collection $groups)
{ {
app('log')->debug('In event RequestedReportOnJournals.'); Log::debug('In event RequestedReportOnJournals.');
} }
/** /**

View File

@@ -26,6 +26,7 @@ namespace FireflyIII\Events\Test;
use FireflyIII\Notifications\Notifiables\OwnerNotifiable; use FireflyIII\Notifications\Notifiables\OwnerNotifiable;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class OwnerTestNotificationChannel class OwnerTestNotificationChannel
{ {
@@ -38,7 +39,7 @@ class OwnerTestNotificationChannel
*/ */
public function __construct(string $channel, public OwnerNotifiable $owner) public function __construct(string $channel, public OwnerNotifiable $owner)
{ {
app('log')->debug(sprintf('Triggered OwnerTestNotificationChannel("%s")', $channel)); Log::debug(sprintf('Triggered OwnerTestNotificationChannel("%s")', $channel));
$this->channel = $channel; $this->channel = $channel;
} }
} }

View File

@@ -26,6 +26,7 @@ namespace FireflyIII\Events\Test;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class UserTestNotificationChannel class UserTestNotificationChannel
{ {
@@ -38,7 +39,7 @@ class UserTestNotificationChannel
*/ */
public function __construct(string $channel, public User $user) public function __construct(string $channel, public User $user)
{ {
app('log')->debug(sprintf('Triggered UserTestNotificationChannel("%s")', $channel)); Log::debug(sprintf('Triggered UserTestNotificationChannel("%s")', $channel));
$this->channel = $channel; $this->channel = $channel;
} }
} }

View File

@@ -33,6 +33,7 @@ use FireflyIII\Models\TransactionJournal;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Override; use Override;
use Throwable; use Throwable;
@@ -65,7 +66,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
switch ($name) { switch ($name) {
default: default:
app('log')->warning(sprintf('GracefulNotFoundHandler cannot handle route with name "%s"', $name)); Log::warning(sprintf('GracefulNotFoundHandler cannot handle route with name "%s"', $name));
return parent::render($request, $e); return parent::render($request, $e);
@@ -152,7 +153,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
*/ */
private function handleAccount(Request $request, Throwable $exception): Response private function handleAccount(Request $request, Throwable $exception): Response
{ {
app('log')->debug('404 page is probably a deleted account. Redirect to overview of account types.'); Log::debug('404 page is probably a deleted account. Redirect to overview of account types.');
/** @var User $user */ /** @var User $user */
$user = auth()->user(); $user = auth()->user();
@@ -169,7 +170,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
/** @var null|Account $account */ /** @var null|Account $account */
$account = $user->accounts()->withTrashed()->with(['accountType'])->find($accountId); $account = $user->accounts()->withTrashed()->with(['accountType'])->find($accountId);
if (null === $account) { if (null === $account) {
app('log')->error(sprintf('Could not find account %d, so give big fat error.', $accountId)); Log::error(sprintf('Could not find account %d, so give big fat error.', $accountId));
return parent::render($request, $exception); return parent::render($request, $exception);
} }
@@ -187,7 +188,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
*/ */
private function handleGroup(Request $request, Throwable $exception) private function handleGroup(Request $request, Throwable $exception)
{ {
app('log')->debug('404 page is probably a deleted group. Redirect to overview of group types.'); Log::debug('404 page is probably a deleted group. Redirect to overview of group types.');
/** @var User $user */ /** @var User $user */
$user = auth()->user(); $user = auth()->user();
@@ -198,7 +199,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
/** @var null|TransactionGroup $group */ /** @var null|TransactionGroup $group */
$group = $user->transactionGroups()->withTrashed()->find($groupId); $group = $user->transactionGroups()->withTrashed()->find($groupId);
if (null === $group) { if (null === $group) {
app('log')->error(sprintf('Could not find group %d, so give big fat error.', $groupId)); Log::error(sprintf('Could not find group %d, so give big fat error.', $groupId));
return parent::render($request, $exception); return parent::render($request, $exception);
} }
@@ -206,7 +207,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
/** @var null|TransactionJournal $journal */ /** @var null|TransactionJournal $journal */
$journal = $group->transactionJournals()->withTrashed()->first(); $journal = $group->transactionJournals()->withTrashed()->first();
if (null === $journal) { if (null === $journal) {
app('log')->error(sprintf('Could not find journal for group %d, so give big fat error.', $groupId)); Log::error(sprintf('Could not find journal for group %d, so give big fat error.', $groupId));
return parent::render($request, $exception); return parent::render($request, $exception);
} }
@@ -227,7 +228,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
*/ */
private function handleAttachment(Request $request, Throwable $exception) private function handleAttachment(Request $request, Throwable $exception)
{ {
app('log')->debug('404 page is probably a deleted attachment. Redirect to parent object.'); Log::debug('404 page is probably a deleted attachment. Redirect to parent object.');
/** @var User $user */ /** @var User $user */
$user = auth()->user(); $user = auth()->user();
@@ -238,7 +239,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
/** @var null|Attachment $attachment */ /** @var null|Attachment $attachment */
$attachment = $user->attachments()->withTrashed()->find($attachmentId); $attachment = $user->attachments()->withTrashed()->find($attachmentId);
if (null === $attachment) { if (null === $attachment) {
app('log')->error(sprintf('Could not find attachment %d, so give big fat error.', $attachmentId)); Log::error(sprintf('Could not find attachment %d, so give big fat error.', $attachmentId));
return parent::render($request, $exception); return parent::render($request, $exception);
} }
@@ -260,7 +261,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
} }
} }
app('log')->error(sprintf('Could not redirect attachment %d, its linked to a %s.', $attachmentId, $attachment->attachable_type)); Log::error(sprintf('Could not redirect attachment %d, its linked to a %s.', $attachmentId, $attachment->attachable_type));
return parent::render($request, $exception); return parent::render($request, $exception);
} }

View File

@@ -36,6 +36,7 @@ use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Session\TokenMismatchException; use Illuminate\Session\TokenMismatchException;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Log;
use Illuminate\Validation\ValidationException as LaravelValidationException; use Illuminate\Validation\ValidationException as LaravelValidationException;
use Laravel\Passport\Exceptions\OAuthServerException as LaravelOAuthException; use Laravel\Passport\Exceptions\OAuthServerException as LaravelOAuthException;
use League\OAuth2\Server\Exception\OAuthServerException; use League\OAuth2\Server\Exception\OAuthServerException;
@@ -98,51 +99,51 @@ class Handler extends ExceptionHandler
{ {
$expectsJson = $request->expectsJson(); $expectsJson = $request->expectsJson();
app('log')->debug('Now in Handler::render()'); Log::debug('Now in Handler::render()');
if ($e instanceof LaravelValidationException && $expectsJson) { if ($e instanceof LaravelValidationException && $expectsJson) {
// ignore it: controller will handle it. // ignore it: controller will handle it.
app('log')->debug(sprintf('Return to parent to handle LaravelValidationException(%d)', $e->status)); Log::debug(sprintf('Return to parent to handle LaravelValidationException(%d)', $e->status));
return parent::render($request, $e); return parent::render($request, $e);
} }
if ($e instanceof NotFoundHttpException && $expectsJson) { if ($e instanceof NotFoundHttpException && $expectsJson) {
// JSON error: // JSON error:
app('log')->debug('Return JSON not found error.'); Log::debug('Return JSON not found error.');
return response()->json(['message' => 'Resource not found', 'exception' => 'NotFoundHttpException'], 404); return response()->json(['message' => 'Resource not found', 'exception' => 'NotFoundHttpException'], 404);
} }
if ($e instanceof AuthorizationException && $expectsJson) { if ($e instanceof AuthorizationException && $expectsJson) {
// somehow Laravel handler does not catch this: // somehow Laravel handler does not catch this:
app('log')->debug('Return JSON unauthorized error.'); Log::debug('Return JSON unauthorized error.');
return response()->json(['message' => $e->getMessage(), 'exception' => 'AuthorizationException'], 401); return response()->json(['message' => $e->getMessage(), 'exception' => 'AuthorizationException'], 401);
} }
if ($e instanceof AuthenticationException && $expectsJson) { if ($e instanceof AuthenticationException && $expectsJson) {
// somehow Laravel handler does not catch this: // somehow Laravel handler does not catch this:
app('log')->debug('Return JSON unauthenticated error.'); Log::debug('Return JSON unauthenticated error.');
return response()->json(['message' => $e->getMessage(), 'exception' => 'AuthenticationException'], 401); return response()->json(['message' => $e->getMessage(), 'exception' => 'AuthenticationException'], 401);
} }
if ($e instanceof OAuthServerException && $expectsJson) { if ($e instanceof OAuthServerException && $expectsJson) {
app('log')->debug('Return JSON OAuthServerException.'); Log::debug('Return JSON OAuthServerException.');
// somehow Laravel handler does not catch this: // somehow Laravel handler does not catch this:
return response()->json(['message' => $e->getMessage(), 'exception' => 'OAuthServerException'], 401); return response()->json(['message' => $e->getMessage(), 'exception' => 'OAuthServerException'], 401);
} }
if ($e instanceof BadRequestHttpException) { if ($e instanceof BadRequestHttpException) {
app('log')->debug('Return JSON BadRequestHttpException.'); Log::debug('Return JSON BadRequestHttpException.');
return response()->json(['message' => $e->getMessage(), 'exception' => 'HttpException'], 400); return response()->json(['message' => $e->getMessage(), 'exception' => 'HttpException'], 400);
} }
if ($e instanceof BadHttpHeaderException) { if ($e instanceof BadHttpHeaderException) {
// is always API exception. // is always API exception.
app('log')->debug('Return JSON BadHttpHeaderException.'); Log::debug('Return JSON BadHttpHeaderException.');
return response()->json(['message' => $e->getMessage(), 'exception' => 'BadHttpHeaderException'], $e->statusCode); return response()->json(['message' => $e->getMessage(), 'exception' => 'BadHttpHeaderException'], $e->statusCode);
} }
@@ -161,7 +162,7 @@ class Handler extends ExceptionHandler
$isDebug = (bool) config('app.debug', false); $isDebug = (bool) config('app.debug', false);
if ($isDebug) { if ($isDebug) {
app('log')->debug(sprintf('Return JSON %s with debug.', $e::class)); Log::debug(sprintf('Return JSON %s with debug.', $e::class));
return response()->json( return response()->json(
[ [
@@ -174,7 +175,7 @@ class Handler extends ExceptionHandler
$errorCode $errorCode
); );
} }
app('log')->debug(sprintf('Return JSON %s.', $e::class)); Log::debug(sprintf('Return JSON %s.', $e::class));
return response()->json( return response()->json(
['message' => sprintf('Internal Firefly III Exception: %s', $e->getMessage()), 'exception' => 'UndisclosedException'], ['message' => sprintf('Internal Firefly III Exception: %s', $e->getMessage()), 'exception' => 'UndisclosedException'],
@@ -183,7 +184,7 @@ class Handler extends ExceptionHandler
} }
if ($e instanceof NotFoundHttpException) { if ($e instanceof NotFoundHttpException) {
app('log')->debug('Refer to GracefulNotFoundHandler'); Log::debug('Refer to GracefulNotFoundHandler');
$handler = app(GracefulNotFoundHandler::class); $handler = app(GracefulNotFoundHandler::class);
return $handler->render($request, $e); return $handler->render($request, $e);
@@ -191,20 +192,20 @@ class Handler extends ExceptionHandler
// special view for database errors with extra instructions // special view for database errors with extra instructions
if ($e instanceof QueryException) { if ($e instanceof QueryException) {
app('log')->debug('Return Firefly III database exception view.'); Log::debug('Return Firefly III database exception view.');
$isDebug = config('app.debug'); $isDebug = config('app.debug');
return response()->view('errors.DatabaseException', ['exception' => $e, 'debug' => $isDebug], 500); return response()->view('errors.DatabaseException', ['exception' => $e, 'debug' => $isDebug], 500);
} }
if ($e instanceof FireflyException || $e instanceof ErrorException || $e instanceof OAuthServerException) { if ($e instanceof FireflyException || $e instanceof ErrorException || $e instanceof OAuthServerException) {
app('log')->debug('Return Firefly III error view.'); Log::debug('Return Firefly III error view.');
$isDebug = config('app.debug'); $isDebug = config('app.debug');
return response()->view('errors.FireflyException', ['exception' => $e, 'debug' => $isDebug], 500); return response()->view('errors.FireflyException', ['exception' => $e, 'debug' => $isDebug], 500);
} }
app('log')->debug(sprintf('Error "%s" has no Firefly III treatment, parent will handle.', $e::class)); Log::debug(sprintf('Error "%s" has no Firefly III treatment, parent will handle.', $e::class));
return parent::render($request, $e); return parent::render($request, $e);
} }

View File

@@ -72,16 +72,18 @@ class AccountFactory
*/ */
public function findOrCreate(string $accountName, string $accountType): Account public function findOrCreate(string $accountName, string $accountType): Account
{ {
app('log')->debug(sprintf('findOrCreate("%s", "%s")', $accountName, $accountType)); Log::debug(sprintf('findOrCreate("%s", "%s")', $accountName, $accountType));
$type = $this->accountRepository->getAccountTypeByType($accountType); $type = $this->accountRepository->getAccountTypeByType($accountType);
if (!$type instanceof AccountType) { if (!$type instanceof AccountType) {
throw new FireflyException(sprintf('Cannot find account type "%s"', $accountType)); throw new FireflyException(sprintf('Cannot find account type "%s"', $accountType));
} }
/** @var Account|null $return */
$return = $this->user->accounts->where('account_type_id', $type->id)->where('name', $accountName)->first(); $return = $this->user->accounts->where('account_type_id', $type->id)->where('name', $accountName)->first();
if (null === $return) { if (null === $return) {
app('log')->debug('Found nothing. Will create a new one.'); Log::debug('Found nothing. Will create a new one.');
/** @var Account $return */
$return = $this->create( $return = $this->create(
[ [
'user_id' => $this->user->id, 'user_id' => $this->user->id,
@@ -104,7 +106,7 @@ class AccountFactory
*/ */
public function create(array $data): Account public function create(array $data): Account
{ {
app('log')->debug('Now in AccountFactory::create()'); Log::debug('Now in AccountFactory::create()');
$type = $this->getAccountType($data); $type = $this->getAccountType($data);
$data['iban'] = $this->filterIban($data['iban'] ?? null); $data['iban'] = $this->filterIban($data['iban'] ?? null);
@@ -146,18 +148,18 @@ class AccountFactory
} }
} }
if (null === $result) { if (null === $result) {
app('log')->warning(sprintf('Found NO account type based on %d and "%s"', $accountTypeId, $accountTypeName)); Log::warning(sprintf('Found NO account type based on %d and "%s"', $accountTypeId, $accountTypeName));
throw new FireflyException(sprintf('AccountFactory::create() was unable to find account type #%d ("%s").', $accountTypeId, $accountTypeName)); throw new FireflyException(sprintf('AccountFactory::create() was unable to find account type #%d ("%s").', $accountTypeId, $accountTypeName));
} }
app('log')->debug(sprintf('Found account type based on %d and "%s": "%s"', $accountTypeId, $accountTypeName, $result->type)); Log::debug(sprintf('Found account type based on %d and "%s": "%s"', $accountTypeId, $accountTypeName, $result->type));
return $result; return $result;
} }
public function find(string $accountName, string $accountType): ?Account public function find(string $accountName, string $accountType): ?Account
{ {
app('log')->debug(sprintf('Now in AccountFactory::find("%s", "%s")', $accountName, $accountType)); Log::debug(sprintf('Now in AccountFactory::find("%s", "%s")', $accountName, $accountType));
$type = AccountType::whereType($accountType)->first(); $type = AccountType::whereType($accountType)->first();
/** @var null|Account */ /** @var null|Account */
@@ -204,16 +206,16 @@ class AccountFactory
try { try {
$this->storeOpeningBalance($account, $data); $this->storeOpeningBalance($account, $data);
} catch (FireflyException $e) { } catch (FireflyException $e) {
app('log')->error($e->getMessage()); Log::error($e->getMessage());
app('log')->error($e->getTraceAsString()); Log::error($e->getTraceAsString());
} }
// create credit liability data (only liabilities) // create credit liability data (only liabilities)
try { try {
$this->storeCreditLiability($account, $data); $this->storeCreditLiability($account, $data);
} catch (FireflyException $e) { } catch (FireflyException $e) {
app('log')->error($e->getMessage()); Log::error($e->getMessage());
app('log')->error($e->getTraceAsString()); Log::error($e->getTraceAsString());
} }
// create notes // create notes
@@ -319,22 +321,22 @@ class AccountFactory
*/ */
private function storeCreditLiability(Account $account, array $data): void private function storeCreditLiability(Account $account, array $data): void
{ {
app('log')->debug('storeCreditLiability'); Log::debug('storeCreditLiability');
$account->refresh(); $account->refresh();
$accountType = $account->accountType->type; $accountType = $account->accountType->type;
$direction = $this->accountRepository->getMetaValue($account, 'liability_direction'); $direction = $this->accountRepository->getMetaValue($account, 'liability_direction');
$valid = config('firefly.valid_liabilities'); $valid = config('firefly.valid_liabilities');
if (in_array($accountType, $valid, true)) { if (in_array($accountType, $valid, true)) {
app('log')->debug('Is a liability with credit ("i am owed") direction.'); Log::debug('Is a liability with credit ("i am owed") direction.');
if ($this->validOBData($data)) { if ($this->validOBData($data)) {
app('log')->debug('Has valid CL data.'); Log::debug('Has valid CL data.');
$openingBalance = $data['opening_balance']; $openingBalance = $data['opening_balance'];
$openingBalanceDate = $data['opening_balance_date']; $openingBalanceDate = $data['opening_balance_date'];
// store credit transaction. // store credit transaction.
$this->updateCreditTransaction($account, $direction, $openingBalance, $openingBalanceDate); $this->updateCreditTransaction($account, $direction, $openingBalance, $openingBalanceDate);
} }
if (!$this->validOBData($data)) { if (!$this->validOBData($data)) {
app('log')->debug('Does NOT have valid CL data, deletr any CL transaction.'); Log::debug('Does NOT have valid CL data, deletr any CL transaction.');
$this->deleteCreditTransaction($account); $this->deleteCreditTransaction($account);
} }
} }

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Models; namespace FireflyIII\Models;
use Carbon\Carbon;
use FireflyIII\Casts\SeparateTimezoneCaster; use FireflyIII\Casts\SeparateTimezoneCaster;
use FireflyIII\Handlers\Observer\BudgetLimitObserver; use FireflyIII\Handlers\Observer\BudgetLimitObserver;
use FireflyIII\Support\Models\ReturnsIntegerIdTrait; use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
@@ -33,6 +34,13 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\Relations\MorphMany;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* Class BudgetLimit
*
* @property TransactionCurrency $transactionCurrency
* @property Carbon $start_date
* @property Carbon $end_date
*/
#[ObservedBy([BudgetLimitObserver::class])] #[ObservedBy([BudgetLimitObserver::class])]
class BudgetLimit extends Model class BudgetLimit extends Model
{ {
@@ -50,10 +58,9 @@ class BudgetLimit extends Model
if (auth()->check()) { if (auth()->check()) {
$budgetLimitId = (int)$value; $budgetLimitId = (int)$value;
$budgetLimit = self::where('budget_limits.id', $budgetLimitId) $budgetLimit = self::where('budget_limits.id', $budgetLimitId)
->leftJoin('budgets', 'budgets.id', '=', 'budget_limits.budget_id') ->leftJoin('budgets', 'budgets.id', '=', 'budget_limits.budget_id')
->where('budgets.user_id', auth()->user()->id) ->where('budgets.user_id', auth()->user()->id)
->first(['budget_limits.*']) ->first(['budget_limits.*']);
;
if (null !== $budgetLimit) { if (null !== $budgetLimit) {
return $budgetLimit; return $budgetLimit;
} }
@@ -86,14 +93,14 @@ class BudgetLimit extends Model
protected function amount(): Attribute protected function amount(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn ($value) => (string)$value, get: static fn($value) => (string)$value,
); );
} }
protected function budgetId(): Attribute protected function budgetId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn ($value) => (int)$value, get: static fn($value) => (int)$value,
); );
} }
@@ -113,7 +120,7 @@ class BudgetLimit extends Model
protected function transactionCurrencyId(): Attribute protected function transactionCurrencyId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn ($value) => (int)$value, get: static fn($value) => (int)$value,
); );
} }
} }

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Models; namespace FireflyIII\Models;
use Carbon\Carbon;
use FireflyIII\Casts\SeparateTimezoneCaster; use FireflyIII\Casts\SeparateTimezoneCaster;
use FireflyIII\Handlers\Observer\RecurrenceObserver; use FireflyIII\Handlers\Observer\RecurrenceObserver;
use FireflyIII\Support\Models\ReturnsIntegerIdTrait; use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
@@ -38,6 +39,10 @@ use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* @property Carbon $first_date
* @property Carbon|null $latest_date
*/
#[ObservedBy([RecurrenceObserver::class])] #[ObservedBy([RecurrenceObserver::class])]
class Recurrence extends Model class Recurrence extends Model
{ {

View File

@@ -35,6 +35,9 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* @property User $user
*/
#[ObservedBy([RuleObserver::class])] #[ObservedBy([RuleObserver::class])]
class Rule extends Model class Rule extends Model
{ {

View File

@@ -35,6 +35,9 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* @property User $user
*/
#[ObservedBy([RuleGroupObserver::class])] #[ObservedBy([RuleGroupObserver::class])]
class RuleGroup extends Model class RuleGroup extends Model
{ {

View File

@@ -32,8 +32,16 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* @property User $user
* @property UserGroup $userGroup
* @property Collection<TransactionJournal> $transactionJournals
*/
#[ObservedBy([TransactionGroupObserver::class])] #[ObservedBy([TransactionGroupObserver::class])]
class TransactionGroup extends Model class TransactionGroup extends Model
{ {
@@ -50,13 +58,13 @@ class TransactionGroup extends Model
*/ */
public static function routeBinder(string $value): self public static function routeBinder(string $value): self
{ {
app('log')->debug(sprintf('Now in %s("%s")', __METHOD__, $value)); Log::debug(sprintf('Now in %s("%s")', __METHOD__, $value));
if (auth()->check()) { if (auth()->check()) {
$groupId = (int)$value; $groupId = (int)$value;
/** @var User $user */ /** @var User $user */
$user = auth()->user(); $user = auth()->user();
app('log')->debug(sprintf('User authenticated as %s', $user->email)); Log::debug(sprintf('User authenticated as %s', $user->email));
/** @var null|TransactionGroup $group */ /** @var null|TransactionGroup $group */
$group = $user->transactionGroups() $group = $user->transactionGroups()
@@ -64,12 +72,12 @@ class TransactionGroup extends Model
->where('transaction_groups.id', $groupId)->first(['transaction_groups.*']) ->where('transaction_groups.id', $groupId)->first(['transaction_groups.*'])
; ;
if (null !== $group) { if (null !== $group) {
app('log')->debug(sprintf('Found group #%d.', $group->id)); Log::debug(sprintf('Found group #%d.', $group->id));
return $group; return $group;
} }
} }
app('log')->debug('Found no group.'); Log::debug('Found no group.');
throw new NotFoundHttpException(); throw new NotFoundHttpException();
} }

View File

@@ -47,6 +47,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
* @method EloquentBuilder|static before() * @method EloquentBuilder|static before()
* @method EloquentBuilder|static after() * @method EloquentBuilder|static after()
* @method static EloquentBuilder|static query() * @method static EloquentBuilder|static query()
* @property TransactionGroup $transactionGroup
*/ */
#[ObservedBy([TransactionJournalObserver::class])] #[ObservedBy([TransactionJournalObserver::class])]
class TransactionJournal extends Model class TransactionJournal extends Model

View File

@@ -442,8 +442,6 @@ class Navigation
Log::error(sprintf('No date formats for frequency "%s"!', $repeatFrequency)); Log::error(sprintf('No date formats for frequency "%s"!', $repeatFrequency));
throw new FireflyException(sprintf('No date formats for frequency "%s"!', $repeatFrequency)); throw new FireflyException(sprintf('No date formats for frequency "%s"!', $repeatFrequency));
return $date->format('Y-m-d');
} }
/** /**