More PHP8.4 updates

This commit is contained in:
James Cole
2025-05-04 13:47:00 +02:00
parent e42107c03c
commit 51e86448c7
195 changed files with 524 additions and 715 deletions

View File

@@ -185,7 +185,7 @@ class AttachmentHelper implements AttachmentHelperInterface
return false; return false;
} }
Log::debug(sprintf('Now in saveAttachmentsForModel for model %s', get_class($model))); Log::debug(sprintf('Now in saveAttachmentsForModel for model %s', $model::class));
if (is_array($files)) { if (is_array($files)) {
Log::debug('$files is an array.'); Log::debug('$files is an array.');
@@ -335,7 +335,7 @@ class AttachmentHelper implements AttachmentHelperInterface
{ {
$md5 = \Safe\md5_file($file->getRealPath()); $md5 = \Safe\md5_file($file->getRealPath());
$name = $file->getClientOriginalName(); $name = $file->getClientOriginalName();
$class = get_class($model); $class = $model::class;
$count = 0; $count = 0;
// ignore lines about polymorphic calls. // ignore lines about polymorphic calls.
if ($model instanceof PiggyBank) { if ($model instanceof PiggyBank) {

View File

@@ -50,7 +50,7 @@ class NetWorth implements NetWorthInterface
private AccountRepositoryInterface $accountRepository; private AccountRepositoryInterface $accountRepository;
private CurrencyRepositoryInterface $currencyRepos; private CurrencyRepositoryInterface $currencyRepos;
private User $user; // @phpstan-ignore-line private User $user; // @phpstan-ignore-line
private ?UserGroup $userGroup; // @phpstan-ignore-line private ?UserGroup $userGroup = null; // @phpstan-ignore-line
/** /**
* This method collects the user's net worth in ALL the user's currencies * This method collects the user's net worth in ALL the user's currencies
@@ -94,8 +94,8 @@ class NetWorth implements NetWorthInterface
} }
Log::debug(sprintf('Balance is %s, native balance is %s', $balance, $nativeBalance)); Log::debug(sprintf('Balance is %s, native balance is %s', $balance, $nativeBalance));
// always subtract virtual balance again. // always subtract virtual balance again.
$balance = '' !== (string) $account->virtual_balance ? bcsub($balance, $account->virtual_balance) : $balance; $balance = '' !== (string) $account->virtual_balance ? bcsub($balance, (string) $account->virtual_balance) : $balance;
$nativeBalance = '' !== (string) $account->native_virtual_balance ? bcsub($nativeBalance, $account->native_virtual_balance) : $nativeBalance; $nativeBalance = '' !== (string) $account->native_virtual_balance ? bcsub($nativeBalance, (string) $account->native_virtual_balance) : $nativeBalance;
$amountToUse = $useNative ? $nativeBalance : $balance; $amountToUse = $useNative ? $nativeBalance : $balance;
Log::debug(sprintf('Will use %s %s', $currencyCode, $amountToUse)); Log::debug(sprintf('Will use %s %s', $currencyCode, $amountToUse));
@@ -108,7 +108,7 @@ class NetWorth implements NetWorthInterface
'currency_decimal_places' => $currency->decimal_places, 'currency_decimal_places' => $currency->decimal_places,
]; ];
$netWorth[$currencyCode]['balance'] = bcadd($amountToUse, $netWorth[$currencyCode]['balance']); $netWorth[$currencyCode]['balance'] = bcadd((string) $amountToUse, $netWorth[$currencyCode]['balance']);
} }
$cache->store($netWorth); $cache->store($netWorth);
@@ -153,7 +153,7 @@ class NetWorth implements NetWorthInterface
// always subtract virtual balance. // always subtract virtual balance.
$virtualBalance = $account->virtual_balance; $virtualBalance = $account->virtual_balance;
if ('' !== $virtualBalance) { if ('' !== $virtualBalance) {
$balance = bcsub($balance, $virtualBalance); $balance = bcsub($balance, (string) $virtualBalance);
} }
$return[$currency->id] ??= [ $return[$currency->id] ??= [
@@ -164,7 +164,7 @@ class NetWorth implements NetWorthInterface
'decimal_places' => $currency->decimal_places, 'decimal_places' => $currency->decimal_places,
'sum' => '0', 'sum' => '0',
]; ];
$return[$currency->id]['sum'] = bcadd($return[$currency->id]['sum'], $balance); $return[$currency->id]['sum'] = bcadd($return[$currency->id]['sum'], (string) $balance);
} }
return $return; return $return;

View File

@@ -64,7 +64,7 @@ class Sha3SignatureGenerator implements SignatureGeneratorInterface
// The actual JSON payload (i.e., the request body) // The actual JSON payload (i.e., the request body)
$timestamp = time(); $timestamp = time();
$payload = sprintf('%s.%s', $timestamp, $json); $payload = sprintf('%s.%s', $timestamp, $json);
$signature = hash_hmac('sha3-256', $payload, $message->webhook->secret, false); $signature = hash_hmac('sha3-256', $payload, (string) $message->webhook->secret, false);
// signature string: // signature string:
// header included in each signed event contains a timestamp and one or more signatures. // header included in each signed event contains a timestamp and one or more signatures.

View File

@@ -94,9 +94,9 @@ class EditController extends Controller
$hasLocation = null !== $location; $hasLocation = null !== $location;
$locations = [ $locations = [
'location' => [ 'location' => [
'latitude' => null !== old('location_latitude') ? old('location_latitude') : $latitude, 'latitude' => old('location_latitude') ?? $latitude,
'longitude' => null !== old('location_longitude') ? old('location_longitude') : $longitude, 'longitude' => old('location_longitude') ?? $longitude,
'zoom_level' => null !== old('location_zoom_level') ? old('location_zoom_level') : $zoomLevel, 'zoom_level' => old('location_zoom_level') ?? $zoomLevel,
'has_location' => $hasLocation || 'true' === old('location_has_location'), 'has_location' => $hasLocation || 'true' === old('location_has_location'),
], ],
]; ];
@@ -138,7 +138,7 @@ class EditController extends Controller
// code to handle active-checkboxes // code to handle active-checkboxes
$hasOldInput = null !== $request->old('_token'); $hasOldInput = null !== $request->old('_token');
$virtualBalance = null === $account->virtual_balance ? '0' : $account->virtual_balance; $virtualBalance = $account->virtual_balance ?? '0';
$preFilled = [ $preFilled = [
'account_number' => $repository->getMetaValue($account, 'account_number'), 'account_number' => $repository->getMetaValue($account, 'account_number'),
'account_role' => $repository->getMetaValue($account, 'account_role'), 'account_role' => $repository->getMetaValue($account, 'account_role'),

View File

@@ -204,7 +204,7 @@ class IndexController extends Controller
{ {
$result = []; $result = [];
foreach ($endBalances as $key => $value) { foreach ($endBalances as $key => $value) {
$result[$key] = bcsub($value, $startBalances[$key] ?? '0'); $result[$key] = bcsub((string) $value, $startBalances[$key] ?? '0');
} }
return $result; return $result;

View File

@@ -59,7 +59,7 @@ class ForgotPasswordController extends Controller
* *
* @return Factory|RedirectResponse|View * @return Factory|RedirectResponse|View
*/ */
public function sendResetLinkEmail(Request $request, UserRepositoryInterface $repository) public function sendResetLinkEmail(Request $request, ?UserRepositoryInterface $repository = null)
{ {
app('log')->info('Start of sendResetLinkEmail()'); app('log')->info('Start of sendResetLinkEmail()');
if ('web' !== config('firefly.authentication_guard')) { if ('web' !== config('firefly.authentication_guard')) {

View File

@@ -89,7 +89,7 @@ class LoginController extends Controller
try { try {
$this->validateLogin($request); $this->validateLogin($request);
} catch (ValidationException $e) { } catch (ValidationException) {
// basic validation exception. // basic validation exception.
// report the failed login to the user if the count is 2 or 5. // report the failed login to the user if the count is 2 or 5.
// TODO here be warning. // TODO here be warning.
@@ -220,7 +220,7 @@ class LoginController extends Controller
* *
* @throws FireflyException * @throws FireflyException
*/ */
public function showLoginForm(Request $request) public function showLoginForm(?Request $request = null)
{ {
Log::channel('audit')->info('Show login form (1.1).'); Log::channel('audit')->info('Show login form (1.1).');

View File

@@ -121,7 +121,7 @@ class RegisterController extends Controller
try { try {
$singleUserMode = app('fireflyconfig')->get('single_user_mode', config('firefly.configuration.single_user_mode'))->data; $singleUserMode = app('fireflyconfig')->get('single_user_mode', config('firefly.configuration.single_user_mode'))->data;
} catch (ContainerExceptionInterface|NotFoundExceptionInterface $e) { } catch (ContainerExceptionInterface|NotFoundExceptionInterface) {
$singleUserMode = true; $singleUserMode = true;
} }
$userCount = User::count(); $userCount = User::count();
@@ -175,7 +175,7 @@ class RegisterController extends Controller
* *
* @throws FireflyException * @throws FireflyException
*/ */
public function showRegistrationForm(Request $request) public function showRegistrationForm(?Request $request = null)
{ {
$isDemoSite = app('fireflyconfig')->get('is_demo_site', config('firefly.configuration.is_demo_site'))->data; $isDemoSite = app('fireflyconfig')->get('is_demo_site', config('firefly.configuration.is_demo_site'))->data;
$pageTitle = (string) trans('firefly.register_page_title'); $pageTitle = (string) trans('firefly.register_page_title');

View File

@@ -243,8 +243,8 @@ class IndexController extends Controller
'period' => $entry['period'], 'period' => $entry['period'],
'per_period' => '0', 'per_period' => '0',
]; ];
$totals[$currencyId]['avg'] = bcadd($totals[$currencyId]['avg'], $entry['avg']); $totals[$currencyId]['avg'] = bcadd($totals[$currencyId]['avg'], (string) $entry['avg']);
$totals[$currencyId]['per_period'] = bcadd($totals[$currencyId]['per_period'], $entry['per_period']); $totals[$currencyId]['per_period'] = bcadd($totals[$currencyId]['per_period'], (string) $entry['per_period']);
} }
} }

View File

@@ -166,9 +166,7 @@ class ShowController extends Controller
/** @var AttachmentTransformer $transformer */ /** @var AttachmentTransformer $transformer */
$transformer = app(AttachmentTransformer::class); $transformer = app(AttachmentTransformer::class);
$attachments = $collection->each( $attachments = $collection->each(
static function (Attachment $attachment) use ($transformer) { static fn(Attachment $attachment) => $transformer->transform($attachment)
return $transformer->transform($attachment);
}
); );
} }

View File

@@ -205,11 +205,11 @@ class BudgetLimitController extends Controller
// add some extra metadata: // add some extra metadata:
$spentArr = $this->opsRepository->sumExpenses($limit->start_date, $limit->end_date, null, new Collection([$budget]), $currency); $spentArr = $this->opsRepository->sumExpenses($limit->start_date, $limit->end_date, null, new Collection([$budget]), $currency);
$array['spent'] = $spentArr[$currency->id]['sum'] ?? '0'; $array['spent'] = $spentArr[$currency->id]['sum'] ?? '0';
$array['left_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, bcadd($array['spent'], $array['amount'])); $array['left_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, bcadd($array['spent'], (string) $array['amount']));
$array['amount_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, $limit['amount']); $array['amount_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, $limit['amount']);
$array['days_left'] = (string) $this->activeDaysLeft($start, $end); $array['days_left'] = (string) $this->activeDaysLeft($start, $end);
// left per day: // left per day:
$array['left_per_day'] = 0 === bccomp('0', $array['days_left']) ? bcadd($array['spent'], $array['amount']) : bcdiv(bcadd($array['spent'], $array['amount']), $array['days_left']); $array['left_per_day'] = 0 === bccomp('0', $array['days_left']) ? bcadd((string) $array['spent'], (string) $array['amount']) : bcdiv(bcadd((string) $array['spent'], (string) $array['amount']), $array['days_left']);
// left per day formatted. // left per day formatted.
$array['left_per_day_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, $array['left_per_day']); $array['left_per_day_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, $array['left_per_day']);
@@ -269,10 +269,10 @@ class BudgetLimitController extends Controller
); );
$daysLeft = $this->activeDaysLeft($limit->start_date, $limit->end_date); $daysLeft = $this->activeDaysLeft($limit->start_date, $limit->end_date);
$array['spent'] = $spentArr[$budgetLimit->transactionCurrency->id]['sum'] ?? '0'; $array['spent'] = $spentArr[$budgetLimit->transactionCurrency->id]['sum'] ?? '0';
$array['left_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, bcadd($array['spent'], $array['amount'])); $array['left_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, bcadd($array['spent'], (string) $array['amount']));
$array['amount_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, $limit['amount']); $array['amount_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, $limit['amount']);
$array['days_left'] = (string) $daysLeft; $array['days_left'] = (string) $daysLeft;
$array['left_per_day'] = 0 === $daysLeft ? bcadd($array['spent'], $array['amount']) : bcdiv(bcadd($array['spent'], $array['amount']), $array['days_left']); $array['left_per_day'] = 0 === $daysLeft ? bcadd((string) $array['spent'], (string) $array['amount']) : bcdiv(bcadd((string) $array['spent'], (string) $array['amount']), $array['days_left']);
// left per day formatted. // left per day formatted.
$array['amount'] = app('steam')->bcround($limit['amount'], $limit->transactionCurrency->decimal_places); $array['amount'] = app('steam')->bcround($limit['amount'], $limit->transactionCurrency->decimal_places);

View File

@@ -269,7 +269,7 @@ class IndexController extends Controller
'currency_symbol' => $spent['currency_symbol'], 'currency_symbol' => $spent['currency_symbol'],
'currency_decimal_places' => $spent['currency_decimal_places'], 'currency_decimal_places' => $spent['currency_decimal_places'],
]; ];
$sums['spent'][$currencyId]['amount'] = bcadd($sums['spent'][$currencyId]['amount'], $spent['spent']); $sums['spent'][$currencyId]['amount'] = bcadd($sums['spent'][$currencyId]['amount'], (string) $spent['spent']);
} }
/** @var array $budgeted */ /** @var array $budgeted */
@@ -282,7 +282,7 @@ class IndexController extends Controller
'currency_symbol' => $budgeted['currency_symbol'], 'currency_symbol' => $budgeted['currency_symbol'],
'currency_decimal_places' => $budgeted['currency_decimal_places'], 'currency_decimal_places' => $budgeted['currency_decimal_places'],
]; ];
$sums['budgeted'][$currencyId]['amount'] = bcadd($sums['budgeted'][$currencyId]['amount'], $budgeted['amount']); $sums['budgeted'][$currencyId]['amount'] = bcadd($sums['budgeted'][$currencyId]['amount'], (string) $budgeted['amount']);
// also calculate how much left from budgeted: // also calculate how much left from budgeted:
$sums['left'][$currencyId] $sums['left'][$currencyId]

