mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2026-02-09 05:21:18 +00:00
🤖 Auto commit for release 'develop' on 2026-01-23
This commit is contained in:
@@ -56,7 +56,7 @@ class DoubleController extends Controller
|
||||
// translations:
|
||||
$this->middleware(function ($request, $next) {
|
||||
$this->accountRepository = app(AccountRepositoryInterface::class);
|
||||
$this->opsRepository = app(OperationsRepositoryInterface::class);
|
||||
$this->opsRepository = app(OperationsRepositoryInterface::class);
|
||||
|
||||
return $next($request);
|
||||
});
|
||||
@@ -75,8 +75,8 @@ class DoubleController extends Controller
|
||||
$result = [];
|
||||
foreach ($spent as $currency) {
|
||||
foreach ($currency['transaction_journals'] as $journal) {
|
||||
$sourceId = $journal['source_account_id'];
|
||||
$key = sprintf('%d-%d', $sourceId, $currency['currency_id']);
|
||||
$sourceId = $journal['source_account_id'];
|
||||
$key = sprintf('%d-%d', $sourceId, $currency['currency_id']);
|
||||
$result[$key] ??= [
|
||||
'transactions' => 0,
|
||||
'sum' => '0',
|
||||
@@ -87,17 +87,17 @@ class DoubleController extends Controller
|
||||
'currency_id' => $currency['currency_id'],
|
||||
'currency_name' => $currency['currency_name'],
|
||||
'currency_symbol' => $currency['currency_symbol'],
|
||||
'currency_decimal_places' => $currency['currency_decimal_places']
|
||||
'currency_decimal_places' => $currency['currency_decimal_places'],
|
||||
];
|
||||
++$result[$key]['transactions'];
|
||||
$result[$key]['sum'] = bcadd((string) $journal['amount'], $result[$key]['sum']);
|
||||
$result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']);
|
||||
$result[$key]['sum'] = bcadd((string) $journal['amount'], $result[$key]['sum']);
|
||||
$result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']);
|
||||
$result[$key]['avg_float'] = (float) $result[$key]['avg'];
|
||||
}
|
||||
}
|
||||
// sort by amount_float
|
||||
// sort temp array by amount.
|
||||
$amounts = array_column($result, 'avg_float');
|
||||
$amounts = array_column($result, 'avg_float');
|
||||
array_multisort($amounts, SORT_ASC, $result);
|
||||
|
||||
try {
|
||||
@@ -125,8 +125,8 @@ class DoubleController extends Controller
|
||||
$result = [];
|
||||
foreach ($spent as $currency) {
|
||||
foreach ($currency['transaction_journals'] as $journal) {
|
||||
$destinationId = $journal['destination_account_id'];
|
||||
$key = sprintf('%d-%d', $destinationId, $currency['currency_id']);
|
||||
$destinationId = $journal['destination_account_id'];
|
||||
$key = sprintf('%d-%d', $destinationId, $currency['currency_id']);
|
||||
$result[$key] ??= [
|
||||
'transactions' => 0,
|
||||
'sum' => '0',
|
||||
@@ -137,17 +137,17 @@ class DoubleController extends Controller
|
||||
'currency_id' => $currency['currency_id'],
|
||||
'currency_name' => $currency['currency_name'],
|
||||
'currency_symbol' => $currency['currency_symbol'],
|
||||
'currency_decimal_places' => $currency['currency_decimal_places']
|
||||
'currency_decimal_places' => $currency['currency_decimal_places'],
|
||||
];
|
||||
++$result[$key]['transactions'];
|
||||
$result[$key]['sum'] = bcadd((string) $journal['amount'], $result[$key]['sum']);
|
||||
$result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']);
|
||||
$result[$key]['sum'] = bcadd((string) $journal['amount'], $result[$key]['sum']);
|
||||
$result[$key]['avg'] = bcdiv($result[$key]['sum'], (string) $result[$key]['transactions']);
|
||||
$result[$key]['avg_float'] = (float) $result[$key]['avg'];
|
||||
}
|
||||
}
|
||||
// sort by amount_float
|
||||
// sort temp array by amount.
|
||||
$amounts = array_column($result, 'avg_float');
|
||||
$amounts = array_column($result, 'avg_float');
|
||||
array_multisort($amounts, SORT_DESC, $result);
|
||||
|
||||
try {
|
||||
@@ -174,8 +174,8 @@ class DoubleController extends Controller
|
||||
$report = [];
|
||||
$sums = [];
|
||||
// see what happens when we collect transactions.
|
||||
$spent = $this->opsRepository->listExpenses($start, $end, $together);
|
||||
$earned = $this->opsRepository->listIncome($start, $end, $together);
|
||||
$spent = $this->opsRepository->listExpenses($start, $end, $together);
|
||||
$earned = $this->opsRepository->listIncome($start, $end, $together);
|
||||
// group and list per account name (as long as its not in accounts, only in double)
|
||||
|
||||
/** @var array $currency */
|
||||
@@ -190,16 +190,16 @@ class DoubleController extends Controller
|
||||
'currency_name' => $currency['currency_name'],
|
||||
'currency_symbol' => $currency['currency_symbol'],
|
||||
'currency_code' => $currency['currency_code'],
|
||||
'currency_decimal_places' => $currency['currency_decimal_places']
|
||||
'currency_decimal_places' => $currency['currency_decimal_places'],
|
||||
];
|
||||
|
||||
/** @var array $journal */
|
||||
foreach ($currency['transaction_journals'] as $journal) {
|
||||
$destId = $journal['destination_account_id'];
|
||||
$destName = $journal['destination_account_name'];
|
||||
$destIban = $journal['destination_account_iban'];
|
||||
$genericName = $this->getCounterpartName($withCounterpart, $destId, $destName, $destIban);
|
||||
$objectName = sprintf('%s (%s)', $genericName, $currency['currency_name']);
|
||||
$destId = $journal['destination_account_id'];
|
||||
$destName = $journal['destination_account_name'];
|
||||
$destIban = $journal['destination_account_iban'];
|
||||
$genericName = $this->getCounterpartName($withCounterpart, $destId, $destName, $destIban);
|
||||
$objectName = sprintf('%s (%s)', $genericName, $currency['currency_name']);
|
||||
$report[$objectName] ??= [
|
||||
'dest_name' => '',
|
||||
'dest_iban' => '',
|
||||
@@ -212,17 +212,17 @@ class DoubleController extends Controller
|
||||
'currency_decimal_places' => $currency['currency_decimal_places'],
|
||||
'spent' => '0',
|
||||
'earned' => '0',
|
||||
'sum' => '0'
|
||||
'sum' => '0',
|
||||
];
|
||||
// set name
|
||||
$report[$objectName]['dest_name'] = $destName;
|
||||
$report[$objectName]['dest_iban'] = $destIban;
|
||||
|
||||
// add amounts:
|
||||
$report[$objectName]['spent'] = bcadd($report[$objectName]['spent'], (string) $journal['amount']);
|
||||
$report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['spent'] = bcadd($sums[$currencyId]['spent'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
|
||||
$report[$objectName]['spent'] = bcadd($report[$objectName]['spent'], (string) $journal['amount']);
|
||||
$report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['spent'] = bcadd($sums[$currencyId]['spent'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,16 +238,16 @@ class DoubleController extends Controller
|
||||
'currency_name' => $currency['currency_name'],
|
||||
'currency_symbol' => $currency['currency_symbol'],
|
||||
'currency_code' => $currency['currency_code'],
|
||||
'currency_decimal_places' => $currency['currency_decimal_places']
|
||||
'currency_decimal_places' => $currency['currency_decimal_places'],
|
||||
];
|
||||
|
||||
/** @var array $journal */
|
||||
foreach ($currency['transaction_journals'] as $journal) {
|
||||
$sourceId = $journal['source_account_id'];
|
||||
$sourceName = $journal['source_account_name'];
|
||||
$sourceIban = $journal['source_account_iban'];
|
||||
$genericName = $this->getCounterpartName($withCounterpart, $sourceId, $sourceName, $sourceIban);
|
||||
$objectName = sprintf('%s (%s)', $genericName, $currency['currency_name']);
|
||||
$sourceId = $journal['source_account_id'];
|
||||
$sourceName = $journal['source_account_name'];
|
||||
$sourceIban = $journal['source_account_iban'];
|
||||
$genericName = $this->getCounterpartName($withCounterpart, $sourceId, $sourceName, $sourceIban);
|
||||
$objectName = sprintf('%s (%s)', $genericName, $currency['currency_name']);
|
||||
$report[$objectName] ??= [
|
||||
'dest_name' => '',
|
||||
'dest_iban' => '',
|
||||
@@ -260,7 +260,7 @@ class DoubleController extends Controller
|
||||
'currency_decimal_places' => $currency['currency_decimal_places'],
|
||||
'spent' => '0',
|
||||
'earned' => '0',
|
||||
'sum' => '0'
|
||||
'sum' => '0',
|
||||
];
|
||||
|
||||
// set name
|
||||
@@ -268,10 +268,10 @@ class DoubleController extends Controller
|
||||
$report[$objectName]['source_iban'] = $sourceIban;
|
||||
|
||||
// add amounts:
|
||||
$report[$objectName]['earned'] = bcadd($report[$objectName]['earned'], (string) $journal['amount']);
|
||||
$report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['earned'] = bcadd($sums[$currencyId]['earned'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
|
||||
$report[$objectName]['earned'] = bcadd($report[$objectName]['earned'], (string) $journal['amount']);
|
||||
$report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['earned'] = bcadd($sums[$currencyId]['earned'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -281,7 +281,7 @@ class DoubleController extends Controller
|
||||
/**
|
||||
* TODO this method is duplicated.
|
||||
*/
|
||||
private function getCounterpartName(Collection $accounts, int $id, string $name, null|string $iban): string
|
||||
private function getCounterpartName(Collection $accounts, int $id, string $name, ?string $iban): string
|
||||
{
|
||||
/** @var Account $account */
|
||||
foreach ($accounts as $account) {
|
||||
@@ -306,8 +306,8 @@ class DoubleController extends Controller
|
||||
$report = [];
|
||||
$sums = [];
|
||||
// see what happens when we collect transactions.
|
||||
$spent = $this->opsRepository->listExpenses($start, $end, $together);
|
||||
$earned = $this->opsRepository->listIncome($start, $end, $together);
|
||||
$spent = $this->opsRepository->listExpenses($start, $end, $together);
|
||||
$earned = $this->opsRepository->listIncome($start, $end, $together);
|
||||
// group and list per account name (as long as its not in accounts, only in double)
|
||||
|
||||
/** @var array $currency */
|
||||
@@ -322,12 +322,12 @@ class DoubleController extends Controller
|
||||
'currency_name' => $currency['currency_name'],
|
||||
'currency_symbol' => $currency['currency_symbol'],
|
||||
'currency_code' => $currency['currency_code'],
|
||||
'currency_decimal_places' => $currency['currency_decimal_places']
|
||||
'currency_decimal_places' => $currency['currency_decimal_places'],
|
||||
];
|
||||
|
||||
/** @var array $journal */
|
||||
foreach ($currency['transaction_journals'] as $journal) {
|
||||
$objectName = sprintf('%s (%s)', $journal['source_account_name'], $currency['currency_name']);
|
||||
$objectName = sprintf('%s (%s)', $journal['source_account_name'], $currency['currency_name']);
|
||||
$report[$objectName] ??= [
|
||||
'account_id' => $journal['source_account_id'],
|
||||
'account_name' => $objectName,
|
||||
@@ -338,14 +338,14 @@ class DoubleController extends Controller
|
||||
'currency_decimal_places' => $currency['currency_decimal_places'],
|
||||
'spent' => '0',
|
||||
'earned' => '0',
|
||||
'sum' => '0'
|
||||
'sum' => '0',
|
||||
];
|
||||
// set name
|
||||
// add amounts:
|
||||
$report[$objectName]['spent'] = bcadd($report[$objectName]['spent'], (string) $journal['amount']);
|
||||
$report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['spent'] = bcadd($sums[$currencyId]['spent'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
|
||||
$report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['spent'] = bcadd($sums[$currencyId]['spent'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -361,12 +361,12 @@ class DoubleController extends Controller
|
||||
'currency_name' => $currency['currency_name'],
|
||||
'currency_symbol' => $currency['currency_symbol'],
|
||||
'currency_code' => $currency['currency_code'],
|
||||
'currency_decimal_places' => $currency['currency_decimal_places']
|
||||
'currency_decimal_places' => $currency['currency_decimal_places'],
|
||||
];
|
||||
|
||||
/** @var array $journal */
|
||||
foreach ($currency['transaction_journals'] as $journal) {
|
||||
$objectName = sprintf('%s (%s)', $journal['destination_account_name'], $currency['currency_name']);
|
||||
$objectName = sprintf('%s (%s)', $journal['destination_account_name'], $currency['currency_name']);
|
||||
$report[$objectName] ??= [
|
||||
'account_id' => $journal['destination_account_id'],
|
||||
'account_name' => $objectName,
|
||||
@@ -377,14 +377,14 @@ class DoubleController extends Controller
|
||||
'currency_decimal_places' => $currency['currency_decimal_places'],
|
||||
'spent' => '0',
|
||||
'earned' => '0',
|
||||
'sum' => '0'
|
||||
'sum' => '0',
|
||||
];
|
||||
|
||||
// add amounts:
|
||||
$report[$objectName]['earned'] = bcadd($report[$objectName]['earned'], (string) $journal['amount']);
|
||||
$report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['earned'] = bcadd($sums[$currencyId]['earned'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
|
||||
$report[$objectName]['sum'] = bcadd($report[$objectName]['sum'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['earned'] = bcadd($sums[$currencyId]['earned'], (string) $journal['amount']);
|
||||
$sums[$currencyId]['sum'] = bcadd($sums[$currencyId]['sum'], (string) $journal['amount']);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -418,13 +418,13 @@ class DoubleController extends Controller
|
||||
'currency_symbol' => $currency['currency_symbol'],
|
||||
'currency_decimal_places' => $currency['currency_decimal_places'],
|
||||
'source_account_name' => $journal['source_account_name'],
|
||||
'source_account_id' => $journal['source_account_id']
|
||||
'source_account_id' => $journal['source_account_id'],
|
||||
];
|
||||
}
|
||||
}
|
||||
// sort by amount_float
|
||||
// sort temp array by amount.
|
||||
$amounts = array_column($result, 'amount_float');
|
||||
$amounts = array_column($result, 'amount_float');
|
||||
array_multisort($amounts, SORT_ASC, $result);
|
||||
|
||||
try {
|
||||
@@ -466,13 +466,13 @@ class DoubleController extends Controller
|
||||
'currency_symbol' => $currency['currency_symbol'],
|
||||
'currency_decimal_places' => $currency['currency_decimal_places'],
|
||||
'source_account_name' => $journal['source_account_name'],
|
||||
'source_account_id' => $journal['source_account_id']
|
||||
'source_account_id' => $journal['source_account_id'],
|
||||
];
|
||||
}
|
||||
}
|
||||
// sort by amount_float
|
||||
// sort temp array by amount.
|
||||
$amounts = array_column($result, 'amount_float');
|
||||
$amounts = array_column($result, 'amount_float');
|
||||
array_multisort($amounts, SORT_DESC, $result);
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user