mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 02:36:28 +00:00 
			
		
		
		
	Auto commit for release 'develop' on 2024-12-28
This commit is contained in:
		| @@ -59,8 +59,9 @@ class CorrectsNativeAmounts extends Command | ||||
|      */ | ||||
|     public function handle(): int | ||||
|     { | ||||
|         if(!config('cer.enabled')) { | ||||
|         if (!config('cer.enabled')) { | ||||
|             $this->friendlyInfo('This command will not run because currency exchange rates are disabled.'); | ||||
| 
 | ||||
|             return 0; | ||||
|         } | ||||
|         Log::debug('Will update all native amounts. This may take some time.'); | ||||
|   | ||||
| @@ -39,8 +39,8 @@ class UpgradesTransferCurrencies extends Command | ||||
|     use ShowsFriendlyMessages; | ||||
| 
 | ||||
|     public const string CONFIG_NAME = '480_transfer_currencies'; | ||||
|     protected                             $description = 'Updates transfer currency information.'; | ||||
|     protected                             $signature   = 'upgrade:480-transfer-currencies {--F|force : Force the execution of this command.}'; | ||||
|     protected $description          = 'Updates transfer currency information.'; | ||||
|     protected $signature            = 'upgrade:480-transfer-currencies {--F|force : Force the execution of this command.}'; | ||||
|     private array                         $accountCurrencies; | ||||
|     private AccountRepositoryInterface    $accountRepos; | ||||
|     private JournalCLIRepositoryInterface $cliRepos; | ||||
| @@ -71,6 +71,7 @@ class UpgradesTransferCurrencies extends Command | ||||
|         if ($this->count > 0) { | ||||
|             $this->friendlyInfo(sprintf('Verified currency information of %d transfer(s).', $this->count)); | ||||
|         } | ||||
| 
 | ||||
|         return 0; | ||||
|     } | ||||
| 
 | ||||
| @@ -211,14 +212,14 @@ class UpgradesTransferCurrencies extends Command | ||||
| 
 | ||||
|     private function getCurrency(Account $account): ?TransactionCurrency | ||||
|     { | ||||
|         $accountId = $account->id; | ||||
|         $accountId                           = $account->id; | ||||
|         if (array_key_exists($accountId, $this->accountCurrencies) && 0 === $this->accountCurrencies[$accountId]) { | ||||
|             return null; | ||||
|         } | ||||
|         if (array_key_exists($accountId, $this->accountCurrencies) && $this->accountCurrencies[$accountId] instanceof TransactionCurrency) { | ||||
|             return $this->accountCurrencies[$accountId]; | ||||
|         } | ||||
|         $currency = $this->accountRepos->getAccountCurrency($account); | ||||
|         $currency                            = $this->accountRepos->getAccountCurrency($account); | ||||
|         if (null === $currency) { | ||||
|             $this->accountCurrencies[$accountId] = 0; | ||||
| 
 | ||||
| @@ -290,7 +291,8 @@ class UpgradesTransferCurrencies extends Command | ||||
|         if (null === $this->sourceTransaction->transaction_currency_id && null !== $this->sourceCurrency) { | ||||
|             $this->sourceTransaction | ||||
|                 ->transaction_currency_id | ||||
|                      = $this->sourceCurrency->id; | ||||
|                      = $this->sourceCurrency->id | ||||
|             ; | ||||
|             $message = sprintf( | ||||
|                 'Transaction #%d has no currency setting, now set to %s.', | ||||
|                 $this->sourceTransaction->id, | ||||
| @@ -312,7 +314,7 @@ class UpgradesTransferCurrencies extends Command | ||||
|             && null === $this->sourceTransaction->foreign_amount | ||||
|             && (int) $this->sourceTransaction->transaction_currency_id !== $this->sourceCurrency->id | ||||
|         ) { | ||||
|             $message = sprintf( | ||||
|             $message                                          = sprintf( | ||||
|                 'Transaction #%d has a currency setting #%d that should be #%d. Amount remains %s, currency is changed.', | ||||
|                 $this->sourceTransaction->id, | ||||
|                 $this->sourceTransaction->transaction_currency_id, | ||||
| @@ -335,7 +337,8 @@ class UpgradesTransferCurrencies extends Command | ||||
|         if (null === $this->destinationTransaction->transaction_currency_id && null !== $this->destinationCurrency) { | ||||
|             $this->destinationTransaction | ||||
|                 ->transaction_currency_id | ||||
|                      = $this->destinationCurrency->id; | ||||
|                      = $this->destinationCurrency->id | ||||
|             ; | ||||
|             $message = sprintf( | ||||
|                 'Transaction #%d has no currency setting, now set to %s.', | ||||
|                 $this->destinationTransaction->id, | ||||
| @@ -357,7 +360,7 @@ class UpgradesTransferCurrencies extends Command | ||||
|             && null === $this->destinationTransaction->foreign_amount | ||||
|             && (int) $this->destinationTransaction->transaction_currency_id !== $this->destinationCurrency->id | ||||
|         ) { | ||||
|             $message = sprintf( | ||||
|             $message                                               = sprintf( | ||||
|                 'Transaction #%d has a currency setting #%d that should be #%d. Amount remains %s, currency is changed.', | ||||
|                 $this->destinationTransaction->id, | ||||
|                 $this->destinationTransaction->transaction_currency_id, | ||||
| @@ -380,8 +383,8 @@ class UpgradesTransferCurrencies extends Command | ||||
|     { | ||||
|         if ($this->destinationCurrency->id === $this->sourceCurrency->id) { | ||||
|             // update both transactions to match:
 | ||||
|             $this->sourceTransaction->foreign_amount      = null; | ||||
|             $this->sourceTransaction->foreign_currency_id = null; | ||||
|             $this->sourceTransaction->foreign_amount           = null; | ||||
|             $this->sourceTransaction->foreign_currency_id      = null; | ||||
| 
 | ||||
|             $this->destinationTransaction->foreign_amount      = null; | ||||
|             $this->destinationTransaction->foreign_currency_id = null; | ||||
|   | ||||
| @@ -68,9 +68,7 @@ class Handler extends ExceptionHandler | ||||
|     /** | ||||
|      * Register the exception handling callbacks for the application. | ||||
|      */ | ||||
|     public function register(): void | ||||
|     { | ||||
|     } | ||||
|     public function register(): void {} | ||||
| 
 | ||||
|     /** | ||||
|      * Render an exception into an HTTP response. It's complex but lucky for us, we never use it because | ||||
|   | ||||
| @@ -44,7 +44,7 @@ class AccountObserver | ||||
| 
 | ||||
|     private function updateNativeAmount(Account $account): void | ||||
|     { | ||||
|         if(!Amount::convertToNative($account->user)) { | ||||
|         if (!Amount::convertToNative($account->user)) { | ||||
|             return; | ||||
|         } | ||||
|         $userCurrency = app('amount')->getDefaultCurrencyByUserGroup($account->user->userGroup); | ||||
|   | ||||
| @@ -45,7 +45,7 @@ class AutoBudgetObserver | ||||
| 
 | ||||
|     private function updateNativeAmount(AutoBudget $autoBudget): void | ||||
|     { | ||||
|         if(!Amount::convertToNative($autoBudget->budget->user)) { | ||||
|         if (!Amount::convertToNative($autoBudget->budget->user)) { | ||||
|             return; | ||||
|         } | ||||
|         $userCurrency              = app('amount')->getDefaultCurrencyByUserGroup($autoBudget->budget->user->userGroup); | ||||
|   | ||||
| @@ -45,7 +45,7 @@ class AvailableBudgetObserver | ||||
| 
 | ||||
|     private function updateNativeAmount(AvailableBudget $availableBudget): void | ||||
|     { | ||||
|         if(!Amount::convertToNative($availableBudget->user)) { | ||||
|         if (!Amount::convertToNative($availableBudget->user)) { | ||||
|             return; | ||||
|         } | ||||
|         $userCurrency                   = app('amount')->getDefaultCurrencyByUserGroup($availableBudget->user->userGroup); | ||||
|   | ||||
| @@ -56,7 +56,7 @@ class BillObserver | ||||
| 
 | ||||
|     private function updateNativeAmount(Bill $bill): void | ||||
|     { | ||||
|         if(!Amount::convertToNative($bill->user)) { | ||||
|         if (!Amount::convertToNative($bill->user)) { | ||||
|             return; | ||||
|         } | ||||
|         $userCurrency            = app('amount')->getDefaultCurrencyByUserGroup($bill->user->userGroup); | ||||
|   | ||||
| @@ -45,7 +45,7 @@ class BudgetLimitObserver | ||||
| 
 | ||||
|     private function updateNativeAmount(BudgetLimit $budgetLimit): void | ||||
|     { | ||||
|         if(!Amount::convertToNative($budgetLimit->budget->user)) { | ||||
|         if (!Amount::convertToNative($budgetLimit->budget->user)) { | ||||
|             return; | ||||
|         } | ||||
|         $userCurrency               = app('amount')->getDefaultCurrencyByUserGroup($budgetLimit->budget->user->userGroup); | ||||
|   | ||||
| @@ -45,7 +45,7 @@ class PiggyBankEventObserver | ||||
| 
 | ||||
|     private function updateNativeAmount(PiggyBankEvent $event): void | ||||
|     { | ||||
|         if(!Amount::convertToNative($event->piggyBank->accounts()->first()->user)) { | ||||
|         if (!Amount::convertToNative($event->piggyBank->accounts()->first()->user)) { | ||||
|             return; | ||||
|         } | ||||
|         $userCurrency         = app('amount')->getDefaultCurrencyByUserGroup($event->piggyBank->accounts()->first()->user->userGroup); | ||||
|   | ||||
| @@ -56,7 +56,7 @@ class TransactionObserver | ||||
| 
 | ||||
|     public function updated(Transaction $transaction): void | ||||
|     { | ||||
| //        Log::debug('Observe "updated" of a transaction.');
 | ||||
|         //        Log::debug('Observe "updated" of a transaction.');
 | ||||
|         if (config('firefly.feature_flags.running_balance_column') && self::$recalculate) { | ||||
|             if (1 === bccomp($transaction->amount, '0')) { | ||||
|                 Log::debug('Trigger recalculateForJournal'); | ||||
| @@ -68,7 +68,7 @@ class TransactionObserver | ||||
| 
 | ||||
|     private function updateNativeAmount(Transaction $transaction): void | ||||
|     { | ||||
|         if(!Amount::convertToNative($transaction->transactionJournal->user)) { | ||||
|         if (!Amount::convertToNative($transaction->transactionJournal->user)) { | ||||
|             return; | ||||
|         } | ||||
|         $userCurrency                       = app('amount')->getDefaultCurrencyByUserGroup($transaction->transactionJournal->user->userGroup); | ||||
|   | ||||
| @@ -90,7 +90,7 @@ class EditController extends Controller | ||||
|         $latitude             = null !== $location ? $location->latitude : config('firefly.default_location.latitude'); | ||||
|         $longitude            = null !== $location ? $location->longitude : config('firefly.default_location.longitude'); | ||||
|         $zoomLevel            = null !== $location ? $location->zoom_level : config('firefly.default_location.zoom_level'); | ||||
|         $canEditCurrency = $account->piggyBanks()->count() === 0; | ||||
|         $canEditCurrency      = 0 === $account->piggyBanks()->count(); | ||||
|         $hasLocation          = null !== $location; | ||||
|         $locations            = [ | ||||
|             'location' => [ | ||||
| @@ -163,7 +163,7 @@ class EditController extends Controller | ||||
| 
 | ||||
|         $request->session()->flash('preFilled', $preFilled); | ||||
| 
 | ||||
|         return view('accounts.edit', compact('account', 'currency','canEditCurrency', 'showNetWorth', 'subTitle', 'subTitleIcon', 'locations', 'liabilityDirections', 'objectType', 'roles', 'preFilled', 'liabilityTypes', 'interestPeriods')); | ||||
|         return view('accounts.edit', compact('account', 'currency', 'canEditCurrency', 'showNetWorth', 'subTitle', 'subTitleIcon', 'locations', 'liabilityDirections', 'objectType', 'roles', 'preFilled', 'liabilityTypes', 'interestPeriods')); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|   | ||||
| @@ -197,11 +197,11 @@ class CategoryController extends Controller | ||||
| 
 | ||||
|             $chartData[$inKey] | ||||
|                           = [ | ||||
|                     'label'           => sprintf('%s (%s)', (string) trans('firefly.earned'), $currencyInfo['currency_name']), | ||||
|                     'entries'         => [], | ||||
|                     'type'            => 'bar', | ||||
|                     'backgroundColor' => 'rgba(0, 141, 76, 0.5)', // green
 | ||||
|                 ]; | ||||
|                               'label'           => sprintf('%s (%s)', (string) trans('firefly.earned'), $currencyInfo['currency_name']), | ||||
|                               'entries'         => [], | ||||
|                               'type'            => 'bar', | ||||
|                               'backgroundColor' => 'rgba(0, 141, 76, 0.5)', // green
 | ||||
|                           ]; | ||||
|             // loop empty periods:
 | ||||
|             foreach (array_keys($periods) as $period) { | ||||
|                 $label                                 = $periods[$period]; | ||||
|   | ||||
| @@ -47,7 +47,7 @@ class IndexController extends Controller | ||||
|                 return $next($request); | ||||
|             } | ||||
|         ); | ||||
|         if(!config('cer.enabled'))  { | ||||
|         if (!config('cer.enabled')) { | ||||
|             throw new NotFoundHttpException(); | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -154,7 +154,7 @@ class NoCategoryRepository implements NoCategoryRepositoryInterface | ||||
|         $journals        = $collector->getExtractedJournals(); | ||||
|         $array           = []; | ||||
|         // default currency information for native stuff.
 | ||||
|         $convertToNative = Amount::convertToNative($this->user);; | ||||
|         $convertToNative = Amount::convertToNative($this->user); | ||||
|         $default         = Amount::getDefaultCurrency(); | ||||
| 
 | ||||
|         foreach ($journals as $journal) { | ||||
|   | ||||
| @@ -331,7 +331,7 @@ class OperationsRepository implements OperationsRepositoryInterface | ||||
|         $collector->setUser($this->user)->setRange($start, $end)->setTypes([TransactionTypeEnum::WITHDRAWAL->value]); | ||||
| 
 | ||||
|         // default currency information for native stuff.
 | ||||
|         $convertToNative = Amount::convertToNative($this->user);; | ||||
|         $convertToNative = Amount::convertToNative($this->user); | ||||
|         $default         = Amount::getDefaultCurrency(); | ||||
|         if (null !== $accounts && $accounts->count() > 0) { | ||||
|             $collector->setAccounts($accounts); | ||||
| @@ -411,7 +411,7 @@ class OperationsRepository implements OperationsRepositoryInterface | ||||
|         } | ||||
|         $collector->setCategories($categories); | ||||
|         $journals        = $collector->getExtractedJournals(); | ||||
|         $convertToNative = Amount::convertToNative($this->user);; | ||||
|         $convertToNative = Amount::convertToNative($this->user); | ||||
|         $default         = Amount::getDefaultCurrency(); | ||||
|         $array           = []; | ||||
| 
 | ||||
|   | ||||
| @@ -30,6 +30,7 @@ use FireflyIII\Models\TransactionJournal; | ||||
| use FireflyIII\Models\UserGroup; | ||||
| use FireflyIII\User; | ||||
| use Illuminate\Support\Collection; | ||||
| use FireflyIII\Support\Facades\Preferences; | ||||
| 
 | ||||
| /** | ||||
|  * Class Amount. | ||||
| @@ -70,9 +71,10 @@ class Amount | ||||
|     public function convertToNative(?User $user = null): bool | ||||
|     { | ||||
|         if (null === $user) { | ||||
|             return \FireflyIII\Support\Facades\Preferences::get('convert_to_native', false)->data && config('cer.enabled'); | ||||
|             return Preferences::get('convert_to_native', false)->data && config('cer.enabled'); | ||||
|         } | ||||
|         return \FireflyIII\Support\Facades\Preferences::getForUser($user, 'convert_to_native', false)->data && config('cer.enabled'); | ||||
| 
 | ||||
|         return Preferences::getForUser($user, 'convert_to_native', false)->data && config('cer.enabled'); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
| @@ -81,16 +83,16 @@ class Amount | ||||
|      */ | ||||
|     public function getAmountFromJournalObject(TransactionJournal $journal): string | ||||
|     { | ||||
|         $convertToNative = $this->convertToNative(); | ||||
|         $currency        = $this->getDefaultCurrency(); | ||||
|         $field           = $convertToNative && $currency->id !== $journal->transaction_currency_id ? 'native_amount' : 'amount'; | ||||
|         $convertToNative   = $this->convertToNative(); | ||||
|         $currency          = $this->getDefaultCurrency(); | ||||
|         $field             = $convertToNative && $currency->id !== $journal->transaction_currency_id ? 'native_amount' : 'amount'; | ||||
| 
 | ||||
|         /** @var null|Transaction $sourceTransaction */ | ||||
|         $sourceTransaction = $journal->transactions()->where('amount', '<', 0)->first(); | ||||
|         if (null === $sourceTransaction) { | ||||
|             return '0'; | ||||
|         } | ||||
|         $amount = $sourceTransaction->{$field} ?? '0'; | ||||
|         $amount            = $sourceTransaction->{$field} ?? '0'; | ||||
|         if ((int) $sourceTransaction->foreign_currency_id === $currency->id) { | ||||
|             // use foreign amount instead!
 | ||||
|             $amount = (string) $sourceTransaction->foreign_amount; // hard coded to be foreign amount.
 | ||||
| @@ -109,15 +111,15 @@ class Amount | ||||
|      */ | ||||
|     public function formatFlat(string $symbol, int $decimalPlaces, string $amount, ?bool $coloured = null): string | ||||
|     { | ||||
|         $locale   = app('steam')->getLocale(); | ||||
|         $rounded  = app('steam')->bcround($amount, $decimalPlaces); | ||||
|         $locale  = app('steam')->getLocale(); | ||||
|         $rounded = app('steam')->bcround($amount, $decimalPlaces); | ||||
|         $coloured ??= true; | ||||
| 
 | ||||
|         $fmt = new \NumberFormatter($locale, \NumberFormatter::CURRENCY); | ||||
|         $fmt     = new \NumberFormatter($locale, \NumberFormatter::CURRENCY); | ||||
|         $fmt->setSymbol(\NumberFormatter::CURRENCY_SYMBOL, $symbol); | ||||
|         $fmt->setAttribute(\NumberFormatter::MIN_FRACTION_DIGITS, $decimalPlaces); | ||||
|         $fmt->setAttribute(\NumberFormatter::MAX_FRACTION_DIGITS, $decimalPlaces); | ||||
|         $result = (string) $fmt->format((float) $rounded); // intentional float
 | ||||
|         $result  = (string) $fmt->format((float) $rounded); // intentional float
 | ||||
| 
 | ||||
|         if (true === $coloured) { | ||||
|             if (1 === bccomp($rounded, '0')) { | ||||
| @@ -163,7 +165,7 @@ class Amount | ||||
| 
 | ||||
|     public function getDefaultCurrencyByUserGroup(UserGroup $userGroup): TransactionCurrency | ||||
|     { | ||||
|         $cache = new CacheProperties(); | ||||
|         $cache   = new CacheProperties(); | ||||
|         $cache->addProperty('getDefaultCurrencyByGroup'); | ||||
|         $cache->addProperty($userGroup->id); | ||||
|         if ($cache->has()) { | ||||
| @@ -226,20 +228,20 @@ class Amount | ||||
|     private function getLocaleInfo(): array | ||||
|     { | ||||
|         // get config from preference, not from translation:
 | ||||
|         $locale = app('steam')->getLocale(); | ||||
|         $array  = app('steam')->getLocaleArray($locale); | ||||
|         $locale                    = app('steam')->getLocale(); | ||||
|         $array                     = app('steam')->getLocaleArray($locale); | ||||
| 
 | ||||
|         setlocale(LC_MONETARY, $array); | ||||
|         $info = localeconv(); | ||||
|         $info                      = localeconv(); | ||||
| 
 | ||||
|         // correct variables
 | ||||
|         $info['n_cs_precedes'] = $this->getLocaleField($info, 'n_cs_precedes'); | ||||
|         $info['p_cs_precedes'] = $this->getLocaleField($info, 'p_cs_precedes'); | ||||
|         $info['n_cs_precedes']     = $this->getLocaleField($info, 'n_cs_precedes'); | ||||
|         $info['p_cs_precedes']     = $this->getLocaleField($info, 'p_cs_precedes'); | ||||
| 
 | ||||
|         $info['n_sep_by_space'] = $this->getLocaleField($info, 'n_sep_by_space'); | ||||
|         $info['p_sep_by_space'] = $this->getLocaleField($info, 'p_sep_by_space'); | ||||
|         $info['n_sep_by_space']    = $this->getLocaleField($info, 'n_sep_by_space'); | ||||
|         $info['p_sep_by_space']    = $this->getLocaleField($info, 'p_sep_by_space'); | ||||
| 
 | ||||
|         $fmt = new \NumberFormatter($locale, \NumberFormatter::CURRENCY); | ||||
|         $fmt                       = new \NumberFormatter($locale, \NumberFormatter::CURRENCY); | ||||
| 
 | ||||
|         $info['mon_decimal_point'] = $fmt->getSymbol(\NumberFormatter::MONETARY_SEPARATOR_SYMBOL); | ||||
|         $info['mon_thousands_sep'] = $fmt->getSymbol(\NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL); | ||||
| @@ -262,7 +264,7 @@ class Amount | ||||
|     public static function getAmountJsConfig(bool $sepBySpace, int $signPosn, string $sign, bool $csPrecedes): string | ||||
|     { | ||||
|         // negative first:
 | ||||
|         $space = ' '; | ||||
|         $space  = ' '; | ||||
| 
 | ||||
|         // require space between symbol and amount?
 | ||||
|         if (false === $sepBySpace) { | ||||
| @@ -271,11 +273,11 @@ class Amount | ||||
| 
 | ||||
|         // there are five possible positions for the "+" or "-" sign (if it is even used)
 | ||||
|         // pos_a and pos_e could be the ( and ) symbol.
 | ||||
|         $posA = ''; // before everything
 | ||||
|         $posB = ''; // before currency symbol
 | ||||
|         $posC = ''; // after currency symbol
 | ||||
|         $posD = ''; // before amount
 | ||||
|         $posE = ''; // after everything
 | ||||
|         $posA   = ''; // before everything
 | ||||
|         $posB   = ''; // before currency symbol
 | ||||
|         $posC   = ''; // after currency symbol
 | ||||
|         $posD   = ''; // before amount
 | ||||
|         $posE   = ''; // after everything
 | ||||
| 
 | ||||
|         // format would be (currency before amount)
 | ||||
|         // AB%sC_D%vE
 | ||||
| @@ -317,11 +319,11 @@ class Amount | ||||
|         } | ||||
| 
 | ||||
|         // default is amount before currency
 | ||||
|         $format = $posA . $posD . '%v' . $space . $posB . '%s' . $posC . $posE; | ||||
|         $format = $posA.$posD.'%v'.$space.$posB.'%s'.$posC.$posE; | ||||
| 
 | ||||
|         if ($csPrecedes) { | ||||
|             // alternative is currency before amount
 | ||||
|             $format = $posA . $posB . '%s' . $posC . $space . $posD . '%v' . $posE; | ||||
|             $format = $posA.$posB.'%s'.$posC.$space.$posD.'%v'.$posE; | ||||
|         } | ||||
| 
 | ||||
|         return $format; | ||||
|   | ||||
| @@ -576,13 +576,13 @@ trait PeriodOverview | ||||
|             } | ||||
|             $entries[] | ||||
|                          = [ | ||||
|                     'title'              => $title, | ||||
|                     'route'              => route('transactions.index', [$transactionType, $currentDate['start']->format('Y-m-d'), $currentDate['end']->format('Y-m-d')]), | ||||
|                     'total_transactions' => count($spent) + count($earned) + count($transferred), | ||||
|                     'spent'              => $this->groupByCurrency($spent), | ||||
|                     'earned'             => $this->groupByCurrency($earned), | ||||
|                     'transferred'        => $this->groupByCurrency($transferred), | ||||
|                 ]; | ||||
|                              'title'              => $title, | ||||
|                              'route'              => route('transactions.index', [$transactionType, $currentDate['start']->format('Y-m-d'), $currentDate['end']->format('Y-m-d')]), | ||||
|                              'total_transactions' => count($spent) + count($earned) + count($transferred), | ||||
|                              'spent'              => $this->groupByCurrency($spent), | ||||
|                              'earned'             => $this->groupByCurrency($earned), | ||||
|                              'transferred'        => $this->groupByCurrency($transferred), | ||||
|                          ]; | ||||
|         } | ||||
| 
 | ||||
|         return $entries; | ||||
|   | ||||
| @@ -31,6 +31,7 @@ use FireflyIII\Models\TransactionCurrency; | ||||
| use Illuminate\Support\Collection; | ||||
| use Illuminate\Support\Facades\DB; | ||||
| use Illuminate\Support\Facades\Log; | ||||
| use FireflyIII\Support\Facades\Amount; | ||||
| 
 | ||||
| /** | ||||
|  * Class Steam. | ||||
| @@ -310,8 +311,8 @@ class Steam | ||||
|     public function finalAccountBalance(Account $account, Carbon $date): array | ||||
|     { | ||||
|         Log::debug(sprintf('Now in finalAccountBalance(#%d, "%s", "%s")', $account->id, $account->name, $date->format('Y-m-d H:i:s'))); | ||||
|         $native          = \FireflyIII\Support\Facades\Amount::getDefaultCurrencyByUserGroup($account->user->userGroup); | ||||
|         $convertToNative = \FireflyIII\Support\Facades\Amount::convertToNative($account->user); | ||||
|         $native          = Amount::getDefaultCurrencyByUserGroup($account->user->userGroup); | ||||
|         $convertToNative = Amount::convertToNative($account->user); | ||||
|         $accountCurrency = $this->getAccountCurrency($account); | ||||
|         $hasCurrency     = null !== $accountCurrency; | ||||
|         $currency        = $hasCurrency ? $accountCurrency : $native; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user