From 26a8bd921d6ec0b9931b2507fdbbc8dd408e7f29 Mon Sep 17 00:00:00 2001 From: James Cole Date: Mon, 1 Sep 2025 20:39:40 +0200 Subject: [PATCH] Fix columns, improve views. --- .../Models/Account/ShowController.php | 6 +- .../Requests/Models/Account/ShowRequest.php | 11 +- .../JsonApi/Enrichments/AccountEnrichment.php | 145 +++++++++++------- app/Transformers/AccountTransformer.php | 123 +++++++-------- .../assets/v2/src/pages/accounts/index.js | 23 ++- resources/views/v2/accounts/index.blade.php | 73 ++++++--- 6 files changed, 235 insertions(+), 146 deletions(-) diff --git a/app/Api/V1/Controllers/Models/Account/ShowController.php b/app/Api/V1/Controllers/Models/Account/ShowController.php index 2c497efb91..b2b6c5c580 100644 --- a/app/Api/V1/Controllers/Models/Account/ShowController.php +++ b/app/Api/V1/Controllers/Models/Account/ShowController.php @@ -94,6 +94,8 @@ class ShowController extends Controller $admin = auth()->user(); $enrichment = new AccountEnrichment(); $enrichment->setDate($this->parameters->get('date')); + $enrichment->setStart($this->parameters->get('start')); + $enrichment->setEnd($this->parameters->get('end')); $enrichment->setUser($admin); $accounts = $enrichment->enrich($accounts); @@ -117,7 +119,7 @@ class ShowController extends Controller * * Show single instance. */ - public function show(Account $account): JsonResponse + public function show(ShowRequest $request, Account $account): JsonResponse { // get list of accounts. Count it and split it. $this->repository->resetAccountOrder(); @@ -129,6 +131,8 @@ class ShowController extends Controller $admin = auth()->user(); $enrichment = new AccountEnrichment(); $enrichment->setDate($this->parameters->get('date')); + $enrichment->setStart($this->parameters->get('start')); + $enrichment->setEnd($this->parameters->get('end')); $enrichment->setUser($admin); $account = $enrichment->enrichSingle($account); diff --git a/app/Api/V1/Requests/Models/Account/ShowRequest.php b/app/Api/V1/Requests/Models/Account/ShowRequest.php index af561e600c..b9fa82c179 100644 --- a/app/Api/V1/Requests/Models/Account/ShowRequest.php +++ b/app/Api/V1/Requests/Models/Account/ShowRequest.php @@ -43,14 +43,14 @@ class ShowRequest extends FormRequest if (0 === $limit) { // get default for user: /** @var User $user */ - $user = auth()->user(); + $user = auth()->user(); /** @var Preference $pageSize */ $limit = (int)Preferences::getForUser($user, 'listPageSize', 50)->data; } - $page = $this->convertInteger('page'); - $page = min(max(1, $page), 2 ** 16); + $page = $this->convertInteger('page'); + $page = min(max(1, $page), 2 ** 16); return [ 'type' => $this->convertString('type', 'all'), @@ -63,12 +63,11 @@ class ShowRequest extends FormRequest public function rules(): array { $keys = implode(',', array_keys($this->types)); - return [ 'date' => 'date', 'start' => 'date|present_with:end|before_or_equal:end|before:2038-01-17|after:1970-01-02', 'end' => 'date|present_with:start|after_or_equal:start|before:2038-01-17|after:1970-01-02', - 'sort' => 'in:active,iban,name,order,-active,-iban,-name,-order', // TODO improve me. + 'sort' => 'nullable|in:active,iban,name,order,-active,-iban,-name,-order', // TODO improve me. 'type' => sprintf('in:%s', $keys), 'limit' => 'numeric|min:1|max:131337', 'page' => 'numeric|min:1|max:131337', @@ -83,6 +82,8 @@ class ShowRequest extends FormRequest return; } $data = $validator->getData(); + + if (array_key_exists('date', $data) && array_key_exists('start', $data) && array_key_exists('end', $data)) { // assume valid dates, before we got here. $start = Carbon::parse($data['start'], config('app.timezone'))->startOfDay(); diff --git a/app/Support/JsonApi/Enrichments/AccountEnrichment.php b/app/Support/JsonApi/Enrichments/AccountEnrichment.php index 632d0537c5..a089727786 100644 --- a/app/Support/JsonApi/Enrichments/AccountEnrichment.php +++ b/app/Support/JsonApi/Enrichments/AccountEnrichment.php @@ -67,8 +67,12 @@ class AccountEnrichment implements EnrichmentInterface private UserGroup $userGroup; private array $lastActivities = []; private ?Carbon $date = null; + private ?Carbon $start = null; + private ?Carbon $end = null; private bool $convertToPrimary; private array $balances = []; + private array $startBalances = []; + private array $endBalances = []; private array $objectGroups = []; private array $mappedObjects = []; @@ -138,10 +142,9 @@ class AccountEnrichment implements EnrichmentInterface private function collectMetaData(): void { - $set = AccountMeta::whereIn('name', ['is_multi_currency', 'include_net_worth', 'currency_id', 'account_role', 'account_number', 'BIC', 'liability_direction', 'interest', 'interest_period', 'current_debt']) - ->whereIn('account_id', $this->ids) - ->get(['account_meta.id', 'account_meta.account_id', 'account_meta.name', 'account_meta.data'])->toArray() - ; + $set = AccountMeta::whereIn('name', ['is_multi_currency', 'include_net_worth', 'currency_id', 'account_role', 'account_number', 'BIC', 'liability_direction', 'interest', 'interest_period', 'current_debt']) + ->whereIn('account_id', $this->ids) + ->get(['account_meta.id', 'account_meta.account_id', 'account_meta.name', 'account_meta.data'])->toArray(); /** @var array $entry */ foreach ($set as $entry) { @@ -167,10 +170,9 @@ class AccountEnrichment implements EnrichmentInterface private function collectNotes(): void { $notes = Note::query()->whereIn('noteable_id', $this->ids) - ->whereNotNull('notes.text') - ->where('notes.text', '!=', '') - ->where('noteable_type', Account::class)->get(['notes.noteable_id', 'notes.text'])->toArray() - ; + ->whereNotNull('notes.text') + ->where('notes.text', '!=', '') + ->where('noteable_type', Account::class)->get(['notes.noteable_id', 'notes.text'])->toArray(); foreach ($notes as $note) { $this->notes[(int)$note['noteable_id']] = (string)$note['text']; } @@ -180,15 +182,14 @@ class AccountEnrichment implements EnrichmentInterface private function collectLocations(): void { $locations = Location::query()->whereIn('locatable_id', $this->ids) - ->where('locatable_type', Account::class)->get(['locations.locatable_id', 'locations.latitude', 'locations.longitude', 'locations.zoom_level'])->toArray() - ; + ->where('locatable_type', Account::class)->get(['locations.locatable_id', 'locations.latitude', 'locations.longitude', 'locations.zoom_level'])->toArray(); foreach ($locations as $location) { $this->locations[(int)$location['locatable_id']] = [ - 'latitude' => (float)$location['latitude'], - 'longitude' => (float)$location['longitude'], - 'zoom_level' => (int)$location['zoom_level'], - ]; + 'latitude' => (float)$location['latitude'], + 'longitude' => (float)$location['longitude'], + 'zoom_level' => (int)$location['zoom_level'], + ]; } Log::debug(sprintf('Enrich with %d locations(s)', count($this->locations))); } @@ -203,20 +204,19 @@ class AccountEnrichment implements EnrichmentInterface ->setUserGroup($this->userGroup) ->setAccounts($this->collection) ->withAccountInformation() - ->setTypes([TransactionTypeEnum::OPENING_BALANCE->value]) - ; - $journals = $collector->getExtractedJournals(); + ->setTypes([TransactionTypeEnum::OPENING_BALANCE->value]); + $journals = $collector->getExtractedJournals(); foreach ($journals as $journal) { $this->openingBalances[(int)$journal['source_account_id']] = [ - 'amount' => Steam::negative($journal['amount']), - 'date' => $journal['date'], - ]; + 'amount' => Steam::negative($journal['amount']), + 'date' => $journal['date'], + ]; $this->openingBalances[(int)$journal['destination_account_id']] = [ - 'amount' => Steam::positive($journal['amount']), - 'date' => $journal['date'], - ]; + 'amount' => Steam::positive($journal['amount']), + 'date' => $journal['date'], + ]; } } @@ -234,9 +234,9 @@ class AccountEnrichment implements EnrichmentInterface private function appendCollectedData(): void { $this->collection = $this->collection->map(function (Account $item) { - $id = (int)$item->id; - $item->full_account_type = $this->accountTypes[(int)$item->account_type_id] ?? null; - $meta = [ + $id = (int)$item->id; + $item->full_account_type = $this->accountTypes[(int)$item->account_type_id] ?? null; + $meta = [ 'currency' => null, 'location' => [ 'latitude' => null, @@ -256,7 +256,7 @@ class AccountEnrichment implements EnrichmentInterface // add object group if available if (array_key_exists($id, $this->mappedObjects)) { $key = $this->mappedObjects[$id]; - $meta['object_group_id'] = (string) $this->objectGroups[$key]['id']; + $meta['object_group_id'] = (string)$this->objectGroups[$key]['id']; $meta['object_group_title'] = $this->objectGroups[$key]['title']; $meta['object_group_order'] = $this->objectGroups[$key]['order']; } @@ -283,43 +283,47 @@ class AccountEnrichment implements EnrichmentInterface // add balances // get currencies: - $currency = $this->primaryCurrency; // assume primary currency + $currency = $this->primaryCurrency; // assume primary currency if (null !== $meta['currency']) { $currency = $meta['currency']; } // get the current balance: - $date = $this->getDate(); + $date = $this->getDate(); // $finalBalance = Steam::finalAccountBalance($item, $date, $this->primaryCurrency, $this->convertToPrimary); - $finalBalance = $this->balances[$id]; + $finalBalance = $this->balances[$id]; + $balanceDifference = $this->getBalanceDifference($id, $currency); Log::debug(sprintf('Call finalAccountBalance(%s) with date/time "%s"', var_export($this->convertToPrimary, true), $date->toIso8601String()), $finalBalance); // collect current balances: - $currentBalance = Steam::bcround($finalBalance[$currency->code] ?? '0', $currency->decimal_places); - $openingBalance = Steam::bcround($meta['opening_balance_amount'] ?? '0', $currency->decimal_places); - $virtualBalance = Steam::bcround($account->virtual_balance ?? '0', $currency->decimal_places); - $debtAmount = $meta['current_debt'] ?? null; + $currentBalance = Steam::bcround($finalBalance[$currency->code] ?? '0', $currency->decimal_places); + $openingBalance = Steam::bcround($meta['opening_balance_amount'] ?? '0', $currency->decimal_places); + $virtualBalance = Steam::bcround($account->virtual_balance ?? '0', $currency->decimal_places); + $debtAmount = $meta['current_debt'] ?? null; // set some pc_ default values to NULL: - $pcCurrentBalance = null; - $pcOpeningBalance = null; - $pcVirtualBalance = null; - $pcDebtAmount = null; + $pcCurrentBalance = null; + $pcOpeningBalance = null; + $pcVirtualBalance = null; + $pcDebtAmount = null; + $pcBalanceDifference = null; // convert to primary currency if needed: if ($this->convertToPrimary && $currency->id !== $this->primaryCurrency->id) { Log::debug(sprintf('Convert to primary, from %s to %s', $currency->code, $this->primaryCurrency->code)); - $converter = new ExchangeRateConverter(); - $pcCurrentBalance = $converter->convert($currency, $this->primaryCurrency, $date, $currentBalance); - $pcOpeningBalance = $converter->convert($currency, $this->primaryCurrency, $date, $openingBalance); - $pcVirtualBalance = $converter->convert($currency, $this->primaryCurrency, $date, $virtualBalance); - $pcDebtAmount = null === $debtAmount ? null : $converter->convert($currency, $this->primaryCurrency, $date, $debtAmount); + $converter = new ExchangeRateConverter(); + $pcCurrentBalance = $converter->convert($currency, $this->primaryCurrency, $date, $currentBalance); + $pcOpeningBalance = $converter->convert($currency, $this->primaryCurrency, $date, $openingBalance); + $pcVirtualBalance = $converter->convert($currency, $this->primaryCurrency, $date, $virtualBalance); + $pcBalanceDifference = null === $balanceDifference ? null : $converter->convert($currency, $this->primaryCurrency, $date, $balanceDifference); + $pcDebtAmount = null === $debtAmount ? null : $converter->convert($currency, $this->primaryCurrency, $date, $debtAmount); } if ($this->convertToPrimary && $currency->id === $this->primaryCurrency->id) { - $pcCurrentBalance = $currentBalance; - $pcOpeningBalance = $openingBalance; - $pcVirtualBalance = $virtualBalance; - $pcDebtAmount = $debtAmount; + $pcCurrentBalance = $currentBalance; + $pcOpeningBalance = $openingBalance; + $pcVirtualBalance = $virtualBalance; + $pcBalanceDifference = $balanceDifference; + $pcDebtAmount = $debtAmount; } // set opening balance(s) to NULL if the date is null @@ -337,9 +341,11 @@ class AccountEnrichment implements EnrichmentInterface 'pc_virtual_balance' => $pcVirtualBalance, 'debt_amount' => $debtAmount, 'pc_debt_amount' => $pcDebtAmount, + 'balance_difference' => $balanceDifference, + 'pc_balance_difference' => $pcBalanceDifference, ]; // end add balances - $item->meta = $meta; + $item->meta = $meta; return $item; }); @@ -353,17 +359,20 @@ class AccountEnrichment implements EnrichmentInterface private function collectBalances(): void { $this->balances = Steam::accountsBalancesOptimized($this->collection, $this->getDate(), $this->primaryCurrency, $this->convertToPrimary); + if (null !== $this->start && null !== $this->end) { + $this->startBalances = Steam::accountsBalancesOptimized($this->collection, $this->start, $this->primaryCurrency, $this->convertToPrimary); + $this->endBalances = Steam::accountsBalancesOptimized($this->collection, $this->end, $this->primaryCurrency, $this->convertToPrimary); + } } private function collectObjectGroups(): void { - $set = DB::table('object_groupables') - ->whereIn('object_groupable_id', $this->ids) - ->where('object_groupable_type', Account::class) - ->get(['object_groupable_id', 'object_group_id']) - ; + $set = DB::table('object_groupables') + ->whereIn('object_groupable_id', $this->ids) + ->where('object_groupable_type', Account::class) + ->get(['object_groupable_id', 'object_group_id']); - $ids = array_unique($set->pluck('object_group_id')->toArray()); + $ids = array_unique($set->pluck('object_group_id')->toArray()); foreach ($set as $entry) { $this->mappedObjects[(int)$entry->object_groupable_id] = (int)$entry->object_group_id; @@ -394,4 +403,32 @@ class AccountEnrichment implements EnrichmentInterface return $this->date; } + + public function setStart(?Carbon $start): void + { + $this->start = $start; + } + + public function setEnd(?Carbon $end): void + { + $this->end = $end; + } + + private function getBalanceDifference(int $id, TransactionCurrency $currency): ?string + { + if (null === $this->start || null === $this->end) { + return null; + } + $startBalance = $this->startBalances[$id] ?? []; + $endBalance = $this->endBalances[$id] ?? []; + if (count($startBalance) === 0 || count($endBalance) === 0) { + return null; + } + $start = $startBalance[$currency->code] ?? '0'; + $end = $endBalance[$currency->code] ?? '0'; + + return bcsub($end, $start); + } + + } diff --git a/app/Transformers/AccountTransformer.php b/app/Transformers/AccountTransformer.php index 0ef5046eb6..2c05c23324 100644 --- a/app/Transformers/AccountTransformer.php +++ b/app/Transformers/AccountTransformer.php @@ -66,20 +66,20 @@ class AccountTransformer extends AbstractTransformer } // get account type: - $accountType = (string) config(sprintf('firefly.shortNamesByFullName.%s', $account->full_account_type)); - $liabilityType = (string) config(sprintf('firefly.shortLiabilityNameByFullName.%s', $account->full_account_type)); - $liabilityType = '' === $liabilityType ? null : strtolower($liabilityType); - $liabilityDirection = $account->meta['liability_direction'] ?? null; - $accountRole = $this->getAccountRole($account, $accountType); - $hasCurrencySettings = null !== $account->meta['currency']; - $includeNetWorth = 1 === (int) ($account->meta['include_net_worth'] ?? 0); - $longitude = $account->meta['location']['longitude'] ?? null; - $latitude = $account->meta['location']['latitude'] ?? null; - $zoomLevel = $account->meta['location']['zoom_level'] ?? null; - $order = $account->order; + $accountType = (string)config(sprintf('firefly.shortNamesByFullName.%s', $account->full_account_type)); + $liabilityType = (string)config(sprintf('firefly.shortLiabilityNameByFullName.%s', $account->full_account_type)); + $liabilityType = '' === $liabilityType ? null : strtolower($liabilityType); + $liabilityDirection = $account->meta['liability_direction'] ?? null; + $accountRole = $this->getAccountRole($account, $accountType); + $hasCurrencySettings = null !== $account->meta['currency']; + $includeNetWorth = 1 === (int)($account->meta['include_net_worth'] ?? 0); + $longitude = $account->meta['location']['longitude'] ?? null; + $latitude = $account->meta['location']['latitude'] ?? null; + $zoomLevel = $account->meta['location']['zoom_level'] ?? null; + $order = $account->order; // get primary currency as fallback: - $currency = $this->primary; // assume primary currency + $currency = $this->primary; // assume primary currency if ($hasCurrencySettings) { $currency = $account->meta['currency']; } @@ -91,34 +91,34 @@ class AccountTransformer extends AbstractTransformer // get some listed information from the account meta-data: [$creditCardType, $monthlyPaymentDate] = $this->getCCInfo($account, $accountRole, $accountType); - $openingBalanceDate = $this->getOpeningBalance($account, $accountType); - [$interest, $interestPeriod] = $this->getInterest($account, $accountType); + $openingBalanceDate = $this->getOpeningBalance($account, $accountType); + [$interest, $interestPeriod] = $this->getInterest($account, $accountType); return [ - 'id' => (string) $account->id, - 'created_at' => $account->created_at->toAtomString(), - 'updated_at' => $account->updated_at->toAtomString(), - 'active' => $account->active, - 'order' => $order, - 'name' => $account->name, - 'type' => strtolower($accountType), - 'account_role' => $accountRole, + 'id' => (string)$account->id, + 'created_at' => $account->created_at->toAtomString(), + 'updated_at' => $account->updated_at->toAtomString(), + 'active' => $account->active, + 'order' => $order, + 'name' => $account->name, + 'type' => strtolower($accountType), + 'account_role' => $accountRole, - 'object_group_id' => $account->meta['object_group_id'], - 'object_group_order' => $account->meta['object_group_order'], - 'object_group_title' => $account->meta['object_group_title'], + 'object_group_id' => $account->meta['object_group_id'], + 'object_group_order' => $account->meta['object_group_order'], + 'object_group_title' => $account->meta['object_group_title'], // currency information, structured for 6.3.0. - 'object_has_currency_setting' => $hasCurrencySettings, + 'object_has_currency_setting' => $hasCurrencySettings, // currency is object specific or primary, already determined above. - 'currency_id' => (string) $currency['id'], - 'currency_name' => $currency['name'], - 'currency_code' => $currency['code'], - 'currency_symbol' => $currency['symbol'], - 'currency_decimal_places' => $currency['decimal_places'], + 'currency_id' => (string)$currency['id'], + 'currency_name' => $currency['name'], + 'currency_code' => $currency['code'], + 'currency_symbol' => $currency['symbol'], + 'currency_decimal_places' => $currency['decimal_places'], - 'primary_currency_id' => (string) $this->primary->id, + 'primary_currency_id' => (string)$this->primary->id, 'primary_currency_name' => $this->primary->name, 'primary_currency_code' => $this->primary->code, 'primary_currency_symbol' => $this->primary->symbol, @@ -128,33 +128,36 @@ class AccountTransformer extends AbstractTransformer 'current_balance' => $account->meta['balances']['current_balance'], 'pc_current_balance' => $account->meta['balances']['pc_current_balance'], - 'opening_balance' => $account->meta['balances']['opening_balance'], - 'pc_opening_balance' => $account->meta['balances']['pc_opening_balance'], + 'opening_balance' => $account->meta['balances']['opening_balance'], + 'pc_opening_balance' => $account->meta['balances']['pc_opening_balance'], - 'virtual_balance' => $account->meta['balances']['virtual_balance'], - 'pc_virtual_balance' => $account->meta['balances']['pc_virtual_balance'], + 'virtual_balance' => $account->meta['balances']['virtual_balance'], + 'pc_virtual_balance' => $account->meta['balances']['pc_virtual_balance'], - 'debt_amount' => $account->meta['balances']['debt_amount'], - 'pc_debt_amount' => $account->meta['balances']['pc_debt_amount'], + 'debt_amount' => $account->meta['balances']['debt_amount'], + 'pc_debt_amount' => $account->meta['balances']['pc_debt_amount'], - 'current_balance_date' => $account->meta['current_balance_date']->toAtomString(), - 'notes' => $account->meta['notes'] ?? null, - 'monthly_payment_date' => $monthlyPaymentDate, - 'credit_card_type' => $creditCardType, - 'account_number' => $account->meta['account_number'], - 'iban' => '' === $account->iban ? null : $account->iban, - 'bic' => $account->meta['BIC'] ?? null, - 'opening_balance_date' => $openingBalanceDate, - 'liability_type' => $liabilityType, - 'liability_direction' => $liabilityDirection, - 'interest' => $interest, - 'interest_period' => $interestPeriod, - 'include_net_worth' => $includeNetWorth, - 'longitude' => $longitude, - 'latitude' => $latitude, - 'zoom_level' => $zoomLevel, - 'last_activity' => $account->meta['last_activity']?->toAtomString(), - 'links' => [ + 'balance_difference' => $account->meta['balances']['balance_difference'], + 'pc_balance_difference' => $account->meta['balances']['pc_balance_difference'], + + 'current_balance_date' => $account->meta['current_balance_date']->toAtomString(), + 'notes' => $account->meta['notes'] ?? null, + 'monthly_payment_date' => $monthlyPaymentDate, + 'credit_card_type' => $creditCardType, + 'account_number' => $account->meta['account_number'], + 'iban' => '' === $account->iban ? null : $account->iban, + 'bic' => $account->meta['BIC'] ?? null, + 'opening_balance_date' => $openingBalanceDate, + 'liability_type' => $liabilityType, + 'liability_direction' => $liabilityDirection, + 'interest' => $interest, + 'interest_period' => $interestPeriod, + 'include_net_worth' => $includeNetWorth, + 'longitude' => $longitude, + 'latitude' => $latitude, + 'zoom_level' => $zoomLevel, + 'last_activity' => $account->meta['last_activity']?->toAtomString(), + 'links' => [ [ 'rel' => 'self', 'uri' => sprintf('/accounts/%d', $account->id), @@ -166,7 +169,7 @@ class AccountTransformer extends AbstractTransformer private function getAccountRole(Account $account, string $accountType): ?string { $accountRole = $account->meta['account_role'] ?? null; - if ('asset' !== $accountType || '' === (string) $accountRole) { + if ('asset' !== $accountType || '' === (string)$accountRole) { return null; } @@ -196,13 +199,13 @@ class AccountTransformer extends AbstractTransformer if (null !== $monthlyPaymentDate) { // try classic date: if (10 === strlen($monthlyPaymentDate)) { - $object = Carbon::createFromFormat('!Y-m-d', $monthlyPaymentDate, config('app.timezone')); + $object = Carbon::createFromFormat('!Y-m-d', $monthlyPaymentDate, config('app.timezone')); if (!$object instanceof Carbon) { $object = today(config('app.timezone')); } $monthlyPaymentDate = $object->toAtomString(); } - if (10 !== strlen((string) $monthlyPaymentDate)) { + if (10 !== strlen((string)$monthlyPaymentDate)) { $monthlyPaymentDate = Carbon::parse($monthlyPaymentDate, config('app.timezone'))->toAtomString(); } } @@ -217,7 +220,7 @@ class AccountTransformer extends AbstractTransformer $openingBalanceDate = $account->meta['opening_balance_date'] ?? null; } if (null !== $openingBalanceDate) { - $object = Carbon::createFromFormat('Y-m-d H:i:s', $openingBalanceDate, config('app.timezone')); + $object = Carbon::createFromFormat('Y-m-d H:i:s', $openingBalanceDate, config('app.timezone')); if (!$object instanceof Carbon) { $object = today(config('app.timezone')); } diff --git a/resources/assets/v2/src/pages/accounts/index.js b/resources/assets/v2/src/pages/accounts/index.js index 0a391be704..8132d3ad7f 100644 --- a/resources/assets/v2/src/pages/accounts/index.js +++ b/resources/assets/v2/src/pages/accounts/index.js @@ -378,8 +378,8 @@ let index = function () { date: format(today,'yyyy-MM-dd'), type: type, page: this.page, - // startPeriod: start, - // endPeriod: end + start: start, + end: end }; if (!this.tableColumns.balance_difference.enabled) { @@ -403,17 +403,26 @@ let index = function () { role: current.attributes.account_role, iban: null === current.attributes.iban ? '' : current.attributes.iban.match(/.{1,4}/g).join(' '), account_number: null === current.attributes.account_number ? '' : current.attributes.account_number, - current_balance: current.attributes.current_balance, - currency_code: current.attributes.currency_code, last_activity: null === current.attributes.last_activity ? '' : format(new Date(current.attributes.last_activity), i18next.t('config.month_and_day_fns')), liability_type: current.attributes.liability_type, liability_direction: current.attributes.liability_direction, interest: current.attributes.interest, interest_period: current.attributes.interest_period, - // balance: current.attributes.balance, - // pc_balance: current.attributes.pc_balance, - // balances: current.attributes.balances, + + // currency info + currency_code: current.attributes.currency_code, + primary_currency_code: current.attributes.primary_currency_code, + + + // balances. + current_balance: current.attributes.current_balance, + pc_current_balance: current.attributes.pc_current_balance, + balance_difference: current.attributes.balance_difference, + pc_balance_difference: current.attributes.pc_balance_difference, + debt_amount: current.attributes.debt_amount, + pc_debt_amount: current.attributes.debt_amount, }; + console.log(account); // get group info: let groupId = current.attributes.object_group_id; if(!this.pageOptions.groupedAccounts) { diff --git a/resources/views/v2/accounts/index.blade.php b/resources/views/v2/accounts/index.blade.php index 1d5e8c62be..e5f5fb8e5d 100644 --- a/resources/views/v2/accounts/index.blade.php +++ b/resources/views/v2/accounts/index.blade.php @@ -263,39 +263,74 @@ + x-text="formatMoney(account.current_balance, account.primary_currency_code)"> + x-text="formatMoney(account.current_balance, account.primary_currency_code)"> + x-text="formatMoney(account.current_balance, account.primary_currency_code)"> - - FIXME + -