View File

@@ -250,7 +250,7 @@ class AccountController extends Controller
'currency_code' => $journal['currency_code'], 'currency_code' => $journal['currency_code'],
]; ];
} }
$result[$key]['total'] = bcadd($journal['amount'], $result[$key]['total']); $result[$key]['total'] = bcadd((string) $journal['amount'], $result[$key]['total']);
} }
$names = $this->getBudgetNames($budgetIds); $names = $this->getBudgetNames($budgetIds);
@@ -312,7 +312,7 @@ class AccountController extends Controller
'currency_code' => $journal['currency_code'], 'currency_code' => $journal['currency_code'],
]; ];
} }
$result[$key]['total'] = bcadd($journal['amount'], $result[$key]['total']); $result[$key]['total'] = bcadd((string) $journal['amount'], $result[$key]['total']);
} }
$names = $this->getCategoryNames(array_keys($result)); $names = $this->getCategoryNames(array_keys($result));
@@ -401,7 +401,7 @@ class AccountController extends Controller
'currency_code' => $journal['currency_code'], 'currency_code' => $journal['currency_code'],
]; ];
} }
$result[$key]['total'] = bcadd($journal['amount'], $result[$key]['total']); $result[$key]['total'] = bcadd((string) $journal['amount'], $result[$key]['total']);
} }
$names = $this->getCategoryNames(array_keys($result)); $names = $this->getCategoryNames(array_keys($result));

View File

@@ -177,12 +177,12 @@ class BillController extends Controller
if (!array_key_exists($date, $chartData[2]['entries'])) { if (!array_key_exists($date, $chartData[2]['entries'])) {
$chartData[2]['entries'][$date] = '0'; $chartData[2]['entries'][$date] = '0';
} }
$amount = bcmul($journal['amount'], '-1'); $amount = bcmul((string) $journal['amount'], '-1');
if ($this->convertToNative && $currencyId !== $journal['currency_id']) { if ($this->convertToNative && $currencyId !== $journal['currency_id']) {
$amount = bcmul($journal['native_amount'] ?? '0', '-1'); $amount = bcmul($journal['native_amount'] ?? '0', '-1');
} }
if ($this->convertToNative && $currencyId === $journal['foreign_currency_id']) { if ($this->convertToNative && $currencyId === $journal['foreign_currency_id']) {
$amount = bcmul($journal['foreign_amount'], '-1'); $amount = bcmul((string) $journal['foreign_amount'], '-1');
} }
$chartData[2]['entries'][$date] = bcadd($chartData[2]['entries'][$date], $amount); // amount of journal $chartData[2]['entries'][$date] = bcadd($chartData[2]['entries'][$date], $amount); // amount of journal

View File

@@ -110,7 +110,7 @@ class BudgetController extends Controller
/** @var Carbon $loopEnd */ /** @var Carbon $loopEnd */
$loopEnd = app('navigation')->endOfPeriod($loopStart, $step); $loopEnd = app('navigation')->endOfPeriod($loopStart, $step);
$spent = $this->opsRepository->sumExpenses($loopStart, $loopEnd, null, $collection); // this method already converts to native. $spent = $this->opsRepository->sumExpenses($loopStart, $loopEnd, null, $collection); // this method already converts to native.
$label = trim(app('navigation')->periodShow($loopStart, $step)); $label = trim((string) app('navigation')->periodShow($loopStart, $step));
foreach ($spent as $row) { foreach ($spent as $row) {
$currencyId = $row['currency_id']; $currencyId = $row['currency_id'];
@@ -133,7 +133,7 @@ class BudgetController extends Controller
'entries' => $defaultEntries, 'entries' => $defaultEntries,
]; ];
foreach ($currency['spent'] as $label => $spent) { foreach ($currency['spent'] as $label => $spent) {
$chartData[$currencyId]['entries'][$label] = bcmul($spent, '-1'); $chartData[$currencyId]['entries'][$label] = bcmul((string) $spent, '-1');
} }
} }
$data = $this->generator->multiSet(array_values($chartData)); $data = $this->generator->multiSet(array_values($chartData));
@@ -180,7 +180,7 @@ class BudgetController extends Controller
$current = clone $start; $current = clone $start;
$expenses = $this->opsRepository->sumExpenses($current, $current, null, $budgetCollection, $budgetLimit->transactionCurrency, $this->convertToNative); $expenses = $this->opsRepository->sumExpenses($current, $current, null, $budgetCollection, $budgetLimit->transactionCurrency, $this->convertToNative);
$spent = $expenses[$currency->id]['sum'] ?? '0'; $spent = $expenses[$currency->id]['sum'] ?? '0';
$amount = bcadd($amount, $spent); $amount = bcadd((string) $amount, $spent);
$format = $start->isoFormat((string) trans('config.month_and_day_js', [], $locale)); $format = $start->isoFormat((string) trans('config.month_and_day_js', [], $locale));
$entries[$format] = $amount; $entries[$format] = $amount;
@@ -257,7 +257,7 @@ class BudgetController extends Controller
'currency_code' => $code, 'currency_code' => $code,
'currency_name' => $name, 'currency_name' => $name,
]; ];
$result[$key]['amount'] = bcadd($amount, $result[$key]['amount']); $result[$key]['amount'] = bcadd((string) $amount, $result[$key]['amount']);
} }
$names = $this->getAccountNames(array_keys($result)); $names = $this->getAccountNames(array_keys($result));
@@ -341,7 +341,7 @@ class BudgetController extends Controller
'currency_code' => $code, 'currency_code' => $code,
'currency_name' => $name, 'currency_name' => $name,
]; ];
$result[$key]['amount'] = bcadd($amount, $result[$key]['amount']); $result[$key]['amount'] = bcadd((string) $amount, $result[$key]['amount']);
} }
$names = $this->getCategoryNames(array_keys($result)); $names = $this->getCategoryNames(array_keys($result));
@@ -424,7 +424,7 @@ class BudgetController extends Controller
'currency_code' => $code, 'currency_code' => $code,
'currency_name' => $name, 'currency_name' => $name,
]; ];
$result[$key]['amount'] = bcadd($amount, $result[$key]['amount']); $result[$key]['amount'] = bcadd((string) $amount, $result[$key]['amount']);
} }
$names = $this->getAccountNames(array_keys($result)); $names = $this->getAccountNames(array_keys($result));

View File

@@ -85,7 +85,7 @@ class BudgetReportController extends Controller
]; ];
foreach ($budget['transaction_journals'] as $journal) { foreach ($budget['transaction_journals'] as $journal) {
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -115,7 +115,7 @@ class BudgetReportController extends Controller
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -145,7 +145,7 @@ class BudgetReportController extends Controller
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -186,7 +186,7 @@ class BudgetReportController extends Controller
$key = $journal['date']->isoFormat($format); $key = $journal['date']->isoFormat($format);
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$chartData[$spentKey]['entries'][$key] ??= '0'; $chartData[$spentKey]['entries'][$key] ??= '0';
$chartData[$spentKey]['entries'][$key] = bcadd($chartData[$spentKey]['entries'][$key], $amount); $chartData[$spentKey]['entries'][$key] = bcadd($chartData[$spentKey]['entries'][$key], (string) $amount);
} }
} }
} }
@@ -233,7 +233,7 @@ class BudgetReportController extends Controller
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }

View File

