diff --git a/app/Http/Controllers/Report/OperationsController.php b/app/Http/Controllers/Report/OperationsController.php index 72f197bc0d..8cafe310a3 100644 --- a/app/Http/Controllers/Report/OperationsController.php +++ b/app/Http/Controllers/Report/OperationsController.php @@ -78,10 +78,10 @@ class OperationsController extends Controller if ($cache->has()) { return $cache->get(); // @codeCoverageIgnore } - $entries = $this->tasker->getExpenseReport($start, $end, $accounts); - $type = 'expense-entry'; + $report = $this->tasker->getExpenseReport($start, $end, $accounts); + $type = 'expense-entry'; try { - $result = view('reports.partials.income-expenses', compact('entries', 'type'))->render(); + $result = view('reports.partials.income-expenses', compact('report', 'type'))->render(); // @codeCoverageIgnoreStart } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.income-expense: %s', $e->getMessage())); @@ -113,17 +113,16 @@ class OperationsController extends Controller if ($cache->has()) { return $cache->get(); // @codeCoverageIgnore } - $entries = $this->tasker->getIncomeReport($start, $end, $accounts); - $type = 'income-entry'; + $report = $this->tasker->getIncomeReport($start, $end, $accounts); + $type = 'income-entry'; try { - $result = view('reports.partials.income-expenses', compact('entries', 'type'))->render(); + $result = view('reports.partials.income-expenses', compact('report', 'type'))->render(); // @codeCoverageIgnoreStart } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.income-expenses: %s', $e->getMessage())); $result = 'Could not render view.'; } // @codeCoverageIgnoreEnd - $cache->store($result); return $result; @@ -150,32 +149,34 @@ class OperationsController extends Controller return $cache->get(); // @codeCoverageIgnore } - $incomes = $this->tasker->getIncomeReport($start, $end, $accounts); - $expenses = $this->tasker->getExpenseReport($start, $end, $accounts); - $incomeSum = array_sum( - array_map( - static function ($item) { - return $item['sum']; - }, - $incomes - ) - ); + $incomes = $this->tasker->getIncomeReport($start, $end, $accounts); + $expenses = $this->tasker->getExpenseReport($start, $end, $accounts); + $sums = []; + $keys = array_unique(array_merge(array_keys($incomes['sums']), array_keys($expenses['sums']))); - $expensesSum = array_sum( - array_map( - static function ($item) { - return $item['sum']; - }, - $expenses - ) - ); - try { - $result = view('reports.partials.operations', compact('incomeSum', 'expensesSum'))->render(); - // @codeCoverageIgnoreStart - } catch (Throwable $e) { - Log::debug(sprintf('Could not render reports.partials.operations: %s', $e->getMessage())); - $result = 'Could not render view.'; + /** @var int $currencyId */ + foreach ($keys as $currencyId) { + $currencyInfo = $incomes['sums'][$currencyId] ?? $expenses['sums'][$currencyId]; + $sums[$currencyId] = $sums[$currencyId] ?? [ + 'currency_id' => $currencyId, + 'currency_name' => $currencyInfo['currency_name'], + 'currency_code' => $currencyInfo['currency_code'], + 'currency_symbol' => $currencyInfo['currency_symbol'], + 'currency_decimal_places' => $currencyInfo['currency_decimal_places'], + 'in' => $incomes['sums'][$currencyId]['sum'] ?? '0', + 'out' => $expenses['sums'][$currencyId]['sum'] ?? '0', + 'sum' => '0', + ]; + $sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['in'], $sums[$currencyId]['out']); } + + //try { + $result = view('reports.partials.operations', compact('sums'))->render(); + // @codeCoverageIgnoreStart +// } catch (Throwable $e) { +// Log::debug(sprintf('Could not render reports.partials.operations: %s', $e->getMessage())); +// $result = 'Could not render view.'; +// } // @codeCoverageIgnoreEnd $cache->store($result); diff --git a/app/Jobs/CreateRecurringTransactions.php b/app/Jobs/CreateRecurringTransactions.php index 2f4c3b1ed5..7966641d4f 100644 --- a/app/Jobs/CreateRecurringTransactions.php +++ b/app/Jobs/CreateRecurringTransactions.php @@ -304,7 +304,7 @@ class CreateRecurringTransactions implements ShouldQueue Log::debug(sprintf('Now at date %s.', $date->format('Y-m-d'))); $date->startOfDay(); if ($date->ne($this->date)) { - Log::debug(sprintf('%s is not not today (%s)', $date->format('Y-m-d'), $this->date->format('Y-m-d'))); + Log::debug(sprintf('%s is not today (%s)', $date->format('Y-m-d'), $this->date->format('Y-m-d'))); return null; } diff --git a/app/Repositories/Account/AccountTasker.php b/app/Repositories/Account/AccountTasker.php index fa75324ce8..99ef2f8adb 100644 --- a/app/Repositories/Account/AccountTasker.php +++ b/app/Repositories/Account/AccountTasker.php @@ -55,7 +55,6 @@ class AccountTasker implements AccountTaskerInterface * @param Carbon $end * * @return array - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function getAccountReport(Collection $accounts, Carbon $start, Carbon $end): array { @@ -63,36 +62,42 @@ class AccountTasker implements AccountTaskerInterface $yesterday->subDay(); $startSet = app('steam')->balancesByAccounts($accounts, $yesterday); $endSet = app('steam')->balancesByAccounts($accounts, $end); - Log::debug('Start of accountreport'); /** @var AccountRepositoryInterface $repository */ - $repository = app(AccountRepositoryInterface::class); - - /** @var CurrencyRepositoryInterface $currencyRepository */ - $currencyRepository = app(CurrencyRepositoryInterface::class); - $defaultCurrency = app('amount')->getDefaultCurrencyByUser($this->user); + $repository = app(AccountRepositoryInterface::class); + $defaultCurrency = app('amount')->getDefaultCurrencyByUser($this->user); $return = [ - 'currencies' => [], - 'start' => '0', - 'end' => '0', - 'difference' => '0', - 'accounts' => [], + 'accounts' => [], + 'sums' => [], ]; /** @var Account $account */ foreach ($accounts as $account) { - $id = $account->id; - $currencyId = (int)$repository->getMetaValue($account, 'currency_id'); - $currency = $currencyRepository->findNull($currencyId); - $return['currencies'][] = $currencyId; - $entry = [ - 'name' => $account->name, - 'id' => $account->id, - 'currency' => $currency ?? $defaultCurrency, - 'start_balance' => '0', - 'end_balance' => '0', + $id = $account->id; + $currency = $repository->getAccountCurrency($account) ?? $defaultCurrency; + $return['sums'][$currency->id] = $return['sums'][$currency->id] ?? [ + 'start' => '0', + 'end' => '0', + 'difference' => '0', + 'currency_id' => $currency->id, + 'currency_code' => $currency->code, + 'currency_symbol' => $currency->symbol, + 'currency_name' => $currency->name, + 'currency_decimal_places' => $currency->decimal_places,]; + + + $entry = [ + 'name' => $account->name, + 'id' => $account->id, + 'currency_id' => $currency->id, + 'currency_code' => $currency->code, + 'currency_symbol' => $currency->symbol, + 'currency_name' => $currency->name, + 'currency_decimal_places' => $currency->decimal_places, + 'start_balance' => '0', + 'end_balance' => '0', ]; // get first journal date: @@ -106,13 +111,14 @@ class AccountTasker implements AccountTaskerInterface $entry['start_balance'] = $first->transactions()->where('account_id', $account->id)->first()->amount; Log::debug(sprintf('Account %s was opened on %s, so opening balance is %f', $account->name, $start->format('Y-m-d'), $entry['start_balance'])); } - $return['start'] = bcadd($return['start'], $entry['start_balance']); - $return['end'] = bcadd($return['end'], $entry['end_balance']); - - $return['accounts'][$id] = $entry; + $return['sums'][$currency->id]['start'] = bcadd($return['sums'][$currency->id]['start'], $entry['start_balance']); + $return['sums'][$currency->id]['end'] = bcadd($return['sums'][$currency->id]['end'], $entry['end_balance']); + $return['accounts'][$id] = $entry; + } + + foreach (array_keys($return['sums']) as $index) { + $return['sums'][$index]['difference'] = bcsub($return['sums'][$index]['end'], $return['sums'][$index]['start']); } - $return['currencies'] = count(array_unique($return['currencies'])); - $return['difference'] = bcsub($return['end'], $return['start']); return $return; } @@ -135,21 +141,21 @@ class AccountTasker implements AccountTaskerInterface $collector->setSourceAccounts($accounts)->setRange($start, $end); $collector->excludeDestinationAccounts($accounts); - $collector->setTypes([TransactionType::WITHDRAWAL, TransactionType::TRANSFER]) - ->withAccountInformation(); + $collector->setTypes([TransactionType::WITHDRAWAL, TransactionType::TRANSFER])->withAccountInformation(); $journals = $collector->getExtractedJournals(); - $expenses = $this->groupExpenseByDestination($journals); + $report = $this->groupExpenseByDestination($journals); - // sort the result - // Obtain a list of columns - $sum = []; - foreach ($expenses as $accountId => $row) { - $sum[$accountId] = (float)$row['sum']; - } + // TODO sorting +// // sort the result +// // Obtain a list of columns +// $sum = []; +// foreach ($expenses as $accountId => $row) { +// $sum[$accountId] = (float)$row['sum']; +// } +// +// array_multisort($sum, SORT_ASC, $expenses); - array_multisort($sum, SORT_ASC, $expenses); - - return $expenses; + return $report; } /** @@ -169,20 +175,20 @@ class AccountTasker implements AccountTaskerInterface $collector = app(GroupCollectorInterface::class); $collector->setDestinationAccounts($accounts)->setRange($start, $end); $collector->excludeSourceAccounts($accounts); - $collector->setTypes([TransactionType::DEPOSIT, TransactionType::TRANSFER]) - ->withAccountInformation(); - $income = $this->groupIncomeBySource($collector->getExtractedJournals()); + $collector->setTypes([TransactionType::DEPOSIT, TransactionType::TRANSFER])->withAccountInformation(); + $report = $this->groupIncomeBySource($collector->getExtractedJournals()); // sort the result // Obtain a list of columns - $sum = []; - foreach ($income as $accountId => $row) { - $sum[$accountId] = (float)$row['sum']; - } + // $sum = []; + // foreach ($report['income'] as $accountId => $row) { + // $sum[$accountId] = (float)$row['sum']; + // } + // TODO proper sorting. + //array_multisort($sum, SORT_DESC, $report); + // var_dump($report);exit; - array_multisort($sum, SORT_DESC, $income); - - return $income; + return $report; } /** @@ -204,51 +210,52 @@ class AccountTasker implements AccountTaskerInterface /** @var CurrencyRepositoryInterface $currencyRepos */ $currencyRepos = app(CurrencyRepositoryInterface::class); $currencies = [$defaultCurrency->id => $defaultCurrency,]; - $expenses = []; - $countAccounts = []; // if count remains 0 use original name, not the name with the currency. + $report = [ + 'accounts' => [], + 'sums' => [], + ]; /** @var array $journal */ foreach ($array as $journal) { - $destinationId = (int)$journal['destination_account_id']; - $currencyId = (int)$journal['currency_id']; - $key = sprintf('%s-%s', $destinationId, $currencyId); - $name = sprintf('%s (%s)', $journal['destination_account_name'], $journal['currency_name']); - $countAccounts[$destinationId] = isset($countAccounts[$destinationId]) ? $countAccounts[$destinationId] + 1 : 1; - - if (!isset($expenses[$key])) { - $currencies[$currencyId] = $currencies[$currencyId] ?? $currencyRepos->findNull($currencyId); - $expenses[$key] = [ - 'id' => $destinationId, - 'name' => $name, - 'original' => $journal['destination_account_name'], - 'sum' => '0', - 'average' => '0', - 'currencies' => [], - 'single_currency' => $currencies[$currencyId], - 'count' => 0, + $sourceId = (int)$journal['destination_account_id']; + $currencyId = (int)$journal['currency_id']; + $key = sprintf('%s-%s', $sourceId, $currencyId); + if (!isset($report['accounts'][$key])) { + $currencies[$currencyId] = $currencies[$currencyId] ?? $currencyRepos->findNull($currencyId); + $report['accounts'][$key] = [ + 'id' => $sourceId, + 'name' => $journal['destination_account_name'], + 'sum' => '0', + 'average' => '0', + 'count' => 0, + 'currency_id' => $currencies[$currencyId]->id, + 'currency_name' => $currencies[$currencyId]->name, + 'currency_symbol' => $currencies[$currencyId]->symbol, + 'currency_code' => $currencies[$currencyId]->code, + 'currency_decimal_places' => $currencies[$currencyId]->decimal_places, ]; } - $expenses[$key]['currencies'][] = (int)$journal['currency_id']; - $expenses[$key]['sum'] = bcadd($expenses[$key]['sum'], $journal['amount']); - ++$expenses[$key]['count']; + $report['accounts'][$key]['sum'] = bcadd($report['accounts'][$key]['sum'], $journal['amount']); + ++$report['accounts'][$key]['count']; } - // do averages: - $keys = array_keys($expenses); - foreach ($keys as $key) { - $opposingId = $expenses[$key]['id']; - if (1 === $countAccounts[$opposingId]) { - $expenses[$key]['name'] = $expenses[$key]['original']; + // do averages and sums. + foreach (array_keys($report['accounts']) as $key) { + if ($report['accounts'][$key]['count'] > 1) { + $report['accounts'][$key]['average'] = bcdiv($report['accounts'][$key]['sum'], (string)$report['accounts'][$key]['count']); } - - if ($expenses[$key]['count'] > 1) { - $expenses[$key]['average'] = bcdiv($expenses[$key]['sum'], (string)$expenses[$key]['count']); - } - $expenses[$key]['currencies'] = count(array_unique($expenses[$key]['currencies'])); - $expenses[$key]['all_currencies'] = count($currencies); + $currencyId = $report['accounts'][$key]['currency_id']; + $report['sums'][$currencyId] = $report['sums'][$currencyId] ?? [ + 'sum' => '0', + 'currency_id' => $report['accounts'][$key]['currency_id'], + 'currency_name' => $report['accounts'][$key]['currency_name'], + 'currency_symbol' => $report['accounts'][$key]['currency_symbol'], + 'currency_code' => $report['accounts'][$key]['currency_code'], + 'currency_decimal_places' => $report['accounts'][$key]['currency_decimal_places'], + ]; + $report['sums'][$currencyId]['sum'] = bcadd($report['sums'][$currencyId]['sum'], $report['accounts'][$key]['sum']); } - - return $expenses; + return $report; } /** @@ -262,50 +269,52 @@ class AccountTasker implements AccountTaskerInterface /** @var CurrencyRepositoryInterface $currencyRepos */ $currencyRepos = app(CurrencyRepositoryInterface::class); $currencies = [$defaultCurrency->id => $defaultCurrency,]; - $income = []; - $countAccounts = []; // if count remains 0 use original name, not the name with the currency. + $report = [ + 'accounts' => [], + 'sums' => [], + ]; /** @var array $journal */ foreach ($array as $journal) { $sourceId = (int)$journal['source_account_id']; $currencyId = (int)$journal['currency_id']; $key = sprintf('%s-%s', $sourceId, $currencyId); - $name = sprintf('%s (%s)', $journal['source_account_name'], $journal['currency_name']); - $countAccounts[$sourceId] = isset($countAccounts[$sourceId]) ? $countAccounts[$sourceId] + 1 : 1; - - if (!isset($income[$key])) { - $currencies[$currencyId] = $currencies[$currencyId] ?? $currencyRepos->findNull($currencyId); - $income[$key] = [ - 'id' => $sourceId, - 'name' => $name, - 'original' => $journal['source_account_name'], - 'sum' => '0', - 'average' => '0', - 'currencies' => [], - 'single_currency' => $currencies[$currencyId], - 'count' => 0, + if (!isset($report['accounts'][$key])) { + $currencies[$currencyId] = $currencies[$currencyId] ?? $currencyRepos->findNull($currencyId); + $report['accounts'][$key] = [ + 'id' => $sourceId, + 'name' => $journal['source_account_name'], + 'sum' => '0', + 'average' => '0', + 'count' => 0, + 'currency_id' => $currencies[$currencyId]->id, + 'currency_name' => $currencies[$currencyId]->name, + 'currency_symbol' => $currencies[$currencyId]->symbol, + 'currency_code' => $currencies[$currencyId]->code, + 'currency_decimal_places' => $currencies[$currencyId]->decimal_places, ]; } - $income[$key]['currencies'][] = (int)$journal['currency_id']; - $income[$key]['sum'] = bcadd($income[$key]['sum'], bcmul($journal['amount'], '-1')); - ++$income[$key]['count']; + $report['accounts'][$key]['sum'] = bcadd($report['accounts'][$key]['sum'], bcmul($journal['amount'], '-1')); + ++$report['accounts'][$key]['count']; } - // do averages: - $keys = array_keys($income); - foreach ($keys as $key) { - $opposingId = $income[$key]['id']; - if (1 === $countAccounts[$opposingId]) { - $income[$key]['name'] = $income[$key]['original']; + // do averages and sums. + foreach (array_keys($report['accounts']) as $key) { + if ($report['accounts'][$key]['count'] > 1) { + $report['accounts'][$key]['average'] = bcdiv($report['accounts'][$key]['sum'], (string)$report['accounts'][$key]['count']); } - - if ($income[$key]['count'] > 1) { - $income[$key]['average'] = bcdiv($income[$key]['sum'], (string)$income[$key]['count']); - } - $income[$key]['currencies'] = count(array_unique($income[$key]['currencies'])); - $income[$key]['all_currencies'] = count($currencies); + $currencyId = $report['accounts'][$key]['currency_id']; + $report['sums'][$currencyId] = $report['sums'][$currencyId] ?? [ + 'sum' => '0', + 'currency_id' => $report['accounts'][$key]['currency_id'], + 'currency_name' => $report['accounts'][$key]['currency_name'], + 'currency_symbol' => $report['accounts'][$key]['currency_symbol'], + 'currency_code' => $report['accounts'][$key]['currency_code'], + 'currency_decimal_places' => $report['accounts'][$key]['currency_decimal_places'], + ]; + $report['sums'][$currencyId]['sum'] = bcadd($report['sums'][$currencyId]['sum'], $report['accounts'][$key]['sum']); } - return $income; + return $report; } } diff --git a/resources/views/v1/accounts/reconcile/transactions.twig b/resources/views/v1/accounts/reconcile/transactions.twig index 999d3d16d2..4e98432b0a 100644 --- a/resources/views/v1/accounts/reconcile/transactions.twig +++ b/resources/views/v1/accounts/reconcile/transactions.twig @@ -94,9 +94,9 @@ - {{ formatAmountBySymbol(journal.amount, journal.currency_symbol, journal.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(journal.amount, journal.currency_symbol, journal.currency_decimal_places) }} {% if null != journal.foreign_amount %} - ({{ formatAmountBySymbol(journal.foreign_amount, journal.foreign_currency_symbol, journal.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(journal.foreign_amount, journal.foreign_currency_symbol, journal.foreign_currency_decimal_places) }}) {% endif %} diff --git a/resources/views/v1/list/groups.twig b/resources/views/v1/list/groups.twig index 123d82c9ac..827b7ad4ed 100644 --- a/resources/views/v1/list/groups.twig +++ b/resources/views/v1/list/groups.twig @@ -25,13 +25,13 @@ TODO: hide and show columns {% for sum in group.sums %} {% if group.transaction_type == 'Deposit' %} - {{ formatAmountBySymbol(sum.amount*-1, sum.currency_symbol, sum.currency_symbol_decimal_places) }}{% if loop.index != group.sums|length %},{% endif %} + {{ formatAmountBySymbol(sum.amount*-1, sum.currency_symbol, sum.currency_decimal_places) }}{% if loop.index != group.sums|length %},{% endif %} {% elseif group.transaction_type == 'Transfer' %} - {{ formatAmountBySymbol(sum.amount*-1, sum.currency_symbol, sum.currency_symbol_decimal_places, false) }}{% if loop.index != group.sums|length %},{% endif %}X + {{ formatAmountBySymbol(sum.amount*-1, sum.currency_symbol, sum.currency_decimal_places, false) }}{% if loop.index != group.sums|length %},{% endif %}X {% else %} - {{ formatAmountBySymbol(sum.amount, sum.currency_symbol, sum.currency_symbol_decimal_places) }}{% if loop.index != group.sums|length %},{% endif %} + {{ formatAmountBySymbol(sum.amount, sum.currency_symbol, sum.currency_decimal_places) }}{% if loop.index != group.sums|length %},{% endif %} {% endif %} {% endfor %} @@ -90,21 +90,21 @@ TODO: hide and show columns {% if transaction.transaction_type_type == 'Deposit' %} - {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_decimal_places) }} {% if null != transaction.foreign_amount %} - ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} {% elseif transaction.transaction_type_type == 'Transfer' %} - {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_symbol_decimal_places, false) }} + {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_decimal_places, false) }} {% if null != transaction.foreign_amount %} - ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_symbol_decimal_places, false) }}) + ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places, false) }}) {% endif %} {% else %} - {{ formatAmountBySymbol(transaction.amount, transaction.currency_symbol, transaction.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(transaction.amount, transaction.currency_symbol, transaction.currency_decimal_places) }} {% if null != transaction.foreign_amount %} - ({{ formatAmountBySymbol(transaction.foreign_amount, transaction.foreign_currency_symbol, transaction.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(transaction.foreign_amount, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} {% endif %} diff --git a/resources/views/v1/popup/list/journals.twig b/resources/views/v1/popup/list/journals.twig index 62f6fd2a29..42f2a0ea59 100644 --- a/resources/views/v1/popup/list/journals.twig +++ b/resources/views/v1/popup/list/journals.twig @@ -63,23 +63,23 @@ {% if transaction.transaction_type_type == 'Deposit' %} - {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_decimal_places) }} {% if null != transaction.foreign_amount %} - ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} {% set sum = (sum + (transaction.amount*-1)) %} {% elseif transaction.transaction_type_type == 'Transfer' %} - {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_symbol_decimal_places, false) }} + {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_decimal_places, false) }} {% if null != transaction.foreign_amount %} - ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_symbol_decimal_places, false) }}) + ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places, false) }}) {% endif %} {% set sum = (sum + transaction.amount*-1) %} {% else %} - {{ formatAmountBySymbol(transaction.amount, transaction.currency_symbol, transaction.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(transaction.amount, transaction.currency_symbol, transaction.currency_decimal_places) }} {% if null != transaction.foreign_amount %} - ({{ formatAmountBySymbol(transaction.foreign_amount, transaction.foreign_currency_symbol, transaction.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(transaction.foreign_amount, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} {% set sum = (sum + transaction.amount) %} {% endif %} diff --git a/resources/views/v1/reports/budget/month.twig b/resources/views/v1/reports/budget/month.twig index 210dec6ec6..2d06943585 100644 --- a/resources/views/v1/reports/budget/month.twig +++ b/resources/views/v1/reports/budget/month.twig @@ -250,7 +250,7 @@ - {{ formatAmountBySymbol(row.amount, row.currency_symbol, row.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(row.amount, row.currency_symbol, row.currency_decimal_places) }} diff --git a/resources/views/v1/reports/category/month.twig b/resources/views/v1/reports/category/month.twig index 89be71d3b5..e5376a2b77 100644 --- a/resources/views/v1/reports/category/month.twig +++ b/resources/views/v1/reports/category/month.twig @@ -283,7 +283,7 @@ - {{ formatAmountBySymbol(row.amount, row.currency_symbol, row.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(row.amount, row.currency_symbol, row.currency_decimal_places) }} {% endfor %} @@ -404,7 +404,7 @@ - {{ formatAmountBySymbol(row.amount*-1, row.currency_symbol, row.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(row.amount*-1, row.currency_symbol, row.currency_decimal_places) }} {% endfor %} diff --git a/resources/views/v1/reports/partials/accounts.twig b/resources/views/v1/reports/partials/accounts.twig index 34ef9d6798..53a9e5e0c5 100644 --- a/resources/views/v1/reports/partials/accounts.twig +++ b/resources/views/v1/reports/partials/accounts.twig @@ -14,28 +14,35 @@ {{ account.name }} - {{ formatAmountByCurrency(account.currency, account.start_balance) }} + {{ formatAmountBySymbol(account.start_balance, account.currency_symbol, account.currency_decimal_places) }} - {{ formatAmountByCurrency(account.currency, account.end_balance) }} + {{ formatAmountBySymbol(account.end_balance, account.currency_symbol, account.currency_decimal_places) }} + - {{ formatAmountByCurrency(account.currency, (account.end_balance - account.start_balance)) }} + {{ formatAmountBySymbol(account.end_balance - account.start_balance, account.currency_symbol, account.currency_decimal_places) }} {% endfor %} + + {{ 'sumOfSums'|_ }} + + {% for sum in accountReport.sums %} + + +   + + + {{ formatAmountBySymbol(sum.start, sum.currency_symbol, sum.currency_decimal_places) }} + + + {{ formatAmountBySymbol(sum.end, sum.currency_symbol, sum.currency_decimal_places) }} + + + {{ formatAmountBySymbol(sum.difference, sum.currency_symbol, sum.currency_decimal_places) }} + + + {% endfor %} - - - {{ 'sumOfSums'|_ }} - {{ accountReport.start|formatAmount }} - {{ accountReport.end|formatAmount }} - {{ accountReport.difference|formatAmount }} - - {% if accountReport.currencies > 1 %} - - {{ 'multi_currency_report_sum'|_ }} - - {% endif %} - diff --git a/resources/views/v1/reports/partials/income-expenses.twig b/resources/views/v1/reports/partials/income-expenses.twig index 6d804feceb..6291a6c6e1 100644 --- a/resources/views/v1/reports/partials/income-expenses.twig +++ b/resources/views/v1/reports/partials/income-expenses.twig @@ -8,58 +8,54 @@ - {% set sum = 0 %} - {% for entry in entries %} - {% set sum = sum + entry.sum %} + {% for account in report.accounts %} {% if loop.index > listLength %} {% else %} {% endif %} - - {{ entry.name }} - {% if entry.count > 1 %} + + {{ account.name }} + {% if account.count > 1 %}
- {{ entry.count }} {{ 'transactions'|_|lower }} + {{ account.count }} {{ 'transactions'|_|lower }} {% endif %} - - {% if entry.currencies == 1 %} - {{ formatAmountByCurrency(entry.single_currency, entry.sum) }} - {% else %} - {{ (entry.sum)|formatAmount }} - {% endif %} + + {{ formatAmountBySymbol(account.sum, account.currency_symbol, account.currency_decimal_places) }} {% if entry.count > 1 %} - {{ entry.average|formatAmount }} + {{ formatAmountBySymbol(account.average, account.currency_symbol, account.currency_decimal_places) }} {% else %} — {% endif %} + data-account-id="{{ account.id }}"> {% endfor %} + - {% if entries|length > listLength %} + {% if report.accounts|length > listLength %} {{ trans('firefly.show_full_list',{number:incomeTopLength}) }} {% endif %} - - {{ 'sum'|_ }} - {{ (sum)|formatAmount }} - - - {{ 'sum_in_default_currency'|_ }} - - + {% for sum in report.sums %} + + {{ 'sum'|_ }} ({{ sum.currency_name }}) + + {{ formatAmountBySymbol(sum.sum, sum.currency_symbol, sum.currency_decimal_places) }} + +   + + {% endfor %} diff --git a/resources/views/v1/reports/partials/journals-audit.twig b/resources/views/v1/reports/partials/journals-audit.twig index fda96e3377..0310f3ca64 100644 --- a/resources/views/v1/reports/partials/journals-audit.twig +++ b/resources/views/v1/reports/partials/journals-audit.twig @@ -77,14 +77,14 @@ - {{ formatAmountBySymbol(journal.balance_before, journal.currency_symbol, journal.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(journal.balance_before, journal.currency_symbol, journal.currency_decimal_places) }} - {{ formatAmountBySymbol(journal.amount, journal.currency_symbol, journal.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(journal.amount, journal.currency_symbol, journal.currency_decimal_places) }} - {{ formatAmountBySymbol(journal.balance_after, journal.currency_symbol, journal.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(journal.balance_after, journal.currency_symbol, journal.currency_decimal_places) }} {{ journal.date.formatLocalized(monthAndDayFormat) }} diff --git a/resources/views/v1/reports/partials/operations.twig b/resources/views/v1/reports/partials/operations.twig index b77387d38d..e0e772e938 100644 --- a/resources/views/v1/reports/partials/operations.twig +++ b/resources/views/v1/reports/partials/operations.twig @@ -1,19 +1,22 @@ - - + + + + + {% for sum in sums %} - - - - - - - - - + + + + {% endfor %}
{{ 'money_flowing_in'|_ }}{{ incomeSum|formatAmount }}{{'currency'|_}}{{ 'money_flowing_in'|_ }}{{ 'money_flowing_out'|_ }}{{ 'difference'|_ }}
{{ 'money_flowing_out'|_ }}{{ expensesSum|formatAmount }}
{{ 'difference'|_ }}{{ (incomeSum + expensesSum)|formatAmount }}
- {{ 'sum_in_default_currency'|_ }} + {{ sum.currency_name }} ({{ sum.currency_symbol }}) + {{ formatAmountBySymbol(sum.in, sum.currency_symbol, sum.currency_decimal_places) }} + + {{ formatAmountBySymbol(sum.out, sum.currency_symbol, sum.currency_decimal_places) }} + + {{ formatAmountBySymbol(sum.sum, sum.currency_symbol, sum.currency_decimal_places) }}
diff --git a/resources/views/v1/reports/partials/top-transactions.twig b/resources/views/v1/reports/partials/top-transactions.twig index c52c4fa895..a8f6f7e85e 100644 --- a/resources/views/v1/reports/partials/top-transactions.twig +++ b/resources/views/v1/reports/partials/top-transactions.twig @@ -20,9 +20,9 @@ - {{ formatAmountBySymbol(transaction.amount, transaction.currency_symbol, transaction.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(transaction.amount, transaction.currency_symbol, transaction.currency_decimal_places) }} {% if null != transaction.foreign_amount %} - ({{ formatAmountBySymbol(transaction.foreign_amount, transaction.foreign_currency_symbol, transaction.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(transaction.foreign_amount, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} diff --git a/resources/views/v1/reports/tag/month.twig b/resources/views/v1/reports/tag/month.twig index 5d8fb2f095..a24b5f050a 100644 --- a/resources/views/v1/reports/tag/month.twig +++ b/resources/views/v1/reports/tag/month.twig @@ -300,7 +300,7 @@ - {{ formatAmountBySymbol(row.amount, row.currency_symbol, row.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(row.amount, row.currency_symbol, row.currency_decimal_places) }} {% endfor %} diff --git a/resources/views/v1/transactions/bulk/edit.twig b/resources/views/v1/transactions/bulk/edit.twig index e5e9bfb2e6..bff7dbf877 100644 --- a/resources/views/v1/transactions/bulk/edit.twig +++ b/resources/views/v1/transactions/bulk/edit.twig @@ -43,21 +43,21 @@ {{ journal.description }} {% if journal.transaction_type_type == 'Deposit' %} - {{ formatAmountBySymbol(journal.amount*-1, journal.currency_symbol, journal.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(journal.amount*-1, journal.currency_symbol, journal.currency_decimal_places) }} {% if null != journal.foreign_amount %} - ({{ formatAmountBySymbol(journal.foreign_amount*-1, journal.foreign_currency_symbol, journal.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(journal.foreign_amount*-1, journal.foreign_currency_symbol, journal.foreign_currency_decimal_places) }}) {% endif %} {% elseif journal.transaction_type_type == 'Transfer' %} - {{ formatAmountBySymbol(journal.amount*-1, journal.currency_symbol, journal.currency_symbol_decimal_places, false) }} + {{ formatAmountBySymbol(journal.amount*-1, journal.currency_symbol, journal.currency_decimal_places, false) }} {% if null != journal.foreign_amount %} - ({{ formatAmountBySymbol(journal.foreign_amount*-1, journal.foreign_currency_symbol, journal.foreign_currency_symbol_decimal_places, false) }}) + ({{ formatAmountBySymbol(journal.foreign_amount*-1, journal.foreign_currency_symbol, journal.foreign_currency_decimal_places, false) }}) {% endif %} {% else %} - {{ formatAmountBySymbol(journal.amount, journal.currency_symbol, journal.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(journal.amount, journal.currency_symbol, journal.currency_decimal_places) }} {% if null != journal.foreign_amount %} - ({{ formatAmountBySymbol(journal.foreign_amount, journal.foreign_currency_symbol, journal.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(journal.foreign_amount, journal.foreign_currency_symbol, journal.foreign_currency_decimal_places) }}) {% endif %} {% endif %} diff --git a/resources/views/v1/transactions/convert.twig b/resources/views/v1/transactions/convert.twig index 768ae2e33f..7892fca981 100644 --- a/resources/views/v1/transactions/convert.twig +++ b/resources/views/v1/transactions/convert.twig @@ -254,19 +254,19 @@ {% if transaction.transaction_type_type == 'Deposit' %} - {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_decimal_places) }} {% if null != transaction.foreign_amount %} - ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} {% elseif transaction.transaction_type_type == 'Transfer' %} - {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_symbol_decimal_places, false) }} + {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_decimal_places, false) }} {% if null != transaction.foreign_amount %} - ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_symbol_decimal_places, false) }}) + ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places, false) }}) {% endif %} {% else %} - {{ formatAmountBySymbol(transaction.amount, transaction.currency_symbol, transaction.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(transaction.amount, transaction.currency_symbol, transaction.currency_decimal_places) }} {% if null != transaction.foreign_amount %} - ({{ formatAmountBySymbol(transaction.foreign_amount, transaction.foreign_currency_symbol, transaction.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(transaction.foreign_amount, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} {% endif %} diff --git a/resources/views/v1/transactions/mass/delete.twig b/resources/views/v1/transactions/mass/delete.twig index f7c96b4463..ce460512c3 100644 --- a/resources/views/v1/transactions/mass/delete.twig +++ b/resources/views/v1/transactions/mass/delete.twig @@ -65,20 +65,20 @@ {% if journal.transaction_type_type == 'Deposit' %} - {{ formatAmountBySymbol(journal.amount*-1, journal.currency_symbol, journal.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(journal.amount*-1, journal.currency_symbol, journal.currency_decimal_places) }} {% if null != journal.foreign_amount %} - ({{ formatAmountBySymbol(journal.foreign_amount*-1, journal.foreign_currency_symbol, journal.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(journal.foreign_amount*-1, journal.foreign_currency_symbol, journal.foreign_currency_decimal_places) }}) {% endif %} {% elseif journal.transaction_type_type == 'Transfer' %} - {{ formatAmountBySymbol(journal.amount*-1, journal.currency_symbol, journal.currency_symbol_decimal_places, false) }} + {{ formatAmountBySymbol(journal.amount*-1, journal.currency_symbol, journal.currency_decimal_places, false) }} {% if null != journal.foreign_amount %} - ({{ formatAmountBySymbol(journal.foreign_amount*-1, journal.foreign_currency_symbol, journal.foreign_currency_symbol_decimal_places, false) }}) + ({{ formatAmountBySymbol(journal.foreign_amount*-1, journal.foreign_currency_symbol, journal.foreign_currency_decimal_places, false) }}) {% endif %} {% else %} - {{ formatAmountBySymbol(journal.amount, journal.currency_symbol, journal.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(journal.amount, journal.currency_symbol, journal.currency_decimal_places) }} {% if null != journal.foreign_amount %} - ({{ formatAmountBySymbol(journal.foreign_amount, journal.foreign_currency_symbol, journal.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(journal.foreign_amount, journal.foreign_currency_symbol, journal.foreign_currency_decimal_places) }}) {% endif %} {% endif %} diff --git a/resources/views/v1/transactions/mass/edit.twig b/resources/views/v1/transactions/mass/edit.twig index e7f95317c0..e9039cbe8c 100644 --- a/resources/views/v1/transactions/mass/edit.twig +++ b/resources/views/v1/transactions/mass/edit.twig @@ -69,21 +69,21 @@ {% if journal.reconciled != false %} {% if journal.transaction_type_type == 'Deposit' %} - {{ formatAmountBySymbol(journal.amount*-1, journal.currency_symbol, journal.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(journal.amount*-1, journal.currency_symbol, journal.currency_decimal_places) }} {% if null != journal.foreign_amount %} - ({{ formatAmountBySymbol(journal.foreign_amount*-1, journal.foreign_currency_symbol, journal.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(journal.foreign_amount*-1, journal.foreign_currency_symbol, journal.foreign_currency_decimal_places) }}) {% endif %} {% elseif journal.transaction_type_type == 'Transfer' %} - {{ formatAmountBySymbol(journal.amount*-1, journal.currency_symbol, journal.currency_symbol_decimal_places, false) }} + {{ formatAmountBySymbol(journal.amount*-1, journal.currency_symbol, journal.currency_decimal_places, false) }} {% if null != journal.foreign_amount %} - ({{ formatAmountBySymbol(journal.foreign_amount*-1, journal.foreign_currency_symbol, journal.foreign_currency_symbol_decimal_places, false) }}) + ({{ formatAmountBySymbol(journal.foreign_amount*-1, journal.foreign_currency_symbol, journal.foreign_currency_decimal_places, false) }}) {% endif %} {% else %} - {{ formatAmountBySymbol(journal.amount, journal.currency_symbol, journal.currency_symbol_decimal_places) }} + {{ formatAmountBySymbol(journal.amount, journal.currency_symbol, journal.currency_decimal_places) }} {% if null != journal.foreign_amount %} - ({{ formatAmountBySymbol(journal.foreign_amount, journal.foreign_currency_symbol, journal.foreign_currency_symbol_decimal_places) }}) + ({{ formatAmountBySymbol(journal.foreign_amount, journal.foreign_currency_symbol, journal.foreign_currency_decimal_places) }}) {% endif %} {% endif %} {% endif %}