This commit is contained in:
James Cole
2019-08-21 17:27:59 +02:00
parent 21a9e981a2
commit c7931f2b72

View File

@@ -51,8 +51,8 @@ class AccountTasker implements AccountTaskerInterface
/** /**
* @param Collection $accounts * @param Collection $accounts
* @param Carbon $start * @param Carbon $start
* @param Carbon $end * @param Carbon $end
* *
* @return array * @return array
*/ */
@@ -106,7 +106,7 @@ class AccountTasker implements AccountTaskerInterface
$entry['end_balance'] = $endSet[$account->id] ?? '0'; $entry['end_balance'] = $endSet[$account->id] ?? '0';
// first journal exists, and is on start, then this is the actual opening balance: // first journal exists, and is on start, then this is the actual opening balance:
if (null !== $first && $first->date->isSameDay($start)) { if (null !== $first && $first->date->isSameDay($start) && TransactionType::OPENING_BALANCE === $first->transactionType->type) {
Log::debug(sprintf('Date of first journal for %s is %s', $account->name, $first->date->format('Y-m-d'))); Log::debug(sprintf('Date of first journal for %s is %s', $account->name, $first->date->format('Y-m-d')));
$entry['start_balance'] = $first->transactions()->where('account_id', $account->id)->first()->amount; $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'])); Log::debug(sprintf('Account %s was opened on %s, so opening balance is %f', $account->name, $start->format('Y-m-d'), $entry['start_balance']));
@@ -124,8 +124,8 @@ class AccountTasker implements AccountTaskerInterface
} }
/** /**
* @param Carbon $start * @param Carbon $start
* @param Carbon $end * @param Carbon $end
* @param Collection $accounts * @param Collection $accounts
* *
* @return array * @return array
@@ -159,8 +159,8 @@ class AccountTasker implements AccountTaskerInterface
} }
/** /**
* @param Carbon $start * @param Carbon $start
* @param Carbon $end * @param Carbon $end
* @param Collection $accounts * @param Collection $accounts
* *
* @return array * @return array
@@ -216,11 +216,11 @@ class AccountTasker implements AccountTaskerInterface
/** @var array $journal */ /** @var array $journal */
foreach ($array as $journal) { foreach ($array as $journal) {
$sourceId = (int)$journal['destination_account_id']; $sourceId = (int)$journal['destination_account_id'];
$currencyId = (int)$journal['currency_id']; $currencyId = (int)$journal['currency_id'];
$key = sprintf('%s-%s', $sourceId, $currencyId); $key = sprintf('%s-%s', $sourceId, $currencyId);
$currencies[$currencyId] = $currencies[$currencyId] ?? $currencyRepos->findNull($currencyId); $currencies[$currencyId] = $currencies[$currencyId] ?? $currencyRepos->findNull($currencyId);
$report['accounts'][$key] = $report['accounts'][$key] ?? [ $report['accounts'][$key] = $report['accounts'][$key] ?? [
'id' => $sourceId, 'id' => $sourceId,
'name' => $journal['destination_account_name'], 'name' => $journal['destination_account_name'],
'sum' => '0', 'sum' => '0',
@@ -255,6 +255,7 @@ class AccountTasker implements AccountTaskerInterface
]; ];
$report['sums'][$currencyId]['sum'] = bcadd($report['sums'][$currencyId]['sum'], $report['accounts'][$key]['sum']); $report['sums'][$currencyId]['sum'] = bcadd($report['sums'][$currencyId]['sum'], $report['accounts'][$key]['sum']);
} }
return $report; return $report;
} }
@@ -276,9 +277,9 @@ class AccountTasker implements AccountTaskerInterface
/** @var array $journal */ /** @var array $journal */
foreach ($array as $journal) { foreach ($array as $journal) {
$sourceId = (int)$journal['source_account_id']; $sourceId = (int)$journal['source_account_id'];
$currencyId = (int)$journal['currency_id']; $currencyId = (int)$journal['currency_id'];
$key = sprintf('%s-%s', $sourceId, $currencyId); $key = sprintf('%s-%s', $sourceId, $currencyId);
if (!isset($report['accounts'][$key])) { if (!isset($report['accounts'][$key])) {
$currencies[$currencyId] = $currencies[$currencyId] ?? $currencyRepos->findNull($currencyId); $currencies[$currencyId] = $currencies[$currencyId] ?? $currencyRepos->findNull($currencyId);
$report['accounts'][$key] = [ $report['accounts'][$key] = [