Command to recalculate foreign amounts.

This commit is contained in:
James Cole
2024-12-21 11:20:48 +01:00
parent b52a1f3eb1
commit e2a20dd63d
7 changed files with 245 additions and 19 deletions

View File

@@ -48,7 +48,12 @@ class PiggyBankObserver
private function updateNativeAmount(PiggyBank $piggyBank): void
{
$userCurrency = app('amount')->getDefaultCurrencyByUserGroup($piggyBank->accounts()->first()?->user->userGroup);
$group =$piggyBank->accounts()->first()?->user->userGroup;
if(null === $group) {
Log::debug(sprintf('No account(s) yet for piggy bank #%d.', $piggyBank->id));
return;
}
$userCurrency = app('amount')->getDefaultCurrencyByUserGroup($group);
if(null === $userCurrency) {
return;
}

View File

@@ -74,7 +74,7 @@ class TransactionObserver
$transaction->native_amount = $converter->convert($transaction->transactionCurrency, $userCurrency, $transaction->transactionJournal->date, $transaction->amount);
}
// then foreign amount
if ($transaction->foreignCurrency?->id !== $userCurrency->id && null !== $transaction->foreign_amount) {
if ($transaction->foreignCurrency?->id !== $userCurrency->id && null !== $transaction->foreign_amount && null !== $transaction->foreignCurrency) {
$converter = new ExchangeRateConverter();
$converter->setIgnoreSettings(true);
$transaction->native_foreign_amount = $converter->convert($transaction->foreignCurrency, $userCurrency, $transaction->transactionJournal->date, $transaction->foreign_amount);