mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-04 19:53:44 +00:00
Compare commits
3 Commits
develop-20
...
develop-20
Author | SHA1 | Date | |
---|---|---|---|
|
cd0b64bd24 | ||
|
91b26bce0e | ||
|
26a8bd921d |
@@ -94,6 +94,8 @@ class ShowController extends Controller
|
|||||||
$admin = auth()->user();
|
$admin = auth()->user();
|
||||||
$enrichment = new AccountEnrichment();
|
$enrichment = new AccountEnrichment();
|
||||||
$enrichment->setDate($this->parameters->get('date'));
|
$enrichment->setDate($this->parameters->get('date'));
|
||||||
|
$enrichment->setStart($this->parameters->get('start'));
|
||||||
|
$enrichment->setEnd($this->parameters->get('end'));
|
||||||
$enrichment->setUser($admin);
|
$enrichment->setUser($admin);
|
||||||
$accounts = $enrichment->enrich($accounts);
|
$accounts = $enrichment->enrich($accounts);
|
||||||
|
|
||||||
@@ -117,7 +119,7 @@ class ShowController extends Controller
|
|||||||
*
|
*
|
||||||
* Show single instance.
|
* 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.
|
// get list of accounts. Count it and split it.
|
||||||
$this->repository->resetAccountOrder();
|
$this->repository->resetAccountOrder();
|
||||||
@@ -129,6 +131,8 @@ class ShowController extends Controller
|
|||||||
$admin = auth()->user();
|
$admin = auth()->user();
|
||||||
$enrichment = new AccountEnrichment();
|
$enrichment = new AccountEnrichment();
|
||||||
$enrichment->setDate($this->parameters->get('date'));
|
$enrichment->setDate($this->parameters->get('date'));
|
||||||
|
$enrichment->setStart($this->parameters->get('start'));
|
||||||
|
$enrichment->setEnd($this->parameters->get('end'));
|
||||||
$enrichment->setUser($admin);
|
$enrichment->setUser($admin);
|
||||||
$account = $enrichment->enrichSingle($account);
|
$account = $enrichment->enrichSingle($account);
|
||||||
|
|
||||||
|
@@ -68,7 +68,7 @@ class ShowRequest extends FormRequest
|
|||||||
'date' => 'date',
|
'date' => 'date',
|
||||||
'start' => 'date|present_with:end|before_or_equal:end|before:2038-01-17|after:1970-01-02',
|
'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',
|
'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),
|
'type' => sprintf('in:%s', $keys),
|
||||||
'limit' => 'numeric|min:1|max:131337',
|
'limit' => 'numeric|min:1|max:131337',
|
||||||
'page' => 'numeric|min:1|max:131337',
|
'page' => 'numeric|min:1|max:131337',
|
||||||
@@ -83,6 +83,8 @@ class ShowRequest extends FormRequest
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
|
|
||||||
|
|
||||||
if (array_key_exists('date', $data) && array_key_exists('start', $data) && array_key_exists('end', $data)) {
|
if (array_key_exists('date', $data) && array_key_exists('start', $data) && array_key_exists('end', $data)) {
|
||||||
// assume valid dates, before we got here.
|
// assume valid dates, before we got here.
|
||||||
$start = Carbon::parse($data['start'], config('app.timezone'))->startOfDay();
|
$start = Carbon::parse($data['start'], config('app.timezone'))->startOfDay();
|
||||||
|
@@ -67,8 +67,12 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
private UserGroup $userGroup;
|
private UserGroup $userGroup;
|
||||||
private array $lastActivities = [];
|
private array $lastActivities = [];
|
||||||
private ?Carbon $date = null;
|
private ?Carbon $date = null;
|
||||||
|
private ?Carbon $start = null;
|
||||||
|
private ?Carbon $end = null;
|
||||||
private bool $convertToPrimary;
|
private bool $convertToPrimary;
|
||||||
private array $balances = [];
|
private array $balances = [];
|
||||||
|
private array $startBalances = [];
|
||||||
|
private array $endBalances = [];
|
||||||
private array $objectGroups = [];
|
private array $objectGroups = [];
|
||||||
private array $mappedObjects = [];
|
private array $mappedObjects = [];
|
||||||
|
|
||||||
@@ -256,7 +260,7 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
// add object group if available
|
// add object group if available
|
||||||
if (array_key_exists($id, $this->mappedObjects)) {
|
if (array_key_exists($id, $this->mappedObjects)) {
|
||||||
$key = $this->mappedObjects[$id];
|
$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_title'] = $this->objectGroups[$key]['title'];
|
||||||
$meta['object_group_order'] = $this->objectGroups[$key]['order'];
|
$meta['object_group_order'] = $this->objectGroups[$key]['order'];
|
||||||
}
|
}
|
||||||
@@ -292,6 +296,7 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
$date = $this->getDate();
|
$date = $this->getDate();
|
||||||
// $finalBalance = Steam::finalAccountBalance($item, $date, $this->primaryCurrency, $this->convertToPrimary);
|
// $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);
|
Log::debug(sprintf('Call finalAccountBalance(%s) with date/time "%s"', var_export($this->convertToPrimary, true), $date->toIso8601String()), $finalBalance);
|
||||||
|
|
||||||
// collect current balances:
|
// collect current balances:
|
||||||
@@ -305,21 +310,24 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
$pcOpeningBalance = null;
|
$pcOpeningBalance = null;
|
||||||
$pcVirtualBalance = null;
|
$pcVirtualBalance = null;
|
||||||
$pcDebtAmount = null;
|
$pcDebtAmount = null;
|
||||||
|
$pcBalanceDifference = null;
|
||||||
|
|
||||||
// convert to primary currency if needed:
|
// convert to primary currency if needed:
|
||||||
if ($this->convertToPrimary && $currency->id !== $this->primaryCurrency->id) {
|
if ($this->convertToPrimary && $currency->id !== $this->primaryCurrency->id) {
|
||||||
Log::debug(sprintf('Convert to primary, from %s to %s', $currency->code, $this->primaryCurrency->code));
|
Log::debug(sprintf('Convert to primary, from %s to %s', $currency->code, $this->primaryCurrency->code));
|
||||||
$converter = new ExchangeRateConverter();
|
$converter = new ExchangeRateConverter();
|
||||||
$pcCurrentBalance = $converter->convert($currency, $this->primaryCurrency, $date, $currentBalance);
|
$pcCurrentBalance = $converter->convert($currency, $this->primaryCurrency, $date, $currentBalance);
|
||||||
$pcOpeningBalance = $converter->convert($currency, $this->primaryCurrency, $date, $openingBalance);
|
$pcOpeningBalance = $converter->convert($currency, $this->primaryCurrency, $date, $openingBalance);
|
||||||
$pcVirtualBalance = $converter->convert($currency, $this->primaryCurrency, $date, $virtualBalance);
|
$pcVirtualBalance = $converter->convert($currency, $this->primaryCurrency, $date, $virtualBalance);
|
||||||
$pcDebtAmount = null === $debtAmount ? null : $converter->convert($currency, $this->primaryCurrency, $date, $debtAmount);
|
$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) {
|
if ($this->convertToPrimary && $currency->id === $this->primaryCurrency->id) {
|
||||||
$pcCurrentBalance = $currentBalance;
|
$pcCurrentBalance = $currentBalance;
|
||||||
$pcOpeningBalance = $openingBalance;
|
$pcOpeningBalance = $openingBalance;
|
||||||
$pcVirtualBalance = $virtualBalance;
|
$pcVirtualBalance = $virtualBalance;
|
||||||
$pcDebtAmount = $debtAmount;
|
$pcBalanceDifference = $balanceDifference;
|
||||||
|
$pcDebtAmount = $debtAmount;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set opening balance(s) to NULL if the date is null
|
// set opening balance(s) to NULL if the date is null
|
||||||
@@ -329,14 +337,16 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
}
|
}
|
||||||
$meta['current_balance_date'] = $this->getDate();
|
$meta['current_balance_date'] = $this->getDate();
|
||||||
$meta['balances'] = [
|
$meta['balances'] = [
|
||||||
'current_balance' => $currentBalance,
|
'current_balance' => $currentBalance,
|
||||||
'pc_current_balance' => $pcCurrentBalance,
|
'pc_current_balance' => $pcCurrentBalance,
|
||||||
'opening_balance' => $openingBalance,
|
'opening_balance' => $openingBalance,
|
||||||
'pc_opening_balance' => $pcOpeningBalance,
|
'pc_opening_balance' => $pcOpeningBalance,
|
||||||
'virtual_balance' => $virtualBalance,
|
'virtual_balance' => $virtualBalance,
|
||||||
'pc_virtual_balance' => $pcVirtualBalance,
|
'pc_virtual_balance' => $pcVirtualBalance,
|
||||||
'debt_amount' => $debtAmount,
|
'debt_amount' => $debtAmount,
|
||||||
'pc_debt_amount' => $pcDebtAmount,
|
'pc_debt_amount' => $pcDebtAmount,
|
||||||
|
'balance_difference' => $balanceDifference,
|
||||||
|
'pc_balance_difference' => $pcBalanceDifference,
|
||||||
];
|
];
|
||||||
// end add balances
|
// end add balances
|
||||||
$item->meta = $meta;
|
$item->meta = $meta;
|
||||||
@@ -353,6 +363,10 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
private function collectBalances(): void
|
private function collectBalances(): void
|
||||||
{
|
{
|
||||||
$this->balances = Steam::accountsBalancesOptimized($this->collection, $this->getDate(), $this->primaryCurrency, $this->convertToPrimary);
|
$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
|
private function collectObjectGroups(): void
|
||||||
@@ -394,4 +408,30 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
|
|
||||||
return $this->date;
|
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 (0 === count($startBalance) || 0 === count($endBalance)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
$start = $startBalance[$currency->code] ?? '0';
|
||||||
|
$end = $endBalance[$currency->code] ?? '0';
|
||||||
|
|
||||||
|
return bcsub($end, $start);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -66,13 +66,13 @@ class AccountTransformer extends AbstractTransformer
|
|||||||
}
|
}
|
||||||
|
|
||||||
// get account type:
|
// get account type:
|
||||||
$accountType = (string) config(sprintf('firefly.shortNamesByFullName.%s', $account->full_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 = (string)config(sprintf('firefly.shortLiabilityNameByFullName.%s', $account->full_account_type));
|
||||||
$liabilityType = '' === $liabilityType ? null : strtolower($liabilityType);
|
$liabilityType = '' === $liabilityType ? null : strtolower($liabilityType);
|
||||||
$liabilityDirection = $account->meta['liability_direction'] ?? null;
|
$liabilityDirection = $account->meta['liability_direction'] ?? null;
|
||||||
$accountRole = $this->getAccountRole($account, $accountType);
|
$accountRole = $this->getAccountRole($account, $accountType);
|
||||||
$hasCurrencySettings = null !== $account->meta['currency'];
|
$hasCurrencySettings = null !== $account->meta['currency'];
|
||||||
$includeNetWorth = 1 === (int) ($account->meta['include_net_worth'] ?? 0);
|
$includeNetWorth = 1 === (int)($account->meta['include_net_worth'] ?? 0);
|
||||||
$longitude = $account->meta['location']['longitude'] ?? null;
|
$longitude = $account->meta['location']['longitude'] ?? null;
|
||||||
$latitude = $account->meta['location']['latitude'] ?? null;
|
$latitude = $account->meta['location']['latitude'] ?? null;
|
||||||
$zoomLevel = $account->meta['location']['zoom_level'] ?? null;
|
$zoomLevel = $account->meta['location']['zoom_level'] ?? null;
|
||||||
@@ -95,7 +95,7 @@ class AccountTransformer extends AbstractTransformer
|
|||||||
[$interest, $interestPeriod] = $this->getInterest($account, $accountType);
|
[$interest, $interestPeriod] = $this->getInterest($account, $accountType);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'id' => (string) $account->id,
|
'id' => (string)$account->id,
|
||||||
'created_at' => $account->created_at->toAtomString(),
|
'created_at' => $account->created_at->toAtomString(),
|
||||||
'updated_at' => $account->updated_at->toAtomString(),
|
'updated_at' => $account->updated_at->toAtomString(),
|
||||||
'active' => $account->active,
|
'active' => $account->active,
|
||||||
@@ -112,13 +112,13 @@ class AccountTransformer extends AbstractTransformer
|
|||||||
'object_has_currency_setting' => $hasCurrencySettings,
|
'object_has_currency_setting' => $hasCurrencySettings,
|
||||||
|
|
||||||
// currency is object specific or primary, already determined above.
|
// currency is object specific or primary, already determined above.
|
||||||
'currency_id' => (string) $currency['id'],
|
'currency_id' => (string)$currency['id'],
|
||||||
'currency_name' => $currency['name'],
|
'currency_name' => $currency['name'],
|
||||||
'currency_code' => $currency['code'],
|
'currency_code' => $currency['code'],
|
||||||
'currency_symbol' => $currency['symbol'],
|
'currency_symbol' => $currency['symbol'],
|
||||||
'currency_decimal_places' => $currency['decimal_places'],
|
'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_name' => $this->primary->name,
|
||||||
'primary_currency_code' => $this->primary->code,
|
'primary_currency_code' => $this->primary->code,
|
||||||
'primary_currency_symbol' => $this->primary->symbol,
|
'primary_currency_symbol' => $this->primary->symbol,
|
||||||
@@ -137,6 +137,9 @@ class AccountTransformer extends AbstractTransformer
|
|||||||
'debt_amount' => $account->meta['balances']['debt_amount'],
|
'debt_amount' => $account->meta['balances']['debt_amount'],
|
||||||
'pc_debt_amount' => $account->meta['balances']['pc_debt_amount'],
|
'pc_debt_amount' => $account->meta['balances']['pc_debt_amount'],
|
||||||
|
|
||||||
|
'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(),
|
'current_balance_date' => $account->meta['current_balance_date']->toAtomString(),
|
||||||
'notes' => $account->meta['notes'] ?? null,
|
'notes' => $account->meta['notes'] ?? null,
|
||||||
'monthly_payment_date' => $monthlyPaymentDate,
|
'monthly_payment_date' => $monthlyPaymentDate,
|
||||||
@@ -166,7 +169,7 @@ class AccountTransformer extends AbstractTransformer
|
|||||||
private function getAccountRole(Account $account, string $accountType): ?string
|
private function getAccountRole(Account $account, string $accountType): ?string
|
||||||
{
|
{
|
||||||
$accountRole = $account->meta['account_role'] ?? null;
|
$accountRole = $account->meta['account_role'] ?? null;
|
||||||
if ('asset' !== $accountType || '' === (string) $accountRole) {
|
if ('asset' !== $accountType || '' === (string)$accountRole) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -202,7 +205,7 @@ class AccountTransformer extends AbstractTransformer
|
|||||||
}
|
}
|
||||||
$monthlyPaymentDate = $object->toAtomString();
|
$monthlyPaymentDate = $object->toAtomString();
|
||||||
}
|
}
|
||||||
if (10 !== strlen((string) $monthlyPaymentDate)) {
|
if (10 !== strlen((string)$monthlyPaymentDate)) {
|
||||||
$monthlyPaymentDate = Carbon::parse($monthlyPaymentDate, config('app.timezone'))->toAtomString();
|
$monthlyPaymentDate = Carbon::parse($monthlyPaymentDate, config('app.timezone'))->toAtomString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -79,7 +79,7 @@ return [
|
|||||||
// see cer.php for exchange rates feature flag.
|
// see cer.php for exchange rates feature flag.
|
||||||
],
|
],
|
||||||
'version' => 'develop/2025-09-01',
|
'version' => 'develop/2025-09-01',
|
||||||
'build_time' => 1756729173,
|
'build_time' => 1756752129,
|
||||||
'api_version' => '2.1.0', // field is no longer used.
|
'api_version' => '2.1.0', // field is no longer used.
|
||||||
'db_version' => 26,
|
'db_version' => 26,
|
||||||
|
|
||||||
|
@@ -378,8 +378,8 @@ let index = function () {
|
|||||||
date: format(today,'yyyy-MM-dd'),
|
date: format(today,'yyyy-MM-dd'),
|
||||||
type: type,
|
type: type,
|
||||||
page: this.page,
|
page: this.page,
|
||||||
// startPeriod: start,
|
start: start,
|
||||||
// endPeriod: end
|
end: end
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!this.tableColumns.balance_difference.enabled) {
|
if (!this.tableColumns.balance_difference.enabled) {
|
||||||
@@ -403,17 +403,26 @@ let index = function () {
|
|||||||
role: current.attributes.account_role,
|
role: current.attributes.account_role,
|
||||||
iban: null === current.attributes.iban ? '' : current.attributes.iban.match(/.{1,4}/g).join(' '),
|
iban: null === current.attributes.iban ? '' : current.attributes.iban.match(/.{1,4}/g).join(' '),
|
||||||
account_number: null === current.attributes.account_number ? '' : current.attributes.account_number,
|
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')),
|
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_type: current.attributes.liability_type,
|
||||||
liability_direction: current.attributes.liability_direction,
|
liability_direction: current.attributes.liability_direction,
|
||||||
interest: current.attributes.interest,
|
interest: current.attributes.interest,
|
||||||
interest_period: current.attributes.interest_period,
|
interest_period: current.attributes.interest_period,
|
||||||
// balance: current.attributes.balance,
|
|
||||||
// pc_balance: current.attributes.pc_balance,
|
// currency info
|
||||||
// balances: current.attributes.balances,
|
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:
|
// get group info:
|
||||||
let groupId = current.attributes.object_group_id;
|
let groupId = current.attributes.object_group_id;
|
||||||
if(!this.pageOptions.groupedAccounts) {
|
if(!this.pageOptions.groupedAccounts) {
|
||||||
|
@@ -263,39 +263,74 @@
|
|||||||
</td>
|
</td>
|
||||||
<td x-show="tableColumns.current_balance.visible && tableColumns.current_balance.enabled">
|
<td x-show="tableColumns.current_balance.visible && tableColumns.current_balance.enabled">
|
||||||
<span x-show="parseFloat(account.current_balance) < 0.0" class="text-danger"
|
<span x-show="parseFloat(account.current_balance) < 0.0" class="text-danger"
|
||||||
x-text="formatMoney(account.current_balance, account.currency_code)"></span>
|
x-text="formatMoney(account.current_balance, account.primary_currency_code)"></span>
|
||||||
<span x-show="parseFloat(account.current_balance) === 0.0" class="text-muted"
|
<span x-show="parseFloat(account.current_balance) === 0.0" class="text-muted"
|
||||||
x-text="formatMoney(account.current_balance, account.currency_code)"></span>
|
x-text="formatMoney(account.current_balance, account.primary_currency_code)"></span>
|
||||||
<span x-show="parseFloat(account.current_balance) > 0.0" class="text-success"
|
<span x-show="parseFloat(account.current_balance) > 0.0" class="text-success"
|
||||||
x-text="formatMoney(account.current_balance, account.currency_code)"></span>
|
x-text="formatMoney(account.current_balance, account.primary_currency_code)"></span>
|
||||||
<template x-if="null !== account.pc_current_balance">
|
<template x-if="null !== account.pc_current_balance">
|
||||||
<span>PC current balance TODO.</span>
|
<span>(
|
||||||
|
<span x-show="parseFloat(account.pc_current_balance) < 0.0" class="text-danger"
|
||||||
|
x-text="formatMoney(account.pc_current_balance, account.primary_currency_code)"></span>
|
||||||
|
<span x-show="parseFloat(account.pc_current_balance) === 0.0" class="text-muted"
|
||||||
|
x-text="formatMoney(account.pc_current_balance, account.primary_currency_code)"></span>
|
||||||
|
<span x-show="parseFloat(account.pc_current_balance) > 0.0" class="text-success"
|
||||||
|
x-text="formatMoney(account.pc_current_balance, account.primary_currency_code)"></span>
|
||||||
|
)
|
||||||
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</td>
|
</td>
|
||||||
<td x-show="tableColumns.amount_due.visible && tableColumns.amount_due.enabled">
|
<td x-show="tableColumns.amount_due.visible && tableColumns.amount_due.enabled">
|
||||||
<!--
|
<template x-if="null !== account.debt_amount">
|
||||||
<template x-if="null !== account.current_debt">
|
<span>
|
||||||
<span class="text-info"
|
<span x-show="null != account.debt_amount && account.debt_amount < 0" class="text-danger"
|
||||||
x-text="formatMoney(account.current_debt, account.currency_code)"></span>
|
x-text="formatMoney(account.debt_amount, account.currency_code)"></span>
|
||||||
|
<span x-show="null != account.debt_amount && account.debt_amount == 0" class="text-muted"
|
||||||
|
x-text="formatMoney(account.debt_amount, account.currency_code)"></span>
|
||||||
|
<span x-show="null != account.debt_amount && account.debt_amount > 0" class="text-success"
|
||||||
|
x-text="formatMoney(account.debt_amount, account.currency_code)"></span>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<template x-if="null !== account.pc_debt_amount">
|
||||||
|
<span>(
|
||||||
|
<span x-show="parseFloat(account.pc_debt_amount) < 0.0" class="text-danger"
|
||||||
|
x-text="formatMoney(account.pc_debt_amount, account.primary_currency_code)"></span>
|
||||||
|
<span x-show="parseFloat(account.pc_debt_amount) === 0.0" class="text-muted"
|
||||||
|
x-text="formatMoney(account.pc_debt_amount, account.primary_currency_code)"></span>
|
||||||
|
<span x-show="parseFloat(account.pc_debt_amount) > 0.0" class="text-success"
|
||||||
|
x-text="formatMoney(account.pc_debt_amount, account.primary_currency_code)"></span>
|
||||||
|
)
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
</template>
|
</template>
|
||||||
-->
|
|
||||||
FIXME
|
|
||||||
</td>
|
</td>
|
||||||
<td x-show="tableColumns.last_activity.visible && tableColumns.last_activity.enabled">
|
<td x-show="tableColumns.last_activity.visible && tableColumns.last_activity.enabled">
|
||||||
<span x-text="account.last_activity"></span>
|
<span x-text="account.last_activity"></span>
|
||||||
</td>
|
</td>
|
||||||
<td x-show="tableColumns.balance_difference.visible && tableColumns.balance_difference.enabled">
|
<td x-show="tableColumns.balance_difference.visible && tableColumns.balance_difference.enabled">
|
||||||
<template x-if="null !== account.balance">
|
<template x-if="null !== account.balance_difference">
|
||||||
<template x-for="balance in account.balance">
|
|
||||||
<span>
|
<span>
|
||||||
<span x-show="null != balance.balance_difference && balance.balance_difference < 0" class="text-danger"
|
<span x-show="null != account.balance_difference && account.balance_difference < 0" class="text-danger"
|
||||||
x-text="formatMoney(balance.balance_difference, balance.currency_code)"></span>
|
x-text="formatMoney(account.balance_difference, account.currency_code)"></span>
|
||||||
<span x-show="null != balance.balance_difference && balance.balance_difference == 0" class="text-muted"
|
<span x-show="null != account.balance_difference && account.balance_difference == 0" class="text-muted"
|
||||||
x-text="formatMoney(balance.balance_difference, balance.currency_code)"></span>
|
x-text="formatMoney(account.balance_difference, account.currency_code)"></span>
|
||||||
<span x-show="null != balance.balance_difference && balance.balance_difference > 0" class="text-success"
|
<span x-show="null != account.balance_difference && account.balance_difference > 0" class="text-success"
|
||||||
x-text="formatMoney(balance.balance_difference, balance.currency_code)"></span>
|
x-text="formatMoney(account.balance_difference, account.currency_code)"></span>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
|
||||||
|
<template x-if="null !== account.pc_balance_difference">
|
||||||
|
<span>(
|
||||||
|
<span x-show="parseFloat(account.pc_balance_difference) < 0.0" class="text-danger"
|
||||||
|
x-text="formatMoney(account.pc_balance_difference, account.primary_currency_code)"></span>
|
||||||
|
<span x-show="parseFloat(account.pc_balance_difference) === 0.0" class="text-muted"
|
||||||
|
x-text="formatMoney(account.pc_balance_difference, account.primary_currency_code)"></span>
|
||||||
|
<span x-show="parseFloat(account.pc_balance_difference) > 0.0" class="text-success"
|
||||||
|
x-text="formatMoney(account.pc_balance_difference, account.primary_currency_code)"></span>
|
||||||
|
)
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</td>
|
</td>
|
||||||
<td x-show="tableColumns.menu.visible && tableColumns.menu.enabled">
|
<td x-show="tableColumns.menu.visible && tableColumns.menu.enabled">
|
||||||
|
Reference in New Issue
Block a user