@@ -215,7 +215,7 @@ class CategoryController extends Controller
$date = $journal['date']->isoFormat($format); $date = $journal['date']->isoFormat($format);
$chartData[$outKey]['entries'][$date] ??= '0'; $chartData[$outKey]['entries'][$date] ??= '0';
$chartData[$outKey]['entries'][$date] = bcadd($amount, $chartData[$outKey]['entries'][$date]); $chartData[$outKey]['entries'][$date] = bcadd((string) $amount, $chartData[$outKey]['entries'][$date]);
} }
$inSet = $income[$currencyId]['categories'][$categoryId] ?? ['transaction_journals' => []]; $inSet = $income[$currencyId]['categories'][$categoryId] ?? ['transaction_journals' => []];
@@ -223,7 +223,7 @@ class CategoryController extends Controller
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$date = $journal['date']->isoFormat($format); $date = $journal['date']->isoFormat($format);
$chartData[$inKey]['entries'][$date] ??= '0'; $chartData[$inKey]['entries'][$date] ??= '0';
$chartData[$inKey]['entries'][$date] = bcadd($amount, $chartData[$inKey]['entries'][$date]); $chartData[$inKey]['entries'][$date] = bcadd((string) $amount, $chartData[$inKey]['entries'][$date]);
} }
} }

View File

@@ -83,7 +83,7 @@ class CategoryReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -110,7 +110,7 @@ class CategoryReportController extends Controller
]; ];
foreach ($category['transaction_journals'] as $journal) { foreach ($category['transaction_journals'] as $journal) {
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -138,7 +138,7 @@ class CategoryReportController extends Controller
]; ];
foreach ($category['transaction_journals'] as $journal) { foreach ($category['transaction_journals'] as $journal) {
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -166,7 +166,7 @@ class CategoryReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -194,7 +194,7 @@ class CategoryReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -233,7 +233,7 @@ class CategoryReportController extends Controller
$key = $journal['date']->isoFormat($format); $key = $journal['date']->isoFormat($format);
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$chartData[$spentKey]['entries'][$key] ??= '0'; $chartData[$spentKey]['entries'][$key] ??= '0';
$chartData[$spentKey]['entries'][$key] = bcadd($chartData[$spentKey]['entries'][$key], $amount); $chartData[$spentKey]['entries'][$key] = bcadd($chartData[$spentKey]['entries'][$key], (string) $amount);
} }
} }
} }
@@ -260,7 +260,7 @@ class CategoryReportController extends Controller
$key = $journal['date']->isoFormat($format); $key = $journal['date']->isoFormat($format);
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$chartData[$spentKey]['entries'][$key] ??= '0'; $chartData[$spentKey]['entries'][$key] ??= '0';
$chartData[$spentKey]['entries'][$key] = bcadd($chartData[$spentKey]['entries'][$key], $amount); $chartData[$spentKey]['entries'][$key] = bcadd($chartData[$spentKey]['entries'][$key], (string) $amount);
} }
} }
} }
@@ -308,7 +308,7 @@ class CategoryReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -336,7 +336,7 @@ class CategoryReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }

View File

@@ -82,7 +82,7 @@ class DoubleReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
@@ -109,7 +109,7 @@ class DoubleReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
@@ -136,7 +136,7 @@ class DoubleReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
@@ -178,7 +178,7 @@ class DoubleReportController extends Controller
$key = $journal['date']->isoFormat($format); $key = $journal['date']->isoFormat($format);
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$chartData[$spentKey]['entries'][$key] ??= '0'; $chartData[$spentKey]['entries'][$key] ??= '0';
$chartData[$spentKey]['entries'][$key] = bcadd($chartData[$spentKey]['entries'][$key], $amount); $chartData[$spentKey]['entries'][$key] = bcadd($chartData[$spentKey]['entries'][$key], (string) $amount);
} }
} }
// loop income. // loop income.
@@ -204,7 +204,7 @@ class DoubleReportController extends Controller
$key = $journal['date']->isoFormat($format); $key = $journal['date']->isoFormat($format);
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$chartData[$earnedKey]['entries'][$key] ??= '0'; $chartData[$earnedKey]['entries'][$key] ??= '0';
$chartData[$earnedKey]['entries'][$key] = bcadd($chartData[$earnedKey]['entries'][$key], $amount); $chartData[$earnedKey]['entries'][$key] = bcadd($chartData[$earnedKey]['entries'][$key], (string) $amount);
} }
} }
@@ -275,7 +275,7 @@ class DoubleReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
// loop each tag: // loop each tag:
@@ -294,7 +294,7 @@ class DoubleReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -328,7 +328,7 @@ class DoubleReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
// loop each tag: // loop each tag:
@@ -347,7 +347,7 @@ class DoubleReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }

View File

@@ -90,9 +90,7 @@ class PiggyBankController extends Controller
$chartData = []; $chartData = [];
while ($oldest <= $today) { while ($oldest <= $today) {
$filtered = $set->filter( $filtered = $set->filter(
static function (PiggyBankEvent $event) use ($oldest) { static fn(PiggyBankEvent $event) => $event->date->lte($oldest)
return $event->date->lte($oldest);
}
); );
$currentSum = $filtered->sum('amount'); $currentSum = $filtered->sum('amount');
$label = $oldest->isoFormat((string) trans('config.month_and_day_js', [], $locale)); $label = $oldest->isoFormat((string) trans('config.month_and_day_js', [], $locale));
@@ -100,9 +98,7 @@ class PiggyBankController extends Controller
$oldest = app('navigation')->addPeriod($oldest, $step, 0); $oldest = app('navigation')->addPeriod($oldest, $step, 0);
} }
$finalFiltered = $set->filter( $finalFiltered = $set->filter(
static function (PiggyBankEvent $event) use ($today) { static fn(PiggyBankEvent $event) => $event->date->lte($today)
return $event->date->lte($today);
}
); );
$finalSum = $finalFiltered->sum('amount'); $finalSum = $finalFiltered->sum('amount');
$finalLabel = $today->isoFormat((string) trans('config.month_and_day_js', [], $locale)); $finalLabel = $today->isoFormat((string) trans('config.month_and_day_js', [], $locale));

View File

@@ -207,7 +207,7 @@ class ReportController extends Controller
&& in_array($journal['destination_account_id'], $ids, true))) { && in_array($journal['destination_account_id'], $ids, true))) {
$key = 'earned'; $key = 'earned';
} }
$data[$currencyId][$period][$key] = bcadd($data[$currencyId][$period][$key], $amount); $data[$currencyId][$period][$key] = bcadd((string) $data[$currencyId][$period][$key], (string) $amount);
} }
// loop this data, make chart bars for each currency: // loop this data, make chart bars for each currency:

View File

@@ -83,7 +83,7 @@ class TagReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -111,7 +111,7 @@ class TagReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -139,7 +139,7 @@ class TagReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -167,7 +167,7 @@ class TagReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -195,7 +195,7 @@ class TagReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -237,7 +237,7 @@ class TagReportController extends Controller
$key = $journal['date']->isoFormat($format); $key = $journal['date']->isoFormat($format);
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$chartData[$spentKey]['entries'][$key] ??= '0'; $chartData[$spentKey]['entries'][$key] ??= '0';
$chartData[$spentKey]['entries'][$key] = bcadd($chartData[$spentKey]['entries'][$key], $amount); $chartData[$spentKey]['entries'][$key] = bcadd($chartData[$spentKey]['entries'][$key], (string) $amount);
} }
} }
} }
@@ -264,7 +264,7 @@ class TagReportController extends Controller
$key = $journal['date']->isoFormat($format); $key = $journal['date']->isoFormat($format);
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$chartData[$spentKey]['entries'][$key] ??= '0'; $chartData[$spentKey]['entries'][$key] ??= '0';
$chartData[$spentKey]['entries'][$key] = bcadd($chartData[$spentKey]['entries'][$key], $amount); $chartData[$spentKey]['entries'][$key] = bcadd($chartData[$spentKey]['entries'][$key], (string) $amount);
} }
} }
} }
@@ -312,7 +312,7 @@ class TagReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -340,7 +340,7 @@ class TagReportController extends Controller
'currency_code' => $currency['currency_code'], 'currency_code' => $currency['currency_code'],
]; ];
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -367,7 +367,7 @@ class TagReportController extends Controller
]; ];
foreach ($tag['transaction_journals'] as $journal) { foreach ($tag['transaction_journals'] as $journal) {
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }
@@ -393,7 +393,7 @@ class TagReportController extends Controller
]; ];
foreach ($tag['transaction_journals'] as $journal) { foreach ($tag['transaction_journals'] as $journal) {
$amount = app('steam')->positive($journal['amount']); $amount = app('steam')->positive($journal['amount']);
$result[$title]['amount'] = bcadd($result[$title]['amount'], $amount); $result[$title]['amount'] = bcadd($result[$title]['amount'], (string) $amount);
} }
} }
} }

View File

@@ -81,7 +81,7 @@ class TransactionController extends Controller
'currency_symbol' => $journal['currency_symbol'], 'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'], 'currency_code' => $journal['currency_code'],
]; ];
$data[$title]['amount'] = bcadd($data[$title]['amount'], $journal['amount']); $data[$title]['amount'] = bcadd($data[$title]['amount'], (string) $journal['amount']);
} }
$chart = $this->generator->multiCurrencyPieChart($data); $chart = $this->generator->multiCurrencyPieChart($data);
$cache->store($chart); $cache->store($chart);
@@ -131,7 +131,7 @@ class TransactionController extends Controller
'currency_symbol' => $journal['currency_symbol'], 'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'], 'currency_code' => $journal['currency_code'],
]; ];
$data[$title]['amount'] = bcadd($data[$title]['amount'], $journal['amount']); $data[$title]['amount'] = bcadd($data[$title]['amount'], (string) $journal['amount']);
} }
$chart = $this->generator->multiCurrencyPieChart($data); $chart = $this->generator->multiCurrencyPieChart($data);
$cache->store($chart); $cache->store($chart);
@@ -181,7 +181,7 @@ class TransactionController extends Controller
'currency_symbol' => $journal['currency_symbol'], 'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'], 'currency_code' => $journal['currency_code'],
]; ];
$data[$title]['amount'] = bcadd($data[$title]['amount'], $journal['amount']); $data[$title]['amount'] = bcadd($data[$title]['amount'], (string) $journal['amount']);
} }
$chart = $this->generator->multiCurrencyPieChart($data); $chart = $this->generator->multiCurrencyPieChart($data);
$cache->store($chart); $cache->store($chart);
@@ -231,7 +231,7 @@ class TransactionController extends Controller
'currency_symbol' => $journal['currency_symbol'], 'currency_symbol' => $journal['currency_symbol'],
'currency_code' => $journal['currency_code'], 'currency_code' => $journal['currency_code'],
]; ];
$data[$title]['amount'] = bcadd($data[$title]['amount'], $journal['amount']); $data[$title]['amount'] = bcadd($data[$title]['amount'], (string) $journal['amount']);
} }
$chart = $this->generator->multiCurrencyPieChart($data); $chart = $this->generator->multiCurrencyPieChart($data);
$cache->store($chart); $cache->store($chart);

View File

@@ -97,14 +97,14 @@ abstract class Controller extends BaseController
$isAlpha = false; $isAlpha = false;
$isBeta = false; $isBeta = false;
$isDevelop = false; $isDevelop = false;
if (str_contains(config('firefly.version'), 'alpha')) { if (str_contains((string) config('firefly.version'), 'alpha')) {
$isAlpha = true; $isAlpha = true;
} }
if (str_contains(config('firefly.version'), 'develop') || str_contains(config('firefly.version'), 'branch')) { if (str_contains((string) config('firefly.version'), 'develop') || str_contains((string) config('firefly.version'), 'branch')) {
$isDevelop = true; $isDevelop = true;
} }
if (str_contains(config('firefly.version'), 'beta')) { if (str_contains((string) config('firefly.version'), 'beta')) {
$isBeta = true; $isBeta = true;
} }

