mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-17 17:57:09 +00:00
Restructure code to rename a variable.
This commit is contained in:
@@ -78,8 +78,8 @@ class PiggyBankRequest extends Request
|
||||
case 'PUT':
|
||||
case 'PATCH':
|
||||
/** @var PiggyBank $piggyBank */
|
||||
$piggyBank = $this->route()->parameter('piggyBank');
|
||||
$rules['name'] = 'required|between:1,255|uniquePiggyBankForUser:' . $piggyBank->id;
|
||||
$piggyBank = $this->route()->parameter('piggyBank');
|
||||
$rules['name'] = 'required|between:1,255|uniquePiggyBankForUser:' . $piggyBank->id;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@@ -64,7 +64,7 @@ class RecurrenceRequest extends Request
|
||||
'meta' => [
|
||||
'piggy_bank_id' => $this->integer('piggy_bank_id'),
|
||||
'piggy_bank_name' => $this->string('piggy_bank_name'),
|
||||
'tags' => explode(',', $this->string('tags')),
|
||||
'tags' => explode(',', $this->string('tags')),
|
||||
],
|
||||
'transactions' => [],
|
||||
'repetitions' => [],
|
||||
@@ -88,26 +88,26 @@ class RecurrenceRequest extends Request
|
||||
/** @var array $transaction */
|
||||
foreach ($transactions as $transaction) {
|
||||
$return['transactions'][] = [
|
||||
'amount' => $transaction['amount'],
|
||||
'amount' => $transaction['amount'],
|
||||
|
||||
'currency_id' => isset($transaction['currency_id']) ? (int)$transaction['currency_id'] : null,
|
||||
'currency_code' => $transaction['currency_code'] ?? null,
|
||||
'currency_id' => isset($transaction['currency_id']) ? (int)$transaction['currency_id'] : null,
|
||||
'currency_code' => $transaction['currency_code'] ?? null,
|
||||
|
||||
'foreign_amount' => $transaction['foreign_amount'] ?? null,
|
||||
'foreign_currency_id' => isset($transaction['foreign_currency_id']) ? (int)$transaction['foreign_currency_id'] : null,
|
||||
'foreign_currency_code' => $transaction['foreign_currency_code'] ?? null,
|
||||
|
||||
'budget_id' => isset($transaction['budget_id']) ? (int)$transaction['budget_id'] : null,
|
||||
'budget_name' => $transaction['budget_name'] ?? null,
|
||||
'category_id' => isset($transaction['category_id']) ? (int)$transaction['category_id'] : null,
|
||||
'category_name' => $transaction['category_name'] ?? null,
|
||||
'budget_id' => isset($transaction['budget_id']) ? (int)$transaction['budget_id'] : null,
|
||||
'budget_name' => $transaction['budget_name'] ?? null,
|
||||
'category_id' => isset($transaction['category_id']) ? (int)$transaction['category_id'] : null,
|
||||
'category_name' => $transaction['category_name'] ?? null,
|
||||
|
||||
'source_id' => isset($transaction['source_id']) ? (int)$transaction['source_id'] : null,
|
||||
'source_name' => isset($transaction['source_name']) ? (string)$transaction['source_name'] : null,
|
||||
'destination_id' => isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : null,
|
||||
'destination_name' => isset($transaction['destination_name']) ? (string)$transaction['destination_name'] : null,
|
||||
'source_id' => isset($transaction['source_id']) ? (int)$transaction['source_id'] : null,
|
||||
'source_name' => isset($transaction['source_name']) ? (string)$transaction['source_name'] : null,
|
||||
'destination_id' => isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : null,
|
||||
'destination_name' => isset($transaction['destination_name']) ? (string)$transaction['destination_name'] : null,
|
||||
|
||||
'description' => $transaction['description'],
|
||||
'description' => $transaction['description'],
|
||||
];
|
||||
}
|
||||
|
||||
|
@@ -49,10 +49,12 @@ class AutomationHandler
|
||||
$user = $repository->findNull($event->userId);
|
||||
if (null === $user) {
|
||||
Log::debug('User is NULL');
|
||||
|
||||
return true;
|
||||
}
|
||||
if ($event->journals->count() === 0) {
|
||||
Log::debug('No journals.');
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -321,6 +321,14 @@ class JournalCollector implements JournalCollectorInterface
|
||||
return $journals;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return EloquentBuilder
|
||||
*/
|
||||
public function getQuery(): EloquentBuilder
|
||||
{
|
||||
return $this->query;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return JournalCollectorInterface
|
||||
*/
|
||||
@@ -768,14 +776,6 @@ class JournalCollector implements JournalCollectorInterface
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return EloquentBuilder
|
||||
*/
|
||||
public function getQuery(): EloquentBuilder
|
||||
{
|
||||
return $this->query;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Collection $set
|
||||
*
|
||||
|
@@ -110,7 +110,7 @@ class ProfileController extends Controller
|
||||
|
||||
$image = Google2FA::getQRCodeInline($domain, auth()->user()->email, $secret, 200);
|
||||
|
||||
return view('profile.code', compact('image','secret'));
|
||||
return view('profile.code', compact('image', 'secret'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -48,7 +48,7 @@ class DeleteController extends Controller
|
||||
// todo actual number.
|
||||
$journalsCreated = 5;
|
||||
|
||||
return view('recurring.delete', compact('recurrence', 'subTitle','journalsCreated'));
|
||||
return view('recurring.delete', compact('recurrence', 'subTitle', 'journalsCreated'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -56,7 +56,7 @@ class BalanceController extends Controller
|
||||
|
||||
$balance = $helper->getBalanceReport($accounts, $start, $end);
|
||||
|
||||
$result = view('reports.partials.balance', compact( 'balance'))->render();
|
||||
$result = view('reports.partials.balance', compact('balance'))->render();
|
||||
$cache->store($result);
|
||||
|
||||
return $result;
|
||||
|
@@ -181,11 +181,11 @@ class MassController extends Controller
|
||||
if (null !== $journal) {
|
||||
// get optional fields:
|
||||
$what = strtolower($this->repository->getTransactionType($journal));
|
||||
$sourceAccountId = $request->get('source_account_id')[$journal->id] ?? null;
|
||||
$sourceAccountId = $request->get('source_id')[$journal->id] ?? null;
|
||||
$currencyId = $request->get('transaction_currency_id')[$journal->id] ?? 1;
|
||||
$sourceAccountName = $request->get('source_account_name')[$journal->id] ?? null;
|
||||
$destAccountId = $request->get('destination_account_id')[$journal->id] ?? null;
|
||||
$destAccountName = $request->get('destination_account_name')[$journal->id] ?? null;
|
||||
$sourceAccountName = $request->get('source_name')[$journal->id] ?? null;
|
||||
$destAccountId = $request->get('destination_id')[$journal->id] ?? null;
|
||||
$destAccountName = $request->get('destination_name')[$journal->id] ?? null;
|
||||
$budgetId = (int)($request->get('budget_id')[$journal->id] ?? 0.0);
|
||||
$category = $request->get('category')[$journal->id];
|
||||
$tags = $journal->tags->pluck('tag')->toArray();
|
||||
|
@@ -99,10 +99,10 @@ class SingleController extends Controller
|
||||
|
||||
$preFilled = [
|
||||
'description' => $journal->description,
|
||||
'source_account_id' => $source->id,
|
||||
'source_account_name' => $source->name,
|
||||
'destination_account_id' => $destination->id,
|
||||
'destination_account_name' => $destination->name,
|
||||
'source_id' => $source->id,
|
||||
'source_name' => $source->name,
|
||||
'destination_id' => $destination->id,
|
||||
'destination_name' => $destination->name,
|
||||
'amount' => $amount,
|
||||
'source_amount' => $amount,
|
||||
'destination_amount' => $foreignAmount,
|
||||
@@ -152,10 +152,10 @@ class SingleController extends Controller
|
||||
$source = (int)$request->get('source');
|
||||
|
||||
if (($what === 'withdrawal' || $what === 'transfer') && $source > 0) {
|
||||
$preFilled['source_account_id'] = $source;
|
||||
$preFilled['source_id'] = $source;
|
||||
}
|
||||
if ($what === 'deposit' && $source > 0) {
|
||||
$preFilled['destination_account_id'] = $source;
|
||||
$preFilled['destination_id'] = $source;
|
||||
}
|
||||
|
||||
session()->put('preFilled', $preFilled);
|
||||
@@ -259,35 +259,35 @@ class SingleController extends Controller
|
||||
$pTransaction = $repository->getFirstPosTransaction($journal);
|
||||
$foreignCurrency = $pTransaction->foreignCurrency ?? $pTransaction->transactionCurrency;
|
||||
$preFilled = [
|
||||
'date' => $repository->getJournalDate($journal, null), // $journal->dateAsString()
|
||||
'interest_date' => $repository->getJournalDate($journal, 'interest_date'),
|
||||
'book_date' => $repository->getJournalDate($journal, 'book_date'),
|
||||
'process_date' => $repository->getJournalDate($journal, 'process_date'),
|
||||
'category' => $repository->getJournalCategoryName($journal),
|
||||
'budget_id' => $repository->getJournalBudgetId($journal),
|
||||
'tags' => implode(',', $repository->getTags($journal)),
|
||||
'source_account_id' => $sourceAccounts->first()->id,
|
||||
'source_account_name' => $sourceAccounts->first()->edit_name,
|
||||
'destination_account_id' => $destinationAccounts->first()->id,
|
||||
'destination_account_name' => $destinationAccounts->first()->edit_name,
|
||||
'date' => $repository->getJournalDate($journal, null), // $journal->dateAsString()
|
||||
'interest_date' => $repository->getJournalDate($journal, 'interest_date'),
|
||||
'book_date' => $repository->getJournalDate($journal, 'book_date'),
|
||||
'process_date' => $repository->getJournalDate($journal, 'process_date'),
|
||||
'category' => $repository->getJournalCategoryName($journal),
|
||||
'budget_id' => $repository->getJournalBudgetId($journal),
|
||||
'tags' => implode(',', $repository->getTags($journal)),
|
||||
'source_id' => $sourceAccounts->first()->id,
|
||||
'source_name' => $sourceAccounts->first()->edit_name,
|
||||
'destination_id' => $destinationAccounts->first()->id,
|
||||
'destination_name' => $destinationAccounts->first()->edit_name,
|
||||
|
||||
// new custom fields:
|
||||
'due_date' => $repository->getJournalDate($journal, 'due_date'),
|
||||
'payment_date' => $repository->getJournalDate($journal, 'payment_date'),
|
||||
'invoice_date' => $repository->getJournalDate($journal, 'invoice_date'),
|
||||
'interal_reference' => $repository->getMetaField($journal, 'internal_reference'),
|
||||
'notes' => $repository->getNoteText($journal),
|
||||
'due_date' => $repository->getJournalDate($journal, 'due_date'),
|
||||
'payment_date' => $repository->getJournalDate($journal, 'payment_date'),
|
||||
'invoice_date' => $repository->getJournalDate($journal, 'invoice_date'),
|
||||
'interal_reference' => $repository->getMetaField($journal, 'internal_reference'),
|
||||
'notes' => $repository->getNoteText($journal),
|
||||
|
||||
// amount fields
|
||||
'amount' => $pTransaction->amount,
|
||||
'source_amount' => $pTransaction->amount,
|
||||
'native_amount' => $pTransaction->amount,
|
||||
'destination_amount' => $pTransaction->foreign_amount,
|
||||
'currency' => $pTransaction->transactionCurrency,
|
||||
'source_currency' => $pTransaction->transactionCurrency,
|
||||
'native_currency' => $pTransaction->transactionCurrency,
|
||||
'foreign_currency' => $foreignCurrency,
|
||||
'destination_currency' => $foreignCurrency,
|
||||
'amount' => $pTransaction->amount,
|
||||
'source_amount' => $pTransaction->amount,
|
||||
'native_amount' => $pTransaction->amount,
|
||||
'destination_amount' => $pTransaction->foreign_amount,
|
||||
'currency' => $pTransaction->transactionCurrency,
|
||||
'source_currency' => $pTransaction->transactionCurrency,
|
||||
'native_currency' => $pTransaction->transactionCurrency,
|
||||
'foreign_currency' => $foreignCurrency,
|
||||
'destination_currency' => $foreignCurrency,
|
||||
];
|
||||
|
||||
// amounts for withdrawals and deposits:
|
||||
|
@@ -184,30 +184,30 @@ class SplitController extends Controller
|
||||
$sourceAccounts = $this->repository->getJournalSourceAccounts($journal);
|
||||
$destinationAccounts = $this->repository->getJournalDestinationAccounts($journal);
|
||||
$array = [
|
||||
'journal_description' => $request->old('journal_description', $journal->description),
|
||||
'journal_amount' => '0',
|
||||
'journal_foreign_amount' => '0',
|
||||
'sourceAccounts' => $sourceAccounts,
|
||||
'journal_source_account_id' => $request->old('journal_source_account_id', $sourceAccounts->first()->id),
|
||||
'journal_source_account_name' => $request->old('journal_source_account_name', $sourceAccounts->first()->name),
|
||||
'journal_destination_account_id' => $request->old('journal_destination_account_id', $destinationAccounts->first()->id),
|
||||
'destinationAccounts' => $destinationAccounts,
|
||||
'what' => strtolower($this->repository->getTransactionType($journal)),
|
||||
'date' => $request->old('date', $this->repository->getJournalDate($journal, null)),
|
||||
'tags' => implode(',', $journal->tags->pluck('tag')->toArray()),
|
||||
'journal_description' => $request->old('journal_description', $journal->description),
|
||||
'journal_amount' => '0',
|
||||
'journal_foreign_amount' => '0',
|
||||
'sourceAccounts' => $sourceAccounts,
|
||||
'journal_source_id' => $request->old('journal_source_id', $sourceAccounts->first()->id),
|
||||
'journal_source_name' => $request->old('journal_source_name', $sourceAccounts->first()->name),
|
||||
'journal_destination_id' => $request->old('journal_destination_id', $destinationAccounts->first()->id),
|
||||
'destinationAccounts' => $destinationAccounts,
|
||||
'what' => strtolower($this->repository->getTransactionType($journal)),
|
||||
'date' => $request->old('date', $this->repository->getJournalDate($journal, null)),
|
||||
'tags' => implode(',', $journal->tags->pluck('tag')->toArray()),
|
||||
|
||||
// all custom fields:
|
||||
'interest_date' => $request->old('interest_date', $this->repository->getMetaField($journal, 'interest_date')),
|
||||
'book_date' => $request->old('book_date', $this->repository->getMetaField($journal, 'book_date')),
|
||||
'process_date' => $request->old('process_date', $this->repository->getMetaField($journal, 'process_date')),
|
||||
'due_date' => $request->old('due_date', $this->repository->getMetaField($journal, 'due_date')),
|
||||
'payment_date' => $request->old('payment_date', $this->repository->getMetaField($journal, 'payment_date')),
|
||||
'invoice_date' => $request->old('invoice_date', $this->repository->getMetaField($journal, 'invoice_date')),
|
||||
'internal_reference' => $request->old('internal_reference', $this->repository->getMetaField($journal, 'internal_reference')),
|
||||
'notes' => $request->old('notes', $this->repository->getNoteText($journal)),
|
||||
'interest_date' => $request->old('interest_date', $this->repository->getMetaField($journal, 'interest_date')),
|
||||
'book_date' => $request->old('book_date', $this->repository->getMetaField($journal, 'book_date')),
|
||||
'process_date' => $request->old('process_date', $this->repository->getMetaField($journal, 'process_date')),
|
||||
'due_date' => $request->old('due_date', $this->repository->getMetaField($journal, 'due_date')),
|
||||
'payment_date' => $request->old('payment_date', $this->repository->getMetaField($journal, 'payment_date')),
|
||||
'invoice_date' => $request->old('invoice_date', $this->repository->getMetaField($journal, 'invoice_date')),
|
||||
'internal_reference' => $request->old('internal_reference', $this->repository->getMetaField($journal, 'internal_reference')),
|
||||
'notes' => $request->old('notes', $this->repository->getNoteText($journal)),
|
||||
|
||||
// transactions.
|
||||
'transactions' => $this->getTransactionDataFromJournal($journal),
|
||||
'transactions' => $this->getTransactionDataFromJournal($journal),
|
||||
];
|
||||
// update transactions array with old request data.
|
||||
$array['transactions'] = $this->updateWithPrevious($array['transactions'], $request->old());
|
||||
|
@@ -81,10 +81,10 @@ class JournalFormRequest extends Request
|
||||
'budget_name' => null,
|
||||
'category_id' => null,
|
||||
'category_name' => $this->string('category'),
|
||||
'source_id' => $this->integer('source_account_id'),
|
||||
'source_name' => $this->string('source_account_name'),
|
||||
'destination_id' => $this->integer('destination_account_id'),
|
||||
'destination_name' => $this->string('destination_account_name'),
|
||||
'source_id' => $this->integer('source_id'),
|
||||
'source_name' => $this->string('source_name'),
|
||||
'destination_id' => $this->integer('destination_id'),
|
||||
'destination_name' => $this->string('destination_name'),
|
||||
'foreign_currency_id' => null,
|
||||
'foreign_currency_code' => null,
|
||||
'foreign_amount' => null,
|
||||
@@ -161,11 +161,11 @@ class JournalFormRequest extends Request
|
||||
'amount' => 'numeric|required|more:0',
|
||||
'budget_id' => 'mustExist:budgets,id|belongsToUser:budgets,id|nullable',
|
||||
'category' => 'between:1,255|nullable',
|
||||
'source_account_id' => 'numeric|belongsToUser:accounts,id|nullable',
|
||||
'source_account_name' => 'between:1,255|nullable',
|
||||
'destination_account_id' => 'numeric|belongsToUser:accounts,id|nullable',
|
||||
'destination_account_name' => 'between:1,255|nullable',
|
||||
'piggy_bank_id' => 'between:1,255|nullable',
|
||||
'source_id' => 'numeric|belongsToUser:accounts,id|nullable',
|
||||
'source_name' => 'between:1,255|nullable',
|
||||
'destination_id' => 'numeric|belongsToUser:accounts,id|nullable',
|
||||
'destination_name' => 'between:1,255|nullable',
|
||||
'piggy_bank_id' => 'numeric|nullable',
|
||||
|
||||
// foreign currency amounts
|
||||
'native_amount' => 'numeric|more:0|nullable',
|
||||
@@ -193,17 +193,17 @@ class JournalFormRequest extends Request
|
||||
{
|
||||
switch ($what) {
|
||||
case strtolower(TransactionType::WITHDRAWAL):
|
||||
$rules['source_account_id'] = 'required|exists:accounts,id|belongsToUser:accounts';
|
||||
$rules['destination_account_name'] = 'between:1,255|nullable';
|
||||
$rules['source_id'] = 'required|exists:accounts,id|belongsToUser:accounts';
|
||||
$rules['destination_name'] = 'between:1,255|nullable';
|
||||
break;
|
||||
case strtolower(TransactionType::DEPOSIT):
|
||||
$rules['source_account_name'] = 'between:1,255|nullable';
|
||||
$rules['destination_account_id'] = 'required|exists:accounts,id|belongsToUser:accounts';
|
||||
$rules['source_name'] = 'between:1,255|nullable';
|
||||
$rules['destination_id'] = 'required|exists:accounts,id|belongsToUser:accounts';
|
||||
break;
|
||||
case strtolower(TransactionType::TRANSFER):
|
||||
// this may not work:
|
||||
$rules['source_account_id'] = 'required|exists:accounts,id|belongsToUser:accounts|different:destination_account_id';
|
||||
$rules['destination_account_id'] = 'required|exists:accounts,id|belongsToUser:accounts|different:source_account_id';
|
||||
$rules['source_id'] = 'required|exists:accounts,id|belongsToUser:accounts|different:destination_id';
|
||||
$rules['destination_id'] = 'required|exists:accounts,id|belongsToUser:accounts|different:source_id';
|
||||
|
||||
break;
|
||||
default:
|
||||
|
@@ -45,11 +45,11 @@ class MassEditJournalRequest extends Request
|
||||
// fixed
|
||||
|
||||
return [
|
||||
'description.*' => 'required|min:1,max:255',
|
||||
'source_account_id.*' => 'numeric|belongsToUser:accounts,id',
|
||||
'destination_account_id.*' => 'numeric|belongsToUser:accounts,id',
|
||||
'revenue_account' => 'max:255',
|
||||
'expense_account' => 'max:255',
|
||||
'description.*' => 'required|min:1,max:255',
|
||||
'source_id.*' => 'numeric|belongsToUser:accounts,id',
|
||||
'destination_id.*' => 'numeric|belongsToUser:accounts,id',
|
||||
'revenue_account' => 'max:255',
|
||||
'expense_account' => 'max:255',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@@ -104,16 +104,16 @@ class RecurrenceFormRequest extends Request
|
||||
default:
|
||||
throw new FireflyException(sprintf('Cannot handle transaction type "%s"', $this->string('transaction_type')));
|
||||
case 'withdrawal':
|
||||
$return['transactions'][0]['source_account_id'] = $this->integer('source_account_id');
|
||||
$return['transactions'][0]['destination_account_name'] = $this->string('destination_account_name');
|
||||
$return['transactions'][0]['source_id'] = $this->integer('source_id');
|
||||
$return['transactions'][0]['destination_name'] = $this->string('destination_name');
|
||||
break;
|
||||
case 'deposit':
|
||||
$return['transactions'][0]['source_account_name'] = $this->string('source_account_name');
|
||||
$return['transactions'][0]['destination_account_id'] = $this->integer('destination_account_id');
|
||||
$return['transactions'][0]['source_name'] = $this->string('source_name');
|
||||
$return['transactions'][0]['destination_id'] = $this->integer('destination_id');
|
||||
break;
|
||||
case 'transfer':
|
||||
$return['transactions'][0]['source_account_id'] = $this->integer('source_account_id');
|
||||
$return['transactions'][0]['destination_account_id'] = $this->integer('destination_account_id');
|
||||
$return['transactions'][0]['source_id'] = $this->integer('source_id');
|
||||
$return['transactions'][0]['destination_id'] = $this->integer('destination_id');
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -131,34 +131,34 @@ class RecurrenceFormRequest extends Request
|
||||
$tomorrow->addDay();
|
||||
$rules = [
|
||||
// mandatory info for recurrence.
|
||||
'title' => 'required|between:1,255|uniqueObjectForUser:recurrences,title',
|
||||
'first_date' => 'required|date|after:' . $today->format('Y-m-d'),
|
||||
'repetition_type' => ['required', new ValidRecurrenceRepetitionValue, new ValidRecurrenceRepetitionType, 'between:1,20'],
|
||||
'skip' => 'required|numeric|between:0,31',
|
||||
'title' => 'required|between:1,255|uniqueObjectForUser:recurrences,title',
|
||||
'first_date' => 'required|date|after:' . $today->format('Y-m-d'),
|
||||
'repetition_type' => ['required', new ValidRecurrenceRepetitionValue, new ValidRecurrenceRepetitionType, 'between:1,20'],
|
||||
'skip' => 'required|numeric|between:0,31',
|
||||
|
||||
// optional for recurrence:
|
||||
'recurring_description' => 'between:0,65000',
|
||||
'active' => 'numeric|between:0,1',
|
||||
'apply_rules' => 'numeric|between:0,1',
|
||||
'recurring_description' => 'between:0,65000',
|
||||
'active' => 'numeric|between:0,1',
|
||||
'apply_rules' => 'numeric|between:0,1',
|
||||
|
||||
// mandatory for transaction:
|
||||
'transaction_description' => 'required|between:1,255',
|
||||
'transaction_type' => 'required|in:withdrawal,deposit,transfer',
|
||||
'transaction_currency_id' => 'required|exists:transaction_currencies,id',
|
||||
'amount' => 'numeric|required|more:0',
|
||||
'transaction_description' => 'required|between:1,255',
|
||||
'transaction_type' => 'required|in:withdrawal,deposit,transfer',
|
||||
'transaction_currency_id' => 'required|exists:transaction_currencies,id',
|
||||
'amount' => 'numeric|required|more:0',
|
||||
// mandatory account info:
|
||||
'source_account_id' => 'numeric|belongsToUser:accounts,id|nullable',
|
||||
'source_account_name' => 'between:1,255|nullable',
|
||||
'destination_account_id' => 'numeric|belongsToUser:accounts,id|nullable',
|
||||
'destination_account_name' => 'between:1,255|nullable',
|
||||
'source_id' => 'numeric|belongsToUser:accounts,id|nullable',
|
||||
'source_name' => 'between:1,255|nullable',
|
||||
'destination_id' => 'numeric|belongsToUser:accounts,id|nullable',
|
||||
'destination_name' => 'between:1,255|nullable',
|
||||
|
||||
// foreign amount data:
|
||||
'foreign_amount' => 'nullable|more:0',
|
||||
'foreign_amount' => 'nullable|more:0',
|
||||
|
||||
// optional fields:
|
||||
'budget_id' => 'mustExist:budgets,id|belongsToUser:budgets,id|nullable',
|
||||
'category' => 'between:1,255|nullable',
|
||||
'tags' => 'between:1,255|nullable',
|
||||
'budget_id' => 'mustExist:budgets,id|belongsToUser:budgets,id|nullable',
|
||||
'category' => 'between:1,255|nullable',
|
||||
'tags' => 'between:1,255|nullable',
|
||||
];
|
||||
if ($this->integer('foreign_currency_id') > 0) {
|
||||
$rules['foreign_currency_id'] = 'exists:transaction_currencies,id';
|
||||
@@ -181,17 +181,17 @@ class RecurrenceFormRequest extends Request
|
||||
// switchc on type to expand rules for source and destination accounts:
|
||||
switch ($this->string('transaction_type')) {
|
||||
case strtolower(TransactionType::WITHDRAWAL):
|
||||
$rules['source_account_id'] = 'required|exists:accounts,id|belongsToUser:accounts';
|
||||
$rules['destination_account_name'] = 'between:1,255|nullable';
|
||||
$rules['source_id'] = 'required|exists:accounts,id|belongsToUser:accounts';
|
||||
$rules['destination_name'] = 'between:1,255|nullable';
|
||||
break;
|
||||
case strtolower(TransactionType::DEPOSIT):
|
||||
$rules['source_account_name'] = 'between:1,255|nullable';
|
||||
$rules['destination_account_id'] = 'required|exists:accounts,id|belongsToUser:accounts';
|
||||
$rules['source_name'] = 'between:1,255|nullable';
|
||||
$rules['destination_id'] = 'required|exists:accounts,id|belongsToUser:accounts';
|
||||
break;
|
||||
case strtolower(TransactionType::TRANSFER):
|
||||
// this may not work:
|
||||
$rules['source_account_id'] = 'required|exists:accounts,id|belongsToUser:accounts|different:destination_account_id';
|
||||
$rules['destination_account_id'] = 'required|exists:accounts,id|belongsToUser:accounts|different:source_account_id';
|
||||
$rules['source_id'] = 'required|exists:accounts,id|belongsToUser:accounts|different:destination_id';
|
||||
$rules['destination_id'] = 'required|exists:accounts,id|belongsToUser:accounts|different:source_id';
|
||||
|
||||
break;
|
||||
default:
|
||||
|
@@ -64,16 +64,16 @@ class SplitJournalFormRequest extends Request
|
||||
foreach ($this->get('transactions') as $index => $transaction) {
|
||||
switch ($data['type']) {
|
||||
case 'withdrawal':
|
||||
$sourceId = $this->integer('journal_source_account_id');
|
||||
$sourceId = $this->integer('journal_source_id');
|
||||
$destinationName = $transaction['destination_name'] ?? '';
|
||||
break;
|
||||
case 'deposit':
|
||||
$sourceName = $transaction['source_name'] ?? '';
|
||||
$destinationId = $this->integer('journal_destination_account_id');
|
||||
$destinationId = $this->integer('journal_destination_id');
|
||||
break;
|
||||
case 'transfer':
|
||||
$sourceId = $this->integer('journal_source_account_id');
|
||||
$destinationId = $this->integer('journal_destination_account_id');
|
||||
$sourceId = $this->integer('journal_source_id');
|
||||
$destinationId = $this->integer('journal_destination_id');
|
||||
break;
|
||||
}
|
||||
$foreignAmount = $transaction['foreign_amount'] ?? null;
|
||||
@@ -112,20 +112,20 @@ class SplitJournalFormRequest extends Request
|
||||
'what' => 'required|in:withdrawal,deposit,transfer',
|
||||
'journal_description' => 'required|between:1,255',
|
||||
'id' => 'numeric|belongsToUser:transaction_journals,id',
|
||||
'journal_source_account_id' => 'numeric|belongsToUser:accounts,id',
|
||||
'journal_source_account_name.*' => 'between:1,255',
|
||||
'journal_source_id' => 'numeric|belongsToUser:accounts,id',
|
||||
'journal_source_name.*' => 'between:1,255',
|
||||
'journal_currency_id' => 'required|exists:transaction_currencies,id',
|
||||
'date' => 'required|date',
|
||||
'interest_date' => 'date|nullable',
|
||||
'book_date' => 'date|nullable',
|
||||
'process_date' => 'date|nullable',
|
||||
'transactions.*.transaction_description' => 'required|between:1,255',
|
||||
'transactions.*.destination_account_id' => 'numeric|belongsToUser:accounts,id',
|
||||
'transactions.*.destination_id' => 'numeric|belongsToUser:accounts,id',
|
||||
'transactions.*.destination_name' => 'between:1,255|nullable',
|
||||
'transactions.*.amount' => 'required|numeric',
|
||||
'transactions.*.budget_id' => 'belongsToUser:budgets,id',
|
||||
'transactions.*.category_name' => 'between:1,255|nullable',
|
||||
'transactions.*.piggy_bank_id' => 'between:1,255|nullable',
|
||||
'transactions.*.piggy_bank_id' => 'numeric|nullable',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -155,8 +155,8 @@ class SplitJournalFormRequest extends Request
|
||||
/** @var array $array */
|
||||
foreach ($transactions as $array) {
|
||||
if ($array['destination_id'] !== null && $array['source_id'] !== null && $array['destination_id'] === $array['source_id']) {
|
||||
$validator->errors()->add('journal_source_account_id', trans('validation.source_equals_destination'));
|
||||
$validator->errors()->add('journal_destination_account_id', trans('validation.source_equals_destination'));
|
||||
$validator->errors()->add('journal_source_id', trans('validation.source_equals_destination'));
|
||||
$validator->errors()->add('journal_destination_id', trans('validation.source_equals_destination'));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -415,7 +415,7 @@ class ImportArrayStorage
|
||||
// store the journal.
|
||||
try {
|
||||
$journal = $this->journalRepos->store($store);
|
||||
} catch(FireflyException $e) {
|
||||
} catch (FireflyException $e) {
|
||||
Log::error($e->getMessage());
|
||||
Log::error($e->getTraceAsString());
|
||||
$this->repository->addErrorMessage($this->importJob, sprintf('Row #%d could not be imported. %s', $index, $e->getMessage()));
|
||||
|
@@ -44,7 +44,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
* @property AccountType $accountType
|
||||
* @property bool $active
|
||||
* @property string $virtual_balance
|
||||
* @property User $user
|
||||
* @property User $user
|
||||
*/
|
||||
class Account extends Model
|
||||
{
|
||||
|
@@ -45,11 +45,11 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
* @property TransactionCurrency $transactionCurrency
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property Carbon $date
|
||||
* @property string $repeat_freq
|
||||
* @property int $skip
|
||||
* @property bool $automatch
|
||||
* @property User $user
|
||||
* @property Carbon $date
|
||||
* @property string $repeat_freq
|
||||
* @property int $skip
|
||||
* @property bool $automatch
|
||||
* @property User $user
|
||||
*/
|
||||
class Bill extends Model
|
||||
{
|
||||
|
@@ -31,9 +31,10 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
|
||||
/**
|
||||
* Class Budget.
|
||||
* @property int $id
|
||||
*
|
||||
* @property int $id
|
||||
* @property string $name
|
||||
* @property bool $active
|
||||
* @property bool $active
|
||||
*/
|
||||
class Budget extends Model
|
||||
{
|
||||
|
@@ -33,7 +33,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
* Class Category.
|
||||
*
|
||||
* @property string $name
|
||||
* @property int $id
|
||||
* @property int $id
|
||||
*/
|
||||
class Category extends Model
|
||||
{
|
||||
|
@@ -39,7 +39,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
* @property string $name
|
||||
* @property Carbon $updated_at
|
||||
* @property Carbon $created_at
|
||||
* @property int $id
|
||||
* @property int $id
|
||||
*/
|
||||
class Preference extends Model
|
||||
{
|
||||
|
@@ -37,8 +37,8 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
* @property Carbon $updated_at
|
||||
* @property string $title
|
||||
* @property string $text
|
||||
* @property int $id
|
||||
* @property int $order
|
||||
* @property int $id
|
||||
* @property int $order
|
||||
*/
|
||||
class RuleGroup extends Model
|
||||
{
|
||||
|
@@ -73,7 +73,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
* @property bool $is_split
|
||||
* @property int $attachmentCount
|
||||
* @property int $transaction_currency_id
|
||||
* @property int $foreign_currency_id
|
||||
* @property int $foreign_currency_id
|
||||
*/
|
||||
class Transaction extends Model
|
||||
{
|
||||
|
@@ -32,7 +32,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
* @property string $code
|
||||
* @property string $symbol
|
||||
* @property int $decimal_places
|
||||
* @property int $id
|
||||
* @property int $id
|
||||
*
|
||||
*/
|
||||
class TransactionCurrency extends Model
|
||||
|
@@ -39,8 +39,8 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
/**
|
||||
* Class TransactionJournal.
|
||||
*
|
||||
* @property User $user
|
||||
* @property int $bill_id
|
||||
* @property User $user
|
||||
* @property int $bill_id
|
||||
* @property Collection $categories
|
||||
*/
|
||||
class TransactionJournal extends Model
|
||||
|
@@ -30,7 +30,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
* Class TransactionType.
|
||||
*
|
||||
* @property string $type
|
||||
* @property int $id
|
||||
* @property int $id
|
||||
*/
|
||||
class TransactionType extends Model
|
||||
{
|
||||
|
@@ -158,7 +158,7 @@ trait FindAccountsTrait
|
||||
Log::debug(sprintf('Found #%d (%s) with type id %d', $account->id, $account->name, $account->account_type_id));
|
||||
|
||||
return $account;
|
||||
} else{
|
||||
} else {
|
||||
Log::debug(sprintf('"%s" does not equal "%s"', $account->name, $name));
|
||||
}
|
||||
}
|
||||
|
@@ -250,6 +250,13 @@ interface BudgetRepositoryInterface
|
||||
*/
|
||||
public function store(array $data): Budget;
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
*
|
||||
* @return BudgetLimit
|
||||
*/
|
||||
public function storeBudgetLimit(array $data): BudgetLimit;
|
||||
|
||||
/**
|
||||
* @param Budget $budget
|
||||
* @param array $data
|
||||
@@ -274,13 +281,6 @@ interface BudgetRepositoryInterface
|
||||
*/
|
||||
public function updateBudgetLimit(BudgetLimit $budgetLimit, array $data): BudgetLimit;
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
*
|
||||
* @return BudgetLimit
|
||||
*/
|
||||
public function storeBudgetLimit(array $data): BudgetLimit;
|
||||
|
||||
/**
|
||||
* @param Budget $budget
|
||||
* @param Carbon $start
|
||||
|
@@ -326,6 +326,7 @@ interface JournalRepositoryInterface
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
*
|
||||
* @throws FireflyException
|
||||
* @return TransactionJournal
|
||||
*/
|
||||
|
@@ -62,13 +62,6 @@ interface LinkTypeRepositoryInterface
|
||||
*/
|
||||
public function find(int $id): LinkType;
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
*
|
||||
* @return LinkType|null
|
||||
*/
|
||||
public function findNull(int $id): ?LinkType;
|
||||
|
||||
/**
|
||||
* Find link type by name.
|
||||
*
|
||||
@@ -88,6 +81,13 @@ interface LinkTypeRepositoryInterface
|
||||
*/
|
||||
public function findLink(TransactionJournal $one, TransactionJournal $two): bool;
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
*
|
||||
* @return LinkType|null
|
||||
*/
|
||||
public function findNull(int $id): ?LinkType;
|
||||
|
||||
/**
|
||||
* See if such a link already exists (and get it).
|
||||
*
|
||||
|
@@ -102,17 +102,12 @@ interface PiggyBankRepositoryInterface
|
||||
|
||||
/**
|
||||
* @param int $piggyBankid
|
||||
*
|
||||
* @deprecated
|
||||
* @return PiggyBank
|
||||
*/
|
||||
public function find(int $piggyBankid): PiggyBank;
|
||||
|
||||
/**
|
||||
* @param int $piggyBankId
|
||||
* @return PiggyBank|null
|
||||
*/
|
||||
public function findNull(int $piggyBankId): ?PiggyBank;
|
||||
|
||||
/**
|
||||
* Find by name or return NULL.
|
||||
*
|
||||
@@ -122,6 +117,13 @@ interface PiggyBankRepositoryInterface
|
||||
*/
|
||||
public function findByName(string $name): ?PiggyBank;
|
||||
|
||||
/**
|
||||
* @param int $piggyBankId
|
||||
*
|
||||
* @return PiggyBank|null
|
||||
*/
|
||||
public function findNull(int $piggyBankId): ?PiggyBank;
|
||||
|
||||
/**
|
||||
* Get current amount saved in piggy bank.
|
||||
*
|
||||
|
@@ -79,7 +79,7 @@ class IsValidAttachmentModel implements Rule
|
||||
/** @var JournalRepositoryInterface $repository */
|
||||
$repository = app(JournalRepositoryInterface::class);
|
||||
$repository->setUser($user);
|
||||
$result = $repository->findNull((int)$value);
|
||||
$result = $repository->findNull((int)$value);
|
||||
|
||||
return null !== $result;
|
||||
break;
|
||||
|
@@ -49,7 +49,7 @@ class FixerIOv2 implements ExchangeRateInterface
|
||||
public function getRate(TransactionCurrency $fromCurrency, TransactionCurrency $toCurrency, Carbon $date): CurrencyExchangeRate
|
||||
{
|
||||
// create new exchange rate with default values.
|
||||
$rate = 0;
|
||||
$rate = 0;
|
||||
$exchangeRate = new CurrencyExchangeRate;
|
||||
$exchangeRate->user()->associate($this->user);
|
||||
$exchangeRate->fromCurrency()->associate($fromCurrency);
|
||||
|
@@ -25,10 +25,10 @@ namespace FireflyIII\Transformers;
|
||||
|
||||
|
||||
use FireflyIII\Models\Attachment;
|
||||
use League\Fractal\Resource\Collection as FractalCollection;
|
||||
use League\Fractal\Resource\Item;
|
||||
use League\Fractal\TransformerAbstract;
|
||||
use Symfony\Component\HttpFoundation\ParameterBag;
|
||||
use League\Fractal\Resource\Collection as FractalCollection;
|
||||
|
||||
/**
|
||||
* Class AttachmentTransformer
|
||||
@@ -40,13 +40,13 @@ class AttachmentTransformer extends TransformerAbstract
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $availableIncludes = ['user','notes'];
|
||||
protected $availableIncludes = ['user', 'notes'];
|
||||
/**
|
||||
* List of resources to automatically include
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $defaultIncludes = ['user','notes'];
|
||||
protected $defaultIncludes = ['user', 'notes'];
|
||||
|
||||
/** @var ParameterBag */
|
||||
protected $parameters;
|
||||
@@ -63,20 +63,6 @@ class AttachmentTransformer extends TransformerAbstract
|
||||
$this->parameters = $parameters;
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach the user.
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
*
|
||||
* @param Attachment $attachment
|
||||
*
|
||||
* @return Item
|
||||
*/
|
||||
public function includeUser(Attachment $attachment): Item
|
||||
{
|
||||
return $this->item($attachment->user, new UserTransformer($this->parameters), 'users');
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach the notes.
|
||||
*
|
||||
@@ -91,6 +77,20 @@ class AttachmentTransformer extends TransformerAbstract
|
||||
return $this->collection($attachment->notes, new NoteTransformer($this->parameters), 'notes');
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach the user.
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
*
|
||||
* @param Attachment $attachment
|
||||
*
|
||||
* @return Item
|
||||
*/
|
||||
public function includeUser(Attachment $attachment): Item
|
||||
{
|
||||
return $this->item($attachment->user, new UserTransformer($this->parameters), 'users');
|
||||
}
|
||||
|
||||
/**
|
||||
* Transform attachment.
|
||||
*
|
||||
|
@@ -22,6 +22,7 @@
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Transformers;
|
||||
|
||||
use FireflyIII\Models\BudgetLimit;
|
||||
use League\Fractal\Resource\Item;
|
||||
use League\Fractal\TransformerAbstract;
|
||||
|
@@ -157,19 +157,19 @@ class RecurrenceTransformer extends TransformerAbstract
|
||||
/** @var RecurrenceTransaction $transaction */
|
||||
foreach ($recurrence->recurrenceTransactions as $transaction) {
|
||||
$transactionArray = [
|
||||
'currency_id' => $transaction->transaction_currency_id,
|
||||
'currency_code' => $transaction->transactionCurrency->code,
|
||||
'currency_symbol' => $transaction->transactionCurrency->symbol,
|
||||
'currency_dp' => $transaction->transactionCurrency->decimal_places,
|
||||
'foreign_currency_id' => $transaction->foreign_currency_id,
|
||||
'source_account_id' => $transaction->source_account_id,
|
||||
'source_account_name' => $transaction->sourceAccount->name,
|
||||
'destination_account_id' => $transaction->destination_account_id,
|
||||
'destination_account_name' => $transaction->destinationAccount->name,
|
||||
'amount' => $transaction->amount,
|
||||
'foreign_amount' => $transaction->foreign_amount,
|
||||
'description' => $transaction->description,
|
||||
'meta' => [],
|
||||
'currency_id' => $transaction->transaction_currency_id,
|
||||
'currency_code' => $transaction->transactionCurrency->code,
|
||||
'currency_symbol' => $transaction->transactionCurrency->symbol,
|
||||
'currency_dp' => $transaction->transactionCurrency->decimal_places,
|
||||
'foreign_currency_id' => $transaction->foreign_currency_id,
|
||||
'source_id' => $transaction->source_id,
|
||||
'source_name' => $transaction->sourceAccount->name,
|
||||
'destination_id' => $transaction->destination_id,
|
||||
'destination_name' => $transaction->destinationAccount->name,
|
||||
'amount' => $transaction->amount,
|
||||
'foreign_amount' => $transaction->foreign_amount,
|
||||
'description' => $transaction->description,
|
||||
'meta' => [],
|
||||
];
|
||||
if (null !== $transaction->foreign_currency_id) {
|
||||
$transactionArray['foreign_currency_code'] = $transaction->foreignCurrency->code;
|
||||
|
@@ -25,7 +25,6 @@ namespace FireflyIII\Transformers;
|
||||
|
||||
|
||||
use FireflyIII\Models\RuleAction;
|
||||
use FireflyIII\Models\RuleTrigger;
|
||||
use League\Fractal\TransformerAbstract;
|
||||
use Symfony\Component\HttpFoundation\ParameterBag;
|
||||
|
||||
@@ -75,8 +74,8 @@ class RuleActionTransformer extends TransformerAbstract
|
||||
'id' => (int)$ruleAction->id,
|
||||
'updated_at' => $ruleAction->updated_at->toAtomString(),
|
||||
'created_at' => $ruleAction->created_at->toAtomString(),
|
||||
'action_type' => $ruleAction->action_type,
|
||||
'action_value' => $ruleAction->action_value,
|
||||
'action_type' => $ruleAction->action_type,
|
||||
'action_value' => $ruleAction->action_value,
|
||||
'order' => $ruleAction->order,
|
||||
'active' => $ruleAction->active,
|
||||
'stop_processing' => $ruleAction->stop_processing,
|
||||
|
@@ -25,10 +25,10 @@ namespace FireflyIII\Transformers;
|
||||
|
||||
|
||||
use FireflyIII\Models\Rule;
|
||||
use League\Fractal\Resource\Collection as FractalCollection;
|
||||
use League\Fractal\Resource\Item;
|
||||
use League\Fractal\TransformerAbstract;
|
||||
use Symfony\Component\HttpFoundation\ParameterBag;
|
||||
use League\Fractal\Resource\Collection as FractalCollection;
|
||||
|
||||
/**
|
||||
* Class RuleTransformer
|
||||
@@ -68,8 +68,22 @@ class RuleTransformer extends TransformerAbstract
|
||||
*
|
||||
* @return FractalCollection
|
||||
*/
|
||||
public function includeRuleTriggers(Rule $rule): FractalCollection {
|
||||
return $this->collection($rule->ruleTriggers, new RuleTriggerTransformer($this->parameters), 'rule_triggers');
|
||||
public function includeRuleActions(Rule $rule): FractalCollection
|
||||
{
|
||||
return $this->collection($rule->ruleActions, new RuleActionTransformer($this->parameters), 'rule_actions');
|
||||
}
|
||||
|
||||
/**
|
||||
* Include the rule group.
|
||||
*
|
||||
* @param Rule $rule
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
* @return Item
|
||||
*/
|
||||
public function includeRuleGroup(Rule $rule): Item
|
||||
{
|
||||
return $this->item($rule->ruleGroup, new RuleGroupTransformer($this->parameters), 'rule_groups');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -77,8 +91,9 @@ class RuleTransformer extends TransformerAbstract
|
||||
*
|
||||
* @return FractalCollection
|
||||
*/
|
||||
public function includeRuleActions(Rule $rule): FractalCollection {
|
||||
return $this->collection($rule->ruleActions, new RuleActionTransformer($this->parameters), 'rule_actions');
|
||||
public function includeRuleTriggers(Rule $rule): FractalCollection
|
||||
{
|
||||
return $this->collection($rule->ruleTriggers, new RuleTriggerTransformer($this->parameters), 'rule_triggers');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -94,20 +109,6 @@ class RuleTransformer extends TransformerAbstract
|
||||
return $this->item($rule->user, new UserTransformer($this->parameters), 'users');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Include the rule group.
|
||||
*
|
||||
* @param Rule $rule
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
* @return Item
|
||||
*/
|
||||
public function includeRuleGroup(Rule $rule): Item
|
||||
{
|
||||
return $this->item($rule->ruleGroup, new RuleGroupTransformer($this->parameters), 'rule_groups');
|
||||
}
|
||||
|
||||
/**
|
||||
* Transform the rule.
|
||||
*
|
||||
|
Reference in New Issue
Block a user