mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2026-05-04 21:23:36 +00:00
Convert to primary currency for category charts
This commit is contained in:
@@ -36,6 +36,7 @@ use FireflyIII\Support\Facades\Navigation;
|
||||
use FireflyIII\Support\Facades\Steam;
|
||||
use FireflyIII\Support\Http\Controllers\BasicDataSupport;
|
||||
use FireflyIII\Support\Http\Controllers\ChartGeneration;
|
||||
use FireflyIII\Support\Http\Controllers\ResolvesJournalAmountAndCurrency;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
@@ -47,6 +48,7 @@ class ReportController extends Controller
|
||||
{
|
||||
use BasicDataSupport;
|
||||
use ChartGeneration;
|
||||
use ResolvesJournalAmountAndCurrency;
|
||||
|
||||
protected GeneratorInterface $generator;
|
||||
|
||||
@@ -176,22 +178,14 @@ class ReportController extends Controller
|
||||
// loop. group by currency and by period.
|
||||
/** @var array $journal */
|
||||
foreach ($journals as $journal) {
|
||||
$period = $journal['date']->format($format);
|
||||
$currencyId = (int) $journal['currency_id'];
|
||||
$currencySymbol = (string) $journal['currency_symbol'];
|
||||
$currencyCode = (string) $journal['currency_code'];
|
||||
$currencyName = (string) $journal['currency_name'];
|
||||
$currencyDecimalPlaces = (int) $journal['currency_decimal_places'];
|
||||
$amount = (string) $journal['amount'];
|
||||
|
||||
if ($this->convertToPrimary && null !== $this->primaryCurrency && $journal['currency_id'] !== $this->primaryCurrency->id) {
|
||||
$currencyId = $this->primaryCurrency->id;
|
||||
$currencySymbol = $this->primaryCurrency->symbol;
|
||||
$currencyCode = $this->primaryCurrency->code;
|
||||
$currencyName = $this->primaryCurrency->name;
|
||||
$currencyDecimalPlaces = $this->primaryCurrency->decimal_places;
|
||||
$amount = $journal['foreign_currency_id'] === $this->primaryCurrency->id ? $journal['foreign_amount'] : $journal['pc_amount'];
|
||||
}
|
||||
$period = $journal['date']->format($format);
|
||||
$journalData = $this->resolveJournalAmountAndCurrency($journal, $journal);
|
||||
$currencyId = $journalData['currency_id'];
|
||||
$currencySymbol = $journalData['currency_symbol'];
|
||||
$currencyCode = $journalData['currency_code'];
|
||||
$currencyName = $journalData['currency_name'];
|
||||
$currencyDecimalPlaces = $journalData['currency_decimal_places'];
|
||||
$amount = $journalData['amount'];
|
||||
|
||||
$data[$currencyId] ??= [
|
||||
'currency_id' => $currencyId,
|
||||
@@ -202,8 +196,7 @@ class ReportController extends Controller
|
||||
];
|
||||
$data[$currencyId][$period] ??= ['period' => $period, 'spent' => '0', 'earned' => '0'];
|
||||
// in our outgoing?
|
||||
$key = 'spent';
|
||||
$amount = Steam::positive($amount);
|
||||
$key = 'spent';
|
||||
|
||||
// deposit = incoming
|
||||
// transfer or reconcile or opening balance, and these accounts are the destination.
|
||||
|
||||
Reference in New Issue
Block a user