View File

@@ -106,7 +106,7 @@ class IndexController extends Controller
->header('Expires', '0') ->header('Expires', '0')
->header('Cache-Control', 'must-revalidate, post-check=0, pre-check=0') ->header('Cache-Control', 'must-revalidate, post-check=0, pre-check=0')
->header('Pragma', 'public') ->header('Pragma', 'public')
->header('Content-Length', (string) strlen($result['transactions'])) ->header('Content-Length', (string) strlen((string) $result['transactions']))
; ;
// return CSV file made from 'transactions' array. // return CSV file made from 'transactions' array.

View File

@@ -75,7 +75,7 @@ class HomeController extends Controller
try { try {
$stringEnd = e((string) $request->get('end')); $stringEnd = e((string) $request->get('end'));
$end = Carbon::createFromFormat('Y-m-d', $stringEnd); $end = Carbon::createFromFormat('Y-m-d', $stringEnd);
} catch (InvalidFormatException $e) { } catch (InvalidFormatException) {
app('log')->error(sprintf('End could not parse date string "%s" so ignore it.', $stringEnd)); app('log')->error(sprintf('End could not parse date string "%s" so ignore it.', $stringEnd));
$end = Carbon::now()->endOfMonth(); $end = Carbon::now()->endOfMonth();
} }

View File

@@ -92,9 +92,9 @@ class BoxController extends Controller
$currencyId = $this->convertToNative && $this->defaultCurrency->id !== (int) $journal['currency_id'] ? $this->defaultCurrency->id : (int) $journal['currency_id']; $currencyId = $this->convertToNative && $this->defaultCurrency->id !== (int) $journal['currency_id'] ? $this->defaultCurrency->id : (int) $journal['currency_id'];
$amount = Amount::getAmountFromJournal($journal); $amount = Amount::getAmountFromJournal($journal);
$incomes[$currencyId] ??= '0'; $incomes[$currencyId] ??= '0';
$incomes[$currencyId] = bcadd($incomes[$currencyId], app('steam')->positive($amount)); $incomes[$currencyId] = bcadd($incomes[$currencyId], (string) app('steam')->positive($amount));
$sums[$currencyId] ??= '0'; $sums[$currencyId] ??= '0';
$sums[$currencyId] = bcadd($sums[$currencyId], app('steam')->positive($amount)); $sums[$currencyId] = bcadd($sums[$currencyId], (string) app('steam')->positive($amount));
} }
// collect expenses // collect expenses

View File

@@ -55,8 +55,8 @@ class FrontpageController extends Controller
if (1 === bccomp($amount, '0')) { if (1 === bccomp($amount, '0')) {
// percentage! // percentage!
$pct = 0; $pct = 0;
if (0 !== bccomp($piggyBank->target_amount, '0')) { if (0 !== bccomp((string) $piggyBank->target_amount, '0')) {
$pct = (int) bcmul(bcdiv($amount, $piggyBank->target_amount), '100'); $pct = (int) bcmul(bcdiv($amount, (string) $piggyBank->target_amount), '100');
} }
$entry = [ $entry = [
@@ -82,9 +82,7 @@ class FrontpageController extends Controller
// sort by current percentage (lowest at the top) // sort by current percentage (lowest at the top)
uasort( uasort(
$info, $info,
static function (array $a, array $b) { static fn(array $a, array $b) => $a['percentage'] <=> $b['percentage']
return $a['percentage'] <=> $b['percentage'];
}
); );
$html = ''; $html = '';

View File

@@ -160,15 +160,15 @@ class ReconcileController extends Controller
} }
if ($account->id === $journal['destination_account_id']) { if ($account->id === $journal['destination_account_id']) {
if ($currency->id === $journal['currency_id']) { if ($currency->id === $journal['currency_id']) {
$toAdd = bcmul($journal['amount'], '-1'); $toAdd = bcmul((string) $journal['amount'], '-1');
} }
if (null !== $journal['foreign_currency_id'] && $journal['foreign_currency_id'] === $currency->id) { if (null !== $journal['foreign_currency_id'] && $journal['foreign_currency_id'] === $currency->id) {
$toAdd = bcmul($journal['foreign_amount'], '-1'); $toAdd = bcmul((string) $journal['foreign_amount'], '-1');
} }
} }
app('log')->debug(sprintf('Going to add %s to %s', $toAdd, $amount)); app('log')->debug(sprintf('Going to add %s to %s', $toAdd, $amount));
$amount = bcadd($amount, $toAdd); $amount = bcadd($amount, (string) $toAdd);
app('log')->debug(sprintf('Result is %s', $amount)); app('log')->debug(sprintf('Result is %s', $amount));
return $amount; return $amount;

View File

@@ -74,7 +74,7 @@ class RecurrenceController extends Controller
$firstDate = Carbon::createFromFormat('Y-m-d', $request->get('first_date')); $firstDate = Carbon::createFromFormat('Y-m-d', $request->get('first_date'));
$endDate = '' !== (string) $request->get('end_date') ? Carbon::createFromFormat('Y-m-d', $request->get('end_date')) : null; $endDate = '' !== (string) $request->get('end_date') ? Carbon::createFromFormat('Y-m-d', $request->get('end_date')) : null;
$endsAt = (string) $request->get('ends'); $endsAt = (string) $request->get('ends');
$repetitionType = explode(',', $request->get('type'))[0]; $repetitionType = explode(',', (string) $request->get('type'))[0];
$repetitions = (int) $request->get('reps'); $repetitions = (int) $request->get('reps');
$weekend = (int) $request->get('weekend'); $weekend = (int) $request->get('weekend');
$repetitionMoment = ''; $repetitionMoment = '';
@@ -101,13 +101,13 @@ class RecurrenceController extends Controller
$actualStart = clone $firstDate; $actualStart = clone $firstDate;
if ('weekly' === $repetitionType || 'monthly' === $repetitionType) { if ('weekly' === $repetitionType || 'monthly' === $repetitionType) {
$repetitionMoment = explode(',', $request->get('type'))[1] ?? '1'; $repetitionMoment = explode(',', (string) $request->get('type'))[1] ?? '1';
} }
if ('ndom' === $repetitionType) { if ('ndom' === $repetitionType) {
$repetitionMoment = str_ireplace('ndom,', '', $request->get('type')); $repetitionMoment = str_ireplace('ndom,', '', $request->get('type'));
} }
if ('yearly' === $repetitionType) { if ('yearly' === $repetitionType) {
$repetitionMoment = explode(',', $request->get('type'))[1] ?? '2018-01-01'; $repetitionMoment = explode(',', (string) $request->get('type'))[1] ?? '2018-01-01';
} }
$actualStart->startOfDay(); $actualStart->startOfDay();
$repetition = new RecurrenceRepetition(); $repetition = new RecurrenceRepetition();
@@ -158,7 +158,7 @@ class RecurrenceController extends Controller
try { try {
$date = Carbon::createFromFormat('Y-m-d', $string, config('app.timezone')); $date = Carbon::createFromFormat('Y-m-d', $string, config('app.timezone'));
} catch (InvalidFormatException $e) { } catch (InvalidFormatException) {
$date = Carbon::today(config('app.timezone')); $date = Carbon::today(config('app.timezone'));
} }
if (null === $date) { if (null === $date) {

View File

@@ -195,10 +195,10 @@ class IndexController extends Controller
foreach ($piggyBank['accounts'] as $piggyAccount) { foreach ($piggyBank['accounts'] as $piggyAccount) {
$accountId = $piggyAccount['id']; $accountId = $piggyAccount['id'];
if (array_key_exists($accountId, $accounts)) { if (array_key_exists($accountId, $accounts)) {
$accounts[$accountId]['left'] = bcsub($accounts[$accountId]['left'], $piggyAccount['current_amount']); $accounts[$accountId]['left'] = bcsub((string) $accounts[$accountId]['left'], (string) $piggyAccount['current_amount']);
$accounts[$accountId]['saved'] = bcadd($accounts[$accountId]['saved'], $piggyAccount['current_amount']); $accounts[$accountId]['saved'] = bcadd((string) $accounts[$accountId]['saved'], (string) $piggyAccount['current_amount']);
$accounts[$accountId]['target'] = bcadd($accounts[$accountId]['target'], $piggyBank['target_amount']); $accounts[$accountId]['target'] = bcadd((string) $accounts[$accountId]['target'], (string) $piggyBank['target_amount']);
$accounts[$accountId]['to_save'] = bcadd($accounts[$accountId]['to_save'], bcsub($piggyBank['target_amount'], $piggyAccount['current_amount'])); $accounts[$accountId]['to_save'] = bcadd((string) $accounts[$accountId]['to_save'], bcsub((string) $piggyBank['target_amount'], (string) $piggyAccount['current_amount']));
} }
} }
} }

View File

@@ -152,7 +152,7 @@ class CreateController extends Controller
]; ];
// fill prefilled with journal info // fill prefilled with journal info
$type = strtolower($journal->transactionType->type); $type = strtolower((string) $journal->transactionType->type);
/** @var Transaction $source */ /** @var Transaction $source */
$source = $journal->transactions()->where('amount', '<', 0)->first(); $source = $journal->transactions()->where('amount', '<', 0)->first();

View File

