mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-12 15:35:15 +00:00
Add a debug view for transactions.
This commit is contained in:
@@ -74,6 +74,21 @@ class TransactionGroupRepository implements TransactionGroupRepositoryInterface
|
||||
$service->destroy($group);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function expandGroup(TransactionGroup $group): array
|
||||
{
|
||||
$result = $group->toArray();
|
||||
$result['transaction_journals'] = [];
|
||||
/** @var TransactionJournal $journal */
|
||||
foreach ($group->transactionJournals as $journal) {
|
||||
$result['transaction_journals'][] = $this->expandJournal($journal);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a transaction group by its ID.
|
||||
*
|
||||
@@ -342,6 +357,88 @@ class TransactionGroupRepository implements TransactionGroupRepositoryInterface
|
||||
return $service->update($transactionGroup, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param TransactionJournal $journal
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function expandJournal(TransactionJournal $journal): array
|
||||
{
|
||||
$array = $journal->toArray();
|
||||
$array['transactions'] = [];
|
||||
$array['meta'] = [];
|
||||
$array['tags'] = [];
|
||||
$array['categories'] = [];
|
||||
$array['budgets'] = [];
|
||||
$array['notes'] = [];
|
||||
$array['locations'] = [];
|
||||
$array['attachments'] = [];
|
||||
$array['links'] = [];
|
||||
$array['piggy_bank_events'] = [];
|
||||
|
||||
/** @var Transaction $transaction */
|
||||
foreach ($journal->transactions as $transaction) {
|
||||
$array['transactions'][] = $this->expandTransaction($transaction);
|
||||
}
|
||||
foreach ($journal->transactionJournalMeta as $meta) {
|
||||
$array['meta'][] = $meta->toArray();
|
||||
}
|
||||
|
||||
foreach ($journal->tags as $tag) {
|
||||
$array['tags'][] = $tag->toArray();
|
||||
}
|
||||
foreach ($journal->categories as $category) {
|
||||
$array['categories'][] = $category->toArray();
|
||||
}
|
||||
|
||||
foreach ($journal->budgets as $budget) {
|
||||
$array['budgets'][] = $budget->toArray();
|
||||
}
|
||||
foreach ($journal->notes as $note) {
|
||||
$array['notes'][] = $note->toArray();
|
||||
}
|
||||
|
||||
foreach ($journal->attachments as $attachment) {
|
||||
$array['attachments'][] = $attachment->toArray();
|
||||
}
|
||||
// TODO apparantly this doesnt work.
|
||||
foreach ($journal->sourceJournalLinks as $link) {
|
||||
$array['links'][] = $link->toArray();
|
||||
}
|
||||
foreach ($journal->destJournalLinks as $link) {
|
||||
$array['links'][] = $link->toArray();
|
||||
}
|
||||
|
||||
foreach ($journal->piggyBankEvents as $event) {
|
||||
$array['piggy_bank_events'][] = $event->toArray();
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Transaction $transaction
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function expandTransaction(Transaction $transaction): array
|
||||
{
|
||||
$array = $transaction->toArray();
|
||||
$array['account'] = $transaction->account->toArray();
|
||||
$array['budgets'] = [];
|
||||
$array['categories'] = [];
|
||||
|
||||
foreach ($transaction->categories as $category) {
|
||||
$array['categories'][] = $category->toArray();
|
||||
}
|
||||
|
||||
foreach ($transaction->budgets as $budget) {
|
||||
$array['budgets'][] = $budget->toArray();
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param TransactionJournal $journal
|
||||
*
|
||||
|
@@ -33,12 +33,20 @@ use FireflyIII\User;
|
||||
*/
|
||||
interface TransactionGroupRepositoryInterface
|
||||
{
|
||||
|
||||
/**
|
||||
* @param TransactionGroup $group
|
||||
*/
|
||||
public function destroy(TransactionGroup $group): void;
|
||||
|
||||
/**
|
||||
* Return a group and expand all meta data etc.
|
||||
*
|
||||
* @param TransactionGroup $group
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function expandGroup(TransactionGroup $group): array;
|
||||
|
||||
/**
|
||||
* Find a transaction group by its ID.
|
||||
*
|
||||
|
Reference in New Issue
Block a user