mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-13 16:00:13 +00:00
Add new fields to API.
This commit is contained in:
@@ -86,7 +86,7 @@ class GroupCollector implements GroupCollectorInterface
|
||||
$this->hasJoinedAttTables = false;
|
||||
$this->expandGroupSearch = false;
|
||||
$this->hasJoinedMetaTables = false;
|
||||
$this->booleanFields = ['balance_dirty'];
|
||||
$this->booleanFields = ['source_balance_dirty','destination_balance_dirty'];
|
||||
$this->integerFields = [
|
||||
'transaction_group_id',
|
||||
'user_id',
|
||||
@@ -137,7 +137,7 @@ class GroupCollector implements GroupCollectorInterface
|
||||
// currency info:
|
||||
'source.amount as amount',
|
||||
'source.balance_after as source_balance_after',
|
||||
'source.balance_dirty as balance_dirty',
|
||||
'source.balance_dirty as source_balance_dirty',
|
||||
'source.native_amount as native_amount',
|
||||
'source.transaction_currency_id as currency_id',
|
||||
'currency.code as currency_code',
|
||||
@@ -157,6 +157,7 @@ class GroupCollector implements GroupCollectorInterface
|
||||
// destination account info (always present)
|
||||
'destination.account_id as destination_account_id',
|
||||
'destination.balance_after as destination_balance_after',
|
||||
'destination.balance_dirty as destination_balance_dirty',
|
||||
];
|
||||
}
|
||||
|
||||
|
@@ -30,10 +30,12 @@ use FireflyIII\Models\Attachment;
|
||||
use FireflyIII\Models\Location;
|
||||
use FireflyIII\Models\Note;
|
||||
use FireflyIII\Models\Tag;
|
||||
use FireflyIII\Models\TransactionCurrency;
|
||||
use FireflyIII\Models\TransactionGroup;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use FireflyIII\Models\TransactionJournalMeta;
|
||||
use FireflyIII\Models\UserGroup;
|
||||
use FireflyIII\Support\Facades\Amount;
|
||||
use FireflyIII\User;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Collection;
|
||||
@@ -52,6 +54,7 @@ class TransactionGroupEnrichment implements EnrichmentInterface
|
||||
private array $notes; // @phpstan-ignore-line
|
||||
private array $tags;
|
||||
private User $user;
|
||||
private TransactionCurrency $nativeCurrency;
|
||||
private UserGroup $userGroup;
|
||||
|
||||
public function __construct()
|
||||
@@ -63,6 +66,7 @@ class TransactionGroupEnrichment implements EnrichmentInterface
|
||||
$this->locations = [];
|
||||
$this->attachmentCount = [];
|
||||
$this->dateFields = ['interest_date', 'book_date', 'process_date', 'due_date', 'payment_date', 'invoice_date'];
|
||||
$this->nativeCurrency = Amount::getNativeCurrency();
|
||||
}
|
||||
|
||||
#[Override]
|
||||
@@ -192,8 +196,9 @@ class TransactionGroupEnrichment implements EnrichmentInterface
|
||||
$metaData = $this->metaData;
|
||||
$locations = $this->locations;
|
||||
$attachmentCount = $this->attachmentCount;
|
||||
$nativeCurrency = $this->nativeCurrency;
|
||||
|
||||
$this->collection = $this->collection->map(function (array $item) use ($notes, $tags, $metaData, $locations, $attachmentCount) {
|
||||
$this->collection = $this->collection->map(function (array $item) use ($nativeCurrency, $notes, $tags, $metaData, $locations, $attachmentCount) {
|
||||
foreach ($item['transactions'] as $index => $transaction) {
|
||||
$journalId = (int) $transaction['transaction_journal_id'];
|
||||
|
||||
@@ -213,6 +218,15 @@ class TransactionGroupEnrichment implements EnrichmentInterface
|
||||
'zoom_level' => null,
|
||||
];
|
||||
|
||||
// native currency
|
||||
$item['transactions'][$index]['native_currency'] = [
|
||||
'id' => (string) $nativeCurrency->id,
|
||||
'code' => $nativeCurrency->code,
|
||||
'name' => $nativeCurrency->name,
|
||||
'symbol' => $nativeCurrency->symbol,
|
||||
'decimal_places' => $nativeCurrency->decimal_places,
|
||||
];
|
||||
|
||||
// append meta data
|
||||
$item['transactions'][$index]['meta'] = [];
|
||||
$item['transactions'][$index]['meta_date'] = [];
|
||||
|
@@ -144,12 +144,38 @@ class TransactionGroupTransformer extends AbstractTransformer
|
||||
|
||||
'foreign_currency_id' => $this->stringFromArray($transaction, 'foreign_currency_id', null),
|
||||
'foreign_currency_code' => $transaction['foreign_currency_code'],
|
||||
'foreign_currency_name' => $transaction['foreign_currency_name'],
|
||||
'foreign_currency_symbol' => $transaction['foreign_currency_symbol'],
|
||||
'foreign_currency_decimal_places' => $transaction['foreign_currency_decimal_places'],
|
||||
|
||||
'amount' => $amount,
|
||||
'foreign_amount' => $foreignAmount,
|
||||
|
||||
// native amount, defaults to NULL when convertToNative is false.
|
||||
'native_amount' => $transaction['native_amount'] ?? null,
|
||||
|
||||
// native currency, always present.
|
||||
'native_currency_id' => $transaction['native_currency']['id'] ?? null,
|
||||
'native_currency_code' => $transaction['native_currency']['code'] ?? null,
|
||||
'native_currency_name' => $transaction['native_currency']['name'] ?? null,
|
||||
'native_currency_symbol' => $transaction['native_currency']['symbol'] ?? null,
|
||||
'native_currency_decimal_places' => $transaction['native_currency']['decimal_places'] ?? null,
|
||||
|
||||
// source balance after
|
||||
'source_balance_after' => $transaction['source_balance_after'] ?? null,
|
||||
'source_balance_dirty' => $transaction['source_balance_dirty'],
|
||||
|
||||
// destination balance after
|
||||
'destination_balance_after' => $transaction['destination_balance_after'] ?? null,
|
||||
'destination_balance_dirty' => $transaction['destination_balance_dirty'],
|
||||
|
||||
// balance before and after, if not dirty.
|
||||
//'running_balance_dirty' => $transaction['balance_dirty'] ?? false,
|
||||
//'running_balance_before' => $transaction['balance_before'] ?? null,
|
||||
//'running_balance_after' => $transaction['balance_after'] ?? null,
|
||||
|
||||
|
||||
|
||||
'description' => $transaction['description'],
|
||||
|
||||
'source_id' => (string) $transaction['source_account_id'],
|
||||
|
Reference in New Issue
Block a user