mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-11-09 11:18:10 +00:00
gitMerge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop
This commit is contained in:
@@ -1,9 +1,10 @@
|
|||||||
parameters:
|
parameters:
|
||||||
|
scanFiles:
|
||||||
|
- ../_ide_helper_models.php
|
||||||
universalObjectCratesClasses:
|
universalObjectCratesClasses:
|
||||||
- Illuminate\Database\Eloquent\Model
|
- Illuminate\Database\Eloquent\Model
|
||||||
# TODO: slowly remove these parameters and fix the issues found.
|
# TODO: slowly remove these parameters and fix the issues found.
|
||||||
reportUnmatchedIgnoredErrors: false
|
reportUnmatchedIgnoredErrors: false
|
||||||
checkGenericClassInNonGenericObjectType: false # remove this rule when all other issues are solved.
|
|
||||||
ignoreErrors:
|
ignoreErrors:
|
||||||
# TODO: slowly remove these exceptions and fix the issues found.
|
# TODO: slowly remove these exceptions and fix the issues found.
|
||||||
- '#Dynamic call to static method#' # all the Laravel ORM things depend on this.
|
- '#Dynamic call to static method#' # all the Laravel ORM things depend on this.
|
||||||
@@ -11,6 +12,7 @@ parameters:
|
|||||||
- '#with no value type specified in iterable type array#' # remove this rule when all other issues are solved.
|
- '#with no value type specified in iterable type array#' # remove this rule when all other issues are solved.
|
||||||
- '#has no value type specified in iterable type array#' # remove this rule when all other issues are solved.
|
- '#has no value type specified in iterable type array#' # remove this rule when all other issues are solved.
|
||||||
- '#is not allowed to extend#'
|
- '#is not allowed to extend#'
|
||||||
|
- '#does not specify its types#'
|
||||||
- '#switch is forbidden to use#'
|
- '#switch is forbidden to use#'
|
||||||
- '#is neither abstract nor final#'
|
- '#is neither abstract nor final#'
|
||||||
- '#on left side of \?\?\= always exists and is not nullable#'
|
- '#on left side of \?\?\= always exists and is not nullable#'
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ use FireflyIII\Support\Http\Api\TransactionFilter;
|
|||||||
use FireflyIII\Transformers\CurrencyTransformer;
|
use FireflyIII\Transformers\CurrencyTransformer;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
use League\Fractal\Resource\Item;
|
use League\Fractal\Resource\Item;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -164,15 +165,22 @@ class UpdateController extends Controller
|
|||||||
public function update(UpdateRequest $request, TransactionCurrency $currency): JsonResponse
|
public function update(UpdateRequest $request, TransactionCurrency $currency): JsonResponse
|
||||||
{
|
{
|
||||||
$data = $request->getAll();
|
$data = $request->getAll();
|
||||||
|
Log::debug(__METHOD__, $data);
|
||||||
|
|
||||||
/** @var User $user */
|
/** @var User $user */
|
||||||
$user = auth()->user();
|
$user = auth()->user();
|
||||||
|
|
||||||
|
|
||||||
// safety catch on currency disablement.
|
// safety catch on currency disablement.
|
||||||
$set = $this->repository->get();
|
$set = $this->repository->get();
|
||||||
if (array_key_exists('enabled', $data) && false === $data['enabled'] && 1 === count($set) && $set->first()->id === $currency->id) {
|
if (array_key_exists('enabled', $data) && false === $data['enabled'] && 1 === count($set) && $set->first()->id === $currency->id) {
|
||||||
return response()->json([], 409);
|
return response()->json([], 409);
|
||||||
}
|
}
|
||||||
|
// second safety catch on currency disable.
|
||||||
|
if (array_key_exists('enabled', $data) && false === $data['enabled'] && $this->repository->currencyInUse($currency)) {
|
||||||
|
return response()->json([], 409);
|
||||||
|
}
|
||||||
|
|
||||||
$currency = $this->repository->update($currency, $data);
|
$currency = $this->repository->update($currency, $data);
|
||||||
|
|
||||||
app('preferences')->mark();
|
app('preferences')->mark();
|
||||||
|
|||||||
@@ -102,6 +102,7 @@ class PreferencesController extends Controller
|
|||||||
* TODO This endpoint is not documented.
|
* TODO This endpoint is not documented.
|
||||||
*
|
*
|
||||||
* Return a single preference by name.
|
* Return a single preference by name.
|
||||||
|
* @param Collection<int, Preference> $collection
|
||||||
*/
|
*/
|
||||||
public function showList(Collection $collection): JsonResponse
|
public function showList(Collection $collection): JsonResponse
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ class BalanceController extends Controller
|
|||||||
private AccountRepositoryInterface $repository;
|
private AccountRepositoryInterface $repository;
|
||||||
private GroupCollectorInterface $collector;
|
private GroupCollectorInterface $collector;
|
||||||
private ChartData $chartData;
|
private ChartData $chartData;
|
||||||
private TransactionCurrency $default;
|
// private TransactionCurrency $default;
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
@@ -61,7 +61,7 @@ class BalanceController extends Controller
|
|||||||
$this->repository->setUserGroup($userGroup);
|
$this->repository->setUserGroup($userGroup);
|
||||||
$this->collector->setUserGroup($userGroup);
|
$this->collector->setUserGroup($userGroup);
|
||||||
$this->chartData = new ChartData();
|
$this->chartData = new ChartData();
|
||||||
$this->default = app('amount')->getDefaultCurrency();
|
// $this->default = app('amount')->getDefaultCurrency();
|
||||||
|
|
||||||
return $next($request);
|
return $next($request);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,12 +81,13 @@ class AccountController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function show(AccountSchema $schema, AccountSingleQuery $request, Account $account)
|
public function show(AccountSchema $schema, AccountSingleQuery $request, Account $account)
|
||||||
{
|
{
|
||||||
$model = $schema
|
Log::debug(__METHOD__);
|
||||||
->repository()
|
$model = $schema->repository()
|
||||||
->queryOne($account)
|
->queryOne($account)
|
||||||
->withRequest($request)
|
->withRequest($request)
|
||||||
->first()
|
->first()
|
||||||
;
|
;
|
||||||
|
Log::debug(sprintf('%s again!', __METHOD__));
|
||||||
|
|
||||||
// do something custom...
|
// do something custom...
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ use FireflyIII\Console\Commands\ShowsFriendlyMessages;
|
|||||||
use FireflyIII\Models\Transaction;
|
use FireflyIII\Models\Transaction;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\Models\TransactionType;
|
use FireflyIII\Models\TransactionType;
|
||||||
use FireflyIII\Support\Facades\Steam;
|
use FireflyIII\Support\Models\AccountBalanceCalculator;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
@@ -48,8 +48,10 @@ class FixUnevenAmount extends Command
|
|||||||
public function handle(): int
|
public function handle(): int
|
||||||
{
|
{
|
||||||
$this->count = 0;
|
$this->count = 0;
|
||||||
|
$this->convertOldStyleTransfers();
|
||||||
$this->fixUnevenAmounts();
|
$this->fixUnevenAmounts();
|
||||||
$this->matchCurrencies();
|
$this->matchCurrencies();
|
||||||
|
AccountBalanceCalculator::forceRecalculateAll();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -76,6 +78,7 @@ class FixUnevenAmount extends Command
|
|||||||
Transaction::where('transaction_journal_id', $journal->id ?? 0)->forceDelete();
|
Transaction::where('transaction_journal_id', $journal->id ?? 0)->forceDelete();
|
||||||
TransactionJournal::where('id', $journal->id ?? 0)->forceDelete();
|
TransactionJournal::where('id', $journal->id ?? 0)->forceDelete();
|
||||||
++$this->count;
|
++$this->count;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,12 +100,14 @@ class FixUnevenAmount extends Command
|
|||||||
Transaction::where('transaction_journal_id', $journal->id ?? 0)->forceDelete();
|
Transaction::where('transaction_journal_id', $journal->id ?? 0)->forceDelete();
|
||||||
TransactionJournal::where('id', $journal->id ?? 0)->forceDelete();
|
TransactionJournal::where('id', $journal->id ?? 0)->forceDelete();
|
||||||
++$this->count;
|
++$this->count;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// may still be able to salvage this journal if it is a transfer with foreign currency info
|
// may still be able to salvage this journal if it is a transfer with foreign currency info
|
||||||
if($this->isForeignCurrencyTransfer($journal)) {
|
if ($this->isForeignCurrencyTransfer($journal)) {
|
||||||
Log::debug(sprintf('Can skip foreign currency transfer #%d.', $journal->id));
|
Log::debug(sprintf('Can skip foreign currency transfer #%d.', $journal->id));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -167,14 +172,17 @@ class FixUnevenAmount extends Command
|
|||||||
{
|
{
|
||||||
$journals = TransactionJournal::leftJoin('transactions', 'transaction_journals.id', 'transactions.transaction_journal_id')
|
$journals = TransactionJournal::leftJoin('transactions', 'transaction_journals.id', 'transactions.transaction_journal_id')
|
||||||
->where('transactions.transaction_currency_id', '!=', \DB::raw('transaction_journals.transaction_currency_id'))
|
->where('transactions.transaction_currency_id', '!=', \DB::raw('transaction_journals.transaction_currency_id'))
|
||||||
->get(['transaction_journals.*']);
|
->get(['transaction_journals.*'])
|
||||||
|
;
|
||||||
|
|
||||||
$count = 0;
|
$count = 0;
|
||||||
|
|
||||||
/** @var TransactionJournal $journal */
|
/** @var TransactionJournal $journal */
|
||||||
foreach ($journals as $journal) {
|
foreach ($journals as $journal) {
|
||||||
if(!$this->isForeignCurrencyTransfer($journal)) {
|
if (!$this->isForeignCurrencyTransfer($journal)) {
|
||||||
Transaction::where('transaction_journal_id', $journal->id)->update(['transaction_currency_id' => $journal->transaction_currency_id]);
|
Transaction::where('transaction_journal_id', $journal->id)->update(['transaction_currency_id' => $journal->transaction_currency_id]);
|
||||||
$count++;
|
++$count;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Log::debug(sprintf('Can skip foreign currency transfer #%d.', $journal->id));
|
Log::debug(sprintf('Can skip foreign currency transfer #%d.', $journal->id));
|
||||||
@@ -190,11 +198,13 @@ class FixUnevenAmount extends Command
|
|||||||
|
|
||||||
private function isForeignCurrencyTransfer(TransactionJournal $journal): bool
|
private function isForeignCurrencyTransfer(TransactionJournal $journal): bool
|
||||||
{
|
{
|
||||||
if(TransactionType::TRANSFER !== $journal->transactionType->type) {
|
if (TransactionType::TRANSFER !== $journal->transactionType->type) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var Transaction $destination */
|
/** @var Transaction $destination */
|
||||||
$destination = $journal->transactions()->where('amount', '>', 0)->first();
|
$destination = $journal->transactions()->where('amount', '>', 0)->first();
|
||||||
|
|
||||||
/** @var Transaction $source */
|
/** @var Transaction $source */
|
||||||
$source = $journal->transactions()->where('amount', '<', 0)->first();
|
$source = $journal->transactions()->where('amount', '<', 0)->first();
|
||||||
|
|
||||||
@@ -204,19 +214,79 @@ class FixUnevenAmount extends Command
|
|||||||
// dest amount = source foreign currency
|
// dest amount = source foreign currency
|
||||||
// dest currency = source foreign currency
|
// dest currency = source foreign currency
|
||||||
|
|
||||||
// Log::debug(sprintf('[a] %s', bccomp(app('steam')->positive($source->amount), app('steam')->positive($destination->foreign_amount))));
|
// Log::debug(sprintf('[a] %s', bccomp(app('steam')->positive($source->amount), app('steam')->positive($destination->foreign_amount))));
|
||||||
// Log::debug(sprintf('[b] %s', bccomp(app('steam')->positive($destination->amount), app('steam')->positive($source->foreign_amount))));
|
// Log::debug(sprintf('[b] %s', bccomp(app('steam')->positive($destination->amount), app('steam')->positive($source->foreign_amount))));
|
||||||
// Log::debug(sprintf('[c] %s', var_export($source->transaction_currency_id === $destination->foreign_currency_id,true)));
|
// Log::debug(sprintf('[c] %s', var_export($source->transaction_currency_id === $destination->foreign_currency_id,true)));
|
||||||
// Log::debug(sprintf('[d] %s', var_export((int) $destination->transaction_currency_id ===(int) $source->foreign_currency_id, true)));
|
// Log::debug(sprintf('[d] %s', var_export((int) $destination->transaction_currency_id ===(int) $source->foreign_currency_id, true)));
|
||||||
|
|
||||||
if(0 === bccomp(app('steam')->positive($source->amount), app('steam')->positive($destination->foreign_amount)) &&
|
if (0 === bccomp(app('steam')->positive($source->amount), app('steam')->positive($destination->foreign_amount))
|
||||||
$source->transaction_currency_id === $destination->foreign_currency_id &&
|
&& $source->transaction_currency_id === $destination->foreign_currency_id
|
||||||
0 === bccomp(app('steam')->positive($destination->amount), app('steam')->positive($source->foreign_amount)) &&
|
&& 0 === bccomp(app('steam')->positive($destination->amount), app('steam')->positive($source->foreign_amount))
|
||||||
(int) $destination->transaction_currency_id === (int) $source->foreign_currency_id
|
&& (int) $destination->transaction_currency_id === (int) $source->foreign_currency_id
|
||||||
) {
|
) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function convertOldStyleTransfers(): void
|
||||||
|
{
|
||||||
|
Log::debug('convertOldStyleTransfers()');
|
||||||
|
// select transactions with a foreign amount and a foreign currency. and it's a transfer. and they are different.
|
||||||
|
$transactions = Transaction::distinct()
|
||||||
|
->whereNotNull('foreign_currency_id')
|
||||||
|
->whereNotNull('foreign_amount')->get(['transactions.transaction_journal_id'])
|
||||||
|
;
|
||||||
|
$count = 0;
|
||||||
|
|
||||||
|
Log::debug(sprintf('Found %d potential journal(s)', $transactions->count()));
|
||||||
|
|
||||||
|
/** @var Transaction $transaction */
|
||||||
|
foreach ($transactions as $transaction) {
|
||||||
|
/** @var null|TransactionJournal $journal */
|
||||||
|
$journal = TransactionJournal::find($transaction->transaction_journal_id);
|
||||||
|
if (null === $journal) {
|
||||||
|
Log::debug('Found no journal, continue.');
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// needs to be a transfer.
|
||||||
|
if (TransactionType::TRANSFER !== $journal->transactionType->type) {
|
||||||
|
Log::debug('Must be a transfer, continue.');
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var null|Transaction $destination */
|
||||||
|
$destination = $journal->transactions()->where('amount', '>', 0)->first();
|
||||||
|
|
||||||
|
/** @var null|Transaction $source */
|
||||||
|
$source = $journal->transactions()->where('amount', '<', 0)->first();
|
||||||
|
if (null === $destination || null === $source) {
|
||||||
|
Log::debug('Source or destination transaction is NULL, continue.');
|
||||||
|
|
||||||
|
// will be picked up later.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ($source->transaction_currency_id === $destination->transaction_currency_id) {
|
||||||
|
Log::debug('Ready to swap data between transactions.');
|
||||||
|
$destination->foreign_currency_id = $source->transaction_currency_id;
|
||||||
|
$destination->foreign_amount = app('steam')->positive($source->amount);
|
||||||
|
$destination->transaction_currency_id = $source->foreign_currency_id;
|
||||||
|
$destination->amount = app('steam')->positive($source->foreign_amount);
|
||||||
|
$destination->balance_dirty = true;
|
||||||
|
$source->balance_dirty = true;
|
||||||
|
$destination->save();
|
||||||
|
$source->save();
|
||||||
|
$this->friendlyWarning(sprintf('Corrected foreign amounts of transfer #%d.', $journal->id));
|
||||||
|
++$count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (0 === $count) {
|
||||||
|
$this->friendlyPositive('No "old style" foreign currency transfers.');
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,9 +44,10 @@ class CorrectAccountBalance extends Command
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
$this->correctBalanceAmounts();
|
$this->friendlyWarning('This command has been disabled.');
|
||||||
$this->markAsExecuted();
|
$this->markAsExecuted();
|
||||||
|
|
||||||
|
// $this->correctBalanceAmounts();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ class OtherCurrenciesCorrections extends Command
|
|||||||
{
|
{
|
||||||
$configVar = app('fireflyconfig')->get(self::CONFIG_NAME, false);
|
$configVar = app('fireflyconfig')->get(self::CONFIG_NAME, false);
|
||||||
if (null !== $configVar) {
|
if (null !== $configVar) {
|
||||||
return (bool)$configVar->data;
|
return (bool) $configVar->data;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -130,6 +130,7 @@ class OtherCurrenciesCorrections extends Command
|
|||||||
|
|
||||||
$account = $leadTransaction->account;
|
$account = $leadTransaction->account;
|
||||||
$currency = $this->getCurrency($account);
|
$currency = $this->getCurrency($account);
|
||||||
|
$isMultiCurrency = $this->isMultiCurrency($account);
|
||||||
if (null === $currency) {
|
if (null === $currency) {
|
||||||
$this->friendlyError(
|
$this->friendlyError(
|
||||||
sprintf(
|
sprintf(
|
||||||
@@ -145,14 +146,14 @@ class OtherCurrenciesCorrections extends Command
|
|||||||
}
|
}
|
||||||
// fix each transaction:
|
// fix each transaction:
|
||||||
$journal->transactions->each(
|
$journal->transactions->each(
|
||||||
static function (Transaction $transaction) use ($currency): void {
|
static function (Transaction $transaction) use ($currency, $isMultiCurrency): void {
|
||||||
if (null === $transaction->transaction_currency_id) {
|
if (null === $transaction->transaction_currency_id) {
|
||||||
$transaction->transaction_currency_id = $currency->id;
|
$transaction->transaction_currency_id = $currency->id;
|
||||||
$transaction->save();
|
$transaction->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
// when mismatch in transaction:
|
// when mismatch in transaction:
|
||||||
if ($transaction->transaction_currency_id !== $currency->id) {
|
if ($transaction->transaction_currency_id !== $currency->id && !$isMultiCurrency) {
|
||||||
$transaction->foreign_currency_id = $transaction->transaction_currency_id;
|
$transaction->foreign_currency_id = $transaction->transaction_currency_id;
|
||||||
$transaction->foreign_amount = $transaction->amount;
|
$transaction->foreign_amount = $transaction->amount;
|
||||||
$transaction->transaction_currency_id = $currency->id;
|
$transaction->transaction_currency_id = $currency->id;
|
||||||
@@ -161,7 +162,9 @@ class OtherCurrenciesCorrections extends Command
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
// also update the journal, of course:
|
// also update the journal, of course:
|
||||||
|
if (!$isMultiCurrency) {
|
||||||
$journal->transaction_currency_id = $currency->id;
|
$journal->transaction_currency_id = $currency->id;
|
||||||
|
}
|
||||||
++$this->count;
|
++$this->count;
|
||||||
$journal->save();
|
$journal->save();
|
||||||
}
|
}
|
||||||
@@ -239,4 +242,13 @@ class OtherCurrenciesCorrections extends Command
|
|||||||
{
|
{
|
||||||
app('fireflyconfig')->set(self::CONFIG_NAME, true);
|
app('fireflyconfig')->set(self::CONFIG_NAME, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function isMultiCurrency(Account $account): bool
|
||||||
|
{
|
||||||
|
$value = $this->accountRepos->getMetaValue($account, 'is_multi_currency', false);
|
||||||
|
if (false === $value || null === $value) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return '1' === $value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -268,8 +268,8 @@ class TransactionJournalFactory
|
|||||||
// see the currency they expect to see.
|
// see the currency they expect to see.
|
||||||
$amount = (string)$row['amount'];
|
$amount = (string)$row['amount'];
|
||||||
$foreignAmount = (string)$row['foreign_amount'];
|
$foreignAmount = (string)$row['foreign_amount'];
|
||||||
if(null !== $foreignCurrency && $foreignCurrency->id !== $currency->id &&
|
if (null !== $foreignCurrency && $foreignCurrency->id !== $currency->id
|
||||||
TransactionType::TRANSFER === $type->type
|
&& TransactionType::TRANSFER === $type->type
|
||||||
) {
|
) {
|
||||||
$transactionFactory->setCurrency($foreignCurrency);
|
$transactionFactory->setCurrency($foreignCurrency);
|
||||||
$transactionFactory->setForeignCurrency($currency);
|
$transactionFactory->setForeignCurrency($currency);
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ use FireflyIII\Http\Middleware\IsDemoUser;
|
|||||||
use FireflyIII\Models\AccountType;
|
use FireflyIII\Models\AccountType;
|
||||||
use FireflyIII\Models\TransactionType;
|
use FireflyIII\Models\TransactionType;
|
||||||
use FireflyIII\Support\Http\Controllers\GetConfigurationData;
|
use FireflyIII\Support\Http\Controllers\GetConfigurationData;
|
||||||
|
use FireflyIII\Support\Models\AccountBalanceCalculator;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Contracts\View\Factory;
|
use Illuminate\Contracts\View\Factory;
|
||||||
use Illuminate\Http\RedirectResponse;
|
use Illuminate\Http\RedirectResponse;
|
||||||
@@ -94,6 +95,7 @@ class DebugController extends Controller
|
|||||||
|
|
||||||
// also do some recalculations.
|
// also do some recalculations.
|
||||||
Artisan::call('firefly-iii:trigger-credit-recalculation');
|
Artisan::call('firefly-iii:trigger-credit-recalculation');
|
||||||
|
AccountBalanceCalculator::forceRecalculateAll();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Artisan::call('twig:clean');
|
Artisan::call('twig:clean');
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ namespace FireflyIII\JsonApi\V2\Accounts;
|
|||||||
|
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Rules\IsAllowedGroupAction;
|
use FireflyIII\Rules\IsAllowedGroupAction;
|
||||||
|
use FireflyIII\Rules\IsDateOrTime;
|
||||||
|
use FireflyIII\Rules\IsValidDateRange;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use LaravelJsonApi\Laravel\Http\Requests\ResourceQuery;
|
use LaravelJsonApi\Laravel\Http\Requests\ResourceQuery;
|
||||||
use LaravelJsonApi\Validation\Rule as JsonApiRule;
|
use LaravelJsonApi\Validation\Rule as JsonApiRule;
|
||||||
@@ -25,11 +27,23 @@ class AccountCollectionQuery extends ResourceQuery
|
|||||||
'array',
|
'array',
|
||||||
JsonApiRule::fieldSets(),
|
JsonApiRule::fieldSets(),
|
||||||
],
|
],
|
||||||
'user_group_id' => [
|
'userGroupId' => [
|
||||||
'nullable',
|
'nullable',
|
||||||
'integer',
|
'integer',
|
||||||
new IsAllowedGroupAction(Account::class, request()->method()),
|
new IsAllowedGroupAction(Account::class, request()->method()),
|
||||||
],
|
],
|
||||||
|
'startPeriod' => [
|
||||||
|
'nullable',
|
||||||
|
'date',
|
||||||
|
new IsDateOrTime(),
|
||||||
|
new isValidDateRange(),
|
||||||
|
],
|
||||||
|
'endPeriod' => [
|
||||||
|
'nullable',
|
||||||
|
'date',
|
||||||
|
new IsDateOrTime(),
|
||||||
|
new isValidDateRange(),
|
||||||
|
],
|
||||||
'filter' => [
|
'filter' => [
|
||||||
'nullable',
|
'nullable',
|
||||||
'array',
|
'array',
|
||||||
@@ -45,6 +59,15 @@ class AccountCollectionQuery extends ResourceQuery
|
|||||||
'array',
|
'array',
|
||||||
JsonApiRule::page(),
|
JsonApiRule::page(),
|
||||||
],
|
],
|
||||||
|
'page.number' => [
|
||||||
|
'integer',
|
||||||
|
'min:1',
|
||||||
|
],
|
||||||
|
|
||||||
|
'page.size' => [
|
||||||
|
'integer',
|
||||||
|
'min:1',
|
||||||
|
],
|
||||||
'sort' => [
|
'sort' => [
|
||||||
'nullable',
|
'nullable',
|
||||||
'string',
|
'string',
|
||||||
|
|||||||
@@ -29,8 +29,10 @@ use FireflyIII\Support\JsonApi\Enrichments\AccountEnrichment;
|
|||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use LaravelJsonApi\Contracts\Store\CreatesResources;
|
use LaravelJsonApi\Contracts\Store\CreatesResources;
|
||||||
use LaravelJsonApi\Contracts\Store\QueriesAll;
|
use LaravelJsonApi\Contracts\Store\QueriesAll;
|
||||||
|
use LaravelJsonApi\Contracts\Store\QueryOneBuilder;
|
||||||
use LaravelJsonApi\NonEloquent\AbstractRepository;
|
use LaravelJsonApi\NonEloquent\AbstractRepository;
|
||||||
use LaravelJsonApi\NonEloquent\Capabilities\CrudRelations;
|
use LaravelJsonApi\NonEloquent\Capabilities\CrudRelations;
|
||||||
|
use LaravelJsonApi\NonEloquent\Capabilities\CrudResource;
|
||||||
use LaravelJsonApi\NonEloquent\Concerns\HasCrudCapability;
|
use LaravelJsonApi\NonEloquent\Concerns\HasCrudCapability;
|
||||||
use LaravelJsonApi\NonEloquent\Concerns\HasRelationsCapability;
|
use LaravelJsonApi\NonEloquent\Concerns\HasRelationsCapability;
|
||||||
|
|
||||||
@@ -55,17 +57,21 @@ class AccountRepository extends AbstractRepository implements QueriesAll, Create
|
|||||||
/**
|
/**
|
||||||
* SiteRepository constructor.
|
* SiteRepository constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct() {}
|
public function __construct() {
|
||||||
|
Log::debug(__METHOD__);
|
||||||
|
}
|
||||||
|
|
||||||
public function exists(string $resourceId): bool
|
public function exists(string $resourceId): bool
|
||||||
{
|
{
|
||||||
Log::debug(__METHOD__);
|
$result = null !== Account::find((int) $resourceId);
|
||||||
|
Log::debug(sprintf('%s: %s',__METHOD__, var_export($result, true)));
|
||||||
|
|
||||||
return null !== Account::find((int) $resourceId);
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function find(string $resourceId): ?object
|
public function find(string $resourceId): ?object
|
||||||
{
|
{
|
||||||
|
die(__METHOD__);
|
||||||
Log::debug(__METHOD__);
|
Log::debug(__METHOD__);
|
||||||
// throw new \RuntimeException('trace me');
|
// throw new \RuntimeException('trace me');
|
||||||
$account = Account::find((int) $resourceId);
|
$account = Account::find((int) $resourceId);
|
||||||
@@ -91,11 +97,13 @@ class AccountRepository extends AbstractRepository implements QueriesAll, Create
|
|||||||
|
|
||||||
protected function crud(): Capabilities\CrudAccount
|
protected function crud(): Capabilities\CrudAccount
|
||||||
{
|
{
|
||||||
|
Log::debug(__METHOD__);
|
||||||
return Capabilities\CrudAccount::make();
|
return Capabilities\CrudAccount::make();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function relations(): CrudRelations
|
protected function relations(): CrudRelations
|
||||||
{
|
{
|
||||||
|
Log::debug(__METHOD__);
|
||||||
return Capabilities\CrudAccountRelations::make();
|
return Capabilities\CrudAccountRelations::make();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,9 +19,10 @@ class AccountResource extends JsonApiResource
|
|||||||
*/
|
*/
|
||||||
public function id(): string
|
public function id(): string
|
||||||
{
|
{
|
||||||
Log::debug(__METHOD__);
|
$id = (string) $this->resource->id;
|
||||||
|
Log::debug(sprintf('%s: "%s"', __METHOD__, $id));
|
||||||
|
|
||||||
return (string) $this->resource->id;
|
return $id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -39,24 +40,37 @@ class AccountResource extends JsonApiResource
|
|||||||
'name' => $this->resource->name,
|
'name' => $this->resource->name,
|
||||||
'active' => $this->resource->active,
|
'active' => $this->resource->active,
|
||||||
'order' => $this->resource->order,
|
'order' => $this->resource->order,
|
||||||
|
'iban' => $this->resource->iban,
|
||||||
'type' => $this->resource->account_type_string,
|
'type' => $this->resource->account_type_string,
|
||||||
'account_role' => $this->resource->account_role,
|
'account_role' => $this->resource->account_role,
|
||||||
'account_number' => '' === $this->resource->account_number ? null : $this->resource->account_number,
|
'account_number' => '' === $this->resource->account_number ? null : $this->resource->account_number,
|
||||||
|
|
||||||
// currency
|
// currency (if the account has a currency setting, otherwise NULL).
|
||||||
'currency_id' => $this->resource->currency_id,
|
'currency_id' => $this->resource->currency_id,
|
||||||
'currency_name' => $this->resource->currency_name,
|
'currency_name' => $this->resource->currency_name,
|
||||||
'currency_code' => $this->resource->currency_code,
|
'currency_code' => $this->resource->currency_code,
|
||||||
'currency_symbol' => $this->resource->currency_symbol,
|
'currency_symbol' => $this->resource->currency_symbol,
|
||||||
'currency_decimal_places' => $this->resource->currency_decimal_places,
|
'currency_decimal_places' => $this->resource->currency_decimal_places,
|
||||||
|
'is_multi_currency' => '1' === $this->resource->is_multi_currency,
|
||||||
|
|
||||||
|
// balances
|
||||||
|
'balance' => $this->resource->balance,
|
||||||
|
'native_balance' => $this->resource->native_balance,
|
||||||
|
|
||||||
// liability things
|
// liability things
|
||||||
'liability_direction' => $this->resource->liability_direction,
|
'liability_direction' => $this->resource->liability_direction,
|
||||||
'interest' => $this->resource->interest,
|
'interest' => $this->resource->interest,
|
||||||
'interest_period' => $this->resource->interest_period,
|
'interest_period' => $this->resource->interest_period,
|
||||||
'current_debt' => $this->resource->current_debt,
|
'current_debt' => $this->resource->current_debt, // TODO may be removed in the future.
|
||||||
|
|
||||||
|
// other things
|
||||||
'last_activity' => $this->resource->last_activity,
|
'last_activity' => $this->resource->last_activity,
|
||||||
|
|
||||||
|
|
||||||
|
// object group
|
||||||
|
'object_group_id' => $this->resource->object_group_id,
|
||||||
|
'object_group_title' => $this->resource->object_group_title,
|
||||||
|
'object_group_order' => $this->resource->object_group_order,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ class AccountSchema extends Schema
|
|||||||
*/
|
*/
|
||||||
public function fields(): array
|
public function fields(): array
|
||||||
{
|
{
|
||||||
Log::debug(__METHOD__);
|
// Log::debug(__METHOD__);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
ID::make(),
|
ID::make(),
|
||||||
@@ -38,6 +38,7 @@ class AccountSchema extends Schema
|
|||||||
Attribute::make('name'),
|
Attribute::make('name'),
|
||||||
Attribute::make('active'),
|
Attribute::make('active'),
|
||||||
Attribute::make('order'),
|
Attribute::make('order'),
|
||||||
|
Attribute::make('iban'),
|
||||||
Attribute::make('type'),
|
Attribute::make('type'),
|
||||||
Attribute::make('account_role'),
|
Attribute::make('account_role'),
|
||||||
Attribute::make('account_number'),
|
Attribute::make('account_number'),
|
||||||
@@ -48,6 +49,11 @@ class AccountSchema extends Schema
|
|||||||
Attribute::make('currency_code'),
|
Attribute::make('currency_code'),
|
||||||
Attribute::make('currency_symbol'),
|
Attribute::make('currency_symbol'),
|
||||||
Attribute::make('currency_decimal_places'),
|
Attribute::make('currency_decimal_places'),
|
||||||
|
Attribute::make('is_multi_currency'),
|
||||||
|
|
||||||
|
// balance
|
||||||
|
Attribute::make('balance'),
|
||||||
|
Attribute::make('native_balance'),
|
||||||
|
|
||||||
// liability things
|
// liability things
|
||||||
Attribute::make('liability_direction'),
|
Attribute::make('liability_direction'),
|
||||||
@@ -58,6 +64,12 @@ class AccountSchema extends Schema
|
|||||||
// dynamic data
|
// dynamic data
|
||||||
Attribute::make('last_activity'),
|
Attribute::make('last_activity'),
|
||||||
|
|
||||||
|
// group
|
||||||
|
Attribute::make('object_group_id'),
|
||||||
|
Attribute::make('object_group_title'),
|
||||||
|
Attribute::make('object_group_order'),
|
||||||
|
|
||||||
|
// relations.
|
||||||
HasOne::make('user')->readOnly(),
|
HasOne::make('user')->readOnly(),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -67,7 +79,7 @@ class AccountSchema extends Schema
|
|||||||
*/
|
*/
|
||||||
public function filters(): array
|
public function filters(): array
|
||||||
{
|
{
|
||||||
Log::debug(__METHOD__);
|
// Log::debug(__METHOD__);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
Filter::make('id'),
|
Filter::make('id'),
|
||||||
@@ -76,13 +88,12 @@ class AccountSchema extends Schema
|
|||||||
|
|
||||||
public function repository(): AccountRepository
|
public function repository(): AccountRepository
|
||||||
{
|
{
|
||||||
Log::debug(__METHOD__);
|
|
||||||
$this->setUserGroup($this->server->getUsergroup());
|
$this->setUserGroup($this->server->getUsergroup());
|
||||||
|
$repository = AccountRepository::make()
|
||||||
return AccountRepository::make()
|
|
||||||
->withServer($this->server)
|
->withServer($this->server)
|
||||||
->withSchema($this)
|
->withSchema($this)
|
||||||
->withUserGroup($this->userGroup)
|
->withUserGroup($this->userGroup);
|
||||||
;
|
Log::debug(sprintf('%s: %s', __METHOD__, get_class($repository)));
|
||||||
|
return $repository;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\JsonApi\V2\Accounts\Capabilities;
|
namespace FireflyIII\JsonApi\V2\Accounts\Capabilities;
|
||||||
|
|
||||||
|
use FireflyIII\Support\JsonApi\CollectsCustomParameters;
|
||||||
use FireflyIII\Support\JsonApi\Concerns\UsergroupAware;
|
use FireflyIII\Support\JsonApi\Concerns\UsergroupAware;
|
||||||
use FireflyIII\Support\JsonApi\Enrichments\AccountEnrichment;
|
use FireflyIII\Support\JsonApi\Enrichments\AccountEnrichment;
|
||||||
use FireflyIII\Support\JsonApi\ExpandsQuery;
|
use FireflyIII\Support\JsonApi\ExpandsQuery;
|
||||||
@@ -42,10 +43,13 @@ class AccountQuery extends QueryAll implements HasPagination
|
|||||||
use SortsCollection;
|
use SortsCollection;
|
||||||
use UsergroupAware;
|
use UsergroupAware;
|
||||||
use ValidateSortParameters;
|
use ValidateSortParameters;
|
||||||
|
use CollectsCustomParameters;
|
||||||
|
|
||||||
#[\Override]
|
#[\Override]
|
||||||
/**
|
/**
|
||||||
* This method returns all accounts, given a bunch of filters and sort fields, together with pagination.
|
* This method returns all accounts, given a bunch of filters and sort fields, together with pagination.
|
||||||
|
*
|
||||||
|
* It is only used on the index, and nowhere else.
|
||||||
*/
|
*/
|
||||||
public function get(): iterable
|
public function get(): iterable
|
||||||
{
|
{
|
||||||
@@ -60,6 +64,9 @@ class AccountQuery extends QueryAll implements HasPagination
|
|||||||
// This is necessary when the user wants to sort on specific params.
|
// This is necessary when the user wants to sort on specific params.
|
||||||
$needsAll = $this->needsFullDataset('account', $sort);
|
$needsAll = $this->needsFullDataset('account', $sort);
|
||||||
|
|
||||||
|
// params that were not recognised, may be my own custom stuff.
|
||||||
|
$otherParams = $this->getOtherParams($this->queryParameters->unrecognisedParameters());
|
||||||
|
|
||||||
// start the query
|
// start the query
|
||||||
$query = $this->userGroup->accounts();
|
$query = $this->userGroup->accounts();
|
||||||
|
|
||||||
@@ -72,11 +79,14 @@ class AccountQuery extends QueryAll implements HasPagination
|
|||||||
$query = $this->addSortParams($query, $sort);
|
$query = $this->addSortParams($query, $sort);
|
||||||
$query = $this->addFilterParams('account', $query, $filters);
|
$query = $this->addFilterParams('account', $query, $filters);
|
||||||
|
|
||||||
|
|
||||||
// collect the result.
|
// collect the result.
|
||||||
$collection = $query->get(['accounts.*']);
|
$collection = $query->get(['accounts.*']);
|
||||||
|
|
||||||
// enrich the collected data
|
// enrich the collected data
|
||||||
$enrichment = new AccountEnrichment();
|
$enrichment = new AccountEnrichment();
|
||||||
|
$enrichment->setStart($otherParams['start'] ?? null);
|
||||||
|
$enrichment->setEnd($otherParams['end'] ?? null);
|
||||||
$collection = $enrichment->enrich($collection);
|
$collection = $enrichment->enrich($collection);
|
||||||
|
|
||||||
// TODO add filters after the query, if there are filters that cannot be applied to the database but only
|
// TODO add filters after the query, if there are filters that cannot be applied to the database but only
|
||||||
|
|||||||
@@ -24,19 +24,31 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\JsonApi\V2\Accounts\Capabilities;
|
namespace FireflyIII\JsonApi\V2\Accounts\Capabilities;
|
||||||
|
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
|
use FireflyIII\Support\JsonApi\CollectsCustomParameters;
|
||||||
use FireflyIII\Support\JsonApi\Enrichments\AccountEnrichment;
|
use FireflyIII\Support\JsonApi\Enrichments\AccountEnrichment;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
use LaravelJsonApi\NonEloquent\Capabilities\CrudResource;
|
use LaravelJsonApi\NonEloquent\Capabilities\CrudResource;
|
||||||
|
|
||||||
class CrudAccount extends CrudResource
|
class CrudAccount extends CrudResource
|
||||||
{
|
{
|
||||||
|
use CollectsCustomParameters;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read the supplied site.
|
* Read the supplied site.
|
||||||
*/
|
*/
|
||||||
public function read(Account $account): ?Account
|
public function read(Account $account): ?Account
|
||||||
{
|
{
|
||||||
|
$otherParams = $this->getOtherParams($this->request->query->all());
|
||||||
|
|
||||||
|
Log::debug(__METHOD__);
|
||||||
// enrich the collected data
|
// enrich the collected data
|
||||||
$enrichment = new AccountEnrichment();
|
$enrichment = new AccountEnrichment();
|
||||||
|
|
||||||
|
// set start and date, if present.
|
||||||
|
$enrichment->setStart($otherParams['start'] ?? null);
|
||||||
|
$enrichment->setEnd($otherParams['end'] ?? null);
|
||||||
|
|
||||||
|
|
||||||
return $enrichment->enrichSingle($account);
|
return $enrichment->enrichSingle($account);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class Server extends BaseServer
|
|||||||
*/
|
*/
|
||||||
protected function allSchemas(): array
|
protected function allSchemas(): array
|
||||||
{
|
{
|
||||||
Log::debug(__METHOD__);
|
// Log::debug(__METHOD__);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
AccountSchema::class,
|
AccountSchema::class,
|
||||||
|
|||||||
@@ -23,15 +23,12 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
|
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
|
||||||
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
|
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
@@ -39,83 +36,10 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
|
|||||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphToMany;
|
use Illuminate\Database\Eloquent\Relations\MorphToMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Account
|
* @mixin IdeHelperAccount
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property int $account_type_id
|
|
||||||
* @property string $account_type_string
|
|
||||||
* @property string $name
|
|
||||||
* @property string $virtual_balance
|
|
||||||
* @property null|string $iban
|
|
||||||
* @property bool $active
|
|
||||||
* @property bool $encrypted
|
|
||||||
* @property int $order
|
|
||||||
* @property AccountMeta[]|Collection $accountMeta
|
|
||||||
* @property null|int $account_meta_count
|
|
||||||
* @property AccountType $accountType
|
|
||||||
* @property Attachment[]|Collection $attachments
|
|
||||||
* @property null|int $attachments_count
|
|
||||||
* @property string $account_number
|
|
||||||
* @property string $edit_name
|
|
||||||
* @property Collection|Location[] $locations
|
|
||||||
* @property null|int $locations_count
|
|
||||||
* @property Collection|Note[] $notes
|
|
||||||
* @property null|int $notes_count
|
|
||||||
* @property Collection|ObjectGroup[] $objectGroups
|
|
||||||
* @property null|int $object_groups_count
|
|
||||||
* @property Collection|PiggyBank[] $piggyBanks
|
|
||||||
* @property null|int $piggy_banks_count
|
|
||||||
* @property Collection|Transaction[] $transactions
|
|
||||||
* @property null|int $transactions_count
|
|
||||||
* @property User $user
|
|
||||||
* @property string $last_activity
|
|
||||||
*
|
|
||||||
* @method static EloquentBuilder|Account accountTypeIn($types)
|
|
||||||
* @method static EloquentBuilder|Account newModelQuery()
|
|
||||||
* @method static EloquentBuilder|Account newQuery()
|
|
||||||
* @method static Builder|Account onlyTrashed()
|
|
||||||
* @method static EloquentBuilder|Account query()
|
|
||||||
* @method static EloquentBuilder|Account whereAccountTypeId($value)
|
|
||||||
* @method static EloquentBuilder|Account whereActive($value)
|
|
||||||
* @method static EloquentBuilder|Account whereCreatedAt($value)
|
|
||||||
* @method static EloquentBuilder|Account whereDeletedAt($value)
|
|
||||||
* @method static EloquentBuilder|Account whereEncrypted($value)
|
|
||||||
* @method static EloquentBuilder|Account whereIban($value)
|
|
||||||
* @method static EloquentBuilder|Account whereId($value)
|
|
||||||
* @method static EloquentBuilder|Account whereName($value)
|
|
||||||
* @method static EloquentBuilder|Account whereOrder($value)
|
|
||||||
* @method static EloquentBuilder|Account whereUpdatedAt($value)
|
|
||||||
* @method static EloquentBuilder|Account whereUserId($value)
|
|
||||||
* @method static EloquentBuilder|Account whereVirtualBalance($value)
|
|
||||||
* @method static Builder|Account withTrashed()
|
|
||||||
* @method static Builder|Account withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property Carbon $lastActivityDate
|
|
||||||
* @property string $startBalance
|
|
||||||
* @property string $endBalance
|
|
||||||
* @property string $difference
|
|
||||||
* @property string $interest
|
|
||||||
* @property string $interestPeriod
|
|
||||||
* @property string $accountTypeString
|
|
||||||
* @property Location $location
|
|
||||||
* @property string $liability_direction
|
|
||||||
* @property string $current_debt
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static EloquentBuilder|Account whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @property null|UserGroup $userGroup
|
|
||||||
* @property mixed $account_id
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Account extends Model
|
class Account extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @mixin IdeHelperAccountBalance
|
||||||
|
*/
|
||||||
class AccountBalance extends Model
|
class AccountBalance extends Model
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|||||||
@@ -23,35 +23,12 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class AccountMeta
|
* @mixin IdeHelperAccountMeta
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property int $account_id
|
|
||||||
* @property string $name
|
|
||||||
* @property mixed $data
|
|
||||||
* @property Account $account
|
|
||||||
*
|
|
||||||
* @method static Builder|AccountMeta newModelQuery()
|
|
||||||
* @method static Builder|AccountMeta newQuery()
|
|
||||||
* @method static Builder|AccountMeta query()
|
|
||||||
* @method static Builder|AccountMeta whereAccountId($value)
|
|
||||||
* @method static Builder|AccountMeta whereCreatedAt($value)
|
|
||||||
* @method static Builder|AccountMeta whereData($value)
|
|
||||||
* @method static Builder|AccountMeta whereId($value)
|
|
||||||
* @method static Builder|AccountMeta whereName($value)
|
|
||||||
* @method static Builder|AccountMeta whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class AccountMeta extends Model
|
class AccountMeta extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,33 +23,12 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\AccountType
|
* @mixin IdeHelperAccountType
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property string $type
|
|
||||||
* @property Account[]|Collection $accounts
|
|
||||||
* @property null|int $accounts_count
|
|
||||||
*
|
|
||||||
* @method static Builder|AccountType newModelQuery()
|
|
||||||
* @method static Builder|AccountType newQuery()
|
|
||||||
* @method static Builder|AccountType query()
|
|
||||||
* @method static Builder|AccountType whereCreatedAt($value)
|
|
||||||
* @method static Builder|AccountType whereId($value)
|
|
||||||
* @method static Builder|AccountType whereType($value)
|
|
||||||
* @method static Builder|AccountType whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class AccountType extends Model
|
class AccountType extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,71 +23,19 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Attachment
|
* @mixin IdeHelperAttachment
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property int $attachable_id
|
|
||||||
* @property string $attachable_type
|
|
||||||
* @property bool $file_exists
|
|
||||||
* @property string $md5
|
|
||||||
* @property string $filename
|
|
||||||
* @property null|string $title
|
|
||||||
* @property null|string $description
|
|
||||||
* @property string $mime
|
|
||||||
* @property int|string $size
|
|
||||||
* @property bool $uploaded
|
|
||||||
* @property string $notes_text
|
|
||||||
* @property \Eloquent|Model $attachable
|
|
||||||
* @property Collection|Note[] $notes
|
|
||||||
* @property null|int $notes_count
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment newQuery()
|
|
||||||
* @method static Builder|Attachment onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereAttachableId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereAttachableType($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereDescription($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereFilename($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereMd5($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereMime($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereSize($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereTitle($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereUploaded($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereUserId($value)
|
|
||||||
* @method static Builder|Attachment withTrashed()
|
|
||||||
* @method static Builder|Attachment withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Attachment whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Attachment extends Model
|
class Attachment extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,53 +24,14 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class AuditLogEntry
|
* @mixin IdeHelperAuditLogEntry
|
||||||
*
|
|
||||||
* @property \Eloquent|Model $auditable
|
|
||||||
* @property \Eloquent|Model $changer
|
|
||||||
*
|
|
||||||
* @method static Builder|AuditLogEntry newModelQuery()
|
|
||||||
* @method static Builder|AuditLogEntry newQuery()
|
|
||||||
* @method static \Illuminate\Database\Query\Builder|AuditLogEntry onlyTrashed()
|
|
||||||
* @method static Builder|AuditLogEntry query()
|
|
||||||
* @method static \Illuminate\Database\Query\Builder|AuditLogEntry withTrashed()
|
|
||||||
* @method static \Illuminate\Database\Query\Builder|AuditLogEntry withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $auditable_id
|
|
||||||
* @property string $auditable_type
|
|
||||||
* @property int $changer_id
|
|
||||||
* @property string $changer_type
|
|
||||||
* @property string $action
|
|
||||||
* @property null|array $before
|
|
||||||
* @property null|array $after
|
|
||||||
*
|
|
||||||
* @method static Builder|AuditLogEntry whereAction($value)
|
|
||||||
* @method static Builder|AuditLogEntry whereAfter($value)
|
|
||||||
* @method static Builder|AuditLogEntry whereAuditableId($value)
|
|
||||||
* @method static Builder|AuditLogEntry whereAuditableType($value)
|
|
||||||
* @method static Builder|AuditLogEntry whereBefore($value)
|
|
||||||
* @method static Builder|AuditLogEntry whereChangerId($value)
|
|
||||||
* @method static Builder|AuditLogEntry whereChangerType($value)
|
|
||||||
* @method static Builder|AuditLogEntry whereCreatedAt($value)
|
|
||||||
* @method static Builder|AuditLogEntry whereDeletedAt($value)
|
|
||||||
* @method static Builder|AuditLogEntry whereId($value)
|
|
||||||
* @method static Builder|AuditLogEntry whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class AuditLogEntry extends Model
|
class AuditLogEntry extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,47 +24,14 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\AutoBudget
|
* @mixin IdeHelperAutoBudget
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $budget_id
|
|
||||||
* @property int $transaction_currency_id
|
|
||||||
* @property int|string $auto_budget_type
|
|
||||||
* @property string $amount
|
|
||||||
* @property string $period
|
|
||||||
* @property Budget $budget
|
|
||||||
* @property TransactionCurrency $transactionCurrency
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AutoBudget newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AutoBudget newQuery()
|
|
||||||
* @method static Builder|AutoBudget onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AutoBudget query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AutoBudget whereAmount($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AutoBudget whereAutoBudgetType($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AutoBudget whereBudgetId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AutoBudget whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AutoBudget whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AutoBudget whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AutoBudget wherePeriod($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AutoBudget whereTransactionCurrencyId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AutoBudget whereUpdatedAt($value)
|
|
||||||
* @method static Builder|AutoBudget withTrashed()
|
|
||||||
* @method static Builder|AutoBudget withoutTrashed()
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class AutoBudget extends Model
|
class AutoBudget extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,8 +23,6 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
@@ -32,45 +30,10 @@ use Illuminate\Database\Eloquent\Casts\Attribute;
|
|||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\AvailableBudget
|
* @mixin IdeHelperAvailableBudget
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property int $transaction_currency_id
|
|
||||||
* @property string $amount
|
|
||||||
* @property Carbon $start_date
|
|
||||||
* @property Carbon $end_date
|
|
||||||
* @property TransactionCurrency $transactionCurrency
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget newQuery()
|
|
||||||
* @method static Builder|AvailableBudget onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget whereAmount($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget whereEndDate($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget whereStartDate($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget whereTransactionCurrencyId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget whereUserId($value)
|
|
||||||
* @method static Builder|AvailableBudget withTrashed()
|
|
||||||
* @method static Builder|AvailableBudget withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|AvailableBudget whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class AvailableBudget extends Model
|
class AvailableBudget extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,88 +23,20 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphToMany;
|
use Illuminate\Database\Eloquent\Relations\MorphToMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Bill
|
* @mixin IdeHelperBill
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property int $transaction_currency_id
|
|
||||||
* @property string $name
|
|
||||||
* @property string $match
|
|
||||||
* @property string $amount_min
|
|
||||||
* @property string $amount_max
|
|
||||||
* @property Carbon $date
|
|
||||||
* @property null|Carbon $end_date
|
|
||||||
* @property null|Carbon $extension_date
|
|
||||||
* @property string $repeat_freq
|
|
||||||
* @property int $skip
|
|
||||||
* @property bool $automatch
|
|
||||||
* @property bool $active
|
|
||||||
* @property bool $name_encrypted
|
|
||||||
* @property bool $match_encrypted
|
|
||||||
* @property int $order
|
|
||||||
* @property Attachment[]|Collection $attachments
|
|
||||||
* @property null|int $attachments_count
|
|
||||||
* @property Collection|Note[] $notes
|
|
||||||
* @property null|int $notes_count
|
|
||||||
* @property Collection|ObjectGroup[] $objectGroups
|
|
||||||
* @property null|int $object_groups_count
|
|
||||||
* @property null|TransactionCurrency $transactionCurrency
|
|
||||||
* @property Collection|TransactionJournal[] $transactionJournals
|
|
||||||
* @property null|int $transaction_journals_count
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill newQuery()
|
|
||||||
* @method static Builder|Bill onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereActive($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereAmountMax($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereAmountMin($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereAutomatch($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereDate($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereEndDate($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereExtensionDate($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereMatch($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereMatchEncrypted($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereName($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereNameEncrypted($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereOrder($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereRepeatFreq($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereSkip($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereTransactionCurrencyId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereUserId($value)
|
|
||||||
* @method static Builder|Bill withTrashed()
|
|
||||||
* @method static Builder|Bill withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Bill whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Bill extends Model
|
class Bill extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,71 +23,20 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Budget
|
* @mixin IdeHelperBudget
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property string $name
|
|
||||||
* @property bool $active
|
|
||||||
* @property bool $encrypted
|
|
||||||
* @property int $order
|
|
||||||
* @property Attachment[]|Collection $attachments
|
|
||||||
* @property null|int $attachments_count
|
|
||||||
* @property AutoBudget[]|Collection $autoBudgets
|
|
||||||
* @property null|int $auto_budgets_count
|
|
||||||
* @property BudgetLimit[]|Collection $budgetlimits
|
|
||||||
* @property null|int $budgetlimits_count
|
|
||||||
* @property Collection|TransactionJournal[] $transactionJournals
|
|
||||||
* @property null|int $transaction_journals_count
|
|
||||||
* @property Collection|Transaction[] $transactions
|
|
||||||
* @property null|int $transactions_count
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget newQuery()
|
|
||||||
* @method static Builder|Budget onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget whereActive($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget whereEncrypted($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget whereName($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget whereOrder($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget whereUserId($value)
|
|
||||||
* @method static Builder|Budget withTrashed()
|
|
||||||
* @method static Builder|Budget withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property string $email
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Budget whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @property Collection|Note[] $notes
|
|
||||||
* @property null|int $notes_count
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Budget extends Model
|
class Budget extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,50 +23,17 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Events\Model\BudgetLimit\Created;
|
use FireflyIII\Events\Model\BudgetLimit\Created;
|
||||||
use FireflyIII\Events\Model\BudgetLimit\Deleted;
|
use FireflyIII\Events\Model\BudgetLimit\Deleted;
|
||||||
use FireflyIII\Events\Model\BudgetLimit\Updated;
|
use FireflyIII\Events\Model\BudgetLimit\Updated;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\BudgetLimit
|
* @mixin IdeHelperBudgetLimit
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property int $budget_id
|
|
||||||
* @property int $transaction_currency_id
|
|
||||||
* @property Carbon $start_date
|
|
||||||
* @property null|Carbon $end_date
|
|
||||||
* @property string $amount
|
|
||||||
* @property string $spent
|
|
||||||
* @property null|string $period
|
|
||||||
* @property int|string $generated
|
|
||||||
* @property Budget $budget
|
|
||||||
* @property null|TransactionCurrency $transactionCurrency
|
|
||||||
*
|
|
||||||
* @method static Builder|BudgetLimit newModelQuery()
|
|
||||||
* @method static Builder|BudgetLimit newQuery()
|
|
||||||
* @method static Builder|BudgetLimit query()
|
|
||||||
* @method static Builder|BudgetLimit whereAmount($value)
|
|
||||||
* @method static Builder|BudgetLimit whereBudgetId($value)
|
|
||||||
* @method static Builder|BudgetLimit whereCreatedAt($value)
|
|
||||||
* @method static Builder|BudgetLimit whereEndDate($value)
|
|
||||||
* @method static Builder|BudgetLimit whereGenerated($value)
|
|
||||||
* @method static Builder|BudgetLimit whereId($value)
|
|
||||||
* @method static Builder|BudgetLimit wherePeriod($value)
|
|
||||||
* @method static Builder|BudgetLimit whereStartDate($value)
|
|
||||||
* @method static Builder|BudgetLimit whereTransactionCurrencyId($value)
|
|
||||||
* @method static Builder|BudgetLimit whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class BudgetLimit extends Model
|
class BudgetLimit extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,60 +23,18 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Category
|
* @mixin IdeHelperCategory
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property string $name
|
|
||||||
* @property Carbon $lastActivity
|
|
||||||
* @property bool $encrypted
|
|
||||||
* @property Attachment[]|Collection $attachments
|
|
||||||
* @property null|int $attachments_count
|
|
||||||
* @property Collection|Note[] $notes
|
|
||||||
* @property null|int $notes_count
|
|
||||||
* @property Collection|TransactionJournal[] $transactionJournals
|
|
||||||
* @property null|int $transaction_journals_count
|
|
||||||
* @property Collection|Transaction[] $transactions
|
|
||||||
* @property null|int $transactions_count
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Category newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Category newQuery()
|
|
||||||
* @method static Builder|Category onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Category query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Category whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Category whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Category whereEncrypted($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Category whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Category whereName($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Category whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Category whereUserId($value)
|
|
||||||
* @method static Builder|Category withTrashed()
|
|
||||||
* @method static Builder|Category withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Category whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Category extends Model
|
class Category extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,37 +23,12 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Configuration
|
* @mixin IdeHelperConfiguration
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property string $name
|
|
||||||
* @property mixed $data
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Configuration newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Configuration newQuery()
|
|
||||||
* @method static Builder|Configuration onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Configuration query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Configuration whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Configuration whereData($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Configuration whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Configuration whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Configuration whereName($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Configuration whereUpdatedAt($value)
|
|
||||||
* @method static Builder|Configuration withTrashed()
|
|
||||||
* @method static Builder|Configuration withoutTrashed()
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Configuration extends Model
|
class Configuration extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,56 +23,16 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class CurrencyExchangeRate
|
* @mixin IdeHelperCurrencyExchangeRate
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|string $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property int $from_currency_id
|
|
||||||
* @property int $to_currency_id
|
|
||||||
* @property Carbon $date
|
|
||||||
* @property string $rate
|
|
||||||
* @property string $user_rate
|
|
||||||
* @property TransactionCurrency $fromCurrency
|
|
||||||
* @property TransactionCurrency $toCurrency
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static Builder|CurrencyExchangeRate newModelQuery()
|
|
||||||
* @method static Builder|CurrencyExchangeRate newQuery()
|
|
||||||
* @method static Builder|CurrencyExchangeRate query()
|
|
||||||
* @method static Builder|CurrencyExchangeRate whereCreatedAt($value)
|
|
||||||
* @method static Builder|CurrencyExchangeRate whereDate($value)
|
|
||||||
* @method static Builder|CurrencyExchangeRate whereDeletedAt($value)
|
|
||||||
* @method static Builder|CurrencyExchangeRate whereFromCurrencyId($value)
|
|
||||||
* @method static Builder|CurrencyExchangeRate whereId($value)
|
|
||||||
* @method static Builder|CurrencyExchangeRate whereRate($value)
|
|
||||||
* @method static Builder|CurrencyExchangeRate whereToCurrencyId($value)
|
|
||||||
* @method static Builder|CurrencyExchangeRate whereUpdatedAt($value)
|
|
||||||
* @method static Builder|CurrencyExchangeRate whereUserId($value)
|
|
||||||
* @method static Builder|CurrencyExchangeRate whereUserRate($value)
|
|
||||||
*
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static Builder|CurrencyExchangeRate whereUserGroupId($value)
|
|
||||||
* @method static Builder|CurrencyExchangeRate onlyTrashed()
|
|
||||||
* @method static Builder|CurrencyExchangeRate withTrashed()
|
|
||||||
* @method static Builder|CurrencyExchangeRate withoutTrashed()
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class CurrencyExchangeRate extends Model
|
class CurrencyExchangeRate extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,42 +24,15 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class GroupMembership
|
* @mixin IdeHelperGroupMembership
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|string $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property int $user_group_id
|
|
||||||
* @property int $user_role_id
|
|
||||||
* @property User $user
|
|
||||||
* @property UserGroup $userGroup
|
|
||||||
* @property UserRole $userRole
|
|
||||||
*
|
|
||||||
* @method static Builder|GroupMembership newModelQuery()
|
|
||||||
* @method static Builder|GroupMembership newQuery()
|
|
||||||
* @method static Builder|GroupMembership query()
|
|
||||||
* @method static Builder|GroupMembership whereCreatedAt($value)
|
|
||||||
* @method static Builder|GroupMembership whereDeletedAt($value)
|
|
||||||
* @method static Builder|GroupMembership whereId($value)
|
|
||||||
* @method static Builder|GroupMembership whereUpdatedAt($value)
|
|
||||||
* @method static Builder|GroupMembership whereUserGroupId($value)
|
|
||||||
* @method static Builder|GroupMembership whereUserId($value)
|
|
||||||
* @method static Builder|GroupMembership whereUserRoleId($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class GroupMembership extends Model
|
class GroupMembership extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,46 +24,15 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class InvitedUser
|
* @mixin IdeHelperInvitedUser
|
||||||
*
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static Builder|InvitedUser newModelQuery()
|
|
||||||
* @method static Builder|InvitedUser newQuery()
|
|
||||||
* @method static Builder|InvitedUser query()
|
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property string $email
|
|
||||||
* @property string $invite_code
|
|
||||||
* @property Carbon $expires
|
|
||||||
* @property bool $redeemed
|
|
||||||
*
|
|
||||||
* @method static Builder|InvitedUser whereCreatedAt($value)
|
|
||||||
* @method static Builder|InvitedUser whereEmail($value)
|
|
||||||
* @method static Builder|InvitedUser whereExpires($value)
|
|
||||||
* @method static Builder|InvitedUser whereId($value)
|
|
||||||
* @method static Builder|InvitedUser whereInviteCode($value)
|
|
||||||
* @method static Builder|InvitedUser whereRedeemed($value)
|
|
||||||
* @method static Builder|InvitedUser whereUpdatedAt($value)
|
|
||||||
* @method static Builder|InvitedUser whereUserId($value)
|
|
||||||
*
|
|
||||||
* @property mixed $user_group_id
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class InvitedUser extends Model
|
class InvitedUser extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,47 +23,14 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\LinkType
|
* @mixin IdeHelperLinkType
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property string $name
|
|
||||||
* @property string $outward
|
|
||||||
* @property string $inward
|
|
||||||
* @property int $journalCount
|
|
||||||
* @property bool $editable
|
|
||||||
* @property Collection|TransactionJournalLink[] $transactionJournalLinks
|
|
||||||
* @property null|int $transaction_journal_links_count
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|LinkType newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|LinkType newQuery()
|
|
||||||
* @method static Builder|LinkType onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|LinkType query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|LinkType whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|LinkType whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|LinkType whereEditable($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|LinkType whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|LinkType whereInward($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|LinkType whereName($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|LinkType whereOutward($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|LinkType whereUpdatedAt($value)
|
|
||||||
* @method static Builder|LinkType withTrashed()
|
|
||||||
* @method static Builder|LinkType withoutTrashed()
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class LinkType extends Model
|
class LinkType extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,49 +24,14 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Location
|
* @mixin IdeHelperLocation
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $locatable_id
|
|
||||||
* @property string $locatable_type
|
|
||||||
* @property null|float $latitude
|
|
||||||
* @property null|float $longitude
|
|
||||||
* @property null|int $zoom_level
|
|
||||||
* @property Account[]|Collection $accounts
|
|
||||||
* @property null|int $accounts_count
|
|
||||||
* @property \Eloquent|Model $locatable
|
|
||||||
*
|
|
||||||
* @method static Builder|Location newModelQuery()
|
|
||||||
* @method static Builder|Location newQuery()
|
|
||||||
* @method static Builder|Location query()
|
|
||||||
* @method static Builder|Location whereCreatedAt($value)
|
|
||||||
* @method static Builder|Location whereDeletedAt($value)
|
|
||||||
* @method static Builder|Location whereId($value)
|
|
||||||
* @method static Builder|Location whereLatitude($value)
|
|
||||||
* @method static Builder|Location whereLocatableId($value)
|
|
||||||
* @method static Builder|Location whereLocatableType($value)
|
|
||||||
* @method static Builder|Location whereLongitude($value)
|
|
||||||
* @method static Builder|Location whereUpdatedAt($value)
|
|
||||||
* @method static Builder|Location whereZoomLevel($value)
|
|
||||||
*
|
|
||||||
* @property Collection<int, TransactionJournal> $transactionJournals
|
|
||||||
* @property null|int $transaction_journals_count
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Location extends Model
|
class Location extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,44 +23,14 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Note
|
* @mixin IdeHelperNote
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $noteable_id
|
|
||||||
* @property string $noteable_type
|
|
||||||
* @property null|string $title
|
|
||||||
* @property null|string $text
|
|
||||||
* @property \Eloquent|Model $noteable
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Note newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Note newQuery()
|
|
||||||
* @method static Builder|Note onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Note query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Note whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Note whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Note whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Note whereNoteableId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Note whereNoteableType($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Note whereText($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Note whereTitle($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Note whereUpdatedAt($value)
|
|
||||||
* @method static Builder|Note withTrashed()
|
|
||||||
* @method static Builder|Note withoutTrashed()
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Note extends Model
|
class Note extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,53 +24,17 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphToMany;
|
use Illuminate\Database\Eloquent\Relations\MorphToMany;
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\ObjectGroup
|
* @mixin IdeHelperObjectGroup
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property int $user_id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property string $title
|
|
||||||
* @property int $order
|
|
||||||
* @property Account[]|Collection $accounts
|
|
||||||
* @property null|int $accounts_count
|
|
||||||
* @property Bill[]|Collection $bills
|
|
||||||
* @property null|int $bills_count
|
|
||||||
* @property Collection|PiggyBank[] $piggyBanks
|
|
||||||
* @property null|int $piggy_banks_count
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static Builder|ObjectGroup newModelQuery()
|
|
||||||
* @method static Builder|ObjectGroup newQuery()
|
|
||||||
* @method static Builder|ObjectGroup query()
|
|
||||||
* @method static Builder|ObjectGroup whereCreatedAt($value)
|
|
||||||
* @method static Builder|ObjectGroup whereDeletedAt($value)
|
|
||||||
* @method static Builder|ObjectGroup whereId($value)
|
|
||||||
* @method static Builder|ObjectGroup whereOrder($value)
|
|
||||||
* @method static Builder|ObjectGroup whereTitle($value)
|
|
||||||
* @method static Builder|ObjectGroup whereUpdatedAt($value)
|
|
||||||
* @method static Builder|ObjectGroup whereUserId($value)
|
|
||||||
*
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static Builder|ObjectGroup whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class ObjectGroup extends Model
|
class ObjectGroup extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,67 +23,18 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphToMany;
|
use Illuminate\Database\Eloquent\Relations\MorphToMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\PiggyBank
|
* @mixin IdeHelperPiggyBank
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $account_id
|
|
||||||
* @property string $name
|
|
||||||
* @property string $targetamount
|
|
||||||
* @property null|Carbon $startdate
|
|
||||||
* @property null|Carbon $targetdate
|
|
||||||
* @property int $order
|
|
||||||
* @property bool $active
|
|
||||||
* @property bool $encrypted
|
|
||||||
* @property Account $account
|
|
||||||
* @property Attachment[]|Collection $attachments
|
|
||||||
* @property null|int $attachments_count
|
|
||||||
* @property Collection|Note[] $notes
|
|
||||||
* @property null|int $notes_count
|
|
||||||
* @property Collection|ObjectGroup[] $objectGroups
|
|
||||||
* @property null|int $object_groups_count
|
|
||||||
* @property Collection|PiggyBankEvent[] $piggyBankEvents
|
|
||||||
* @property null|int $piggy_bank_events_count
|
|
||||||
* @property Collection|PiggyBankRepetition[] $piggyBankRepetitions
|
|
||||||
* @property null|int $piggy_bank_repetitions_count
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank newQuery()
|
|
||||||
* @method static Builder|PiggyBank onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank whereAccountId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank whereActive($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank whereEncrypted($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank whereName($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank whereOrder($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank whereStartdate($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank whereTargetamount($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank whereTargetdate($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|PiggyBank whereUpdatedAt($value)
|
|
||||||
* @method static Builder|PiggyBank withTrashed()
|
|
||||||
* @method static Builder|PiggyBank withoutTrashed()
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class PiggyBank extends Model
|
class PiggyBank extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,39 +23,13 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\PiggyBankEvent
|
* @mixin IdeHelperPiggyBankEvent
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property int $piggy_bank_id
|
|
||||||
* @property null|int $transaction_journal_id
|
|
||||||
* @property Carbon $date
|
|
||||||
* @property string $amount
|
|
||||||
* @property PiggyBank $piggyBank
|
|
||||||
* @property null|TransactionJournal $transactionJournal
|
|
||||||
*
|
|
||||||
* @method static Builder|PiggyBankEvent newModelQuery()
|
|
||||||
* @method static Builder|PiggyBankEvent newQuery()
|
|
||||||
* @method static Builder|PiggyBankEvent query()
|
|
||||||
* @method static Builder|PiggyBankEvent whereAmount($value)
|
|
||||||
* @method static Builder|PiggyBankEvent whereCreatedAt($value)
|
|
||||||
* @method static Builder|PiggyBankEvent whereDate($value)
|
|
||||||
* @method static Builder|PiggyBankEvent whereId($value)
|
|
||||||
* @method static Builder|PiggyBankEvent wherePiggyBankId($value)
|
|
||||||
* @method static Builder|PiggyBankEvent whereTransactionJournalId($value)
|
|
||||||
* @method static Builder|PiggyBankEvent whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class PiggyBankEvent extends Model
|
class PiggyBankEvent extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
|
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
@@ -32,31 +31,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\PiggyBankRepetition
|
* @mixin IdeHelperPiggyBankRepetition
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property int $piggy_bank_id
|
|
||||||
* @property null|Carbon $startdate
|
|
||||||
* @property null|Carbon $targetdate
|
|
||||||
* @property string $currentamount
|
|
||||||
* @property PiggyBank $piggyBank
|
|
||||||
*
|
|
||||||
* @method static EloquentBuilder|PiggyBankRepetition newModelQuery()
|
|
||||||
* @method static EloquentBuilder|PiggyBankRepetition newQuery()
|
|
||||||
* @method static EloquentBuilder|PiggyBankRepetition onDates(Carbon $start, Carbon $target)
|
|
||||||
* @method static EloquentBuilder|PiggyBankRepetition query()
|
|
||||||
* @method static EloquentBuilder|PiggyBankRepetition relevantOnDate(Carbon $date)
|
|
||||||
* @method static EloquentBuilder|PiggyBankRepetition whereCreatedAt($value)
|
|
||||||
* @method static EloquentBuilder|PiggyBankRepetition whereCurrentamount($value)
|
|
||||||
* @method static EloquentBuilder|PiggyBankRepetition whereId($value)
|
|
||||||
* @method static EloquentBuilder|PiggyBankRepetition wherePiggyBankId($value)
|
|
||||||
* @method static EloquentBuilder|PiggyBankRepetition whereStartdate($value)
|
|
||||||
* @method static EloquentBuilder|PiggyBankRepetition whereTargetdate($value)
|
|
||||||
* @method static EloquentBuilder|PiggyBankRepetition whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class PiggyBankRepetition extends Model
|
class PiggyBankRepetition extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,40 +23,15 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Preference
|
* @mixin IdeHelperPreference
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property string $name
|
|
||||||
* @property null|array|bool|int|string $data
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static Builder|Preference newModelQuery()
|
|
||||||
* @method static Builder|Preference newQuery()
|
|
||||||
* @method static Builder|Preference query()
|
|
||||||
* @method static Builder|Preference whereCreatedAt($value)
|
|
||||||
* @method static Builder|Preference whereData($value)
|
|
||||||
* @method static Builder|Preference whereId($value)
|
|
||||||
* @method static Builder|Preference whereName($value)
|
|
||||||
* @method static Builder|Preference whereUpdatedAt($value)
|
|
||||||
* @method static Builder|Preference whereUserId($value)
|
|
||||||
*
|
|
||||||
* @property mixed $user_group_id
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Preference extends Model
|
class Preference extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,78 +23,19 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Recurrence
|
* @mixin IdeHelperRecurrence
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property int $transaction_type_id
|
|
||||||
* @property string $title
|
|
||||||
* @property string $description
|
|
||||||
* @property null|Carbon $first_date
|
|
||||||
* @property null|Carbon $repeat_until
|
|
||||||
* @property null|Carbon $latest_date
|
|
||||||
* @property int|string $repetitions
|
|
||||||
* @property bool $apply_rules
|
|
||||||
* @property bool $active
|
|
||||||
* @property Attachment[]|Collection $attachments
|
|
||||||
* @property null|int $attachments_count
|
|
||||||
* @property Collection|Note[] $notes
|
|
||||||
* @property null|int $notes_count
|
|
||||||
* @property Collection|RecurrenceMeta[] $recurrenceMeta
|
|
||||||
* @property null|int $recurrence_meta_count
|
|
||||||
* @property Collection|RecurrenceRepetition[] $recurrenceRepetitions
|
|
||||||
* @property null|int $recurrence_repetitions_count
|
|
||||||
* @property Collection|RecurrenceTransaction[] $recurrenceTransactions
|
|
||||||
* @property null|int $recurrence_transactions_count
|
|
||||||
* @property TransactionCurrency $transactionCurrency
|
|
||||||
* @property TransactionType $transactionType
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence newQuery()
|
|
||||||
* @method static Builder|Recurrence onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereActive($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereApplyRules($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereDescription($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereFirstDate($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereLatestDate($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereRepeatUntil($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereRepetitions($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereTitle($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereTransactionTypeId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereUserId($value)
|
|
||||||
* @method static Builder|Recurrence withTrashed()
|
|
||||||
* @method static Builder|Recurrence withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Recurrence whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Recurrence extends Model
|
class Recurrence extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,42 +23,14 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\RecurrenceMeta
|
* @mixin IdeHelperRecurrenceMeta
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $recurrence_id
|
|
||||||
* @property string $name
|
|
||||||
* @property mixed $value
|
|
||||||
* @property Recurrence $recurrence
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceMeta newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceMeta newQuery()
|
|
||||||
* @method static Builder|RecurrenceMeta onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceMeta query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceMeta whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceMeta whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceMeta whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceMeta whereName($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceMeta whereRecurrenceId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceMeta whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceMeta whereValue($value)
|
|
||||||
* @method static Builder|RecurrenceMeta withTrashed()
|
|
||||||
* @method static Builder|RecurrenceMeta withoutTrashed()
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class RecurrenceMeta extends Model
|
class RecurrenceMeta extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,46 +23,14 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\RecurrenceRepetition
|
* @mixin IdeHelperRecurrenceRepetition
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $recurrence_id
|
|
||||||
* @property string $repetition_type
|
|
||||||
* @property string $repetition_moment
|
|
||||||
* @property int $repetition_skip
|
|
||||||
* @property int $weekend
|
|
||||||
* @property Recurrence $recurrence
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceRepetition newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceRepetition newQuery()
|
|
||||||
* @method static Builder|RecurrenceRepetition onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceRepetition query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceRepetition whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceRepetition whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceRepetition whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceRepetition whereRecurrenceId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceRepetition whereRepetitionMoment($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceRepetition whereRepetitionSkip($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceRepetition whereRepetitionType($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceRepetition whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceRepetition whereWeekend($value)
|
|
||||||
* @method static Builder|RecurrenceRepetition withTrashed()
|
|
||||||
* @method static Builder|RecurrenceRepetition withoutTrashed()
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class RecurrenceRepetition extends Model
|
class RecurrenceRepetition extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,67 +23,15 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\RecurrenceTransaction
|
* @mixin IdeHelperRecurrenceTransaction
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $recurrence_id
|
|
||||||
* @property int $transaction_currency_id
|
|
||||||
* @property null|int|string $foreign_currency_id
|
|
||||||
* @property int $source_id
|
|
||||||
* @property int $destination_id
|
|
||||||
* @property string $amount
|
|
||||||
* @property string $foreign_amount
|
|
||||||
* @property string $description
|
|
||||||
* @property Account $destinationAccount
|
|
||||||
* @property null|TransactionCurrency $foreignCurrency
|
|
||||||
* @property Recurrence $recurrence
|
|
||||||
* @property Collection|RecurrenceTransactionMeta[] $recurrenceTransactionMeta
|
|
||||||
* @property null|int $recurrence_transaction_meta_count
|
|
||||||
* @property Account $sourceAccount
|
|
||||||
* @property TransactionCurrency $transactionCurrency
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction newQuery()
|
|
||||||
* @method static Builder|RecurrenceTransaction onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereAmount($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereDescription($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereDestinationId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereForeignAmount($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereForeignCurrencyId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereRecurrenceId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereSourceId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereTransactionCurrencyId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereUpdatedAt($value)
|
|
||||||
* @method static Builder|RecurrenceTransaction withTrashed()
|
|
||||||
* @method static Builder|RecurrenceTransaction withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property null|int $transaction_type_id
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransaction whereTransactionTypeId($value)
|
|
||||||
*
|
|
||||||
* @property null|TransactionType $transactionType
|
|
||||||
* @property mixed $user_id
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class RecurrenceTransaction extends Model
|
class RecurrenceTransaction extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,42 +23,14 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\RecurrenceTransactionMeta
|
* @mixin IdeHelperRecurrenceTransactionMeta
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int|string $rt_id
|
|
||||||
* @property string $name
|
|
||||||
* @property mixed $value
|
|
||||||
* @property RecurrenceTransaction $recurrenceTransaction
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransactionMeta newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransactionMeta newQuery()
|
|
||||||
* @method static Builder|RecurrenceTransactionMeta onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransactionMeta query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransactionMeta whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransactionMeta whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransactionMeta whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransactionMeta whereName($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransactionMeta whereRtId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransactionMeta whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RecurrenceTransactionMeta whereValue($value)
|
|
||||||
* @method static Builder|RecurrenceTransactionMeta withTrashed()
|
|
||||||
* @method static Builder|RecurrenceTransactionMeta withoutTrashed()
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class RecurrenceTransactionMeta extends Model
|
class RecurrenceTransactionMeta extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,38 +23,13 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Role
|
* @mixin IdeHelperRole
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property string $name
|
|
||||||
* @property null|string $display_name
|
|
||||||
* @property null|string $description
|
|
||||||
* @property Collection|User[] $users
|
|
||||||
* @property null|int $users_count
|
|
||||||
*
|
|
||||||
* @method static Builder|Role newModelQuery()
|
|
||||||
* @method static Builder|Role newQuery()
|
|
||||||
* @method static Builder|Role query()
|
|
||||||
* @method static Builder|Role whereCreatedAt($value)
|
|
||||||
* @method static Builder|Role whereDescription($value)
|
|
||||||
* @method static Builder|Role whereDisplayName($value)
|
|
||||||
* @method static Builder|Role whereId($value)
|
|
||||||
* @method static Builder|Role whereName($value)
|
|
||||||
* @method static Builder|Role whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Role extends Model
|
class Role extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,69 +23,18 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Rule
|
* @mixin IdeHelperRule
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property int $rule_group_id
|
|
||||||
* @property string $title
|
|
||||||
* @property null|string $description
|
|
||||||
* @property int $order
|
|
||||||
* @property bool $active
|
|
||||||
* @property bool $stop_processing
|
|
||||||
* @property bool $strict
|
|
||||||
* @property string $action_value
|
|
||||||
* @property Collection|RuleAction[] $ruleActions
|
|
||||||
* @property null|int $rule_actions_count
|
|
||||||
* @property RuleGroup $ruleGroup
|
|
||||||
* @property Collection|RuleTrigger[] $ruleTriggers
|
|
||||||
* @property null|int $rule_triggers_count
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule newQuery()
|
|
||||||
* @method static Builder|Rule onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereActive($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereDescription($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereOrder($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereRuleGroupId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereStopProcessing($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereStrict($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereTitle($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereUserId($value)
|
|
||||||
* @method static Builder|Rule withTrashed()
|
|
||||||
* @method static Builder|Rule withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Rule whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @property null|UserGroup $userGroup
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Rule extends Model
|
class Rule extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,11 +23,8 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\TransactionRules\Expressions\ActionExpression;
|
use FireflyIII\TransactionRules\Expressions\ActionExpression;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
@@ -35,33 +32,7 @@ use Illuminate\Support\Facades\Log;
|
|||||||
use Symfony\Component\ExpressionLanguage\SyntaxError;
|
use Symfony\Component\ExpressionLanguage\SyntaxError;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\RuleAction
|
* @mixin IdeHelperRuleAction
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property int $rule_id
|
|
||||||
* @property null|string $action_type
|
|
||||||
* @property null|string $action_value
|
|
||||||
* @property int $order
|
|
||||||
* @property bool $active
|
|
||||||
* @property bool $stop_processing
|
|
||||||
* @property Rule $rule
|
|
||||||
*
|
|
||||||
* @method static Builder|RuleAction newModelQuery()
|
|
||||||
* @method static Builder|RuleAction newQuery()
|
|
||||||
* @method static Builder|RuleAction query()
|
|
||||||
* @method static Builder|RuleAction whereActionType($value)
|
|
||||||
* @method static Builder|RuleAction whereActionValue($value)
|
|
||||||
* @method static Builder|RuleAction whereActive($value)
|
|
||||||
* @method static Builder|RuleAction whereCreatedAt($value)
|
|
||||||
* @method static Builder|RuleAction whereId($value)
|
|
||||||
* @method static Builder|RuleAction whereOrder($value)
|
|
||||||
* @method static Builder|RuleAction whereRuleId($value)
|
|
||||||
* @method static Builder|RuleAction whereStopProcessing($value)
|
|
||||||
* @method static Builder|RuleAction whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class RuleAction extends Model
|
class RuleAction extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,59 +23,18 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\RuleGroup
|
* @mixin IdeHelperRuleGroup
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property null|string $title
|
|
||||||
* @property null|string $description
|
|
||||||
* @property int $order
|
|
||||||
* @property bool $active
|
|
||||||
* @property bool $stop_processing
|
|
||||||
* @property Collection|Rule[] $rules
|
|
||||||
* @property null|int $rules_count
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup newQuery()
|
|
||||||
* @method static Builder|RuleGroup onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup whereActive($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup whereDescription($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup whereOrder($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup whereStopProcessing($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup whereTitle($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup whereUserId($value)
|
|
||||||
* @method static Builder|RuleGroup withTrashed()
|
|
||||||
* @method static Builder|RuleGroup withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|RuleGroup whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class RuleGroup extends Model
|
class RuleGroup extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,42 +23,13 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\RuleTrigger
|
* @mixin IdeHelperRuleTrigger
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property int $rule_id
|
|
||||||
* @property null|string $trigger_type
|
|
||||||
* @property null|string $trigger_value
|
|
||||||
* @property int $order
|
|
||||||
* @property bool $active
|
|
||||||
* @property bool $stop_processing
|
|
||||||
* @property Rule $rule
|
|
||||||
*
|
|
||||||
* @method static Builder|RuleTrigger newModelQuery()
|
|
||||||
* @method static Builder|RuleTrigger newQuery()
|
|
||||||
* @method static Builder|RuleTrigger query()
|
|
||||||
* @method static Builder|RuleTrigger whereActive($value)
|
|
||||||
* @method static Builder|RuleTrigger whereCreatedAt($value)
|
|
||||||
* @method static Builder|RuleTrigger whereId($value)
|
|
||||||
* @method static Builder|RuleTrigger whereOrder($value)
|
|
||||||
* @method static Builder|RuleTrigger whereRuleId($value)
|
|
||||||
* @method static Builder|RuleTrigger whereStopProcessing($value)
|
|
||||||
* @method static Builder|RuleTrigger whereTriggerType($value)
|
|
||||||
* @method static Builder|RuleTrigger whereTriggerValue($value)
|
|
||||||
* @method static Builder|RuleTrigger whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class RuleTrigger extends Model
|
class RuleTrigger extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,67 +23,18 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Tag
|
* @mixin IdeHelperTag
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property string $tag
|
|
||||||
* @property string $tagMode
|
|
||||||
* @property null|Carbon $date
|
|
||||||
* @property null|string $description
|
|
||||||
* @property null|float $latitude
|
|
||||||
* @property null|float $longitude
|
|
||||||
* @property null|int $zoomLevel
|
|
||||||
* @property Attachment[]|Collection $attachments
|
|
||||||
* @property null|int $attachments_count
|
|
||||||
* @property Collection|Location[] $locations
|
|
||||||
* @property null|int $locations_count
|
|
||||||
* @property Collection|TransactionJournal[] $transactionJournals
|
|
||||||
* @property null|int $transaction_journals_count
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag newQuery()
|
|
||||||
* @method static Builder|Tag onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereDate($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereDescription($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereLatitude($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereLongitude($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereTag($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereTagMode($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereUserId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereZoomLevel($value)
|
|
||||||
* @method static Builder|Tag withTrashed()
|
|
||||||
* @method static Builder|Tag withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|Tag whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Tag extends Model
|
class Tag extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,12 +24,10 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
|
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
@@ -37,60 +35,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
|||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Transaction
|
* @mixin IdeHelperTransaction
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property bool $reconciled
|
|
||||||
* @property int $account_id
|
|
||||||
* @property int $transaction_journal_id
|
|
||||||
* @property null|string $description
|
|
||||||
* @property null|int $transaction_currency_id
|
|
||||||
* @property null|int|string $modified
|
|
||||||
* @property null|int|string $modified_foreign
|
|
||||||
* @property string $date
|
|
||||||
* @property string $max_date
|
|
||||||
* @property string $amount
|
|
||||||
* @property null|string $foreign_amount
|
|
||||||
* @property null|int $foreign_currency_id
|
|
||||||
* @property int $identifier
|
|
||||||
* @property Account $account
|
|
||||||
* @property Budget[]|Collection $budgets
|
|
||||||
* @property null|int $budgets_count
|
|
||||||
* @property Category[]|Collection $categories
|
|
||||||
* @property null|int $categories_count
|
|
||||||
* @property null|TransactionCurrency $foreignCurrency
|
|
||||||
* @property null|TransactionCurrency $transactionCurrency
|
|
||||||
* @property TransactionJournal $transactionJournal
|
|
||||||
*
|
|
||||||
* @method static Builder|Transaction after(Carbon $date)
|
|
||||||
* @method static Builder|Transaction before(Carbon $date)
|
|
||||||
* @method static Builder|Transaction newModelQuery()
|
|
||||||
* @method static Builder|Transaction newQuery()
|
|
||||||
* @method static \Illuminate\Database\Query\Builder|Transaction onlyTrashed()
|
|
||||||
* @method static Builder|Transaction query()
|
|
||||||
* @method static Builder|Transaction transactionTypes($types)
|
|
||||||
* @method static Builder|Transaction whereAccountId($value)
|
|
||||||
* @method static Builder|Transaction whereAmount($value)
|
|
||||||
* @method static Builder|Transaction whereCreatedAt($value)
|
|
||||||
* @method static Builder|Transaction whereDeletedAt($value)
|
|
||||||
* @method static Builder|Transaction whereDescription($value)
|
|
||||||
* @method static Builder|Transaction whereForeignAmount($value)
|
|
||||||
* @method static Builder|Transaction whereForeignCurrencyId($value)
|
|
||||||
* @method static Builder|Transaction whereId($value)
|
|
||||||
* @method static Builder|Transaction whereIdentifier($value)
|
|
||||||
* @method static Builder|Transaction whereReconciled($value)
|
|
||||||
* @method static Builder|Transaction whereTransactionCurrencyId($value)
|
|
||||||
* @method static Builder|Transaction whereTransactionJournalId($value)
|
|
||||||
* @method static Builder|Transaction whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Query\Builder|Transaction withTrashed()
|
|
||||||
* @method static \Illuminate\Database\Query\Builder|Transaction withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property int|string $the_count
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Transaction extends Model
|
class Transaction extends Model
|
||||||
{
|
{
|
||||||
@@ -237,7 +182,7 @@ class Transaction extends Model
|
|||||||
protected function balanceDirty(): Attribute
|
protected function balanceDirty(): Attribute
|
||||||
{
|
{
|
||||||
return Attribute::make(
|
return Attribute::make(
|
||||||
get: static fn ($value) => (int)$value === 1,
|
get: static fn ($value) => 1 === (int)$value,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,62 +23,17 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\TransactionCurrency
|
* @mixin IdeHelperTransactionCurrency
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property bool $enabled
|
|
||||||
* @property null|bool $userGroupDefault
|
|
||||||
* @property null|bool $userGroupEnabled
|
|
||||||
* @property string $code
|
|
||||||
* @property string $name
|
|
||||||
* @property string $symbol
|
|
||||||
* @property int $decimal_places
|
|
||||||
* @property BudgetLimit[]|Collection $budgetLimits
|
|
||||||
* @property null|int $budget_limits_count
|
|
||||||
* @property Collection|TransactionJournal[] $transactionJournals
|
|
||||||
* @property null|int $transaction_journals_count
|
|
||||||
* @property Collection|Transaction[] $transactions
|
|
||||||
* @property null|int $transactions_count
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionCurrency newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionCurrency newQuery()
|
|
||||||
* @method static Builder|TransactionCurrency onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionCurrency query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionCurrency whereCode($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionCurrency whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionCurrency whereDecimalPlaces($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionCurrency whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionCurrency whereEnabled($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionCurrency whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionCurrency whereName($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionCurrency whereSymbol($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionCurrency whereUpdatedAt($value)
|
|
||||||
* @method static Builder|TransactionCurrency withTrashed()
|
|
||||||
* @method static Builder|TransactionCurrency withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property Collection<int, UserGroup> $userGroups
|
|
||||||
* @property null|int $user_groups_count
|
|
||||||
* @property Collection<int, User> $users
|
|
||||||
* @property null|int $users_count
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class TransactionCurrency extends Model
|
class TransactionCurrency extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,52 +23,17 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\TransactionGroup
|
* @mixin IdeHelperTransactionGroup
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property null|string $title
|
|
||||||
* @property Collection|TransactionJournal[] $transactionJournals
|
|
||||||
* @property null|int $transaction_journals_count
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionGroup newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionGroup newQuery()
|
|
||||||
* @method static Builder|TransactionGroup onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionGroup query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionGroup whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionGroup whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionGroup whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionGroup whereTitle($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionGroup whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionGroup whereUserId($value)
|
|
||||||
* @method static Builder|TransactionGroup withTrashed()
|
|
||||||
* @method static Builder|TransactionGroup withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionGroup whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @property null|UserGroup $userGroup
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class TransactionGroup extends Model
|
class TransactionGroup extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,14 +24,12 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
|
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
@@ -42,92 +40,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
|||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\TransactionJournal
|
* @mixin IdeHelperTransactionJournal
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property int $transaction_type_id
|
|
||||||
* @property null|int|string $transaction_group_id
|
|
||||||
* @property null|int|string $bill_id
|
|
||||||
* @property null|int|string $transaction_currency_id
|
|
||||||
* @property null|string $description
|
|
||||||
* @property Carbon $date
|
|
||||||
* @property null|Carbon $interest_date
|
|
||||||
* @property null|Carbon $book_date
|
|
||||||
* @property null|Carbon $process_date
|
|
||||||
* @property int $order
|
|
||||||
* @property int $tag_count
|
|
||||||
* @property string $transaction_type_type
|
|
||||||
* @property bool $encrypted
|
|
||||||
* @property bool $completed
|
|
||||||
* @property Attachment[]|Collection $attachments
|
|
||||||
* @property null|int $attachments_count
|
|
||||||
* @property null|Bill $bill
|
|
||||||
* @property Budget[]|Collection $budgets
|
|
||||||
* @property null|int $budgets_count
|
|
||||||
* @property Category[]|Collection $categories
|
|
||||||
* @property null|int $categories_count
|
|
||||||
* @property Collection|TransactionJournalLink[] $destJournalLinks
|
|
||||||
* @property null|int $dest_journal_links_count
|
|
||||||
* @property Collection|Note[] $notes
|
|
||||||
* @property null|int $notes_count
|
|
||||||
* @property Collection|PiggyBankEvent[] $piggyBankEvents
|
|
||||||
* @property null|int $piggy_bank_events_count
|
|
||||||
* @property Collection|TransactionJournalLink[] $sourceJournalLinks
|
|
||||||
* @property null|int $source_journal_links_count
|
|
||||||
* @property Collection|Tag[] $tags
|
|
||||||
* @property null|int $tags_count
|
|
||||||
* @property null|TransactionCurrency $transactionCurrency
|
|
||||||
* @property null|TransactionGroup $transactionGroup
|
|
||||||
* @property Collection|TransactionJournalMeta[] $transactionJournalMeta
|
|
||||||
* @property null|int $transaction_journal_meta_count
|
|
||||||
* @property TransactionType $transactionType
|
|
||||||
* @property Collection|Transaction[] $transactions
|
|
||||||
* @property null|int $transactions_count
|
|
||||||
* @property User $user
|
|
||||||
*
|
|
||||||
* @method static EloquentBuilder|TransactionJournal after(Carbon $date)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal before(Carbon $date)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal newModelQuery()
|
|
||||||
* @method static EloquentBuilder|TransactionJournal newQuery()
|
|
||||||
* @method static \Illuminate\Database\Query\Builder|TransactionJournal onlyTrashed()
|
|
||||||
* @method static EloquentBuilder|TransactionJournal query()
|
|
||||||
* @method static EloquentBuilder|TransactionJournal transactionTypes($types)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereBillId($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereBookDate($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereCompleted($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereCreatedAt($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereDate($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereDeletedAt($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereDescription($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereEncrypted($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereId($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereInterestDate($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereOrder($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereProcessDate($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereTagCount($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereTransactionCurrencyId($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereTransactionGroupId($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereTransactionTypeId($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereUpdatedAt($value)
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereUserId($value)
|
|
||||||
* @method static \Illuminate\Database\Query\Builder|TransactionJournal withTrashed()
|
|
||||||
* @method static \Illuminate\Database\Query\Builder|TransactionJournal withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property Collection|Location[] $locations
|
|
||||||
* @property null|int $locations_count
|
|
||||||
* @property int|string $the_count
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static EloquentBuilder|TransactionJournal whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @property Collection<int, AuditLogEntry> $auditLogEntries
|
|
||||||
* @property null|int $audit_log_entries_count
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class TransactionJournal extends Model
|
class TransactionJournal extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,47 +23,15 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\TransactionJournalLink
|
* @mixin IdeHelperTransactionJournalLink
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property int $link_type_id
|
|
||||||
* @property int $source_id
|
|
||||||
* @property int $destination_id
|
|
||||||
* @property null|string $comment
|
|
||||||
* @property TransactionJournal $destination
|
|
||||||
* @property LinkType $linkType
|
|
||||||
* @property Collection|Note[] $notes
|
|
||||||
* @property null|int $notes_count
|
|
||||||
* @property TransactionJournal $source
|
|
||||||
* @property string $inward
|
|
||||||
* @property string $outward
|
|
||||||
*
|
|
||||||
* @method static Builder|TransactionJournalLink newModelQuery()
|
|
||||||
* @method static Builder|TransactionJournalLink newQuery()
|
|
||||||
* @method static Builder|TransactionJournalLink query()
|
|
||||||
* @method static Builder|TransactionJournalLink whereComment($value)
|
|
||||||
* @method static Builder|TransactionJournalLink whereCreatedAt($value)
|
|
||||||
* @method static Builder|TransactionJournalLink whereDestinationId($value)
|
|
||||||
* @method static Builder|TransactionJournalLink whereId($value)
|
|
||||||
* @method static Builder|TransactionJournalLink whereLinkTypeId($value)
|
|
||||||
* @method static Builder|TransactionJournalLink whereSourceId($value)
|
|
||||||
* @method static Builder|TransactionJournalLink whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class TransactionJournalLink extends Model
|
class TransactionJournalLink extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,44 +23,14 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\TransactionJournalMeta
|
* @mixin IdeHelperTransactionJournalMeta
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property int $transaction_journal_id
|
|
||||||
* @property string $name
|
|
||||||
* @property mixed $data
|
|
||||||
* @property string $hash
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property TransactionJournal $transactionJournal
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionJournalMeta newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionJournalMeta newQuery()
|
|
||||||
* @method static Builder|TransactionJournalMeta onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionJournalMeta query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionJournalMeta whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionJournalMeta whereData($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionJournalMeta whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionJournalMeta whereHash($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionJournalMeta whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionJournalMeta whereName($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionJournalMeta whereTransactionJournalId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionJournalMeta whereUpdatedAt($value)
|
|
||||||
* @method static Builder|TransactionJournalMeta withTrashed()
|
|
||||||
* @method static Builder|TransactionJournalMeta withoutTrashed()
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class TransactionJournalMeta extends Model
|
class TransactionJournalMeta extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,40 +23,14 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\TransactionType
|
* @mixin IdeHelperTransactionType
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property string $type
|
|
||||||
* @property Collection|TransactionJournal[] $transactionJournals
|
|
||||||
* @property null|int $transaction_journals_count
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionType newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionType newQuery()
|
|
||||||
* @method static Builder|TransactionType onlyTrashed()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionType query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionType whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionType whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionType whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionType whereType($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|TransactionType whereUpdatedAt($value)
|
|
||||||
* @method static Builder|TransactionType withTrashed()
|
|
||||||
* @method static Builder|TransactionType withoutTrashed()
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class TransactionType extends Model
|
class TransactionType extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,13 +24,9 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Enums\UserRoleEnum;
|
use FireflyIII\Enums\UserRoleEnum;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
@@ -38,61 +34,7 @@ use Illuminate\Database\Eloquent\Relations\HasManyThrough;
|
|||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class UserGroup
|
* @mixin IdeHelperUserGroup
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|string $deleted_at
|
|
||||||
* @property string $title
|
|
||||||
* @property Collection|GroupMembership[] $groupMemberships
|
|
||||||
* @property null|int $group_memberships_count
|
|
||||||
*
|
|
||||||
* @method static Builder|UserGroup newModelQuery()
|
|
||||||
* @method static Builder|UserGroup newQuery()
|
|
||||||
* @method static Builder|UserGroup query()
|
|
||||||
* @method static Builder|UserGroup whereCreatedAt($value)
|
|
||||||
* @method static Builder|UserGroup whereDeletedAt($value)
|
|
||||||
* @method static Builder|UserGroup whereId($value)
|
|
||||||
* @method static Builder|UserGroup whereTitle($value)
|
|
||||||
* @method static Builder|UserGroup whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @property Collection<int, Account> $accounts
|
|
||||||
* @property null|int $accounts_count
|
|
||||||
* @property Collection<int, AvailableBudget> $availableBudgets
|
|
||||||
* @property null|int $available_budgets_count
|
|
||||||
* @property Collection<int, Bill> $bills
|
|
||||||
* @property null|int $bills_count
|
|
||||||
* @property Collection<int, Budget> $budgets
|
|
||||||
* @property null|int $budgets_count
|
|
||||||
* @property Collection<int, PiggyBank> $piggyBanks
|
|
||||||
* @property null|int $piggy_banks_count
|
|
||||||
* @property Collection<int, TransactionJournal> $transactionJournals
|
|
||||||
* @property null|int $transaction_journals_count
|
|
||||||
* @property Collection<int, Attachment> $attachments
|
|
||||||
* @property null|int $attachments_count
|
|
||||||
* @property Collection<int, Category> $categories
|
|
||||||
* @property null|int $categories_count
|
|
||||||
* @property Collection<int, CurrencyExchangeRate> $currencyExchangeRates
|
|
||||||
* @property null|int $currency_exchange_rates_count
|
|
||||||
* @property Collection<int, ObjectGroup> $objectGroups
|
|
||||||
* @property null|int $object_groups_count
|
|
||||||
* @property Collection<int, Recurrence> $recurrences
|
|
||||||
* @property null|int $recurrences_count
|
|
||||||
* @property Collection<int, RuleGroup> $ruleGroups
|
|
||||||
* @property null|int $rule_groups_count
|
|
||||||
* @property Collection<int, Rule> $rules
|
|
||||||
* @property null|int $rules_count
|
|
||||||
* @property Collection<int, Tag> $tags
|
|
||||||
* @property null|int $tags_count
|
|
||||||
* @property Collection<int, TransactionGroup> $transactionGroups
|
|
||||||
* @property null|int $transaction_groups_count
|
|
||||||
* @property Collection<int, Webhook> $webhooks
|
|
||||||
* @property null|int $webhooks_count
|
|
||||||
* @property Collection<int, TransactionCurrency> $currencies
|
|
||||||
* @property null|int $currencies_count
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class UserGroup extends Model
|
class UserGroup extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,35 +24,12 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class UserRole
|
* @mixin IdeHelperUserRole
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|string $deleted_at
|
|
||||||
* @property string $title
|
|
||||||
* @property Collection|GroupMembership[] $groupMemberships
|
|
||||||
* @property null|int $group_memberships_count
|
|
||||||
*
|
|
||||||
* @method static Builder|UserRole newModelQuery()
|
|
||||||
* @method static Builder|UserRole newQuery()
|
|
||||||
* @method static Builder|UserRole query()
|
|
||||||
* @method static Builder|UserRole whereCreatedAt($value)
|
|
||||||
* @method static Builder|UserRole whereDeletedAt($value)
|
|
||||||
* @method static Builder|UserRole whereId($value)
|
|
||||||
* @method static Builder|UserRole whereTitle($value)
|
|
||||||
* @method static Builder|UserRole whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class UserRole extends Model
|
class UserRole extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,16 +23,12 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Enums\WebhookDelivery;
|
use FireflyIII\Enums\WebhookDelivery;
|
||||||
use FireflyIII\Enums\WebhookResponse;
|
use FireflyIII\Enums\WebhookResponse;
|
||||||
use FireflyIII\Enums\WebhookTrigger;
|
use FireflyIII\Enums\WebhookTrigger;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerUserIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
@@ -40,50 +36,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
|||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\Webhook
|
* @mixin IdeHelperWebhook
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|Carbon $deleted_at
|
|
||||||
* @property int $user_id
|
|
||||||
* @property bool $active
|
|
||||||
* @property int $trigger
|
|
||||||
* @property int $response
|
|
||||||
* @property int $delivery
|
|
||||||
* @property string $url
|
|
||||||
* @property User $user
|
|
||||||
* @property Collection|WebhookMessage[] $webhookMessages
|
|
||||||
* @property null|int $webhook_messages_count
|
|
||||||
*
|
|
||||||
* @method static Builder|Webhook newModelQuery()
|
|
||||||
* @method static Builder|Webhook newQuery()
|
|
||||||
* @method static \Illuminate\Database\Query\Builder|Webhook onlyTrashed()
|
|
||||||
* @method static Builder|Webhook query()
|
|
||||||
* @method static Builder|Webhook whereActive($value)
|
|
||||||
* @method static Builder|Webhook whereCreatedAt($value)
|
|
||||||
* @method static Builder|Webhook whereDeletedAt($value)
|
|
||||||
* @method static Builder|Webhook whereDelivery($value)
|
|
||||||
* @method static Builder|Webhook whereId($value)
|
|
||||||
* @method static Builder|Webhook whereResponse($value)
|
|
||||||
* @method static Builder|Webhook whereTrigger($value)
|
|
||||||
* @method static Builder|Webhook whereUpdatedAt($value)
|
|
||||||
* @method static Builder|Webhook whereUrl($value)
|
|
||||||
* @method static Builder|Webhook whereUserId($value)
|
|
||||||
* @method static \Illuminate\Database\Query\Builder|Webhook withTrashed()
|
|
||||||
* @method static \Illuminate\Database\Query\Builder|Webhook withoutTrashed()
|
|
||||||
*
|
|
||||||
* @property string $title
|
|
||||||
* @property string $secret
|
|
||||||
*
|
|
||||||
* @method static Builder|Webhook whereSecret($value)
|
|
||||||
* @method static Builder|Webhook whereTitle($value)
|
|
||||||
*
|
|
||||||
* @property int $user_group_id
|
|
||||||
*
|
|
||||||
* @method static Builder|Webhook whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class Webhook extends Model
|
class Webhook extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,46 +23,16 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Database\Query\Builder;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class WebhookAttempt
|
* @mixin IdeHelperWebhookAttempt
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|string $deleted_at
|
|
||||||
* @property int $webhook_message_id
|
|
||||||
* @property int|string $status_code
|
|
||||||
* @property null|string $logs
|
|
||||||
* @property null|string $response
|
|
||||||
* @property WebhookMessage $webhookMessage
|
|
||||||
*
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebhookAttempt newModelQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebhookAttempt newQuery()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebhookAttempt query()
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebhookAttempt whereCreatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebhookAttempt whereDeletedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebhookAttempt whereId($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebhookAttempt whereLogs($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebhookAttempt whereResponse($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebhookAttempt whereStatusCode($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebhookAttempt whereUpdatedAt($value)
|
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebhookAttempt whereWebhookMessageId($value)
|
|
||||||
* @method static Builder|WebhookAttempt onlyTrashed()
|
|
||||||
* @method static Builder|WebhookAttempt withTrashed()
|
|
||||||
* @method static Builder|WebhookAttempt withoutTrashed()
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class WebhookAttempt extends Model
|
class WebhookAttempt extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,53 +23,16 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Models;
|
namespace FireflyIII\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FireflyIII\Models\WebhookMessage
|
* @mixin IdeHelperWebhookMessage
|
||||||
*
|
|
||||||
* @property int $id
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|string $deleted_at
|
|
||||||
* @property int $webhook_id
|
|
||||||
* @property bool $sent
|
|
||||||
* @property bool $errored
|
|
||||||
* @property int $attempts
|
|
||||||
* @property string $uuid
|
|
||||||
* @property array $message
|
|
||||||
* @property null|array $logs
|
|
||||||
* @property Webhook $webhook
|
|
||||||
*
|
|
||||||
* @method static Builder|WebhookMessage newModelQuery()
|
|
||||||
* @method static Builder|WebhookMessage newQuery()
|
|
||||||
* @method static Builder|WebhookMessage query()
|
|
||||||
* @method static Builder|WebhookMessage whereAttempts($value)
|
|
||||||
* @method static Builder|WebhookMessage whereCreatedAt($value)
|
|
||||||
* @method static Builder|WebhookMessage whereDeletedAt($value)
|
|
||||||
* @method static Builder|WebhookMessage whereErrored($value)
|
|
||||||
* @method static Builder|WebhookMessage whereId($value)
|
|
||||||
* @method static Builder|WebhookMessage whereLogs($value)
|
|
||||||
* @method static Builder|WebhookMessage whereMessage($value)
|
|
||||||
* @method static Builder|WebhookMessage whereSent($value)
|
|
||||||
* @method static Builder|WebhookMessage whereUpdatedAt($value)
|
|
||||||
* @method static Builder|WebhookMessage whereUuid($value)
|
|
||||||
* @method static Builder|WebhookMessage whereWebhookId($value)
|
|
||||||
*
|
|
||||||
* @property Collection|WebhookAttempt[] $webhookAttempts
|
|
||||||
* @property null|int $webhook_attempts_count
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class WebhookMessage extends Model
|
class WebhookMessage extends Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ use FireflyIII\Services\Password\Verifier;
|
|||||||
use FireflyIII\Services\Webhook\StandardWebhookSender;
|
use FireflyIII\Services\Webhook\StandardWebhookSender;
|
||||||
use FireflyIII\Services\Webhook\WebhookSenderInterface;
|
use FireflyIII\Services\Webhook\WebhookSenderInterface;
|
||||||
use FireflyIII\Support\Amount;
|
use FireflyIII\Support\Amount;
|
||||||
|
use FireflyIII\Support\Balance;
|
||||||
use FireflyIII\Support\ExpandedForm;
|
use FireflyIII\Support\ExpandedForm;
|
||||||
use FireflyIII\Support\FireflyConfig;
|
use FireflyIII\Support\FireflyConfig;
|
||||||
use FireflyIII\Support\Form\AccountForm;
|
use FireflyIII\Support\Form\AccountForm;
|
||||||
@@ -133,6 +134,12 @@ class FireflyServiceProvider extends ServiceProvider
|
|||||||
return new Steam();
|
return new Steam();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
$this->app->bind(
|
||||||
|
'balance',
|
||||||
|
static function () {
|
||||||
|
return new Balance();
|
||||||
|
}
|
||||||
|
);
|
||||||
$this->app->bind(
|
$this->app->bind(
|
||||||
'expandedform',
|
'expandedform',
|
||||||
static function () {
|
static function () {
|
||||||
|
|||||||
@@ -84,6 +84,14 @@ class CurrencyRepository implements CurrencyRepositoryInterface
|
|||||||
return 'account_meta';
|
return 'account_meta';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// second search using integer check.
|
||||||
|
$meta = AccountMeta::where('name', 'currency_id')->where('data', json_encode((int)$currency->id))->count();
|
||||||
|
if ($meta > 0) {
|
||||||
|
app('log')->info(sprintf('Used in %d accounts as currency_id, return true. ', $meta));
|
||||||
|
|
||||||
|
return 'account_meta';
|
||||||
|
}
|
||||||
|
|
||||||
// is being used in bills:
|
// is being used in bills:
|
||||||
$bills = Bill::where('transaction_currency_id', $currency->id)->count();
|
$bills = Bill::where('transaction_currency_id', $currency->id)->count();
|
||||||
if ($bills > 0) {
|
if ($bills > 0) {
|
||||||
|
|||||||
79
app/Rules/IsValidDateRange.php
Normal file
79
app/Rules/IsValidDateRange.php
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* IsValidDateRange.php
|
||||||
|
* Copyright (c) 2024 james@firefly-iii.org.
|
||||||
|
*
|
||||||
|
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see https://www.gnu.org/licenses/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace FireflyIII\Rules;
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Carbon\Exceptions\InvalidDateException;
|
||||||
|
use Carbon\Exceptions\InvalidFormatException;
|
||||||
|
use Illuminate\Contracts\Validation\ValidationRule;
|
||||||
|
|
||||||
|
class IsValidDateRange implements ValidationRule
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||||
|
*/
|
||||||
|
public function validate(string $attribute, mixed $value, \Closure $fail): void
|
||||||
|
{
|
||||||
|
$value = (string) $value;
|
||||||
|
if ('' === $value) {
|
||||||
|
$fail('validation.date_or_time')->translate();
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$other = 'startPeriod';
|
||||||
|
if ('startPeriod' === $attribute) {
|
||||||
|
$other = 'endPeriod';
|
||||||
|
}
|
||||||
|
$otherValue = request()->get($other);
|
||||||
|
// parse date, twice.
|
||||||
|
try {
|
||||||
|
$left = Carbon::parse($value);
|
||||||
|
$right = Carbon::parse($otherValue);
|
||||||
|
} catch (InvalidDateException $e) { // @phpstan-ignore-line
|
||||||
|
app('log')->error(sprintf('"%s" or "%s" is not a valid date or time: %s', $value, $otherValue, $e->getMessage()));
|
||||||
|
|
||||||
|
$fail('validation.date_or_time')->translate();
|
||||||
|
|
||||||
|
return;
|
||||||
|
} catch (InvalidFormatException $e) {
|
||||||
|
app('log')->error(sprintf('"%s" or "%s" is of an invalid format: %s', $value, $otherValue, $e->getMessage()));
|
||||||
|
|
||||||
|
$fail('validation.date_or_time')->translate();
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// start must be before end.
|
||||||
|
if ('startPeriod' === $attribute) {
|
||||||
|
if ($left->gt($right)) {
|
||||||
|
$fail('validation.date_after')->translate();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// end must be after start
|
||||||
|
if ($left->lt($right)) {
|
||||||
|
$fail('validation.date_after')->translate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -168,6 +168,7 @@ class JournalUpdateService
|
|||||||
app('preferences')->mark();
|
app('preferences')->mark();
|
||||||
|
|
||||||
$this->transactionJournal->refresh();
|
$this->transactionJournal->refresh();
|
||||||
|
Log::debug('Done with update journal routine');
|
||||||
}
|
}
|
||||||
|
|
||||||
private function hasValidAccounts(): bool
|
private function hasValidAccounts(): bool
|
||||||
@@ -333,7 +334,7 @@ class JournalUpdateService
|
|||||||
}
|
}
|
||||||
|
|
||||||
$sourceInfo = [
|
$sourceInfo = [
|
||||||
'id' => (int)($this->data['source_id'] ?? null),
|
'id' => (int) ($this->data['source_id'] ?? null),
|
||||||
'name' => $this->data['source_name'] ?? null,
|
'name' => $this->data['source_name'] ?? null,
|
||||||
'iban' => $this->data['source_iban'] ?? null,
|
'iban' => $this->data['source_iban'] ?? null,
|
||||||
'number' => $this->data['source_number'] ?? null,
|
'number' => $this->data['source_number'] ?? null,
|
||||||
@@ -397,7 +398,7 @@ class JournalUpdateService
|
|||||||
}
|
}
|
||||||
|
|
||||||
$destInfo = [
|
$destInfo = [
|
||||||
'id' => (int)($this->data['destination_id'] ?? null),
|
'id' => (int) ($this->data['destination_id'] ?? null),
|
||||||
'name' => $this->data['destination_name'] ?? null,
|
'name' => $this->data['destination_name'] ?? null,
|
||||||
'iban' => $this->data['destination_iban'] ?? null,
|
'iban' => $this->data['destination_iban'] ?? null,
|
||||||
'number' => $this->data['destination_number'] ?? null,
|
'number' => $this->data['destination_number'] ?? null,
|
||||||
@@ -463,8 +464,8 @@ class JournalUpdateService
|
|||||||
)
|
)
|
||||||
&& TransactionType::WITHDRAWAL === $type
|
&& TransactionType::WITHDRAWAL === $type
|
||||||
) {
|
) {
|
||||||
$billId = (int)($this->data['bill_id'] ?? 0);
|
$billId = (int) ($this->data['bill_id'] ?? 0);
|
||||||
$billName = (string)($this->data['bill_name'] ?? '');
|
$billName = (string) ($this->data['bill_name'] ?? '');
|
||||||
$bill = $this->billRepository->findBill($billId, $billName);
|
$bill = $this->billRepository->findBill($billId, $billName);
|
||||||
$this->transactionJournal->bill_id = $bill?->id;
|
$this->transactionJournal->bill_id = $bill?->id;
|
||||||
app('log')->debug('Updated bill ID');
|
app('log')->debug('Updated bill ID');
|
||||||
@@ -476,7 +477,7 @@ class JournalUpdateService
|
|||||||
*/
|
*/
|
||||||
private function updateField(string $fieldName): void
|
private function updateField(string $fieldName): void
|
||||||
{
|
{
|
||||||
if (array_key_exists($fieldName, $this->data) && '' !== (string)$this->data[$fieldName]) {
|
if (array_key_exists($fieldName, $this->data) && '' !== (string) $this->data[$fieldName]) {
|
||||||
$value = $this->data[$fieldName];
|
$value = $this->data[$fieldName];
|
||||||
|
|
||||||
if ('date' === $fieldName) {
|
if ('date' === $fieldName) {
|
||||||
@@ -548,7 +549,7 @@ class JournalUpdateService
|
|||||||
{
|
{
|
||||||
// update notes.
|
// update notes.
|
||||||
if ($this->hasFields(['notes'])) {
|
if ($this->hasFields(['notes'])) {
|
||||||
$notes = '' === (string)$this->data['notes'] ? null : $this->data['notes'];
|
$notes = '' === (string) $this->data['notes'] ? null : $this->data['notes'];
|
||||||
$this->storeNotes($this->transactionJournal, $notes);
|
$this->storeNotes($this->transactionJournal, $notes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -596,7 +597,7 @@ class JournalUpdateService
|
|||||||
foreach ($this->metaDate as $field) {
|
foreach ($this->metaDate as $field) {
|
||||||
if ($this->hasFields([$field])) {
|
if ($this->hasFields([$field])) {
|
||||||
try {
|
try {
|
||||||
$value = '' === (string)$this->data[$field] ? null : new Carbon($this->data[$field]);
|
$value = '' === (string) $this->data[$field] ? null : new Carbon($this->data[$field]);
|
||||||
} catch (InvalidDateException|InvalidFormatException $e) { // @phpstan-ignore-line
|
} catch (InvalidDateException|InvalidFormatException $e) { // @phpstan-ignore-line
|
||||||
app('log')->debug(sprintf('%s is not a valid date value: %s', $this->data[$field], $e->getMessage()));
|
app('log')->debug(sprintf('%s is not a valid date value: %s', $this->data[$field], $e->getMessage()));
|
||||||
|
|
||||||
@@ -657,11 +658,14 @@ class JournalUpdateService
|
|||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$origSourceTransaction = $this->getSourceTransaction();
|
$origSourceTransaction = $this->getSourceTransaction();
|
||||||
$origSourceTransaction->amount = app('steam')->negative($amount);
|
$origSourceTransaction->amount = app('steam')->negative($amount);
|
||||||
|
$origSourceTransaction->balance_dirty = true;
|
||||||
$origSourceTransaction->save();
|
$origSourceTransaction->save();
|
||||||
$destTransaction = $this->getDestinationTransaction();
|
$destTransaction = $this->getDestinationTransaction();
|
||||||
$destTransaction->amount = app('steam')->positive($amount);
|
$destTransaction->amount = app('steam')->positive($amount);
|
||||||
|
$destTransaction->balance_dirty = true;
|
||||||
$destTransaction->save();
|
$destTransaction->save();
|
||||||
// refresh transactions.
|
// refresh transactions.
|
||||||
$this->sourceTransaction->refresh();
|
$this->sourceTransaction->refresh();
|
||||||
@@ -705,18 +709,16 @@ class JournalUpdateService
|
|||||||
// the correct fields to update in the destination transaction are NOT the foreign amount and currency
|
// the correct fields to update in the destination transaction are NOT the foreign amount and currency
|
||||||
// but rather the normal amount and currency. This is new behavior.
|
// but rather the normal amount and currency. This is new behavior.
|
||||||
|
|
||||||
if(TransactionType::TRANSFER === $this->transactionJournal->transactionType->type) {
|
if (TransactionType::TRANSFER === $this->transactionJournal->transactionType->type) {
|
||||||
Log::debug('Switch amounts, store in amount and not foreign_amount');
|
Log::debug('Switch amounts, store in amount and not foreign_amount');
|
||||||
$dest->transaction_currency_id = $foreignCurrency->id;
|
$dest->transaction_currency_id = $foreignCurrency->id;
|
||||||
$dest->amount = app('steam')->positive($foreignAmount);
|
$dest->amount = app('steam')->positive($foreignAmount);
|
||||||
}
|
}
|
||||||
if(TransactionType::TRANSFER !== $this->transactionJournal->transactionType->type) {
|
if (TransactionType::TRANSFER !== $this->transactionJournal->transactionType->type) {
|
||||||
$dest->foreign_currency_id = $foreignCurrency->id;
|
$dest->foreign_currency_id = $foreignCurrency->id;
|
||||||
$dest->foreign_amount = app('steam')->positive($foreignAmount);
|
$dest->foreign_amount = app('steam')->positive($foreignAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$dest->save();
|
$dest->save();
|
||||||
|
|
||||||
app('log')->debug(
|
app('log')->debug(
|
||||||
@@ -751,8 +753,5 @@ class JournalUpdateService
|
|||||||
$this->destinationTransaction->refresh();
|
$this->destinationTransaction->refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function collectCurrency(): TransactionCurrency
|
private function collectCurrency(): TransactionCurrency {}
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,11 @@ class Amount
|
|||||||
return $this->formatFlat($format->symbol, $format->decimal_places, $amount, $coloured);
|
return $this->formatFlat($format->symbol, $format->decimal_places, $amount, $coloured);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function formatByCurrencyId(int $currencyId, string $amount, ?bool $coloured = null): string {
|
||||||
|
$format = TransactionCurrency::find($currencyId);
|
||||||
|
return $this->formatFlat($format->symbol, $format->decimal_places, $amount, $coloured);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method will properly format the given number, in color or "black and white",
|
* This method will properly format the given number, in color or "black and white",
|
||||||
* as a currency, given two things: the currency required and the current locale.
|
* as a currency, given two things: the currency required and the current locale.
|
||||||
|
|||||||
79
app/Support/Balance.php
Normal file
79
app/Support/Balance.php
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Balance.php
|
||||||
|
* Copyright (c) 2024 james@firefly-iii.org.
|
||||||
|
*
|
||||||
|
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see https://www.gnu.org/licenses/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace FireflyIII\Support;
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use FireflyIII\Models\Transaction;
|
||||||
|
use FireflyIII\Models\TransactionCurrency;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
class Balance
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the accounts balances as an array, on the account ID.
|
||||||
|
*
|
||||||
|
* @param Collection $accounts
|
||||||
|
* @param Carbon $date
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getAccountBalances(Collection $accounts, Carbon $date): array
|
||||||
|
{
|
||||||
|
Log::debug(sprintf('getAccountBalances(<collection>, "%s")', $date->format('Y-m-d')));
|
||||||
|
$return = [];
|
||||||
|
$currencies = [];
|
||||||
|
$cache = new CacheProperties();
|
||||||
|
$cache->addProperty($accounts->pluck('id')->toArray());
|
||||||
|
$cache->addProperty('getAccountBalances');
|
||||||
|
$cache->addProperty($date);
|
||||||
|
if ($cache->has()) {
|
||||||
|
return $cache->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = Transaction::
|
||||||
|
whereIn('transactions.account_id', $accounts->pluck('id')->toArray())
|
||||||
|
->leftJoin('transaction_journals', 'transactions.transaction_journal_id', '=', 'transaction_journals.id')
|
||||||
|
->orderBy('transaction_journals.date', 'desc')
|
||||||
|
->orderBy('transaction_journals.order', 'asc')
|
||||||
|
->orderBy('transaction_journals.description', 'desc')
|
||||||
|
->orderBy('transactions.amount', 'desc')
|
||||||
|
->where('transaction_journals.date', '<=', $date);
|
||||||
|
|
||||||
|
$result = $query->get(['transactions.account_id', 'transactions.transaction_currency_id', 'transactions.balance_after']);
|
||||||
|
foreach ($result as $entry) {
|
||||||
|
$accountId = (int) $entry->account_id;
|
||||||
|
$currencyId = (int) $entry->transaction_currency_id;
|
||||||
|
$currencies[$currencyId] ??= TransactionCurrency::find($currencyId);
|
||||||
|
$return[$accountId] ??= [];
|
||||||
|
if (array_key_exists($currencyId, $return[$accountId])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$return[$accountId][$currencyId] = ['currency' => $currencies[$currencyId], 'balance' => $entry->balance_after, 'date' => clone $date];
|
||||||
|
}
|
||||||
|
return $return;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
37
app/Support/Facades/Balance.php
Normal file
37
app/Support/Facades/Balance.php
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Balance.php
|
||||||
|
* Copyright (c) 2024 james@firefly-iii.org.
|
||||||
|
*
|
||||||
|
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see https://www.gnu.org/licenses/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace FireflyIII\Support\Facades;
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Facade;
|
||||||
|
|
||||||
|
class Balance extends Facade
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the registered name of the component.
|
||||||
|
*/
|
||||||
|
protected static function getFacadeAccessor(): string
|
||||||
|
{
|
||||||
|
return 'balance';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -44,12 +44,18 @@ class ExchangeRateConverter
|
|||||||
private array $prepared = [];
|
private array $prepared = [];
|
||||||
private int $queryCount = 0;
|
private int $queryCount = 0;
|
||||||
|
|
||||||
|
|
||||||
|
public function enabled(): bool
|
||||||
|
{
|
||||||
|
return false !== config('cer.enabled');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
*/
|
*/
|
||||||
public function convert(TransactionCurrency $from, TransactionCurrency $to, Carbon $date, string $amount): string
|
public function convert(TransactionCurrency $from, TransactionCurrency $to, Carbon $date, string $amount): string
|
||||||
{
|
{
|
||||||
if (false === config('cer.enabled')) {
|
if (false === $this->enabled()) {
|
||||||
Log::debug('ExchangeRateConverter: disabled, return amount as is.');
|
Log::debug('ExchangeRateConverter: disabled, return amount as is.');
|
||||||
|
|
||||||
return $amount;
|
return $amount;
|
||||||
@@ -64,7 +70,7 @@ class ExchangeRateConverter
|
|||||||
*/
|
*/
|
||||||
public function getCurrencyRate(TransactionCurrency $from, TransactionCurrency $to, Carbon $date): string
|
public function getCurrencyRate(TransactionCurrency $from, TransactionCurrency $to, Carbon $date): string
|
||||||
{
|
{
|
||||||
if (false === config('cer.enabled')) {
|
if (false === $this->enabled()) {
|
||||||
Log::debug('ExchangeRateConverter: disabled, return "1".');
|
Log::debug('ExchangeRateConverter: disabled, return "1".');
|
||||||
|
|
||||||
return '1';
|
return '1';
|
||||||
@@ -161,8 +167,7 @@ class ExchangeRateConverter
|
|||||||
->where('to_currency_id', $to)
|
->where('to_currency_id', $to)
|
||||||
->where('date', '<=', $date)
|
->where('date', '<=', $date)
|
||||||
->orderBy('date', 'DESC')
|
->orderBy('date', 'DESC')
|
||||||
->first()
|
->first();
|
||||||
;
|
|
||||||
++$this->queryCount;
|
++$this->queryCount;
|
||||||
$rate = (string) $result?->rate;
|
$rate = (string) $result?->rate;
|
||||||
|
|
||||||
@@ -254,7 +259,7 @@ class ExchangeRateConverter
|
|||||||
*/
|
*/
|
||||||
public function prepare(TransactionCurrency $from, TransactionCurrency $to, Carbon $start, Carbon $end): void
|
public function prepare(TransactionCurrency $from, TransactionCurrency $to, Carbon $start, Carbon $end): void
|
||||||
{
|
{
|
||||||
if (false === config('cer.enabled')) {
|
if (false === $this->enabled()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Log::debug('prepare()');
|
Log::debug('prepare()');
|
||||||
@@ -267,8 +272,7 @@ class ExchangeRateConverter
|
|||||||
->where('to_currency_id', $to->id)
|
->where('to_currency_id', $to->id)
|
||||||
->where('date', '<=', $end->format('Y-m-d'))
|
->where('date', '<=', $end->format('Y-m-d'))
|
||||||
->where('date', '>=', $start->format('Y-m-d'))
|
->where('date', '>=', $start->format('Y-m-d'))
|
||||||
->orderBy('date', 'DESC')->get()
|
->orderBy('date', 'DESC')->get();
|
||||||
;
|
|
||||||
++$this->queryCount;
|
++$this->queryCount;
|
||||||
if (0 === $set->count()) {
|
if (0 === $set->count()) {
|
||||||
Log::debug('No prepared rates found in this period, use the fallback');
|
Log::debug('No prepared rates found in this period, use the fallback');
|
||||||
@@ -329,7 +333,7 @@ class ExchangeRateConverter
|
|||||||
|
|
||||||
public function summarize(): void
|
public function summarize(): void
|
||||||
{
|
{
|
||||||
if (false === config('cer.enabled')) {
|
if (false === $this->enabled()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Log::debug(sprintf('ExchangeRateConverter ran %d queries.', $this->queryCount));
|
Log::debug(sprintf('ExchangeRateConverter ran %d queries.', $this->queryCount));
|
||||||
|
|||||||
@@ -441,7 +441,7 @@ trait PeriodOverview
|
|||||||
$cache->addProperty('tag-period-entries');
|
$cache->addProperty('tag-period-entries');
|
||||||
$cache->addProperty($tag->id);
|
$cache->addProperty($tag->id);
|
||||||
if ($cache->has()) {
|
if ($cache->has()) {
|
||||||
// return $cache->get();
|
return $cache->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var array $dates */
|
/** @var array $dates */
|
||||||
|
|||||||
43
app/Support/JsonApi/CollectsCustomParameters.php
Normal file
43
app/Support/JsonApi/CollectsCustomParameters.php
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* CollectsCustomParameters.php
|
||||||
|
* Copyright (c) 2024 james@firefly-iii.org.
|
||||||
|
*
|
||||||
|
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see https://www.gnu.org/licenses/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace FireflyIII\Support\JsonApi;
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
trait CollectsCustomParameters
|
||||||
|
{
|
||||||
|
|
||||||
|
protected function getOtherParams(array $params): array
|
||||||
|
{
|
||||||
|
$return = [];
|
||||||
|
if (array_key_exists('startPeriod', $params)) {
|
||||||
|
$return['start'] = Carbon::parse($params['startPeriod']);
|
||||||
|
}
|
||||||
|
if (array_key_exists('endPeriod', $params)) {
|
||||||
|
$return['end'] = Carbon::parse($params['endPeriod']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -24,11 +24,14 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Support\JsonApi\Enrichments;
|
namespace FireflyIII\Support\JsonApi\Enrichments;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\AccountType;
|
use FireflyIII\Models\AccountType;
|
||||||
|
use FireflyIII\Models\ObjectGroup;
|
||||||
|
use FireflyIII\Models\TransactionCurrency;
|
||||||
use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface;
|
use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface;
|
||||||
use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface;
|
use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface;
|
||||||
|
use FireflyIII\Support\Facades\Balance;
|
||||||
|
use FireflyIII\Support\Http\Api\ExchangeRateConverter;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
@@ -42,6 +45,12 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
{
|
{
|
||||||
private Collection $collection;
|
private Collection $collection;
|
||||||
private array $currencies;
|
private array $currencies;
|
||||||
|
private array $objectGroups;
|
||||||
|
private array $grouped;
|
||||||
|
private array $balances;
|
||||||
|
private TransactionCurrency $default;
|
||||||
|
private ?Carbon $start;
|
||||||
|
private ?Carbon $end;
|
||||||
|
|
||||||
private AccountRepositoryInterface $repository;
|
private AccountRepositoryInterface $repository;
|
||||||
private CurrencyRepositoryInterface $currencyRepository;
|
private CurrencyRepositoryInterface $currencyRepository;
|
||||||
@@ -50,6 +59,8 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
{
|
{
|
||||||
$this->repository = app(AccountRepositoryInterface::class);
|
$this->repository = app(AccountRepositoryInterface::class);
|
||||||
$this->currencyRepository = app(CurrencyRepositoryInterface::class);
|
$this->currencyRepository = app(CurrencyRepositoryInterface::class);
|
||||||
|
$this->start = null;
|
||||||
|
$this->end = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[\Override]
|
#[\Override]
|
||||||
@@ -61,13 +72,18 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
Log::debug(sprintf('Now doing account enrichment for %d account(s)', $collection->count()));
|
Log::debug(sprintf('Now doing account enrichment for %d account(s)', $collection->count()));
|
||||||
// prep local fields
|
// prep local fields
|
||||||
$this->collection = $collection;
|
$this->collection = $collection;
|
||||||
|
$this->default = app('amount')->getDefaultCurrency();
|
||||||
$this->currencies = [];
|
$this->currencies = [];
|
||||||
|
$this->balances = [];
|
||||||
|
$this->objectGroups = [];
|
||||||
|
$this->grouped = [];
|
||||||
|
|
||||||
// do everything here:
|
// do everything here:
|
||||||
$this->getLastActivity();
|
$this->getLastActivity();
|
||||||
$this->collectAccountTypes();
|
$this->collectAccountTypes();
|
||||||
$this->collectMetaData();
|
$this->collectMetaData();
|
||||||
// $this->getMetaBalances();
|
$this->getMetaBalances();
|
||||||
|
$this->getObjectGroups();
|
||||||
|
|
||||||
// $this->collection->transform(function (Account $account) {
|
// $this->collection->transform(function (Account $account) {
|
||||||
// $account->user_array = ['id' => 1, 'bla bla' => 'bla'];
|
// $account->user_array = ['id' => 1, 'bla bla' => 'bla'];
|
||||||
@@ -94,22 +110,75 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* TODO this method refers to a single-use method inside Steam that could be moved here.
|
|
||||||
*/
|
|
||||||
private function getMetaBalances(): void
|
private function getMetaBalances(): void
|
||||||
{
|
{
|
||||||
try {
|
$this->balances = Balance::getAccountBalances($this->collection, today());
|
||||||
$array = app('steam')->balancesByAccountsConverted($this->collection, today());
|
$balances = $this->balances;
|
||||||
} catch (FireflyException $e) {
|
$default = $this->default;
|
||||||
Log::error(sprintf('Could not load balances: %s', $e->getMessage()));
|
|
||||||
|
|
||||||
return;
|
// get start and end, so the balance difference can be generated.
|
||||||
|
$start = null;
|
||||||
|
$end = null;
|
||||||
|
if (null !== $this->start) {
|
||||||
|
$start = Balance::getAccountBalances($this->collection, $this->start);
|
||||||
}
|
}
|
||||||
foreach ($array as $accountId => $row) {
|
if (null !== $this->end) {
|
||||||
$this->collection->where('id', $accountId)->first()->balance = $row['balance'];
|
$end = Balance::getAccountBalances($this->collection, $this->end);
|
||||||
$this->collection->where('id', $accountId)->first()->native_balance = $row['native_balance'];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->collection->transform(function (Account $account) use ($balances, $default, $start, $end) {
|
||||||
|
$converter = new ExchangeRateConverter();
|
||||||
|
$native = [
|
||||||
|
'currency_id' => $this->default->id,
|
||||||
|
'currency_name' => $this->default->name,
|
||||||
|
'currency_code' => $this->default->code,
|
||||||
|
'currency_symbol' => $this->default->symbol,
|
||||||
|
'currency_decimal_places' => $this->default->decimal_places,
|
||||||
|
'balance' => '0',
|
||||||
|
'period_start_balance' => null,
|
||||||
|
'period_end_balance' => null,
|
||||||
|
'balance_difference' => null,
|
||||||
|
];
|
||||||
|
if (array_key_exists($account->id, $balances)) {
|
||||||
|
$set = [];
|
||||||
|
foreach ($balances[$account->id] as $currencyId => $entry) {
|
||||||
|
$left = $start[$account->id][$currencyId]['balance'] ?? null;
|
||||||
|
$right = $end[$account->id][$currencyId]['balance'] ?? null;
|
||||||
|
$diff = null;
|
||||||
|
if (null !== $left && null !== $right) {
|
||||||
|
$diff = bcsub($right, $left);
|
||||||
|
}
|
||||||
|
|
||||||
|
$item = [
|
||||||
|
'currency_id' => $entry['currency']->id,
|
||||||
|
'currency_name' => $entry['currency']->name,
|
||||||
|
'currency_code' => $entry['currency']->code,
|
||||||
|
'currency_symbol' => $entry['currency']->symbol,
|
||||||
|
'currency_decimal_places' => $entry['currency']->decimal_places,
|
||||||
|
'balance' => $entry['balance'],
|
||||||
|
'period_start_balance' => $left,
|
||||||
|
'period_end_balance' => $right,
|
||||||
|
'balance_difference' => $diff,
|
||||||
|
];
|
||||||
|
$set[] = $item;
|
||||||
|
if ($converter->enabled()) {
|
||||||
|
$native['balance'] = bcadd($native['balance'], $converter->convert($entry['currency'], $default, today(), $entry['balance']));
|
||||||
|
if (null !== $diff) {
|
||||||
|
$native['period_start_balance'] = $converter->convert($entry['currency'], $default, today(), $item['period_start_balance']);
|
||||||
|
$native['period_end_balance'] = $converter->convert($entry['currency'], $default, today(), $item['period_end_balance']);
|
||||||
|
$native['balance_difference'] = bcsub($native['period_end_balance'], $native['period_start_balance']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$account->balance = $set;
|
||||||
|
if ($converter->enabled()) {
|
||||||
|
$account->native_balance = $native;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return $account;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -133,7 +202,7 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
|
|
||||||
private function collectMetaData(): void
|
private function collectMetaData(): void
|
||||||
{
|
{
|
||||||
$metaFields = $this->repository->getMetaValues($this->collection, ['currency_id', 'account_role', 'account_number', 'liability_direction', 'interest', 'interest_period', 'current_debt']);
|
$metaFields = $this->repository->getMetaValues($this->collection, ['is_multi_currency', 'currency_id', 'account_role', 'account_number', 'liability_direction', 'interest', 'interest_period', 'current_debt']);
|
||||||
$currencyIds = $metaFields->where('name', 'currency_id')->pluck('data')->toArray();
|
$currencyIds = $metaFields->where('name', 'currency_id')->pluck('data')->toArray();
|
||||||
|
|
||||||
$currencies = [];
|
$currencies = [];
|
||||||
@@ -160,7 +229,7 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[\Override]
|
#[\Override]
|
||||||
public function enrichSingle(Model $model): Model
|
public function enrichSingle(Model $model): Account
|
||||||
{
|
{
|
||||||
Log::debug(__METHOD__);
|
Log::debug(__METHOD__);
|
||||||
$collection = new Collection([$model]);
|
$collection = new Collection([$model]);
|
||||||
@@ -168,4 +237,44 @@ class AccountEnrichment implements EnrichmentInterface
|
|||||||
|
|
||||||
return $collection->first();
|
return $collection->first();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setStart(?Carbon $start): void
|
||||||
|
{
|
||||||
|
$this->start = $start;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setEnd(?Carbon $end): void
|
||||||
|
{
|
||||||
|
$this->end = $end;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getObjectGroups(): void
|
||||||
|
{
|
||||||
|
$set = \DB::table('object_groupables')
|
||||||
|
->where('object_groupable_type', Account::class)
|
||||||
|
->whereIn('object_groupable_id', $this->collection->pluck('id')->toArray())
|
||||||
|
->distinct()
|
||||||
|
->get(['object_groupables.object_groupable_id', 'object_groupables.object_group_id']);
|
||||||
|
// get the groups:
|
||||||
|
$groupIds = $set->pluck('object_group_id')->toArray();
|
||||||
|
$groups = ObjectGroup::whereIn('id', $groupIds)->get();
|
||||||
|
/** @var ObjectGroup $group */
|
||||||
|
foreach ($groups as $group) {
|
||||||
|
$this->objectGroups[$group->id] = $group;
|
||||||
|
}
|
||||||
|
/** @var \stdClass $entry */
|
||||||
|
foreach ($set as $entry) {
|
||||||
|
$this->grouped[(int) $entry->object_groupable_id] = (int) $entry->object_group_id;
|
||||||
|
}
|
||||||
|
$this->collection->transform(function (Account $account) {
|
||||||
|
$account->object_group_id = $this->grouped[$account->id] ?? null;
|
||||||
|
if(null !== $account->object_group_id) {
|
||||||
|
$account->object_group_title = $this->objectGroups[$account->object_group_id]->title;
|
||||||
|
$account->object_group_order = $this->objectGroups[$account->object_group_id]->order;
|
||||||
|
}
|
||||||
|
return $account;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,13 @@ use FireflyIII\Models\TransactionJournal;
|
|||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class AccountBalanceCalculator
|
||||||
|
*
|
||||||
|
* This class started as a piece of code to create and calculate "account balance" objects, but they
|
||||||
|
* are at the moment unused. Instead, each transaction gets a before/after balance and an indicator if this
|
||||||
|
* balance is up-to-date. This class now contains some methods to recalculate those amounts.
|
||||||
|
*/
|
||||||
class AccountBalanceCalculator
|
class AccountBalanceCalculator
|
||||||
{
|
{
|
||||||
private function __construct()
|
private function __construct()
|
||||||
@@ -39,36 +46,35 @@ class AccountBalanceCalculator
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Recalculate all balances for a given account.
|
* Recalculate all balances.
|
||||||
*
|
*/
|
||||||
* Je moet toch altijd wel alles doen want je weet niet waar een transaction journal invloed op heeft.
|
public static function forceRecalculateAll(): void
|
||||||
* Dus dit aantikken per transaction journal is zinloos, beide accounts moeten gedaan worden.
|
{
|
||||||
|
Transaction::whereNull('deleted_at')->update(['balance_dirty' => true]);
|
||||||
|
$object = new self();
|
||||||
|
$object->optimizedCalculation(new Collection());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Recalculate all balances.
|
||||||
*/
|
*/
|
||||||
public static function recalculateAll(): void
|
public static function recalculateAll(): void
|
||||||
{
|
{
|
||||||
$object = new self();
|
$object = new self();
|
||||||
//$object->recalculateLatest(null);
|
|
||||||
$object->optimizedCalculation(new Collection());
|
$object->optimizedCalculation(new Collection());
|
||||||
// $object->recalculateJournals(null, null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function recalculateForJournal(TransactionJournal $transactionJournal): void
|
public static function recalculateForJournal(TransactionJournal $transactionJournal): void
|
||||||
{
|
{
|
||||||
|
Log::debug(__METHOD__);
|
||||||
$object = new self();
|
$object = new self();
|
||||||
|
|
||||||
// new optimized code, currently UNUSED:
|
// recalculate the involved accounts:
|
||||||
// recalculate everything ON or AFTER the moment of this transaction.
|
$accounts = new Collection();
|
||||||
// Transaction
|
|
||||||
// ::leftjoin('transaction_journals','transaction_journals.id','=','transactions.transaction_journal_id')
|
|
||||||
// ->where('transaction_journals.user_id', $transactionJournal->user_id)
|
|
||||||
// ->where('transaction_journals.date', '>=', $transactionJournal->date)
|
|
||||||
// ->update(['transactions.balance_dirty' => true]);
|
|
||||||
// $object->optimizedCalculation(new Collection());
|
|
||||||
|
|
||||||
foreach ($transactionJournal->transactions as $transaction) {
|
foreach ($transactionJournal->transactions as $transaction) {
|
||||||
$object->recalculateLatest($transaction->account);
|
$accounts->push($transaction->account);
|
||||||
//$object->recalculateJournals($transaction->account, $transactionJournal);
|
|
||||||
}
|
}
|
||||||
|
$object->optimizedCalculation($accounts);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getAccountBalanceByAccount(int $account, int $currency): AccountBalance
|
private function getAccountBalanceByAccount(int $account, int $currency): AccountBalance
|
||||||
@@ -92,11 +98,6 @@ class AccountBalanceCalculator
|
|||||||
return $entry;
|
return $entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $accounts
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
private function optimizedCalculation(Collection $accounts): void
|
private function optimizedCalculation(Collection $accounts): void
|
||||||
{
|
{
|
||||||
Log::debug('start of optimizedCalculation');
|
Log::debug('start of optimizedCalculation');
|
||||||
@@ -107,14 +108,16 @@ class AccountBalanceCalculator
|
|||||||
$balances = [];
|
$balances = [];
|
||||||
$count = 0;
|
$count = 0;
|
||||||
$query = Transaction::leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
$query = Transaction::leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
|
->whereNull('transactions.deleted_at')
|
||||||
|
->whereNull('transaction_journals.deleted_at')
|
||||||
// this order is the same as GroupCollector, but in the exact reverse.
|
// this order is the same as GroupCollector, but in the exact reverse.
|
||||||
->orderBy('transaction_journals.date', 'asc')
|
->orderBy('transaction_journals.date', 'asc')
|
||||||
->orderBy('transaction_journals.order', 'desc')
|
->orderBy('transaction_journals.order', 'desc')
|
||||||
->orderBy('transaction_journals.id', 'asc')
|
->orderBy('transaction_journals.id', 'asc')
|
||||||
->orderBy('transaction_journals.description', 'asc')
|
->orderBy('transaction_journals.description', 'asc')
|
||||||
->orderBy('transactions.amount', 'asc');
|
->orderBy('transactions.amount', 'asc')
|
||||||
if (count($accounts) > 0) {
|
;
|
||||||
|
if ($accounts->count() > 0) {
|
||||||
$query->whereIn('transactions.account_id', $accounts->pluck('id')->toArray());
|
$query->whereIn('transactions.account_id', $accounts->pluck('id')->toArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,13 +132,13 @@ class AccountBalanceCalculator
|
|||||||
// before and after are easy:
|
// before and after are easy:
|
||||||
$before = $balances[$entry->account_id][$entry->transaction_currency_id];
|
$before = $balances[$entry->account_id][$entry->transaction_currency_id];
|
||||||
$after = bcadd($before, $entry->amount);
|
$after = bcadd($before, $entry->amount);
|
||||||
if (true === $entry->balance_dirty) {
|
if (true === $entry->balance_dirty || $accounts->count() > 0) {
|
||||||
// update the transaction:
|
// update the transaction:
|
||||||
$entry->balance_before = $before;
|
$entry->balance_before = $before;
|
||||||
$entry->balance_after = $after;
|
$entry->balance_after = $after;
|
||||||
$entry->balance_dirty = false;
|
$entry->balance_dirty = false;
|
||||||
$entry->saveQuietly(); // do not observe this change, or we get stuck in a loop.
|
$entry->saveQuietly(); // do not observe this change, or we get stuck in a loop.
|
||||||
$count++;
|
++$count;
|
||||||
}
|
}
|
||||||
|
|
||||||
// then update the array:
|
// then update the array:
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ namespace FireflyIII\Support;
|
|||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Carbon\Exceptions\InvalidFormatException;
|
use Carbon\Exceptions\InvalidFormatException;
|
||||||
use Exception;
|
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\Transaction;
|
use FireflyIII\Models\Transaction;
|
||||||
@@ -40,19 +39,22 @@ use Illuminate\Support\Facades\Log;
|
|||||||
*/
|
*/
|
||||||
class Steam
|
class Steam
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
public function balanceIgnoreVirtual(Account $account, Carbon $date): string
|
public function balanceIgnoreVirtual(Account $account, Carbon $date): string
|
||||||
{
|
{
|
||||||
|
Log::warning(sprintf('Deprecated method %s, do not use.', __METHOD__));
|
||||||
/** @var AccountRepositoryInterface $repository */
|
/** @var AccountRepositoryInterface $repository */
|
||||||
$repository = app(AccountRepositoryInterface::class);
|
$repository = app(AccountRepositoryInterface::class);
|
||||||
$repository->setUser($account->user);
|
$repository->setUser($account->user);
|
||||||
|
|
||||||
$currencyId = (int)$repository->getMetaValue($account, 'currency_id');
|
$currencyId = (int) $repository->getMetaValue($account, 'currency_id');
|
||||||
$transactions = $account->transactions()
|
$transactions = $account->transactions()
|
||||||
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
||||||
->where('transactions.transaction_currency_id', $currencyId)
|
->where('transactions.transaction_currency_id', $currencyId)
|
||||||
->get(['transactions.amount'])->toArray()
|
->get(['transactions.amount'])->toArray();
|
||||||
;
|
|
||||||
$nativeBalance = $this->sumTransactions($transactions, 'amount');
|
$nativeBalance = $this->sumTransactions($transactions, 'amount');
|
||||||
|
|
||||||
// get all balances in foreign currency:
|
// get all balances in foreign currency:
|
||||||
@@ -61,8 +63,7 @@ class Steam
|
|||||||
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
||||||
->where('transactions.foreign_currency_id', $currencyId)
|
->where('transactions.foreign_currency_id', $currencyId)
|
||||||
->where('transactions.transaction_currency_id', '!=', $currencyId)
|
->where('transactions.transaction_currency_id', '!=', $currencyId)
|
||||||
->get(['transactions.foreign_amount'])->toArray()
|
->get(['transactions.foreign_amount'])->toArray();
|
||||||
;
|
|
||||||
|
|
||||||
$foreignBalance = $this->sumTransactions($transactions, 'foreign_amount');
|
$foreignBalance = $this->sumTransactions($transactions, 'foreign_amount');
|
||||||
|
|
||||||
@@ -75,7 +76,7 @@ class Steam
|
|||||||
|
|
||||||
/** @var array $transaction */
|
/** @var array $transaction */
|
||||||
foreach ($transactions as $transaction) {
|
foreach ($transactions as $transaction) {
|
||||||
$value = (string)($transaction[$key] ?? '0');
|
$value = (string) ($transaction[$key] ?? '0');
|
||||||
$value = '' === $value ? '0' : $value;
|
$value = '' === $value ? '0' : $value;
|
||||||
$sum = bcadd($sum, $value);
|
$sum = bcadd($sum, $value);
|
||||||
}
|
}
|
||||||
@@ -92,6 +93,7 @@ class Steam
|
|||||||
*/
|
*/
|
||||||
public function balanceInRange(Account $account, Carbon $start, Carbon $end, ?TransactionCurrency $currency = null): array
|
public function balanceInRange(Account $account, Carbon $start, Carbon $end, ?TransactionCurrency $currency = null): array
|
||||||
{
|
{
|
||||||
|
Log::warning(sprintf('Deprecated method %s, do not use.', __METHOD__));
|
||||||
$cache = new CacheProperties();
|
$cache = new CacheProperties();
|
||||||
$cache->addProperty($account->id);
|
$cache->addProperty($account->id);
|
||||||
$cache->addProperty('balance-in-range');
|
$cache->addProperty('balance-in-range');
|
||||||
@@ -136,22 +138,21 @@ class Steam
|
|||||||
'transactions.foreign_currency_id',
|
'transactions.foreign_currency_id',
|
||||||
\DB::raw('SUM(transactions.foreign_amount) AS modified_foreign'),
|
\DB::raw('SUM(transactions.foreign_amount) AS modified_foreign'),
|
||||||
]
|
]
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
$currentBalance = $startBalance;
|
$currentBalance = $startBalance;
|
||||||
|
|
||||||
/** @var Transaction $entry */
|
/** @var Transaction $entry */
|
||||||
foreach ($set as $entry) {
|
foreach ($set as $entry) {
|
||||||
// normal amount and foreign amount
|
// normal amount and foreign amount
|
||||||
$modified = (string)(null === $entry->modified ? '0' : $entry->modified);
|
$modified = (string) (null === $entry->modified ? '0' : $entry->modified);
|
||||||
$foreignModified = (string)(null === $entry->modified_foreign ? '0' : $entry->modified_foreign);
|
$foreignModified = (string) (null === $entry->modified_foreign ? '0' : $entry->modified_foreign);
|
||||||
$amount = '0';
|
$amount = '0';
|
||||||
if ($currencyId === (int)$entry->transaction_currency_id || 0 === $currencyId) {
|
if ($currencyId === (int) $entry->transaction_currency_id || 0 === $currencyId) {
|
||||||
// use normal amount:
|
// use normal amount:
|
||||||
$amount = $modified;
|
$amount = $modified;
|
||||||
}
|
}
|
||||||
if ($currencyId === (int)$entry->foreign_currency_id) {
|
if ($currencyId === (int) $entry->foreign_currency_id) {
|
||||||
// use foreign amount:
|
// use foreign amount:
|
||||||
$amount = $foreignModified;
|
$amount = $foreignModified;
|
||||||
}
|
}
|
||||||
@@ -167,6 +168,45 @@ class Steam
|
|||||||
return $balances;
|
return $balances;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function balanceByTransactions(Account $account, Carbon $date, ?TransactionCurrency $currency): array
|
||||||
|
{
|
||||||
|
$cache = new CacheProperties();
|
||||||
|
$cache->addProperty($account->id);
|
||||||
|
$cache->addProperty('balance-by-transactions');
|
||||||
|
$cache->addProperty($date);
|
||||||
|
$cache->addProperty(null !== $currency ? $currency->id : 0);
|
||||||
|
if ($cache->has()) {
|
||||||
|
return $cache->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = $account->transactions()
|
||||||
|
->leftJoin('transaction_journals', 'transactions.transaction_journal_id', '=', 'transaction_journals.id')
|
||||||
|
->orderBy('transaction_journals.date', 'desc')
|
||||||
|
->orderBy('transaction_journals.order', 'asc')
|
||||||
|
->orderBy('transaction_journals.description', 'desc')
|
||||||
|
->orderBy('transactions.amount', 'desc');
|
||||||
|
if (null !== $currency) {
|
||||||
|
$query->where('transactions.transaction_currency_id', $currency->id);
|
||||||
|
$query->limit(1);
|
||||||
|
$result = $query->get(['transactions.transaction_currency_id', 'transactions.balance_after'])->first();
|
||||||
|
$key = (int) $result->transaction_currency_id;
|
||||||
|
$return = [$key => $result->balance_after];
|
||||||
|
$cache->store($return);
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$return = [];
|
||||||
|
$result = $query->get(['transactions.transaction_currency_id', 'transactions.balance_after']);
|
||||||
|
foreach ($result as $entry) {
|
||||||
|
$key = (int) $entry->transaction_currency_id;
|
||||||
|
if (array_key_exists($key, $return)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$return[$key] = $entry->balance_after;
|
||||||
|
}
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets balance at the end of current month by default
|
* Gets balance at the end of current month by default
|
||||||
*
|
*
|
||||||
@@ -174,6 +214,7 @@ class Steam
|
|||||||
*/
|
*/
|
||||||
public function balance(Account $account, Carbon $date, ?TransactionCurrency $currency = null): string
|
public function balance(Account $account, Carbon $date, ?TransactionCurrency $currency = null): string
|
||||||
{
|
{
|
||||||
|
Log::warning(sprintf('Deprecated method %s, do not use.', __METHOD__));
|
||||||
// abuse chart properties:
|
// abuse chart properties:
|
||||||
$cache = new CacheProperties();
|
$cache = new CacheProperties();
|
||||||
$cache->addProperty($account->id);
|
$cache->addProperty($account->id);
|
||||||
@@ -194,8 +235,7 @@ class Steam
|
|||||||
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
||||||
->where('transactions.transaction_currency_id', $currency->id)
|
->where('transactions.transaction_currency_id', $currency->id)
|
||||||
->get(['transactions.amount'])->toArray()
|
->get(['transactions.amount'])->toArray();
|
||||||
;
|
|
||||||
$nativeBalance = $this->sumTransactions($transactions, 'amount');
|
$nativeBalance = $this->sumTransactions($transactions, 'amount');
|
||||||
// get all balances in foreign currency:
|
// get all balances in foreign currency:
|
||||||
$transactions = $account->transactions()
|
$transactions = $account->transactions()
|
||||||
@@ -203,8 +243,7 @@ class Steam
|
|||||||
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
||||||
->where('transactions.foreign_currency_id', $currency->id)
|
->where('transactions.foreign_currency_id', $currency->id)
|
||||||
->where('transactions.transaction_currency_id', '!=', $currency->id)
|
->where('transactions.transaction_currency_id', '!=', $currency->id)
|
||||||
->get(['transactions.foreign_amount'])->toArray()
|
->get(['transactions.foreign_amount'])->toArray();
|
||||||
;
|
|
||||||
$foreignBalance = $this->sumTransactions($transactions, 'foreign_amount');
|
$foreignBalance = $this->sumTransactions($transactions, 'foreign_amount');
|
||||||
$balance = bcadd($nativeBalance, $foreignBalance);
|
$balance = bcadd($nativeBalance, $foreignBalance);
|
||||||
$virtual = null === $account->virtual_balance ? '0' : $account->virtual_balance;
|
$virtual = null === $account->virtual_balance ? '0' : $account->virtual_balance;
|
||||||
@@ -222,6 +261,7 @@ class Steam
|
|||||||
*/
|
*/
|
||||||
public function balanceInRangeConverted(Account $account, Carbon $start, Carbon $end, TransactionCurrency $native): array
|
public function balanceInRangeConverted(Account $account, Carbon $start, Carbon $end, TransactionCurrency $native): array
|
||||||
{
|
{
|
||||||
|
Log::warning(sprintf('Deprecated method %s, do not use.', __METHOD__));
|
||||||
$cache = new CacheProperties();
|
$cache = new CacheProperties();
|
||||||
$cache->addProperty($account->id);
|
$cache->addProperty($account->id);
|
||||||
$cache->addProperty('balance-in-range-converted');
|
$cache->addProperty('balance-in-range-converted');
|
||||||
@@ -262,8 +302,7 @@ class Steam
|
|||||||
'transactions.foreign_currency_id',
|
'transactions.foreign_currency_id',
|
||||||
'transactions.foreign_amount',
|
'transactions.foreign_amount',
|
||||||
]
|
]
|
||||||
)->toArray()
|
)->toArray();
|
||||||
;
|
|
||||||
|
|
||||||
// loop the set and convert if necessary:
|
// loop the set and convert if necessary:
|
||||||
$currentBalance = $startBalance;
|
$currentBalance = $startBalance;
|
||||||
@@ -282,7 +321,7 @@ class Steam
|
|||||||
}
|
}
|
||||||
$format = $day->format('Y-m-d');
|
$format = $day->format('Y-m-d');
|
||||||
// if the transaction is in the expected currency, change nothing.
|
// if the transaction is in the expected currency, change nothing.
|
||||||
if ((int)$transaction['transaction_currency_id'] === $native->id) {
|
if ((int) $transaction['transaction_currency_id'] === $native->id) {
|
||||||
// change the current balance, set it to today, continue the loop.
|
// change the current balance, set it to today, continue the loop.
|
||||||
$currentBalance = bcadd($currentBalance, $transaction['amount']);
|
$currentBalance = bcadd($currentBalance, $transaction['amount']);
|
||||||
$balances[$format] = $currentBalance;
|
$balances[$format] = $currentBalance;
|
||||||
@@ -291,7 +330,7 @@ class Steam
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// if foreign currency is in the expected currency, do nothing:
|
// if foreign currency is in the expected currency, do nothing:
|
||||||
if ((int)$transaction['foreign_currency_id'] === $native->id) {
|
if ((int) $transaction['foreign_currency_id'] === $native->id) {
|
||||||
$currentBalance = bcadd($currentBalance, $transaction['foreign_amount']);
|
$currentBalance = bcadd($currentBalance, $transaction['foreign_amount']);
|
||||||
$balances[$format] = $currentBalance;
|
$balances[$format] = $currentBalance;
|
||||||
Log::debug(sprintf('%s: transaction in %s (foreign), new balance is %s.', $format, $native->code, $currentBalance));
|
Log::debug(sprintf('%s: transaction in %s (foreign), new balance is %s.', $format, $native->code, $currentBalance));
|
||||||
@@ -299,7 +338,7 @@ class Steam
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// otherwise, convert 'amount' to the necessary currency:
|
// otherwise, convert 'amount' to the necessary currency:
|
||||||
$currencyId = (int)$transaction['transaction_currency_id'];
|
$currencyId = (int) $transaction['transaction_currency_id'];
|
||||||
$currency = $currencies[$currencyId] ?? TransactionCurrency::find($currencyId);
|
$currency = $currencies[$currencyId] ?? TransactionCurrency::find($currencyId);
|
||||||
$currencies[$currencyId] = $currency;
|
$currencies[$currencyId] = $currency;
|
||||||
|
|
||||||
@@ -347,6 +386,7 @@ class Steam
|
|||||||
*/
|
*/
|
||||||
public function balanceConverted(Account $account, Carbon $date, TransactionCurrency $native): string
|
public function balanceConverted(Account $account, Carbon $date, TransactionCurrency $native): string
|
||||||
{
|
{
|
||||||
|
Log::warning(sprintf('Deprecated method %s, do not use.', __METHOD__));
|
||||||
Log::debug(sprintf('Now in balanceConverted (%s) for account #%d, converting to %s', $date->format('Y-m-d'), $account->id, $native->code));
|
Log::debug(sprintf('Now in balanceConverted (%s) for account #%d, converting to %s', $date->format('Y-m-d'), $account->id, $native->code));
|
||||||
$cache = new CacheProperties();
|
$cache = new CacheProperties();
|
||||||
$cache->addProperty($account->id);
|
$cache->addProperty($account->id);
|
||||||
@@ -356,7 +396,7 @@ class Steam
|
|||||||
if ($cache->has()) {
|
if ($cache->has()) {
|
||||||
Log::debug('Cached!');
|
Log::debug('Cached!');
|
||||||
|
|
||||||
// return $cache->get();
|
return $cache->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var AccountRepositoryInterface $repository */
|
/** @var AccountRepositoryInterface $repository */
|
||||||
@@ -376,16 +416,14 @@ class Steam
|
|||||||
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
||||||
->where('transactions.transaction_currency_id', $currency->id)
|
->where('transactions.transaction_currency_id', $currency->id)
|
||||||
->whereNull('transactions.foreign_currency_id')
|
->whereNull('transactions.foreign_currency_id')
|
||||||
->get(['transaction_journals.date', 'transactions.amount'])->toArray()
|
->get(['transaction_journals.date', 'transactions.amount'])->toArray();
|
||||||
;
|
|
||||||
Log::debug(sprintf('%d transaction(s) in set #1', count($new[0])));
|
Log::debug(sprintf('%d transaction(s) in set #1', count($new[0])));
|
||||||
$existing[] = $account->transactions() // 2
|
$existing[] = $account->transactions() // 2
|
||||||
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
||||||
->where('transactions.transaction_currency_id', $native->id)
|
->where('transactions.transaction_currency_id', $native->id)
|
||||||
->whereNull('transactions.foreign_currency_id')
|
->whereNull('transactions.foreign_currency_id')
|
||||||
->get(['transactions.amount'])->toArray()
|
->get(['transactions.amount'])->toArray();
|
||||||
;
|
|
||||||
Log::debug(sprintf('%d transaction(s) in set #2', count($existing[0])));
|
Log::debug(sprintf('%d transaction(s) in set #2', count($existing[0])));
|
||||||
$new[] = $account->transactions() // 3
|
$new[] = $account->transactions() // 3
|
||||||
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
@@ -393,16 +431,14 @@ class Steam
|
|||||||
->where('transactions.transaction_currency_id', '!=', $currency->id)
|
->where('transactions.transaction_currency_id', '!=', $currency->id)
|
||||||
->where('transactions.transaction_currency_id', '!=', $native->id)
|
->where('transactions.transaction_currency_id', '!=', $native->id)
|
||||||
->whereNull('transactions.foreign_currency_id')
|
->whereNull('transactions.foreign_currency_id')
|
||||||
->get(['transaction_journals.date', 'transactions.amount'])->toArray()
|
->get(['transaction_journals.date', 'transactions.amount'])->toArray();
|
||||||
;
|
|
||||||
Log::debug(sprintf('%d transactions in set #3', count($new[1])));
|
Log::debug(sprintf('%d transactions in set #3', count($new[1])));
|
||||||
$existing[] = $account->transactions() // 4
|
$existing[] = $account->transactions() // 4
|
||||||
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
||||||
->where('transactions.foreign_currency_id', $native->id)
|
->where('transactions.foreign_currency_id', $native->id)
|
||||||
->whereNotNull('transactions.foreign_amount')
|
->whereNotNull('transactions.foreign_amount')
|
||||||
->get(['transactions.foreign_amount'])->toArray()
|
->get(['transactions.foreign_amount'])->toArray();
|
||||||
;
|
|
||||||
Log::debug(sprintf('%d transactions in set #4', count($existing[1])));
|
Log::debug(sprintf('%d transactions in set #4', count($existing[1])));
|
||||||
$new[] = $account->transactions()// 5
|
$new[] = $account->transactions()// 5
|
||||||
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
@@ -410,8 +446,7 @@ class Steam
|
|||||||
->where('transactions.transaction_currency_id', $currency->id)
|
->where('transactions.transaction_currency_id', $currency->id)
|
||||||
->where('transactions.foreign_currency_id', '!=', $native->id)
|
->where('transactions.foreign_currency_id', '!=', $native->id)
|
||||||
->whereNotNull('transactions.foreign_amount')
|
->whereNotNull('transactions.foreign_amount')
|
||||||
->get(['transaction_journals.date', 'transactions.amount'])->toArray()
|
->get(['transaction_journals.date', 'transactions.amount'])->toArray();
|
||||||
;
|
|
||||||
Log::debug(sprintf('%d transactions in set #5', count($new[2])));
|
Log::debug(sprintf('%d transactions in set #5', count($new[2])));
|
||||||
$new[] = $account->transactions()// 6
|
$new[] = $account->transactions()// 6
|
||||||
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
@@ -419,8 +454,7 @@ class Steam
|
|||||||
->where('transactions.transaction_currency_id', '!=', $currency->id)
|
->where('transactions.transaction_currency_id', '!=', $currency->id)
|
||||||
->where('transactions.foreign_currency_id', '!=', $native->id)
|
->where('transactions.foreign_currency_id', '!=', $native->id)
|
||||||
->whereNotNull('transactions.foreign_amount')
|
->whereNotNull('transactions.foreign_amount')
|
||||||
->get(['transaction_journals.date', 'transactions.amount'])->toArray()
|
->get(['transaction_journals.date', 'transactions.amount'])->toArray();
|
||||||
;
|
|
||||||
Log::debug(sprintf('%d transactions in set #6', count($new[3])));
|
Log::debug(sprintf('%d transactions in set #6', count($new[3])));
|
||||||
|
|
||||||
// process both sets of transactions. Of course, no need to convert set "existing".
|
// process both sets of transactions. Of course, no need to convert set "existing".
|
||||||
@@ -492,6 +526,7 @@ class Steam
|
|||||||
*/
|
*/
|
||||||
public function balancesByAccounts(Collection $accounts, Carbon $date): array
|
public function balancesByAccounts(Collection $accounts, Carbon $date): array
|
||||||
{
|
{
|
||||||
|
Log::warning(sprintf('Deprecated method %s, do not use.', __METHOD__));
|
||||||
$ids = $accounts->pluck('id')->toArray();
|
$ids = $accounts->pluck('id')->toArray();
|
||||||
// cache this property.
|
// cache this property.
|
||||||
$cache = new CacheProperties();
|
$cache = new CacheProperties();
|
||||||
@@ -522,6 +557,7 @@ class Steam
|
|||||||
*/
|
*/
|
||||||
public function balancesByAccountsConverted(Collection $accounts, Carbon $date): array
|
public function balancesByAccountsConverted(Collection $accounts, Carbon $date): array
|
||||||
{
|
{
|
||||||
|
Log::warning(sprintf('Deprecated method %s, do not use.', __METHOD__));
|
||||||
$ids = $accounts->pluck('id')->toArray();
|
$ids = $accounts->pluck('id')->toArray();
|
||||||
// cache this property.
|
// cache this property.
|
||||||
$cache = new CacheProperties();
|
$cache = new CacheProperties();
|
||||||
@@ -529,7 +565,7 @@ class Steam
|
|||||||
$cache->addProperty('balances-converted');
|
$cache->addProperty('balances-converted');
|
||||||
$cache->addProperty($date);
|
$cache->addProperty($date);
|
||||||
if ($cache->has()) {
|
if ($cache->has()) {
|
||||||
// return $cache->get();
|
return $cache->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
// need to do this per account.
|
// need to do this per account.
|
||||||
@@ -555,6 +591,7 @@ class Steam
|
|||||||
*/
|
*/
|
||||||
public function balancesPerCurrencyByAccounts(Collection $accounts, Carbon $date): array
|
public function balancesPerCurrencyByAccounts(Collection $accounts, Carbon $date): array
|
||||||
{
|
{
|
||||||
|
Log::warning(sprintf('Deprecated method %s, do not use.', __METHOD__));
|
||||||
$ids = $accounts->pluck('id')->toArray();
|
$ids = $accounts->pluck('id')->toArray();
|
||||||
// cache this property.
|
// cache this property.
|
||||||
$cache = new CacheProperties();
|
$cache = new CacheProperties();
|
||||||
@@ -580,6 +617,7 @@ class Steam
|
|||||||
|
|
||||||
public function balancePerCurrency(Account $account, Carbon $date): array
|
public function balancePerCurrency(Account $account, Carbon $date): array
|
||||||
{
|
{
|
||||||
|
Log::warning(sprintf('Deprecated method %s, do not use.', __METHOD__));
|
||||||
// abuse chart properties:
|
// abuse chart properties:
|
||||||
$cache = new CacheProperties();
|
$cache = new CacheProperties();
|
||||||
$cache->addProperty($account->id);
|
$cache->addProperty($account->id);
|
||||||
@@ -591,14 +629,13 @@ class Steam
|
|||||||
$query = $account->transactions()
|
$query = $account->transactions()
|
||||||
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59'))
|
||||||
->groupBy('transactions.transaction_currency_id')
|
->groupBy('transactions.transaction_currency_id');
|
||||||
;
|
|
||||||
$balances = $query->get(['transactions.transaction_currency_id', \DB::raw('SUM(transactions.amount) as sum_for_currency')]); // @phpstan-ignore-line
|
$balances = $query->get(['transactions.transaction_currency_id', \DB::raw('SUM(transactions.amount) as sum_for_currency')]); // @phpstan-ignore-line
|
||||||
$return = [];
|
$return = [];
|
||||||
|
|
||||||
/** @var \stdClass $entry */
|
/** @var \stdClass $entry */
|
||||||
foreach ($balances as $entry) {
|
foreach ($balances as $entry) {
|
||||||
$return[(int)$entry->transaction_currency_id] = (string)$entry->sum_for_currency;
|
$return[(int) $entry->transaction_currency_id] = (string) $entry->sum_for_currency;
|
||||||
}
|
}
|
||||||
$cache->store($return);
|
$cache->store($return);
|
||||||
|
|
||||||
@@ -624,10 +661,10 @@ class Steam
|
|||||||
// Log::debug(sprintf('Trying bcround("%s",%d)', $number, $precision));
|
// Log::debug(sprintf('Trying bcround("%s",%d)', $number, $precision));
|
||||||
if (str_contains($number, '.')) {
|
if (str_contains($number, '.')) {
|
||||||
if ('-' !== $number[0]) {
|
if ('-' !== $number[0]) {
|
||||||
return bcadd($number, '0.'.str_repeat('0', $precision).'5', $precision);
|
return bcadd($number, '0.' . str_repeat('0', $precision) . '5', $precision);
|
||||||
}
|
}
|
||||||
|
|
||||||
return bcsub($number, '0.'.str_repeat('0', $precision).'5', $precision);
|
return bcsub($number, '0.' . str_repeat('0', $precision) . '5', $precision);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $number;
|
return $number;
|
||||||
@@ -703,7 +740,7 @@ class Steam
|
|||||||
throw new FireflyException($e->getMessage(), 0, $e);
|
throw new FireflyException($e->getMessage(), 0, $e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (string)$hostName;
|
return (string) $hostName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getLastActivities(array $accounts): array
|
public function getLastActivities(array $accounts): array
|
||||||
@@ -738,7 +775,7 @@ class Steam
|
|||||||
if ('equal' === $locale) {
|
if ('equal' === $locale) {
|
||||||
$locale = $this->getLanguage();
|
$locale = $this->getLanguage();
|
||||||
}
|
}
|
||||||
$locale = (string)$locale;
|
$locale = (string) $locale;
|
||||||
|
|
||||||
// Check for Windows to replace the locale correctly.
|
// Check for Windows to replace the locale correctly.
|
||||||
if ('WIN' === strtoupper(substr(PHP_OS, 0, 3))) {
|
if ('WIN' === strtoupper(substr(PHP_OS, 0, 3))) {
|
||||||
@@ -838,20 +875,20 @@ class Steam
|
|||||||
}
|
}
|
||||||
Log::debug(sprintf('Floatalizing %s', $value));
|
Log::debug(sprintf('Floatalizing %s', $value));
|
||||||
|
|
||||||
$number = substr($value, 0, (int)strpos($value, 'E'));
|
$number = substr($value, 0, (int) strpos($value, 'E'));
|
||||||
if (str_contains($number, '.')) {
|
if (str_contains($number, '.')) {
|
||||||
$post = strlen(substr($number, (int)strpos($number, '.') + 1));
|
$post = strlen(substr($number, (int) strpos($number, '.') + 1));
|
||||||
$mantis = substr($value, (int)strpos($value, 'E') + 1);
|
$mantis = substr($value, (int) strpos($value, 'E') + 1);
|
||||||
if ($mantis < 0) {
|
if ($mantis < 0) {
|
||||||
$post += abs((int)$mantis);
|
$post += abs((int) $mantis);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO careless float could break financial math.
|
// TODO careless float could break financial math.
|
||||||
return number_format((float)$value, $post, '.', '');
|
return number_format((float) $value, $post, '.', '');
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO careless float could break financial math.
|
// TODO careless float could break financial math.
|
||||||
return number_format((float)$value, 0, '.', '');
|
return number_format((float) $value, 0, '.', '');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function opposite(?string $amount = null): ?string
|
public function opposite(?string $amount = null): ?string
|
||||||
@@ -871,24 +908,24 @@ class Steam
|
|||||||
// has a K in it, remove the K and multiply by 1024.
|
// has a K in it, remove the K and multiply by 1024.
|
||||||
$bytes = bcmul(rtrim($string, 'k'), '1024');
|
$bytes = bcmul(rtrim($string, 'k'), '1024');
|
||||||
|
|
||||||
return (int)$bytes;
|
return (int) $bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (false !== stripos($string, 'm')) {
|
if (false !== stripos($string, 'm')) {
|
||||||
// has a M in it, remove the M and multiply by 1048576.
|
// has a M in it, remove the M and multiply by 1048576.
|
||||||
$bytes = bcmul(rtrim($string, 'm'), '1048576');
|
$bytes = bcmul(rtrim($string, 'm'), '1048576');
|
||||||
|
|
||||||
return (int)$bytes;
|
return (int) $bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (false !== stripos($string, 'g')) {
|
if (false !== stripos($string, 'g')) {
|
||||||
// has a G in it, remove the G and multiply by (1024)^3.
|
// has a G in it, remove the G and multiply by (1024)^3.
|
||||||
$bytes = bcmul(rtrim($string, 'g'), '1073741824');
|
$bytes = bcmul(rtrim($string, 'g'), '1073741824');
|
||||||
|
|
||||||
return (int)$bytes;
|
return (int) $bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (int)$string;
|
return (int) $string;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function positive(string $amount): string
|
public function positive(string $amount): string
|
||||||
|
|||||||
@@ -64,8 +64,14 @@ class General extends AbstractExtension
|
|||||||
|
|
||||||
/** @var Carbon $date */
|
/** @var Carbon $date */
|
||||||
$date = session('end', today(config('app.timezone'))->endOfMonth());
|
$date = session('end', today(config('app.timezone'))->endOfMonth());
|
||||||
|
$info = app('steam')->balanceByTransactions($account, $date, null);
|
||||||
|
|
||||||
return app('steam')->balance($account, $date);
|
$strings = [];
|
||||||
|
foreach($info as $currencyId => $balance) {
|
||||||
|
$strings[] = app('amount')->formatByCurrencyId($currencyId, $balance, false);
|
||||||
|
}
|
||||||
|
return implode(', ', $strings);
|
||||||
|
//return app('steam')->balance($account, $date);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
112
app/User.php
112
app/User.php
@@ -24,8 +24,6 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII;
|
namespace FireflyIII;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Eloquent;
|
|
||||||
use FireflyIII\Enums\UserRoleEnum;
|
use FireflyIII\Enums\UserRoleEnum;
|
||||||
use FireflyIII\Events\RequestedNewPassword;
|
use FireflyIII\Events\RequestedNewPassword;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
@@ -56,129 +54,21 @@ use FireflyIII\Notifications\Admin\TestNotification;
|
|||||||
use FireflyIII\Notifications\Admin\UserInvitation;
|
use FireflyIII\Notifications\Admin\UserInvitation;
|
||||||
use FireflyIII\Notifications\Admin\UserRegistration;
|
use FireflyIII\Notifications\Admin\UserRegistration;
|
||||||
use FireflyIII\Notifications\Admin\VersionCheckResult;
|
use FireflyIII\Notifications\Admin\VersionCheckResult;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
|
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
|
||||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||||
use Illuminate\Notifications\DatabaseNotification;
|
|
||||||
use Illuminate\Notifications\DatabaseNotificationCollection;
|
|
||||||
use Illuminate\Notifications\Notifiable;
|
use Illuminate\Notifications\Notifiable;
|
||||||
use Illuminate\Notifications\Notification;
|
use Illuminate\Notifications\Notification;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Laravel\Passport\Client;
|
|
||||||
use Laravel\Passport\HasApiTokens;
|
use Laravel\Passport\HasApiTokens;
|
||||||
use Laravel\Passport\Token;
|
use Laravel\Passport\Token;
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class User.
|
* @mixin IdeHelperUser
|
||||||
*
|
|
||||||
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
|
|
||||||
*
|
|
||||||
* @property int|string $id
|
|
||||||
* @property string $email
|
|
||||||
* @property bool $isAdmin
|
|
||||||
* @property bool $has2FA
|
|
||||||
* @property array $prefs
|
|
||||||
* @property string $password
|
|
||||||
* @property string $mfa_secret
|
|
||||||
* @property Collection $roles
|
|
||||||
* @property string $blocked_code
|
|
||||||
* @property bool $blocked
|
|
||||||
* @property null|Carbon $created_at
|
|
||||||
* @property null|Carbon $updated_at
|
|
||||||
* @property null|string $remember_token
|
|
||||||
* @property null|string $reset
|
|
||||||
* @property Account[]|\Illuminate\Database\Eloquent\Collection $accounts
|
|
||||||
* @property Attachment[]|\Illuminate\Database\Eloquent\Collection $attachments
|
|
||||||
* @property AvailableBudget[]|\Illuminate\Database\Eloquent\Collection $availableBudgets
|
|
||||||
* @property Bill[]|\Illuminate\Database\Eloquent\Collection $bills
|
|
||||||
* @property Budget[]|\Illuminate\Database\Eloquent\Collection $budgets
|
|
||||||
* @property Category[]|\Illuminate\Database\Eloquent\Collection $categories
|
|
||||||
* @property Client[]|\Illuminate\Database\Eloquent\Collection $clients
|
|
||||||
* @property CurrencyExchangeRate[]|\Illuminate\Database\Eloquent\Collection $currencyExchangeRates
|
|
||||||
* @property DatabaseNotification[]|DatabaseNotificationCollection $notifications
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection|PiggyBank[] $piggyBanks
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection|Preference[] $preferences
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection|Recurrence[] $recurrences
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection|RuleGroup[] $ruleGroups
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection|Rule[] $rules
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection|Tag[] $tags
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection|Token[] $tokens
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection|TransactionGroup[] $transactionGroups
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection|TransactionJournal[] $transactionJournals
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection|Transaction[] $transactions
|
|
||||||
*
|
|
||||||
* @method static Builder|User newModelQuery()
|
|
||||||
* @method static Builder|User newQuery()
|
|
||||||
* @method static Builder|User query()
|
|
||||||
* @method static Builder|User whereBlocked($value)
|
|
||||||
* @method static Builder|User whereBlockedCode($value)
|
|
||||||
* @method static Builder|User whereCreatedAt($value)
|
|
||||||
* @method static Builder|User whereEmail($value)
|
|
||||||
* @method static Builder|User whereId($value)
|
|
||||||
* @method static Builder|User wherePassword($value)
|
|
||||||
* @method static Builder|User whereRememberToken($value)
|
|
||||||
* @method static Builder|User whereReset($value)
|
|
||||||
* @method static Builder|User whereUpdatedAt($value)
|
|
||||||
*
|
|
||||||
* @property null|string $objectguid
|
|
||||||
* @property null|int $accounts_count
|
|
||||||
* @property null|int $attachments_count
|
|
||||||
* @property null|int $available_budgets_count
|
|
||||||
* @property null|int $bills_count
|
|
||||||
* @property null|int $budgets_count
|
|
||||||
* @property null|int $categories_count
|
|
||||||
* @property null|int $clients_count
|
|
||||||
* @property null|int $currency_exchange_rates_count
|
|
||||||
* @property null|int $notifications_count
|
|
||||||
* @property null|int $piggy_banks_count
|
|
||||||
* @property null|int $preferences_count
|
|
||||||
* @property null|int $recurrences_count
|
|
||||||
* @property null|int $roles_count
|
|
||||||
* @property null|int $rule_groups_count
|
|
||||||
* @property null|int $rules_count
|
|
||||||
* @property null|int $tags_count
|
|
||||||
* @property null|int $tokens_count
|
|
||||||
* @property null|int $transaction_groups_count
|
|
||||||
* @property null|int $transaction_journals_count
|
|
||||||
* @property null|int $transactions_count
|
|
||||||
*
|
|
||||||
* @method static Builder|User whereMfaSecret($value)
|
|
||||||
* @method static Builder|User whereObjectguid($value)
|
|
||||||
*
|
|
||||||
* @property null|string $provider
|
|
||||||
*
|
|
||||||
* @method static Builder|User whereProvider($value)
|
|
||||||
*
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection|ObjectGroup[] $objectGroups
|
|
||||||
* @property null|int $object_groups_count
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection|Webhook[] $webhooks
|
|
||||||
* @property null|int $webhooks_count
|
|
||||||
* @property null|string $two_factor_secret
|
|
||||||
* @property null|string $two_factor_recovery_codes
|
|
||||||
* @property null|string $guid
|
|
||||||
* @property null|string $domain
|
|
||||||
*
|
|
||||||
* @method static Builder|User whereDomain($value)
|
|
||||||
* @method static Builder|User whereGuid($value)
|
|
||||||
* @method static Builder|User whereTwoFactorRecoveryCodes($value)
|
|
||||||
* @method static Builder|User whereTwoFactorSecret($value)
|
|
||||||
*
|
|
||||||
* @property null|int $user_group_id
|
|
||||||
* @property GroupMembership[]|\Illuminate\Database\Eloquent\Collection $groupMemberships
|
|
||||||
* @property null|int $group_memberships_count
|
|
||||||
* @property null|UserGroup $userGroup
|
|
||||||
*
|
|
||||||
* @method static Builder|User whereUserGroupId($value)
|
|
||||||
*
|
|
||||||
* @property \Illuminate\Database\Eloquent\Collection<int, TransactionCurrency> $currencies
|
|
||||||
* @property null|int $currencies_count
|
|
||||||
*
|
|
||||||
* @mixin Eloquent
|
|
||||||
*/
|
*/
|
||||||
class User extends Authenticatable
|
class User extends Authenticatable
|
||||||
{
|
{
|
||||||
|
|||||||
22
composer.lock
generated
22
composer.lock
generated
@@ -2410,16 +2410,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/framework",
|
"name": "laravel/framework",
|
||||||
"version": "v11.18.1",
|
"version": "v11.19.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/laravel/framework.git",
|
"url": "https://github.com/laravel/framework.git",
|
||||||
"reference": "b19ba518c56852567e99fbae9321bc436c2cc5a8"
|
"reference": "5e103d499e9ee5bcfc184412d034c4e516b87085"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/laravel/framework/zipball/b19ba518c56852567e99fbae9321bc436c2cc5a8",
|
"url": "https://api.github.com/repos/laravel/framework/zipball/5e103d499e9ee5bcfc184412d034c4e516b87085",
|
||||||
"reference": "b19ba518c56852567e99fbae9321bc436c2cc5a8",
|
"reference": "5e103d499e9ee5bcfc184412d034c4e516b87085",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -2612,7 +2612,7 @@
|
|||||||
"issues": "https://github.com/laravel/framework/issues",
|
"issues": "https://github.com/laravel/framework/issues",
|
||||||
"source": "https://github.com/laravel/framework"
|
"source": "https://github.com/laravel/framework"
|
||||||
},
|
},
|
||||||
"time": "2024-07-26T10:39:29+00:00"
|
"time": "2024-07-30T15:22:41+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/passport",
|
"name": "laravel/passport",
|
||||||
@@ -11700,16 +11700,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/phpunit",
|
"name": "phpunit/phpunit",
|
||||||
"version": "10.5.28",
|
"version": "10.5.29",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||||
"reference": "ff7fb85cdf88131b83e721fb2a327b664dbed275"
|
"reference": "8e9e80872b4e8064401788ee8a32d40b4455318f"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ff7fb85cdf88131b83e721fb2a327b664dbed275",
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e9e80872b4e8064401788ee8a32d40b4455318f",
|
||||||
"reference": "ff7fb85cdf88131b83e721fb2a327b664dbed275",
|
"reference": "8e9e80872b4e8064401788ee8a32d40b4455318f",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -11781,7 +11781,7 @@
|
|||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||||
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
||||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.28"
|
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.29"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -11797,7 +11797,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-07-18T14:54:16+00:00"
|
"time": "2024-07-30T11:08:00+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/cli-parser",
|
"name": "sebastian/cli-parser",
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
use Illuminate\Database\Migrations\Migration;
|
||||||
use Illuminate\Database\QueryException;
|
use Illuminate\Database\QueryException;
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
use Illuminate\Support\Facades\Schema;
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
return new class extends Migration
|
return new class () extends Migration {
|
||||||
{
|
|
||||||
/**
|
/**
|
||||||
* Run the migrations.
|
* Run the migrations.
|
||||||
*/
|
*/
|
||||||
@@ -25,6 +26,7 @@ return new class extends Migration
|
|||||||
app('log')->error(sprintf('Could not execute query: %s', $e->getMessage()));
|
app('log')->error(sprintf('Could not execute query: %s', $e->getMessage()));
|
||||||
app('log')->error('If the column or index already exists (see error), this is not an problem. Otherwise, please open a GitHub discussion.');
|
app('log')->error('If the column or index already exists (see error), this is not an problem. Otherwise, please open a GitHub discussion.');
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Schema::table(
|
Schema::table(
|
||||||
'transactions',
|
'transactions',
|
||||||
@@ -38,6 +40,7 @@ return new class extends Migration
|
|||||||
app('log')->error(sprintf('Could not execute query: %s', $e->getMessage()));
|
app('log')->error(sprintf('Could not execute query: %s', $e->getMessage()));
|
||||||
app('log')->error('If the column or index already exists (see error), this is not an problem. Otherwise, please open a GitHub discussion.');
|
app('log')->error('If the column or index already exists (see error), this is not an problem. Otherwise, please open a GitHub discussion.');
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Schema::table(
|
Schema::table(
|
||||||
'transactions',
|
'transactions',
|
||||||
@@ -71,6 +74,7 @@ return new class extends Migration
|
|||||||
app('log')->error(sprintf('Could not execute query: %s', $e->getMessage()));
|
app('log')->error(sprintf('Could not execute query: %s', $e->getMessage()));
|
||||||
app('log')->error('If the column or index already exists (see error), this is not an problem. Otherwise, please open a GitHub discussion.');
|
app('log')->error('If the column or index already exists (see error), this is not an problem. Otherwise, please open a GitHub discussion.');
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Schema::table(
|
Schema::table(
|
||||||
'transactions',
|
'transactions',
|
||||||
@@ -84,6 +88,7 @@ return new class extends Migration
|
|||||||
app('log')->error(sprintf('Could not execute query: %s', $e->getMessage()));
|
app('log')->error(sprintf('Could not execute query: %s', $e->getMessage()));
|
||||||
app('log')->error('If the column or index already exists (see error), this is not an problem. Otherwise, please open a GitHub discussion.');
|
app('log')->error('If the column or index already exists (see error), this is not an problem. Otherwise, please open a GitHub discussion.');
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Schema::table(
|
Schema::table(
|
||||||
'transactions',
|
'transactions',
|
||||||
|
|||||||
@@ -105,7 +105,7 @@
|
|||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
|
<a type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
|
||||||
aria-haspopup="true" aria-expanded="false"
|
aria-haspopup="true" aria-expanded="false"
|
||||||
href="{{ route('accounts.show', [data.account.id]) }}">{{ formatAmountByAccount(data.account, data.account|balance, false) }}
|
href="{{ route('accounts.show', [data.account.id]) }}">{{ data.account|balance }}
|
||||||
<span class="caret"></span>
|
<span class="caret"></span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
|
|||||||
Reference in New Issue
Block a user