@@ -135,7 +135,7 @@ class EditController extends Controller
$hasOldInput = null !== $request->old('_token'); $hasOldInput = null !== $request->old('_token');
$preFilled = [ $preFilled = [
'transaction_type' => strtolower($recurrence->transactionType->type), 'transaction_type' => strtolower((string) $recurrence->transactionType->type),
'active' => $hasOldInput ? (bool) $request->old('active') : $recurrence->active, 'active' => $hasOldInput ? (bool) $request->old('active') : $recurrence->active,
'apply_rules' => $hasOldInput ? (bool) $request->old('apply_rules') : $recurrence->apply_rules, 'apply_rules' => $hasOldInput ? (bool) $request->old('apply_rules') : $recurrence->apply_rules,
'deposit_source_id' => $array['transactions'][0]['source_id'], 'deposit_source_id' => $array['transactions'][0]['source_id'],

View File

@@ -94,7 +94,7 @@ class ShowController extends Controller
// transform dates back to Carbon objects and expand information // transform dates back to Carbon objects and expand information
foreach ($array['repetitions'] as $index => $repetition) { foreach ($array['repetitions'] as $index => $repetition) {
foreach ($repetition['occurrences'] as $item => $occurrence) { foreach ($repetition['occurrences'] as $item => $occurrence) {
$date = (new Carbon($occurrence))->startOfDay(); $date = new Carbon($occurrence)->startOfDay();
$set = [ $set = [
'date' => $date, 'date' => $date,
'fired' => $this->recurring->createdPreviously($recurrence, $date) 'fired' => $this->recurring->createdPreviously($recurrence, $date)

View File

@@ -113,7 +113,7 @@ class BalanceController extends Controller
'currency_decimal_places' => $journal['currency_decimal_places'], 'currency_decimal_places' => $journal['currency_decimal_places'],
'spent' => '0', 'spent' => '0',
]; ];
$spent[$sourceAccount]['spent'] = bcadd($spent[$sourceAccount]['spent'], $journal['amount']); $spent[$sourceAccount]['spent'] = bcadd($spent[$sourceAccount]['spent'], (string) $journal['amount']);
// also fix sum: // also fix sum:
$report['sums'][$budgetId][$currencyId] ??= [ $report['sums'][$budgetId][$currencyId] ??= [
@@ -124,8 +124,8 @@ class BalanceController extends Controller
'currency_symbol' => $journal['currency_symbol'], 'currency_symbol' => $journal['currency_symbol'],
'currency_decimal_places' => $journal['currency_decimal_places'], 'currency_decimal_places' => $journal['currency_decimal_places'],
]; ];
$report['sums'][$budgetId][$currencyId]['sum'] = bcadd($report['sums'][$budgetId][$currencyId]['sum'], $journal['amount']); $report['sums'][$budgetId][$currencyId]['sum'] = bcadd($report['sums'][$budgetId][$currencyId]['sum'], (string) $journal['amount']);
$report['accounts'][$sourceAccount]['sum'] = bcadd($report['accounts'][$sourceAccount]['sum'], $journal['amount']); $report['accounts'][$sourceAccount]['sum'] = bcadd($report['accounts'][$sourceAccount]['sum'], (string) $journal['amount']);
// add currency info for account sum // add currency info for account sum
$report['accounts'][$sourceAccount]['currency_id'] = $journal['currency_id']; $report['accounts'][$sourceAccount]['currency_id'] = $journal['currency_id'];

View File

@@ -126,9 +126,9 @@ class BudgetController extends Controller
]; ];
$report[$sourceAccountId]['currencies'][$currencyId]['sum'] = bcadd( $report[$sourceAccountId]['currencies'][$currencyId]['sum'] = bcadd(
$report[$sourceAccountId]['currencies'][$currencyId]['sum'], $report[$sourceAccountId]['currencies'][$currencyId]['sum'],
$journal['amount'] (string) $journal['amount']
); );
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], $journal['amount']); $sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
} }
} }
} }
@@ -163,7 +163,7 @@ class BudgetController extends Controller
'currency_decimal_places' => $currency['currency_decimal_places'], 'currency_decimal_places' => $currency['currency_decimal_places'],
]; ];
++$result[$key]['transactions']; ++$result[$key]['transactions'];
$result[$key]['sum'] = bcadd($journal['amount'], $result[$key]['sum']); $result[$key]['sum'] = bcadd((string) $journal['amount'], $result[$key]['sum']);
$result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']); $result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']);
$result[$key]['avg_float'] = (float) $result[$key]['avg']; // intentional float $result[$key]['avg_float'] = (float) $result[$key]['avg']; // intentional float
} }
@@ -229,8 +229,8 @@ class BudgetController extends Controller
'currency_name' => $currency['currency_name'], 'currency_name' => $currency['currency_name'],
'currency_decimal_places' => $currency['currency_decimal_places'], 'currency_decimal_places' => $currency['currency_decimal_places'],
]; ];
$report[$budgetId]['currencies'][$currencyId]['sum'] = bcadd($report[$budgetId]['currencies'][$currencyId]['sum'], $journal['amount']); $report[$budgetId]['currencies'][$currencyId]['sum'] = bcadd($report[$budgetId]['currencies'][$currencyId]['sum'], (string) $journal['amount']);
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], $journal['amount']); $sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
} }
} }
} }
@@ -317,8 +317,8 @@ class BudgetController extends Controller
'entries' => [], 'entries' => [],
]; ];
$report[$key]['entries'][$dateKey] ??= '0'; $report[$key]['entries'][$dateKey] ??= '0';
$report[$key]['entries'][$dateKey] = bcadd($journal['amount'], $report[$key]['entries'][$dateKey]); $report[$key]['entries'][$dateKey] = bcadd((string) $journal['amount'], $report[$key]['entries'][$dateKey]);
$report[$key]['sum'] = bcadd($report[$key]['sum'], $journal['amount']); $report[$key]['sum'] = bcadd($report[$key]['sum'], (string) $journal['amount']);
$report[$key]['avg'] = bcdiv($report[$key]['sum'], (string) count($periods)); $report[$key]['avg'] = bcdiv($report[$key]['sum'], (string) count($periods));
} }
} }

View File

@@ -107,11 +107,11 @@ class CategoryController extends Controller
]; ];
$report[$sourceAccountId]['currencies'][$currencyId]['categories'][$category['id']]['spent'] = bcadd( $report[$sourceAccountId]['currencies'][$currencyId]['categories'][$category['id']]['spent'] = bcadd(
$report[$sourceAccountId]['currencies'][$currencyId]['categories'][$category['id']]['spent'], $report[$sourceAccountId]['currencies'][$currencyId]['categories'][$category['id']]['spent'],
$journal['amount'] (string) $journal['amount']
); );
$report[$sourceAccountId]['currencies'][$currencyId]['categories'][$category['id']]['sum'] = bcadd( $report[$sourceAccountId]['currencies'][$currencyId]['categories'][$category['id']]['sum'] = bcadd(
$report[$sourceAccountId]['currencies'][$currencyId]['categories'][$category['id']]['sum'], $report[$sourceAccountId]['currencies'][$currencyId]['categories'][$category['id']]['sum'],
$journal['amount'] (string) $journal['amount']
); );
} }
} }
@@ -140,11 +140,11 @@ class CategoryController extends Controller
]; ];
$report[$destinationId]['currencies'][$currencyId]['categories'][$category['id']]['earned'] = bcadd( $report[$destinationId]['currencies'][$currencyId]['categories'][$category['id']]['earned'] = bcadd(
$report[$destinationId]['currencies'][$currencyId]['categories'][$category['id']]['earned'], $report[$destinationId]['currencies'][$currencyId]['categories'][$category['id']]['earned'],
$journal['amount'] (string) $journal['amount']
); );
$report[$destinationId]['currencies'][$currencyId]['categories'][$category['id']]['sum'] = bcadd( $report[$destinationId]['currencies'][$currencyId]['categories'][$category['id']]['sum'] = bcadd(
$report[$destinationId]['currencies'][$currencyId]['categories'][$category['id']]['sum'], $report[$destinationId]['currencies'][$currencyId]['categories'][$category['id']]['sum'],
$journal['amount'] (string) $journal['amount']
); );
} }
} }
@@ -202,14 +202,14 @@ class CategoryController extends Controller
]; ];
$report[$sourceAccountId]['currencies'][$currencyId]['spent'] = bcadd( $report[$sourceAccountId]['currencies'][$currencyId]['spent'] = bcadd(
$report[$sourceAccountId]['currencies'][$currencyId]['spent'], $report[$sourceAccountId]['currencies'][$currencyId]['spent'],
$journal['amount'] (string) $journal['amount']
); );
$report[$sourceAccountId]['currencies'][$currencyId]['sum'] = bcadd( $report[$sourceAccountId]['currencies'][$currencyId]['sum'] = bcadd(
$report[$sourceAccountId]['currencies'][$currencyId]['sum'], $report[$sourceAccountId]['currencies'][$currencyId]['sum'],
$journal['amount'] (string) $journal['amount']
); );
$sums[$currencyId]['spent_sum'] = bcadd($sums[$currencyId]['spent_sum'], $journal['amount']); $sums[$currencyId]['spent_sum'] = bcadd($sums[$currencyId]['spent_sum'], (string) $journal['amount']);
$sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], $journal['amount']); $sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], (string) $journal['amount']);
} }
} }
} }
@@ -240,14 +240,14 @@ class CategoryController extends Controller
]; ];
$report[$destinationAccountId]['currencies'][$currencyId]['earned'] = bcadd( $report[$destinationAccountId]['currencies'][$currencyId]['earned'] = bcadd(
$report[$destinationAccountId]['currencies'][$currencyId]['earned'], $report[$destinationAccountId]['currencies'][$currencyId]['earned'],
$journal['amount'] (string) $journal['amount']
); );
$report[$destinationAccountId]['currencies'][$currencyId]['sum'] = bcadd( $report[$destinationAccountId]['currencies'][$currencyId]['sum'] = bcadd(
$report[$destinationAccountId]['currencies'][$currencyId]['sum'], $report[$destinationAccountId]['currencies'][$currencyId]['sum'],
$journal['amount'] (string) $journal['amount']
); );
$sums[$currencyId]['earned_sum'] = bcadd($sums[$currencyId]['earned_sum'], $journal['amount']); $sums[$currencyId]['earned_sum'] = bcadd($sums[$currencyId]['earned_sum'], (string) $journal['amount']);
$sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], $journal['amount']); $sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], (string) $journal['amount']);
} }
} }
} }
@@ -282,7 +282,7 @@ class CategoryController extends Controller
'currency_decimal_places' => $currency['currency_decimal_places'], 'currency_decimal_places' => $currency['currency_decimal_places'],
]; ];
++$result[$key]['transactions']; ++$result[$key]['transactions'];
$result[$key]['sum'] = bcadd($journal['amount'], $result[$key]['sum']); $result[$key]['sum'] = bcadd((string) $journal['amount'], $result[$key]['sum']);
$result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']); $result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']);
$result[$key]['avg_float'] = (float) $result[$key]['avg']; // intentional float $result[$key]['avg_float'] = (float) $result[$key]['avg']; // intentional float
} }
@@ -332,7 +332,7 @@ class CategoryController extends Controller
'currency_decimal_places' => $currency['currency_decimal_places'], 'currency_decimal_places' => $currency['currency_decimal_places'],
]; ];
++$result[$key]['transactions']; ++$result[$key]['transactions'];
$result[$key]['sum'] = bcadd($journal['amount'], $result[$key]['sum']); $result[$key]['sum'] = bcadd((string) $journal['amount'], $result[$key]['sum']);
$result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']); $result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']);
$result[$key]['avg_float'] = (float) $result[$key]['avg']; $result[$key]['avg_float'] = (float) $result[$key]['avg'];
} }
@@ -405,15 +405,15 @@ class CategoryController extends Controller
]; ];
$report[$categoryId]['currencies'][$currencyId]['spent'] = bcadd( $report[$categoryId]['currencies'][$currencyId]['spent'] = bcadd(
$report[$categoryId]['currencies'][$currencyId]['spent'], $report[$categoryId]['currencies'][$currencyId]['spent'],
$journal['amount'] (string) $journal['amount']
); );
$report[$categoryId]['currencies'][$currencyId]['sum'] = bcadd( $report[$categoryId]['currencies'][$currencyId]['sum'] = bcadd(
$report[$categoryId]['currencies'][$currencyId]['sum'], $report[$categoryId]['currencies'][$currencyId]['sum'],
$journal['amount'] (string) $journal['amount']
); );
$sums[$currencyId]['spent_sum'] = bcadd($sums[$currencyId]['spent_sum'], $journal['amount']); $sums[$currencyId]['spent_sum'] = bcadd($sums[$currencyId]['spent_sum'], (string) $journal['amount']);
$sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], $journal['amount']); $sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], (string) $journal['amount']);
} }
} }
} }
@@ -447,15 +447,15 @@ class CategoryController extends Controller
]; ];
$report[$categoryId]['currencies'][$currencyId]['earned'] = bcadd( $report[$categoryId]['currencies'][$currencyId]['earned'] = bcadd(
$report[$categoryId]['currencies'][$currencyId]['earned'], $report[$categoryId]['currencies'][$currencyId]['earned'],
$journal['amount'] (string) $journal['amount']
); );
$report[$categoryId]['currencies'][$currencyId]['sum'] = bcadd( $report[$categoryId]['currencies'][$currencyId]['sum'] = bcadd(
$report[$categoryId]['currencies'][$currencyId]['sum'], $report[$categoryId]['currencies'][$currencyId]['sum'],
$journal['amount'] (string) $journal['amount']
); );
$sums[$currencyId]['earned_sum'] = bcadd($sums[$currencyId]['earned_sum'], $journal['amount']); $sums[$currencyId]['earned_sum'] = bcadd($sums[$currencyId]['earned_sum'], (string) $journal['amount']);
$sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], $journal['amount']); $sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], (string) $journal['amount']);
} }
} }
} }
@@ -514,8 +514,8 @@ class CategoryController extends Controller
foreach ($categoryRow['transaction_journals'] as $journal) { foreach ($categoryRow['transaction_journals'] as $journal) {
$date = $journal['date']->format($format); $date = $journal['date']->format($format);
$data[$key]['entries'][$date] ??= '0'; $data[$key]['entries'][$date] ??= '0';
$data[$key]['entries'][$date] = bcadd($data[$key]['entries'][$date], $journal['amount']); $data[$key]['entries'][$date] = bcadd($data[$key]['entries'][$date], (string) $journal['amount']);
$data[$key]['sum'] = bcadd($data[$key]['sum'], $journal['amount']); $data[$key]['sum'] = bcadd($data[$key]['sum'], (string) $journal['amount']);
} }
} }
} }
@@ -588,8 +588,8 @@ class CategoryController extends Controller
foreach ($categoryRow['transaction_journals'] as $journal) { foreach ($categoryRow['transaction_journals'] as $journal) {
$date = $journal['date']->format($format); $date = $journal['date']->format($format);
$data[$key]['entries'][$date] ??= '0'; $data[$key]['entries'][$date] ??= '0';
$data[$key]['entries'][$date] = bcadd($data[$key]['entries'][$date], $journal['amount']); $data[$key]['entries'][$date] = bcadd($data[$key]['entries'][$date], (string) $journal['amount']);
$data[$key]['sum'] = bcadd($data[$key]['sum'], $journal['amount']); $data[$key]['sum'] = bcadd($data[$key]['sum'], (string) $journal['amount']);
} }
} }
} }

