mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2026-01-07 06:31:22 +00:00
Update API and transaction components.
This commit is contained in:
@@ -27,7 +27,6 @@ use DB;
|
||||
use Exception;
|
||||
use FireflyIII\Exceptions\FireflyException;
|
||||
use FireflyIII\Factory\TransactionJournalFactory;
|
||||
use FireflyIII\Factory\TransactionJournalMetaFactory;
|
||||
use FireflyIII\Helpers\Collector\TransactionCollectorInterface;
|
||||
use FireflyIII\Helpers\Filter\InternalTransferFilter;
|
||||
use FireflyIII\Models\Account;
|
||||
@@ -35,11 +34,13 @@ use FireflyIII\Models\AccountType;
|
||||
use FireflyIII\Models\Note;
|
||||
use FireflyIII\Models\PiggyBankEvent;
|
||||
use FireflyIII\Models\Transaction;
|
||||
use FireflyIII\Models\TransactionGroup;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use FireflyIII\Models\TransactionJournalLink;
|
||||
use FireflyIII\Models\TransactionJournalMeta;
|
||||
use FireflyIII\Models\TransactionType;
|
||||
use FireflyIII\Services\Internal\Destroy\JournalDestroyService;
|
||||
use FireflyIII\Services\Internal\Destroy\TransactionGroupDestroyService;
|
||||
use FireflyIII\Services\Internal\Update\JournalUpdateService;
|
||||
use FireflyIII\Support\CacheProperties;
|
||||
use FireflyIII\User;
|
||||
@@ -136,29 +137,25 @@ class JournalRepository implements JournalRepositoryInterface
|
||||
}
|
||||
|
||||
/**
|
||||
* @param TransactionJournal $journal
|
||||
* @param TransactionGroup $transactionGroup
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function countTransactions(TransactionJournal $journal): int
|
||||
public function destroyGroup(TransactionGroup $transactionGroup): void
|
||||
{
|
||||
return $journal->transactions()->count();
|
||||
/** @var TransactionGroupDestroyService $service */
|
||||
$service = app(TransactionGroupDestroyService::class);
|
||||
$service->destroy($transactionGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param TransactionJournal $journal
|
||||
*
|
||||
* @return bool
|
||||
*
|
||||
|
||||
*/
|
||||
public function destroy(TransactionJournal $journal): bool
|
||||
public function destroyJournal(TransactionJournal $journal): void
|
||||
{
|
||||
/** @var JournalDestroyService $service */
|
||||
$service = app(JournalDestroyService::class);
|
||||
$service->destroy($journal);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -199,23 +196,6 @@ class JournalRepository implements JournalRepositoryInterface
|
||||
return $this->user->transactionJournals()->where('id', $journalId)->first();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Transaction $transaction
|
||||
*
|
||||
* @return Transaction|null
|
||||
*/
|
||||
public function findOpposingTransaction(Transaction $transaction): ?Transaction
|
||||
{
|
||||
$opposing = Transaction::leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||
->where('transaction_journals.user_id', $this->user->id)
|
||||
->where('transactions.transaction_journal_id', $transaction->transaction_journal_id)
|
||||
->where('transactions.identifier', $transaction->identifier)
|
||||
->where('amount', bcmul($transaction->amount, '-1'))
|
||||
->first(['transactions.*']);
|
||||
|
||||
return $opposing;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $transactionid
|
||||
*
|
||||
@@ -278,13 +258,16 @@ class JournalRepository implements JournalRepositoryInterface
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Transaction $transaction
|
||||
* Get all attachments connected to the transaction group.
|
||||
*
|
||||
* @param TransactionJournal $transactionJournal
|
||||
*
|
||||
* @return Collection
|
||||
*/
|
||||
public function getAttachmentsByTr(Transaction $transaction): Collection
|
||||
public function getAttachmentsByJournal(TransactionJournal $transactionJournal): Collection
|
||||
{
|
||||
return $transaction->transactionJournal->attachments()->get();
|
||||
// TODO: Implement getAttachmentsByJournal() method.
|
||||
throw new NotImplementedException;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -638,16 +621,6 @@ class JournalRepository implements JournalRepositoryInterface
|
||||
return $events;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Transaction $transaction
|
||||
*
|
||||
* @return Collection
|
||||
*/
|
||||
public function getPiggyBankEventsbyTr(Transaction $transaction): Collection
|
||||
{
|
||||
return $transaction->transactionJournal->piggyBankEvents()->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all journals with more than 2 transactions. Should only return empty collections
|
||||
* in Firefly III > v4.8.0.
|
||||
@@ -692,14 +665,6 @@ class JournalRepository implements JournalRepositoryInterface
|
||||
return $journal->transactionType->type;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection
|
||||
*/
|
||||
public function getTransactionTypes(): Collection
|
||||
{
|
||||
return TransactionType::orderBy('type', 'ASC')->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $transactionIds
|
||||
*
|
||||
@@ -786,29 +751,6 @@ class JournalRepository implements JournalRepositoryInterface
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set meta field for journal that contains a date.
|
||||
*
|
||||
* @param TransactionJournal $journal
|
||||
* @param string $name
|
||||
* @param Carbon $date
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setMetaDate(TransactionJournal $journal, string $name, Carbon $date): void
|
||||
{
|
||||
/** @var TransactionJournalMetaFactory $factory */
|
||||
$factory = app(TransactionJournalMetaFactory::class);
|
||||
$factory->updateOrCreate(
|
||||
[
|
||||
'data' => $date,
|
||||
'journal' => $journal,
|
||||
'name' => $name,
|
||||
]
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param TransactionJournal $journal
|
||||
* @param int $order
|
||||
|
||||
@@ -26,6 +26,7 @@ use Carbon\Carbon;
|
||||
use FireflyIII\Exceptions\FireflyException;
|
||||
use FireflyIII\Models\Account;
|
||||
use FireflyIII\Models\Transaction;
|
||||
use FireflyIII\Models\TransactionGroup;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use FireflyIII\Models\TransactionJournalLink;
|
||||
use FireflyIII\Models\TransactionJournalMeta;
|
||||
@@ -36,6 +37,7 @@ use Illuminate\Support\MessageBag;
|
||||
|
||||
/**
|
||||
* Interface JournalRepositoryInterface.
|
||||
* TODO needs cleaning up. Remove unused methods.
|
||||
*/
|
||||
interface JournalRepositoryInterface
|
||||
{
|
||||
@@ -50,20 +52,18 @@ interface JournalRepositoryInterface
|
||||
public function convert(TransactionJournal $journal, TransactionType $type, Account $source, Account $destination): MessageBag;
|
||||
|
||||
/**
|
||||
* @param TransactionJournal $journal
|
||||
* Deletes a transaction group.
|
||||
*
|
||||
* @return int
|
||||
* @param TransactionGroup $transactionGroup
|
||||
*/
|
||||
public function countTransactions(TransactionJournal $journal): int;
|
||||
public function destroyGroup(TransactionGroup $transactionGroup): void;
|
||||
|
||||
/**
|
||||
* Deletes a journal.
|
||||
*
|
||||
* @param TransactionJournal $journal
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function destroy(TransactionJournal $journal): bool;
|
||||
public function destroyJournal(TransactionJournal $journal): void;
|
||||
|
||||
|
||||
/** @noinspection MoreThanThreeArgumentsInspection */
|
||||
@@ -86,13 +86,6 @@ interface JournalRepositoryInterface
|
||||
*/
|
||||
public function findNull(int $journalId): ?TransactionJournal;
|
||||
|
||||
/**
|
||||
* @param Transaction $transaction
|
||||
*
|
||||
* @return Transaction|null
|
||||
*/
|
||||
public function findOpposingTransaction(Transaction $transaction): ?Transaction;
|
||||
|
||||
/**
|
||||
* @param int $transactionid
|
||||
*
|
||||
@@ -123,13 +116,6 @@ interface JournalRepositoryInterface
|
||||
*/
|
||||
public function getAttachments(TransactionJournal $journal): Collection;
|
||||
|
||||
/**
|
||||
* @param Transaction $transaction
|
||||
*
|
||||
* @return Collection
|
||||
*/
|
||||
public function getAttachmentsByTr(Transaction $transaction): Collection;
|
||||
|
||||
/**
|
||||
* Returns the first positive transaction for the journal. Useful when editing journals.
|
||||
*
|
||||
@@ -264,13 +250,6 @@ interface JournalRepositoryInterface
|
||||
*/
|
||||
public function getPiggyBankEvents(TransactionJournal $journal): Collection;
|
||||
|
||||
/**
|
||||
* @param Transaction $transaction
|
||||
*
|
||||
* @return Collection
|
||||
*/
|
||||
public function getPiggyBankEventsbyTr(Transaction $transaction): Collection;
|
||||
|
||||
/**
|
||||
* Returns all journals with more than 2 transactions. Should only return empty collections
|
||||
* in Firefly III > v4.8.0.
|
||||
@@ -297,11 +276,6 @@ interface JournalRepositoryInterface
|
||||
*/
|
||||
public function getTransactionType(TransactionJournal $journal): string;
|
||||
|
||||
/**
|
||||
* @return Collection
|
||||
*/
|
||||
public function getTransactionTypes(): Collection;
|
||||
|
||||
/**
|
||||
* @param array $transactionIds
|
||||
*
|
||||
@@ -332,17 +306,6 @@ interface JournalRepositoryInterface
|
||||
*/
|
||||
public function reconcileById(int $transactionId): bool;
|
||||
|
||||
/**
|
||||
* Set meta field for journal that contains a date.
|
||||
*
|
||||
* @param TransactionJournal $journal
|
||||
* @param string $name
|
||||
* @param Carbon $date
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setMetaDate(TransactionJournal $journal, string $name, Carbon $date): void;
|
||||
|
||||
/**
|
||||
* @param TransactionJournal $journal
|
||||
* @param int $order
|
||||
@@ -362,15 +325,15 @@ interface JournalRepositoryInterface
|
||||
* @throws FireflyException
|
||||
* @return TransactionJournal
|
||||
*/
|
||||
public function store(array $data): TransactionJournal;
|
||||
public function store(array $data): TransactionGroup;
|
||||
|
||||
/**
|
||||
* @param TransactionJournal $journal
|
||||
* @param array $data
|
||||
* @param TransactionGroup $transactionGroup
|
||||
* @param array $data
|
||||
*
|
||||
* @return TransactionJournal
|
||||
* @return TransactionGroup
|
||||
*/
|
||||
public function update(TransactionJournal $journal, array $data): TransactionJournal;
|
||||
public function update(TransactionGroup $transactionGroup, array $data): TransactionGroup;
|
||||
|
||||
/**
|
||||
* Update budget for a journal.
|
||||
|
||||
Reference in New Issue
Block a user