View File

@@ -90,7 +90,7 @@ class DoubleController extends Controller
'currency_decimal_places' => $currency['currency_decimal_places'], 'currency_decimal_places' => $currency['currency_decimal_places'],
]; ];
++$result[$key]['transactions']; ++$result[$key]['transactions'];
$result[$key]['sum'] = bcadd($journal['amount'], $result[$key]['sum']); $result[$key]['sum'] = bcadd((string) $journal['amount'], $result[$key]['sum']);
$result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']); $result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']);
$result[$key]['avg_float'] = (float) $result[$key]['avg']; $result[$key]['avg_float'] = (float) $result[$key]['avg'];
} }
@@ -140,7 +140,7 @@ class DoubleController extends Controller
'currency_decimal_places' => $currency['currency_decimal_places'], 'currency_decimal_places' => $currency['currency_decimal_places'],
]; ];
++$result[$key]['transactions']; ++$result[$key]['transactions'];
$result[$key]['sum'] = bcadd($journal['amount'], $result[$key]['sum']); $result[$key]['sum'] = bcadd((string) $journal['amount'], $result[$key]['sum']);
$result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']); $result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']);
$result[$key]['avg_float'] = (float) $result[$key]['avg']; $result[$key]['avg_float'] = (float) $result[$key]['avg'];
} }
@@ -219,10 +219,10 @@ class DoubleController extends Controller
$report[$objectName]['dest_iban'] = $destIban; $report[$objectName]['dest_iban'] = $destIban;
// add amounts: // add amounts:
$report[$objectName]['spent'] = bcadd($report[$objectName]['spent'], $journal['amount']); $report[$objectName]['spent'] = bcadd($report[$objectName]['spent'], (string) $journal['amount']);
$report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], $journal['amount']); $report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], (string) $journal['amount']);
$sums[$currencyId]['spent'] = bcadd($sums[$currencyId]['spent'], $journal['amount']); $sums[$currencyId]['spent'] = bcadd($sums[$currencyId]['spent'], (string) $journal['amount']);
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], $journal['amount']); $sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
} }
} }
@@ -268,10 +268,10 @@ class DoubleController extends Controller
$report[$objectName]['source_iban'] = $sourceIban; $report[$objectName]['source_iban'] = $sourceIban;
// add amounts: // add amounts:
$report[$objectName]['earned'] = bcadd($report[$objectName]['earned'], $journal['amount']); $report[$objectName]['earned'] = bcadd($report[$objectName]['earned'], (string) $journal['amount']);
$report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], $journal['amount']); $report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], (string) $journal['amount']);
$sums[$currencyId]['earned'] = bcadd($sums[$currencyId]['earned'], $journal['amount']); $sums[$currencyId]['earned'] = bcadd($sums[$currencyId]['earned'], (string) $journal['amount']);
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], $journal['amount']); $sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
} }
} }
@@ -342,10 +342,10 @@ class DoubleController extends Controller
]; ];
// set name // set name
// add amounts: // add amounts:
$report[$objectName]['spent'] = bcadd($report[$objectName]['spent'], $journal['amount']); $report[$objectName]['spent'] = bcadd($report[$objectName]['spent'], (string) $journal['amount']);
$report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], $journal['amount']); $report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], (string) $journal['amount']);
$sums[$currencyId]['spent'] = bcadd($sums[$currencyId]['spent'], $journal['amount']); $sums[$currencyId]['spent'] = bcadd($sums[$currencyId]['spent'], (string) $journal['amount']);
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], $journal['amount']); $sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
} }
} }
@@ -381,10 +381,10 @@ class DoubleController extends Controller
]; ];
// add amounts: // add amounts:
$report[$objectName]['earned'] = bcadd($report[$objectName]['earned'], $journal['amount']); $report[$objectName]['earned'] = bcadd($report[$objectName]['earned'], (string) $journal['amount']);
$report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], $journal['amount']); $report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], (string) $journal['amount']);
$sums[$currencyId]['earned'] = bcadd($sums[$currencyId]['earned'], $journal['amount']); $sums[$currencyId]['earned'] = bcadd($sums[$currencyId]['earned'], (string) $journal['amount']);
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], $journal['amount']); $sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
} }
} }

View File

@@ -103,11 +103,11 @@ class TagController extends Controller
]; ];
$report[$sourceAccountId]['currencies'][$currencyId]['tags'][$tagId]['spent'] = bcadd( $report[$sourceAccountId]['currencies'][$currencyId]['tags'][$tagId]['spent'] = bcadd(
$report[$sourceAccountId]['currencies'][$currencyId]['tags'][$tagId]['spent'], $report[$sourceAccountId]['currencies'][$currencyId]['tags'][$tagId]['spent'],
$journal['amount'] (string) $journal['amount']
); );
$report[$sourceAccountId]['currencies'][$currencyId]['tags'][$tagId]['sum'] = bcadd( $report[$sourceAccountId]['currencies'][$currencyId]['tags'][$tagId]['sum'] = bcadd(
$report[$sourceAccountId]['currencies'][$currencyId]['tags'][$tagId]['sum'], $report[$sourceAccountId]['currencies'][$currencyId]['tags'][$tagId]['sum'],
$journal['amount'] (string) $journal['amount']
); );
} }
} }
@@ -137,11 +137,11 @@ class TagController extends Controller
]; ];
$report[$destinationId]['currencies'][$currencyId]['tags'][$tagId]['earned'] = bcadd( $report[$destinationId]['currencies'][$currencyId]['tags'][$tagId]['earned'] = bcadd(
$report[$destinationId]['currencies'][$currencyId]['tags'][$tagId]['earned'], $report[$destinationId]['currencies'][$currencyId]['tags'][$tagId]['earned'],
$journal['amount'] (string) $journal['amount']
); );
$report[$destinationId]['currencies'][$currencyId]['tags'][$tagId]['sum'] = bcadd( $report[$destinationId]['currencies'][$currencyId]['tags'][$tagId]['sum'] = bcadd(
$report[$destinationId]['currencies'][$currencyId]['tags'][$tagId]['sum'], $report[$destinationId]['currencies'][$currencyId]['tags'][$tagId]['sum'],
$journal['amount'] (string) $journal['amount']
); );
} }
} }
@@ -199,14 +199,14 @@ class TagController extends Controller
]; ];
$report[$sourceAccountId]['currencies'][$currencyId]['spent'] = bcadd( $report[$sourceAccountId]['currencies'][$currencyId]['spent'] = bcadd(
$report[$sourceAccountId]['currencies'][$currencyId]['spent'], $report[$sourceAccountId]['currencies'][$currencyId]['spent'],
$journal['amount'] (string) $journal['amount']
); );
$report[$sourceAccountId]['currencies'][$currencyId]['sum'] = bcadd( $report[$sourceAccountId]['currencies'][$currencyId]['sum'] = bcadd(
$report[$sourceAccountId]['currencies'][$currencyId]['sum'], $report[$sourceAccountId]['currencies'][$currencyId]['sum'],
$journal['amount'] (string) $journal['amount']
); );
$sums[$currencyId]['spent_sum'] = bcadd($sums[$currencyId]['spent_sum'], $journal['amount']); $sums[$currencyId]['spent_sum'] = bcadd($sums[$currencyId]['spent_sum'], (string) $journal['amount']);
$sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], $journal['amount']); $sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], (string) $journal['amount']);
} }
} }
} }
@@ -237,14 +237,14 @@ class TagController extends Controller
]; ];
$report[$destinationAccountId]['currencies'][$currencyId]['earned'] = bcadd( $report[$destinationAccountId]['currencies'][$currencyId]['earned'] = bcadd(
$report[$destinationAccountId]['currencies'][$currencyId]['earned'], $report[$destinationAccountId]['currencies'][$currencyId]['earned'],
$journal['amount'] (string) $journal['amount']
); );
$report[$destinationAccountId]['currencies'][$currencyId]['sum'] = bcadd( $report[$destinationAccountId]['currencies'][$currencyId]['sum'] = bcadd(
$report[$destinationAccountId]['currencies'][$currencyId]['sum'], $report[$destinationAccountId]['currencies'][$currencyId]['sum'],
$journal['amount'] (string) $journal['amount']
); );
$sums[$currencyId]['earned_sum'] = bcadd($sums[$currencyId]['earned_sum'], $journal['amount']); $sums[$currencyId]['earned_sum'] = bcadd($sums[$currencyId]['earned_sum'], (string) $journal['amount']);
$sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], $journal['amount']); $sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], (string) $journal['amount']);
} }
} }
} }
@@ -279,7 +279,7 @@ class TagController extends Controller
'currency_decimal_places' => $currency['currency_decimal_places'], 'currency_decimal_places' => $currency['currency_decimal_places'],
]; ];
++$result[$key]['transactions']; ++$result[$key]['transactions'];
$result[$key]['sum'] = bcadd($journal['amount'], $result[$key]['sum']); $result[$key]['sum'] = bcadd((string) $journal['amount'], $result[$key]['sum']);
$result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']); $result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']);
$result[$key]['avg_float'] = (float) $result[$key]['avg']; $result[$key]['avg_float'] = (float) $result[$key]['avg'];
} }
@@ -329,7 +329,7 @@ class TagController extends Controller
'currency_decimal_places' => $currency['currency_decimal_places'], 'currency_decimal_places' => $currency['currency_decimal_places'],
]; ];
++$result[$key]['transactions']; ++$result[$key]['transactions'];
$result[$key]['sum'] = bcadd($journal['amount'], $result[$key]['sum']); $result[$key]['sum'] = bcadd((string) $journal['amount'], $result[$key]['sum']);
$result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']); $result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']);
$result[$key]['avg_float'] = (float) $result[$key]['avg']; $result[$key]['avg_float'] = (float) $result[$key]['avg'];
} }
@@ -403,10 +403,10 @@ class TagController extends Controller
'currency_name' => $currency['currency_name'], 'currency_name' => $currency['currency_name'],
'currency_decimal_places' => $currency['currency_decimal_places'], 'currency_decimal_places' => $currency['currency_decimal_places'],
]; ];
$report[$tagId]['currencies'][$currencyId]['spent'] = bcadd($report[$tagId]['currencies'][$currencyId]['spent'], $journal['amount']); $report[$tagId]['currencies'][$currencyId]['spent'] = bcadd((string) $report[$tagId]['currencies'][$currencyId]['spent'], (string) $journal['amount']);
$report[$tagId]['currencies'][$currencyId]['sum'] = bcadd($report[$tagId]['currencies'][$currencyId]['sum'], $journal['amount']); $report[$tagId]['currencies'][$currencyId]['sum'] = bcadd((string) $report[$tagId]['currencies'][$currencyId]['sum'], (string) $journal['amount']);
$sums[$currencyId]['spent_sum'] = bcadd($sums[$currencyId]['spent_sum'], $journal['amount']); $sums[$currencyId]['spent_sum'] = bcadd($sums[$currencyId]['spent_sum'], (string) $journal['amount']);
$sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], $journal['amount']); $sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], (string) $journal['amount']);
} }
} }
} }
@@ -441,10 +441,10 @@ class TagController extends Controller
'currency_name' => $currency['currency_name'], 'currency_name' => $currency['currency_name'],
'currency_decimal_places' => $currency['currency_decimal_places'], 'currency_decimal_places' => $currency['currency_decimal_places'],
]; ];
$report[$tagId]['currencies'][$currencyId]['earned'] = bcadd($report[$tagId]['currencies'][$currencyId]['earned'], $journal['amount']); $report[$tagId]['currencies'][$currencyId]['earned'] = bcadd((string) $report[$tagId]['currencies'][$currencyId]['earned'], (string) $journal['amount']);
$report[$tagId]['currencies'][$currencyId]['sum'] = bcadd($report[$tagId]['currencies'][$currencyId]['sum'], $journal['amount']); $report[$tagId]['currencies'][$currencyId]['sum'] = bcadd((string) $report[$tagId]['currencies'][$currencyId]['sum'], (string) $journal['amount']);
$sums[$currencyId]['earned_sum'] = bcadd($sums[$currencyId]['earned_sum'], $journal['amount']); $sums[$currencyId]['earned_sum'] = bcadd($sums[$currencyId]['earned_sum'], (string) $journal['amount']);
$sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], $journal['amount']); $sums[$currencyId]['total_sum'] = bcadd($sums[$currencyId]['total_sum'], (string) $journal['amount']);
} }
} }
} }

View File

@@ -173,7 +173,7 @@ class MassController extends Controller
try { try {
$this->updateJournal($integer, $request); $this->updateJournal($integer, $request);
++$count; ++$count;
} catch (FireflyException $e) { } catch (FireflyException) {
// @ignoreException // @ignoreException
} }
} }

View File

@@ -150,11 +150,11 @@ class ShowController extends Controller
'decimal_places' => $transaction['currency_decimal_places'], 'decimal_places' => $transaction['currency_decimal_places'],
]; ];
} }
$amounts[$symbol]['amount'] = bcadd($amounts[$symbol]['amount'], $transaction['amount']); $amounts[$symbol]['amount'] = bcadd($amounts[$symbol]['amount'], (string) $transaction['amount']);
if (null !== $transaction['foreign_amount'] && '' !== $transaction['foreign_amount'] if (null !== $transaction['foreign_amount'] && '' !== $transaction['foreign_amount']
&& 0 !== bccomp( && 0 !== bccomp(
'0', '0',
$transaction['foreign_amount'] (string) $transaction['foreign_amount']
)) { )) {
// same for foreign currency: // same for foreign currency:
$foreignSymbol = $transaction['foreign_currency_symbol']; $foreignSymbol = $transaction['foreign_currency_symbol'];
@@ -167,7 +167,7 @@ class ShowController extends Controller
} }
$amounts[$foreignSymbol]['amount'] = bcadd( $amounts[$foreignSymbol]['amount'] = bcadd(
$amounts[$foreignSymbol]['amount'], $amounts[$foreignSymbol]['amount'],
$transaction['foreign_amount'] (string) $transaction['foreign_amount']
); );
} }
} }

View File

@@ -35,17 +35,16 @@ use Illuminate\Http\Request;
*/ */
class Authenticate class Authenticate
{ {
/**
* The authentication factory instance.
*/
protected Auth $auth;
/** /**
* Create a new middleware instance. * Create a new middleware instance.
*/ */
public function __construct(Auth $auth) public function __construct(
/**
* The authentication factory instance.
*/
protected Auth $auth
)
{ {
$this->auth = $auth;
} }
/** /**

View File

@@ -130,12 +130,12 @@ class InterestingMessage
session()->flash('success', (string) trans('firefly.stored_journal', ['description' => $title])); session()->flash('success', (string) trans('firefly.stored_journal', ['description' => $title]));
} }
if ('updated' === $message) { if ('updated' === $message) {
$type = strtolower($journal->transactionType->type); $type = strtolower((string) $journal->transactionType->type);
session()->flash('success_url', route('transactions.show', [$transactionGroupId])); session()->flash('success_url', route('transactions.show', [$transactionGroupId]));
session()->flash('success', (string) trans(sprintf('firefly.updated_%s', $type), ['description' => $title])); session()->flash('success', (string) trans(sprintf('firefly.updated_%s', $type), ['description' => $title]));
} }
if ('no_change' === $message) { if ('no_change' === $message) {
$type = strtolower($journal->transactionType->type); $type = strtolower((string) $journal->transactionType->type);
session()->flash('warning_url', route('transactions.show', [$transactionGroupId])); session()->flash('warning_url', route('transactions.show', [$transactionGroupId]));
session()->flash('warning', (string) trans(sprintf('firefly.no_changes_%s', $type), ['description' => $title])); session()->flash('warning', (string) trans(sprintf('firefly.no_changes_%s', $type), ['description' => $title]));
} }

View File

@@ -102,7 +102,7 @@ class Range
$language = app('steam')->getLanguage(); $language = app('steam')->getLanguage();
$locale = app('steam')->getLocale(); $locale = app('steam')->getLocale();
\App::setLocale($language); \App::setLocale($language);
Carbon::setLocale(substr($locale, 0, 2)); Carbon::setLocale(substr((string) $locale, 0, 2));
$localeArray = app('steam')->getLocaleArray($locale); $localeArray = app('steam')->getLocaleArray($locale);

View File

@@ -45,7 +45,7 @@ class SecureHeaders
// generate and share nonce. // generate and share nonce.
$nonce = base64_encode(random_bytes(16)); $nonce = base64_encode(random_bytes(16));
Vite::useCspNonce($nonce); Vite::useCspNonce($nonce);
if (class_exists('Barryvdh\Debugbar\Facades\Debugbar')) { if (class_exists(\Barryvdh\Debugbar\Facades\Debugbar::class)) {
Debugbar::getJavascriptRenderer()->setCspNonce($nonce); Debugbar::getJavascriptRenderer()->setCspNonce($nonce);
} }
app('view')->share('JS_NONCE', $nonce); app('view')->share('JS_NONCE', $nonce);

View File

@@ -37,6 +37,7 @@ class StartFireflySession extends StartSession
* *
* @param Session $session * @param Session $session
*/ */
#[\Override]
protected function storeCurrentUrl(Request $request, $session): void protected function storeCurrentUrl(Request $request, $session): void
{ {
$url = $request->fullUrl(); $url = $request->fullUrl();

View File

@@ -33,6 +33,7 @@ class TrustHosts extends Middleware
* *
* @return array<int, null|string> * @return array<int, null|string>
*/ */
#[\Override]
public function hosts(): array public function hosts(): array
{ {
return [ return [

View File

@@ -137,7 +137,7 @@ class AccountFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -63,7 +63,7 @@ class AttachmentFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -83,7 +83,7 @@ class BillStoreRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -87,7 +87,7 @@ class BillUpdateRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -84,7 +84,7 @@ class BudgetFormStoreRequest extends FormRequest
); );
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -93,7 +93,7 @@ class BudgetFormUpdateRequest extends FormRequest
} }
); );
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -52,7 +52,7 @@ class BudgetIncomeRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -52,7 +52,7 @@ class BulkEditJournalRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -73,7 +73,7 @@ class CategoryFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -61,7 +61,7 @@ class ConfigurationRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -85,7 +85,7 @@ class CurrencyFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -49,7 +49,7 @@ class DeleteAccountFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -51,7 +51,7 @@ class EmailFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -50,7 +50,7 @@ class ExistingTokenFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -51,7 +51,7 @@ class InviteUserFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -45,7 +45,7 @@ class JournalLinkRequest extends FormRequest
{ {
$return = []; $return = [];
$linkType = $this->get('link_type'); $linkType = $this->get('link_type');
$parts = explode('_', $linkType); $parts = explode('_', (string) $linkType);
$return['link_type_id'] = (int) $parts[0]; $return['link_type_id'] = (int) $parts[0];
$return['transaction_journal_id'] = $this->convertInteger('opposing'); $return['transaction_journal_id'] = $this->convertInteger('opposing');
$return['notes'] = $this->convertString('notes'); $return['notes'] = $this->convertString('notes');
@@ -80,7 +80,7 @@ class JournalLinkRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -65,7 +65,7 @@ class LinkTypeFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -49,7 +49,7 @@ class MassDeleteJournalRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -55,7 +55,7 @@ class MassEditJournalRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -58,7 +58,7 @@ class NewUserFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -69,7 +69,7 @@ class ObjectGroupFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -117,7 +117,7 @@ class PiggyBankStoreRequest extends FormRequest
); );
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }

View File

@@ -122,7 +122,7 @@ class PiggyBankUpdateRequest extends FormRequest
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }

View File

@@ -51,7 +51,7 @@ class ProfileFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -82,7 +82,7 @@ class ReconciliationStoreRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -281,7 +281,7 @@ class RecurrenceFormRequest extends FormRequest
} }
); );
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }

View File

@@ -251,7 +251,7 @@ class ReportFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -165,7 +165,7 @@ class RuleFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -80,7 +80,7 @@ class RuleGroupFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -58,7 +58,7 @@ class SelectTransactionsRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -83,7 +83,7 @@ class TagFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -55,7 +55,7 @@ class TestRuleFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -50,7 +50,7 @@ class TokenFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -61,7 +61,7 @@ class TriggerRecurrenceRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -69,7 +69,7 @@ class UserFormRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -59,7 +59,7 @@ class UserRegistrationRequest extends FormRequest
public function withValidator(Validator $validator): void public function withValidator(Validator $validator): void
{ {
if ($validator->fails()) { if ($validator->fails()) {
Log::channel('audit')->error(sprintf('Validation errors in %s', __CLASS__), $validator->errors()->toArray()); Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());
} }
} }
} }

View File

@@ -156,9 +156,7 @@ class CreateRecurringTransactions implements ShouldQueue
private function filterRecurrences(Collection $recurrences): Collection private function filterRecurrences(Collection $recurrences): Collection
{ {
return $recurrences->filter( return $recurrences->filter(
function (Recurrence $recurrence) { fn(Recurrence $recurrence) => $this->validRecurrence($recurrence)
return $this->validRecurrence($recurrence);
}
); );
} }
@@ -420,7 +418,7 @@ class CreateRecurringTransactions implements ShouldQueue
/** @var RecurrenceTransaction $transaction */ /** @var RecurrenceTransaction $transaction */
foreach ($transactions as $index => $transaction) { foreach ($transactions as $index => $transaction) {
$single = [ $single = [
'type' => null === $transaction?->transactionType?->type ? strtolower($recurrence->transactionType->type) : strtolower($transaction->transactionType->type), // @phpstan-ignore-line 'type' => null === $transaction?->transactionType?->type ? strtolower((string) $recurrence->transactionType->type) : strtolower($transaction->transactionType->type), // @phpstan-ignore-line
'date' => $date, 'date' => $date,
'user' => $recurrence->user, 'user' => $recurrence->user,
'user_group' => $recurrence->user->userGroup, 'user_group' => $recurrence->user->userGroup,

View File

@@ -38,21 +38,12 @@ class MailError extends Job implements ShouldQueue
use InteractsWithQueue; use InteractsWithQueue;
use SerializesModels; use SerializesModels;
protected string $destination;
protected array $exception;
protected string $ipAddress;
protected array $userData;
/** /**
* MailError constructor. * MailError constructor.
*/ */
public function __construct(array $userData, string $destination, string $ipAddress, array $exceptionData) public function __construct(protected array $userData, protected string $destination, protected string $ipAddress, protected array $exception)
{ {
$this->userData = $userData; $debug = $this->exception;
$this->destination = $destination;
$this->ipAddress = $ipAddress;
$this->exception = $exceptionData;
$debug = $exceptionData;
unset($debug['stackTrace'], $debug['headers']); unset($debug['stackTrace'], $debug['headers']);
app('log')->error(sprintf('Exception is: %s', \Safe\json_encode($debug))); app('log')->error(sprintf('Exception is: %s', \Safe\json_encode($debug)));

View File

@@ -42,14 +42,11 @@ class SendWebhookMessage implements ShouldQueue
use Queueable; use Queueable;
use SerializesModels; use SerializesModels;
private WebhookMessage $message;
/** /**
* Create a new job instance. * Create a new job instance.
*/ */
public function __construct(WebhookMessage $message) public function __construct(private WebhookMessage $message)
{ {
$this->message = $message;
} }
/** /**

View File

@@ -37,18 +37,11 @@ class BillWarningMail extends Mailable
use Queueable; use Queueable;
use SerializesModels; use SerializesModels;
public Bill $bill;
public int $diff;
public string $field;
/** /**
* ConfirmEmailChangeMail constructor. * ConfirmEmailChangeMail constructor.
*/ */
public function __construct(Bill $bill, string $field, int $diff) public function __construct(public Bill $bill, public string $field, public int $diff)
{ {
$this->bill = $bill;
$this->field = $field;
$this->diff = $diff;
} }
/** /**

View File

@@ -37,18 +37,11 @@ class ConfirmEmailChangeMail extends Mailable
use Queueable; use Queueable;
use SerializesModels; use SerializesModels;
public string $newEmail;
public string $oldEmail;
public string $url;
/** /**
* ConfirmEmailChangeMail constructor. * ConfirmEmailChangeMail constructor.
*/ */
public function __construct(string $newEmail, string $oldEmail, string $url) public function __construct(public string $newEmail, public string $oldEmail, public string $url)
{ {
$this->newEmail = $newEmail;
$this->oldEmail = $oldEmail;
$this->url = $url;
} }
/** /**

View File

@@ -35,21 +35,14 @@ class InvitationMail extends Mailable
{ {
use Queueable; use Queueable;
use SerializesModels; use SerializesModels;
public string $admin;
public string $host; public string $host;
public string $invitee;
public string $url;
/** /**
* OAuthTokenCreatedMail constructor. * OAuthTokenCreatedMail constructor.
*/ */
public function __construct(string $invitee, string $admin, string $url) public function __construct(public string $invitee, public string $admin, public string $url)
{ {
$this->invitee = $invitee; $this->host = (string) \Safe\parse_url($this->url, PHP_URL_HOST);
$this->admin = $admin;
$this->url = $url;
$this->host = (string) \Safe\parse_url($url, PHP_URL_HOST);
} }
/** /**

View File

@@ -38,15 +38,13 @@ class NewIPAddressWarningMail extends Mailable
use SerializesModels; use SerializesModels;
public string $host; public string $host;
public string $ipAddress;
public string $time; public string $time;
/** /**
* OAuthTokenCreatedMail constructor. * OAuthTokenCreatedMail constructor.
*/ */
public function __construct(string $ipAddress) public function __construct(public string $ipAddress)
{ {
$this->ipAddress = $ipAddress;
} }
/** /**

View File

@@ -37,14 +37,11 @@ class OAuthTokenCreatedMail extends Mailable
use Queueable; use Queueable;
use SerializesModels; use SerializesModels;
public Client $client;
/** /**
* OAuthTokenCreatedMail constructor. * OAuthTokenCreatedMail constructor.
*/ */
public function __construct(Client $client) public function __construct(public Client $client)
{ {
$this->client = $client;
} }
/** /**

View File

@@ -37,14 +37,11 @@ class RegisteredUser extends Mailable
use Queueable; use Queueable;
use SerializesModels; use SerializesModels;
public string $address;
/** /**
* Create a new message instance. * Create a new message instance.
*/ */
public function __construct(string $address) public function __construct(public string $address)
{ {
$this->address = $address;
} }
/** /**

View File

@@ -40,16 +40,13 @@ class ReportNewJournalsMail extends Mailable
{ {
use Queueable; use Queueable;
use SerializesModels; use SerializesModels;
public Collection $groups;
public array $transformed; public array $transformed;
/** /**
* ConfirmEmailChangeMail constructor. * ConfirmEmailChangeMail constructor.
*/ */
public function __construct(Collection $groups) public function __construct(public Collection $groups)
{ {
$this->groups = $groups;
} }
/** /**

View File

@@ -36,14 +36,11 @@ class RequestedNewPassword extends Mailable
use Queueable; use Queueable;
use SerializesModels; use SerializesModels;
public string $url;
/** /**
* RequestedNewPassword constructor. * RequestedNewPassword constructor.
*/ */
public function __construct(string $url) public function __construct(public string $url)
{ {
$this->url = $url;
} }
/** /**

View File

@@ -35,18 +35,11 @@ class UndoEmailChangeMail extends Mailable
use Queueable; use Queueable;
use SerializesModels; use SerializesModels;
public string $newEmail;
public string $oldEmail;
public string $url;
/** /**
* UndoEmailChangeMail constructor. * UndoEmailChangeMail constructor.
*/ */
public function __construct(string $newEmail, string $oldEmail, string $url) public function __construct(public string $newEmail, public string $oldEmail, public string $url)
{ {
$this->newEmail = $newEmail;
$this->oldEmail = $oldEmail;
$this->url = $url;
} }
/** /**

View File

@@ -41,11 +41,8 @@ class UnknownUserLoginAttempt extends Notification
{ {
use Queueable; use Queueable;
private string $address; public function __construct(private string $address)
public function __construct(string $address)
{ {
$this->address = $address;
} }
/** /**

View File

@@ -45,11 +45,8 @@ class UserInvitation extends Notification
{ {
use Queueable; use Queueable;
private InvitedUser $invitee; public function __construct(private InvitedUser $invitee)
public function __construct(InvitedUser $invitee)
{ {
$this->invitee = $invitee;
} }
/** /**
@@ -72,7 +69,7 @@ class UserInvitation extends Notification
$time = now(config('app.timezone'))->isoFormat((string) trans('config.date_time_js')); $time = now(config('app.timezone'))->isoFormat((string) trans('config.date_time_js'));
return (new MailMessage()) return new MailMessage()
->markdown('emails.invitation-created', ['email' => $this->invitee->user->email, 'invitee' => $this->invitee->email, 'ip' => $ip, 'host' => $host, 'userAgent' => $userAgent, 'time' => $time]) ->markdown('emails.invitation-created', ['email' => $this->invitee->user->email, 'invitee' => $this->invitee->email, 'ip' => $ip, 'host' => $host, 'userAgent' => $userAgent, 'time' => $time])
->subject((string) trans('email.invitation_created_subject')) ->subject((string) trans('email.invitation_created_subject'))
; ;

View File

@@ -45,11 +45,8 @@ class UserRegistration extends Notification
{ {
use Queueable; use Queueable;
private User $user; public function __construct(private User $user)
public function __construct(User $user)
{ {
$this->user = $user;
} }
/** /**
@@ -71,7 +68,7 @@ class UserRegistration extends Notification
$userAgent = Request::userAgent(); $userAgent = Request::userAgent();
$time = now(config('app.timezone'))->isoFormat((string) trans('config.date_time_js')); $time = now(config('app.timezone'))->isoFormat((string) trans('config.date_time_js'));
return (new MailMessage()) return new MailMessage()
->markdown('emails.registered-admin', ['email' => $this->user->email, 'id' => $this->user->id, 'ip' => $ip, 'host' => $host, 'userAgent' => $userAgent, 'time' => $time]) ->markdown('emails.registered-admin', ['email' => $this->user->email, 'id' => $this->user->id, 'ip' => $ip, 'host' => $host, 'userAgent' => $userAgent, 'time' => $time])
->subject((string) trans('email.registered_subject_admin')) ->subject((string) trans('email.registered_subject_admin'))
; ;

View File

@@ -42,11 +42,8 @@ class VersionCheckResult extends Notification
{ {
use Queueable; use Queueable;
private string $message; public function __construct(private string $message)
public function __construct(string $message)
{ {
$this->message = $message;
} }
/** /**
@@ -63,7 +60,7 @@ class VersionCheckResult extends Notification
*/ */
public function toMail(OwnerNotifiable $notifiable): MailMessage public function toMail(OwnerNotifiable $notifiable): MailMessage
{ {
return (new MailMessage()) return new MailMessage()
->markdown('emails.new-version', ['message' => $this->message]) ->markdown('emails.new-version', ['message' => $this->message])
->subject((string) trans('email.new_version_email_subject')) ->subject((string) trans('email.new_version_email_subject'))
; ;

View File

@@ -40,11 +40,8 @@ class DisabledMFANotification extends Notification
{ {
use Queueable; use Queueable;
private User $user; public function __construct(private User $user)
public function __construct(User $user)
{ {
$this->user = $user;
} }
/** /**
@@ -67,7 +64,7 @@ class DisabledMFANotification extends Notification
$userAgent = Request::userAgent(); $userAgent = Request::userAgent();
$time = now(config('app.timezone'))->isoFormat((string) trans('config.date_time_js')); $time = now(config('app.timezone'))->isoFormat((string) trans('config.date_time_js'));
return (new MailMessage())->markdown('emails.security.disabled-mfa', ['user' => $this->user, 'ip' => $ip, 'host' => $host, 'userAgent' => $userAgent, 'time' => $time])->subject($subject); return new MailMessage()->markdown('emails.security.disabled-mfa', ['user' => $this->user, 'ip' => $ip, 'host' => $host, 'userAgent' => $userAgent, 'time' => $time])->subject($subject);
} }
public function toNtfy(User $notifiable): Message public function toNtfy(User $notifiable): Message

Some files were not shown because too many files have changed in this diff Show More