Lots of mago fixes applied.

This commit is contained in:
James Cole
2026-05-21 06:31:24 +02:00
parent 9ee1b4587c
commit b81943fad6
231 changed files with 718 additions and 718 deletions
@@ -87,7 +87,7 @@ final class PurgeController extends Controller
Rule::whereUserId($user->id)->onlyTrashed()->forceDelete();
// notes (this will actually purge EVERYBODY's deleted notes)
Note::onlyTrashed()->forceDelete();
Note::query()->onlyTrashed()->forceDelete();
// recurring transactions
Recurrence::whereUserId($user->id)->onlyTrashed()->forceDelete();
@@ -59,6 +59,6 @@ class AutocompleteRequest extends FormRequest
public function rules(): array
{
return ['date' => 'date|after:1970-01-02|before:2038-01-17'];
return ['date' => ['date', 'after:1970-01-02', 'before:2038-01-17']];
}
}
+3 -3
View File
@@ -60,11 +60,11 @@ class ChartRequest extends FormRequest
public function rules(): array
{
return [
'start' => 'required|date|after:1970-01-02|before:2038-01-17|before_or_equal:end',
'end' => 'required|date|after:1970-01-02|before:2038-01-17|after_or_equal:start',
'start' => ['required', 'date', 'after:1970-01-02', 'before:2038-01-17', 'before_or_equal:end'],
'end' => ['required', 'date', 'after:1970-01-02', 'before:2038-01-17', 'after_or_equal:start'],
'preselected' => sprintf('nullable|in:%s', implode(',', config('firefly.preselected_accounts'))),
'period' => sprintf('nullable|in:%s', implode(',', config('firefly.valid_view_ranges'))),
'accounts' => 'nullable|array',
'accounts' => ['nullable', 'array'],
'accounts.*' => 'exists:accounts,id',
];
}
@@ -52,8 +52,8 @@ class MoveTransactionsRequest extends FormRequest
public function rules(): array
{
return [
'original_account' => 'required|different:destination_account|belongsToUser:accounts,id',
'destination_account' => 'required|different:original_account|belongsToUser:accounts,id',
'original_account' => ['required', 'different:destination_account', 'belongsToUser:accounts,id'],
'destination_account' => ['required', 'different:original_account', 'belongsToUser:accounts,id'],
];
}
@@ -72,6 +72,6 @@ class ExportRequest extends FormRequest
*/
public function rules(): array
{
return ['type' => 'in:csv', 'accounts' => 'min:1|max:32768', 'start' => 'date|before:end', 'end' => 'date|after:start'];
return ['type' => 'in:csv', 'accounts' => ['min:1', 'max:32768'], 'start' => ['date', 'before:end'], 'end' => ['date', 'after:start']];
}
}
+1 -1
View File
@@ -55,6 +55,6 @@ class SameDateRequest extends FormRequest
*/
public function rules(): array
{
return ['start' => 'required|date', 'end' => 'required|date|after_or_equal:start'];
return ['start' => ['required', 'date'], 'end' => ['required', 'date', 'after_or_equal:start']];
}
}
@@ -56,6 +56,6 @@ class SingleDateRequest extends FormRequest
*/
public function rules(): array
{
return ['date' => 'required|date|after:1970-01-02|before:2038-01-17'];
return ['date' => ['required', 'date', 'after:1970-01-02', 'before:2038-01-17']];
}
}
@@ -169,7 +169,7 @@ class GenericRequest extends FormRequest
$this->bills = new Collection();
$this->tags = new Collection();
return ['start' => 'required|date', 'end' => 'required|date|after_or_equal:start'];
return ['start' => ['required', 'date'], 'end' => ['required', 'date', 'after_or_equal:start']];
}
private function parseAccounts(): void
@@ -99,29 +99,29 @@ class StoreRequest extends FormRequest
$ccPaymentTypes = implode(',', array_keys(config('firefly.ccTypes')));
$type = $this->convertString('type');
$rules = [
'name' => 'required|max:1024|min:1|uniqueAccountForUser',
'name' => ['required', 'max:1024', 'min:1', 'uniqueAccountForUser'],
'type' => sprintf('required|max:1024|min:1|in:%s', $types),
'iban' => ['iban', 'nullable', new UniqueIban(null, $type)],
'bic' => 'bic|nullable',
'bic' => ['bic', 'nullable'],
'account_number' => ['min:1', 'max:255', 'nullable', new UniqueAccountNumber(null, $type)],
'opening_balance' => 'numeric|required_with:opening_balance_date|nullable',
'opening_balance_date' => 'date|required_with:opening_balance|nullable',
'virtual_balance' => 'numeric|nullable',
'order' => 'numeric|nullable',
'currency_id' => 'numeric|exists:transaction_currencies,id',
'currency_code' => 'min:3|max:3|exists:transaction_currencies,code',
'opening_balance' => ['numeric', 'required_with:opening_balance_date', 'nullable'],
'opening_balance_date' => ['date', 'required_with:opening_balance', 'nullable'],
'virtual_balance' => ['numeric', 'nullable'],
'order' => ['numeric', 'nullable'],
'currency_id' => ['numeric', 'exists:transaction_currencies,id'],
'currency_code' => ['min:3', 'max:3', 'exists:transaction_currencies,code'],
'active' => [new IsBoolean()],
'include_net_worth' => [new IsBoolean()],
'account_role' => sprintf('nullable|in:%s|required_if:type,asset', $accountRoles),
'credit_card_type' => sprintf('nullable|in:%s|required_if:account_role,ccAsset', $ccPaymentTypes),
'monthly_payment_date' => 'nullable|date|required_if:account_role,ccAsset|required_if:credit_card_type,monthlyFull',
'liability_type' => 'nullable|required_if:type,liability|required_if:type,liabilities|in:loan,debt,mortgage',
'monthly_payment_date' => ['nullable', 'date', 'required_if:account_role,ccAsset', 'required_if:credit_card_type,monthlyFull'],
'liability_type' => ['nullable', 'required_if:type,liability', 'required_if:type,liabilities', 'in:loan,debt,mortgage'],
'liability_amount' => ['required_with:liability_start_date', new IsValidPositiveAmount()],
'liability_start_date' => 'required_with:liability_amount|date',
'liability_direction' => 'nullable|required_if:type,liability|required_if:type,liabilities|in:credit,debit',
'interest' => 'min:0|max:100|numeric',
'liability_start_date' => ['required_with:liability_amount', 'date'],
'liability_direction' => ['nullable', 'required_if:type,liability', 'required_if:type,liabilities', 'in:credit,debit'],
'interest' => ['min:0', 'max:100', 'numeric'],
'interest_period' => sprintf('nullable|in:%s', implode(',', config('firefly.interest_periods'))),
'notes' => 'min:0|max:32768',
'notes' => ['min:0', 'max:32768'],
];
return Location::requestRules($rules);
@@ -95,24 +95,24 @@ class UpdateRequest extends FormRequest
'name' => sprintf('min:1|max:1024|uniqueAccountForUser:%d', $account->id),
'type' => sprintf('in:%s', $types),
'iban' => ['iban', 'nullable', new UniqueIban($account, $this->convertString('type'))],
'bic' => 'bic|nullable',
'bic' => ['bic', 'nullable'],
'account_number' => ['min:1', 'max:255', 'nullable', new UniqueAccountNumber($account, $this->convertString('type'))],
'opening_balance' => 'numeric|required_with:opening_balance_date|nullable',
'opening_balance_date' => 'date|required_with:opening_balance|nullable',
'virtual_balance' => 'numeric|nullable',
'order' => 'numeric|nullable',
'currency_id' => 'numeric|exists:transaction_currencies,id',
'currency_code' => 'min:3|max:51|exists:transaction_currencies,code',
'opening_balance' => ['numeric', 'required_with:opening_balance_date', 'nullable'],
'opening_balance_date' => ['date', 'required_with:opening_balance', 'nullable'],
'virtual_balance' => ['numeric', 'nullable'],
'order' => ['numeric', 'nullable'],
'currency_id' => ['numeric', 'exists:transaction_currencies,id'],
'currency_code' => ['min:3', 'max:51', 'exists:transaction_currencies,code'],
'active' => [new IsBoolean()],
'include_net_worth' => [new IsBoolean()],
'account_role' => sprintf('in:%s|nullable|required_if:type,asset', $accountRoles),
'credit_card_type' => sprintf('in:%s|nullable|required_if:account_role,ccAsset', $ccPaymentTypes),
'monthly_payment_date' => 'date|nullable|required_if:account_role,ccAsset|required_if:credit_card_type,monthlyFull',
'liability_type' => 'required_if:type,liability|in:loan,debt,mortgage',
'liability_direction' => 'required_if:type,liability|in:credit,debit',
'interest' => 'required_if:type,liability|min:0|max:100|numeric',
'interest_period' => 'required_if:type,liability|in:daily,monthly,yearly',
'notes' => 'min:0|max:32768',
'monthly_payment_date' => ['date', 'nullable', 'required_if:account_role,ccAsset', 'required_if:credit_card_type,monthlyFull'],
'liability_type' => ['required_if:type,liability', 'in:loan,debt,mortgage'],
'liability_direction' => ['required_if:type,liability', 'in:credit,debit'],
'interest' => ['required_if:type,liability', 'min:0', 'max:100', 'numeric'],
'interest_period' => ['required_if:type,liability', 'in:daily,monthly,yearly'],
'notes' => ['min:0', 'max:32768'],
];
return Location::requestRules($rules);
@@ -64,9 +64,9 @@ class StoreRequest extends FormRequest
$model = $this->convertString('attachable_type');
return [
'filename' => 'required|min:1|max:255',
'filename' => ['required', 'min:1', 'max:255'],
'title' => ['min:1', 'max:255'],
'notes' => 'min:1|max:32768',
'notes' => ['min:1', 'max:32768'],
'attachable_type' => sprintf('required|in:%s', $models),
'attachable_id' => ['required', 'numeric', new IsValidAttachmentModel($model)],
];
@@ -68,7 +68,7 @@ class UpdateRequest extends FormRequest
return [
'filename' => ['min:1', 'max:255'],
'title' => ['min:1', 'max:255'],
'notes' => 'min:1|max:32768',
'notes' => ['min:1', 'max:32768'],
'attachable_type' => sprintf('in:%s', $models),
'attachable_id' => ['numeric', new IsValidAttachmentModel($model)],
];
@@ -65,11 +65,11 @@ class Request extends FormRequest
public function rules(): array
{
return [
'currency_id' => 'numeric|exists:transaction_currencies,id',
'currency_code' => 'min:3|max:51|exists:transaction_currencies,code',
'currency_id' => ['numeric', 'exists:transaction_currencies,id'],
'currency_code' => ['min:3', 'max:51', 'exists:transaction_currencies,code'],
'amount' => ['nullable', new IsValidPositiveAmount()],
'start' => 'date|after:1970-01-02|before:2038-01-17',
'end' => 'date|after:1970-01-02|before:2038-01-17',
'start' => ['date', 'after:1970-01-02', 'before:2038-01-17'],
'end' => ['date', 'after:1970-01-02', 'before:2038-01-17'],
];
}
@@ -77,18 +77,18 @@ class StoreRequest extends FormRequest
public function rules(): array
{
return [
'name' => 'min:1|max:255|uniqueObjectForUser:bills,name',
'name' => ['min:1', 'max:255', 'uniqueObjectForUser:bills,name'],
'amount_min' => ['required', new IsValidPositiveAmount()],
'amount_max' => ['required', new IsValidPositiveAmount()],
'currency_id' => 'numeric|exists:transaction_currencies,id',
'currency_code' => 'min:3|max:51|exists:transaction_currencies,code',
'date' => 'date|required|after:1970-01-02|before:2038-01-17',
'end_date' => 'nullable|date|after:date|after:1970-01-02|before:2038-01-17',
'extension_date' => 'nullable|date|after:date|after:1970-01-02|before:2038-01-17',
'repeat_freq' => 'in:weekly,monthly,quarterly,half-year,yearly|required',
'skip' => 'min:0|max:31|numeric',
'currency_id' => ['numeric', 'exists:transaction_currencies,id'],
'currency_code' => ['min:3', 'max:51', 'exists:transaction_currencies,code'],
'date' => ['date', 'required', 'after:1970-01-02', 'before:2038-01-17'],
'end_date' => ['nullable', 'date', 'after:date', 'after:1970-01-02', 'before:2038-01-17'],
'extension_date' => ['nullable', 'date', 'after:date', 'after:1970-01-02', 'before:2038-01-17'],
'repeat_freq' => ['in:weekly,monthly,quarterly,half-year,yearly', 'required'],
'skip' => ['min:0', 'max:31', 'numeric'],
'active' => [new IsBoolean()],
'notes' => 'nullable|min:1|max:32768',
'notes' => ['nullable', 'min:1', 'max:32768'],
];
}
@@ -81,15 +81,15 @@ class UpdateRequest extends FormRequest
'name' => sprintf('min:1|max:255|uniqueObjectForUser:bills,name,%d', $bill->id),
'amount_min' => ['nullable', new IsValidPositiveAmount()],
'amount_max' => ['nullable', new IsValidPositiveAmount()],
'currency_id' => 'numeric|exists:transaction_currencies,id',
'currency_code' => 'min:3|max:51|exists:transaction_currencies,code',
'date' => 'date|after:1970-01-02|before:2038-01-17',
'end_date' => 'date|after:date|after:1970-01-02|before:2038-01-17',
'extension_date' => 'date|after:date|after:1970-01-02|before:2038-01-17',
'currency_id' => ['numeric', 'exists:transaction_currencies,id'],
'currency_code' => ['min:3', 'max:51', 'exists:transaction_currencies,code'],
'date' => ['date', 'after:1970-01-02', 'before:2038-01-17'],
'end_date' => ['date', 'after:date', 'after:1970-01-02', 'before:2038-01-17'],
'extension_date' => ['date', 'after:date', 'after:1970-01-02', 'before:2038-01-17'],
'repeat_freq' => 'in:weekly,monthly,quarterly,half-year,yearly',
'skip' => 'min:0|max:31|numeric',
'skip' => ['min:0', 'max:31', 'numeric'],
'active' => [new IsBoolean()],
'notes' => 'min:1|max:32768',
'notes' => ['min:1', 'max:32768'],
];
}
@@ -75,11 +75,11 @@ class StoreRequest extends FormRequest
public function rules(): array
{
return [
'name' => 'required|min:1|max:255|uniqueObjectForUser:budgets,name',
'name' => ['required', 'min:1', 'max:255', 'uniqueObjectForUser:budgets,name'],
'active' => [new IsBoolean()],
'currency_id' => 'exists:transaction_currencies,id',
'currency_code' => 'exists:transaction_currencies,code',
'notes' => 'nullable|min:1|max:32768',
'notes' => ['nullable', 'min:1', 'max:32768'],
// auto budget info
'auto_budget_type' => 'in:reset,rollover,adjusted,none',
'auto_budget_amount' => [
@@ -88,7 +88,7 @@ class StoreRequest extends FormRequest
'required_if:auto_budget_type,adjusted',
new IsValidPositiveAmount(),
],
'auto_budget_period' => 'in:daily,weekly,monthly,quarterly,half_year,yearly|required_if:auto_budget_type,reset|required_if:auto_budget_type,rollover|required_if:auto_budget_type,adjusted',
'auto_budget_period' => ['in:daily,weekly,monthly,quarterly,half_year,yearly', 'required_if:auto_budget_type,reset', 'required_if:auto_budget_type,rollover', 'required_if:auto_budget_type,adjusted'],
// webhooks
'fire_webhooks' => [new IsBoolean()],
@@ -85,7 +85,7 @@ class UpdateRequest extends FormRequest
return [
'name' => sprintf('min:1|max:100|uniqueObjectForUser:budgets,name,%d', $budget->id),
'active' => [new IsBoolean()],
'notes' => 'nullable|min:1|max:32768',
'notes' => ['nullable', 'min:1', 'max:32768'],
'auto_budget_type' => 'in:reset,rollover,adjusted,none',
'auto_budget_currency_id' => 'exists:transaction_currencies,id',
'auto_budget_currency_code' => 'exists:transaction_currencies,code',
@@ -71,12 +71,12 @@ class StoreRequest extends FormRequest
public function rules(): array
{
return [
'start' => 'required|before:end|date',
'end' => 'required|after:start|date',
'start' => ['required', 'before:end', 'date'],
'end' => ['required', 'after:start', 'date'],
'amount' => ['required', new IsValidPositiveAmount()],
'currency_id' => 'numeric|exists:transaction_currencies,id',
'currency_code' => 'min:3|max:51|exists:transaction_currencies,code',
'notes' => 'nullable|min:0|max:32768',
'currency_id' => ['numeric', 'exists:transaction_currencies,id'],
'currency_code' => ['min:3', 'max:51', 'exists:transaction_currencies,code'],
'notes' => ['nullable', 'min:0', 'max:32768'],
// webhooks
'fire_webhooks' => [new IsBoolean()],
@@ -73,12 +73,12 @@ class UpdateRequest extends FormRequest
public function rules(): array
{
return [
'start' => 'date|after:1970-01-02|before:2038-01-17',
'end' => 'date|after:1970-01-02|before:2038-01-17',
'start' => ['date', 'after:1970-01-02', 'before:2038-01-17'],
'end' => ['date', 'after:1970-01-02', 'before:2038-01-17'],
'amount' => ['nullable', new IsValidPositiveAmount()],
'currency_id' => 'numeric|exists:transaction_currencies,id',
'currency_code' => 'min:3|max:51|exists:transaction_currencies,code',
'notes' => 'nullable|min:0|max:32768',
'currency_id' => ['numeric', 'exists:transaction_currencies,id'],
'currency_code' => ['min:3', 'max:51', 'exists:transaction_currencies,code'],
'notes' => ['nullable', 'min:0', 'max:32768'],
// webhooks
'fire_webhooks' => [new IsBoolean()],
@@ -51,6 +51,6 @@ class StoreRequest extends FormRequest
*/
public function rules(): array
{
return ['name' => 'required|min:1|max:100|uniqueObjectForUser:categories,name'];
return ['name' => ['required', 'min:1', 'max:100', 'uniqueObjectForUser:categories,name']];
}
}
@@ -48,7 +48,7 @@ class StoreByCurrenciesRequest extends FormRequest
*/
public function rules(): array
{
return ['*' => 'required|numeric|min:0.0000000001'];
return ['*' => ['required', 'numeric', 'min:0.0000000001']];
}
public function withValidator(Validator $validator): void
@@ -59,7 +59,7 @@ class StoreByDateRequest extends FormRequest
*/
public function rules(): array
{
return ['from' => 'required|exists:transaction_currencies,code', 'rates' => 'required|array', 'rates.*' => 'required|numeric|min:0.0000000001'];
return ['from' => ['required', 'exists:transaction_currencies,code'], 'rates' => ['required', 'array'], 'rates.*' => ['required', 'numeric', 'min:0.0000000001']];
}
public function withValidator(Validator $validator): void
@@ -64,10 +64,10 @@ class StoreRequest extends FormRequest
public function rules(): array
{
return [
'date' => 'required|date|after:1970-01-02|before:2038-01-17',
'rate' => 'required|numeric|gt:0',
'from' => 'required|exists:transaction_currencies,code',
'to' => 'required|exists:transaction_currencies,code',
'date' => ['required', 'date', 'after:1970-01-02', 'before:2038-01-17'],
'rate' => ['required', 'numeric', 'gt:0'],
'from' => ['required', 'exists:transaction_currencies,code'],
'to' => ['required', 'exists:transaction_currencies,code'],
];
}
}
@@ -52,10 +52,10 @@ class UpdateRequest extends FormRequest
public function rules(): array
{
return [
'date' => 'date|after:1970-01-02|before:2038-01-17',
'rate' => 'required|numeric|gt:0',
'from' => 'nullable|exists:transaction_currencies,code',
'to' => 'nullable|exists:transaction_currencies,code',
'date' => ['date', 'after:1970-01-02', 'before:2038-01-17'],
'rate' => ['required', 'numeric', 'gt:0'],
'from' => ['nullable', 'exists:transaction_currencies,code'],
'to' => ['nullable', 'exists:transaction_currencies,code'],
];
}
}
@@ -71,18 +71,18 @@ class StoreRequest extends FormRequest
public function rules(): array
{
return [
'name' => 'required|min:1|max:255|uniquePiggyBankForUser',
'name' => ['required', 'min:1', 'max:255', 'uniquePiggyBankForUser'],
'accounts' => 'required',
'accounts.*' => 'array|required',
'accounts.*.account_id' => 'required|numeric|belongsToUser:accounts,id',
'accounts.*' => ['array', 'required'],
'accounts.*.account_id' => ['required', 'numeric', 'belongsToUser:accounts,id'],
'accounts.*.current_amount' => ['numeric', new IsValidZeroOrMoreAmount()],
'object_group_id' => 'numeric|belongsToUser:object_groups,id',
'object_group_id' => ['numeric', 'belongsToUser:object_groups,id'],
'object_group_title' => ['min:1', 'max:255'],
'target_amount' => ['required', new IsValidZeroOrMoreAmount()],
'start_date' => 'required|date|after:1970-01-01|before:2038-01-17',
'transaction_currency_id' => 'exists:transaction_currencies,id|required_without:transaction_currency_code',
'transaction_currency_code' => 'exists:transaction_currencies,code|required_without:transaction_currency_id',
'target_date' => 'date|nullable|after:start_date',
'start_date' => ['required', 'date', 'after:1970-01-01', 'before:2038-01-17'],
'transaction_currency_id' => ['exists:transaction_currencies,id', 'required_without:transaction_currency_code'],
'transaction_currency_code' => ['exists:transaction_currencies,code', 'required_without:transaction_currency_id'],
'target_date' => ['date', 'nullable', 'after:start_date'],
'notes' => 'max:65000',
];
}
@@ -79,17 +79,17 @@ class UpdateRequest extends FormRequest
'name' => 'min:1|max:255|uniquePiggyBankForUser:'.$piggyBank->id,
'current_amount' => ['nullable', new LessThanPiggyTarget(), new IsValidPositiveAmount()],
'target_amount' => ['nullable', new IsValidZeroOrMoreAmount()],
'start_date' => 'date|nullable',
'target_date' => 'date|nullable|after:start_date',
'start_date' => ['date', 'nullable'],
'target_date' => ['date', 'nullable', 'after:start_date'],
'notes' => 'max:65000',
'accounts' => 'array',
'accounts.*' => 'array',
'accounts.*.account_id' => ['required', 'numeric', 'belongsToUser:accounts,id'],
'accounts.*.current_amount' => ['numeric', 'nullable', new IsValidZeroOrMoreAmount(true), new IsEnoughInAccounts($piggyBank, $this->getAll())],
'object_group_id' => 'numeric|belongsToUser:object_groups,id',
'object_group_id' => ['numeric', 'belongsToUser:object_groups,id'],
'object_group_title' => ['min:1', 'max:255'],
'transaction_currency_id' => 'exists:transaction_currencies,id|nullable',
'transaction_currency_code' => 'exists:transaction_currencies,code|nullable',
'transaction_currency_id' => ['exists:transaction_currencies,id', 'nullable'],
'transaction_currency_code' => ['exists:transaction_currencies,code', 'nullable'],
];
}
}
@@ -78,40 +78,40 @@ class StoreRequest extends FormRequest
public function rules(): array
{
return [
'type' => 'required|in:withdrawal,transfer,deposit',
'title' => 'required|min:1|max:255|uniqueObjectForUser:recurrences,title',
'description' => 'min:1|max:32768',
'first_date' => 'required|date',
'type' => ['required', 'in:withdrawal,transfer,deposit'],
'title' => ['required', 'min:1', 'max:255', 'uniqueObjectForUser:recurrences,title'],
'description' => ['min:1', 'max:32768'],
'first_date' => ['required', 'date'],
'apply_rules' => [new IsBoolean()],
'active' => [new IsBoolean()],
'repeat_until' => 'nullable|date',
'nr_of_repetitions' => 'nullable|numeric|min:1|max:31',
'repeat_until' => ['nullable', 'date'],
'nr_of_repetitions' => ['nullable', 'numeric', 'min:1', 'max:31'],
'repetitions.*.type' => 'required|in:daily,weekly,ndom,monthly,yearly',
'repetitions.*.moment' => 'min:0|max:10',
'repetitions.*.skip' => 'nullable|numeric|min:0|max:31',
'repetitions.*.weekend' => 'numeric|min:1|max:4',
'repetitions.*.type' => ['required', 'in:daily,weekly,ndom,monthly,yearly'],
'repetitions.*.moment' => ['min:0', 'max:10'],
'repetitions.*.skip' => ['nullable', 'numeric', 'min:0', 'max:31'],
'repetitions.*.weekend' => ['numeric', 'min:1', 'max:4'],
'transactions.*.description' => 'required|min:1|max:255',
'transactions.*.description' => ['required', 'min:1', 'max:255'],
'transactions.*.amount' => ['required', new IsValidPositiveAmount()],
'transactions.*.foreign_amount' => ['nullable', new IsValidPositiveAmount()],
'transactions.*.currency_id' => 'nullable|numeric|exists:transaction_currencies,id',
'transactions.*.currency_code' => 'nullable|min:3|max:51|exists:transaction_currencies,code',
'transactions.*.foreign_currency_id' => 'nullable|numeric|exists:transaction_currencies,id',
'transactions.*.foreign_currency_code' => 'nullable|min:3|max:51|exists:transaction_currencies,code',
'transactions.*.currency_id' => ['nullable', 'numeric', 'exists:transaction_currencies,id'],
'transactions.*.currency_code' => ['nullable', 'min:3', 'max:51', 'exists:transaction_currencies,code'],
'transactions.*.foreign_currency_id' => ['nullable', 'numeric', 'exists:transaction_currencies,id'],
'transactions.*.foreign_currency_code' => ['nullable', 'min:3', 'max:51', 'exists:transaction_currencies,code'],
'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.source_name' => 'min:1|max:255|nullable',
'transactions.*.source_name' => ['min:1', 'max:255', 'nullable'],
'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.destination_name' => 'min:1|max:255|nullable',
'transactions.*.destination_name' => ['min:1', 'max:255', 'nullable'],
// new and updated fields:
'transactions.*.budget_id' => ['nullable', 'mustExist:budgets,id', new BelongsUser()],
'transactions.*.budget_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.category_id' => ['nullable', 'mustExist:categories,id', new BelongsUser()],
'transactions.*.category_name' => 'min:1|max:255|nullable',
'transactions.*.category_name' => ['min:1', 'max:255', 'nullable'],
'transactions.*.piggy_bank_id' => ['nullable', 'numeric', 'mustExist:piggy_banks,id', new BelongsUser()],
'transactions.*.piggy_bank_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.tags' => 'nullable|min:1|max:255',
'transactions.*.tags' => ['nullable', 'min:1', 'max:255'],
];
}
@@ -89,38 +89,38 @@ class UpdateRequest extends FormRequest
return [
'title' => sprintf('min:1|max:255|uniqueObjectForUser:recurrences,title,%d', $recurrence->id),
'description' => 'min:1|max:32768',
'first_date' => 'date|after:1970-01-02|before:2038-01-17',
'description' => ['min:1', 'max:32768'],
'first_date' => ['date', 'after:1970-01-02', 'before:2038-01-17'],
'apply_rules' => [new IsBoolean()],
'active' => [new IsBoolean()],
'repeat_until' => 'nullable|date',
'nr_of_repetitions' => 'nullable|numeric|min:1|max:31',
'repeat_until' => ['nullable', 'date'],
'nr_of_repetitions' => ['nullable', 'numeric', 'min:1', 'max:31'],
'repetitions.*.type' => 'in:daily,weekly,ndom,monthly,yearly',
'repetitions.*.moment' => 'min:0|max:10|numeric',
'repetitions.*.skip' => 'nullable|numeric|min:0|max:31',
'repetitions.*.weekend' => 'nullable|numeric|min:1|max:4',
'repetitions.*.moment' => ['min:0', 'max:10', 'numeric'],
'repetitions.*.skip' => ['nullable', 'numeric', 'min:0', 'max:31'],
'repetitions.*.weekend' => ['nullable', 'numeric', 'min:1', 'max:4'],
'transactions.*.description' => ['min:1', 'max:255'],
'transactions.*.amount' => [new IsValidPositiveAmount()],
'transactions.*.foreign_amount' => ['nullable', new IsValidPositiveAmount()],
'transactions.*.currency_id' => 'nullable|numeric|exists:transaction_currencies,id',
'transactions.*.currency_code' => 'nullable|min:3|max:51|exists:transaction_currencies,code',
'transactions.*.foreign_currency_id' => 'nullable|numeric|exists:transaction_currencies,id',
'transactions.*.foreign_currency_code' => 'nullable|min:3|max:51|exists:transaction_currencies,code',
'transactions.*.currency_id' => ['nullable', 'numeric', 'exists:transaction_currencies,id'],
'transactions.*.currency_code' => ['nullable', 'min:3', 'max:51', 'exists:transaction_currencies,code'],
'transactions.*.foreign_currency_id' => ['nullable', 'numeric', 'exists:transaction_currencies,id'],
'transactions.*.foreign_currency_code' => ['nullable', 'min:3', 'max:51', 'exists:transaction_currencies,code'],
'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.source_name' => 'min:1|max:255|nullable',
'transactions.*.source_name' => ['min:1', 'max:255', 'nullable'],
'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.destination_name' => 'min:1|max:255|nullable',
'transactions.*.destination_name' => ['min:1', 'max:255', 'nullable'],
// new and updated fields:
'transactions.*.budget_id' => ['nullable', 'mustExist:budgets,id', new BelongsUser()],
'transactions.*.budget_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.category_id' => ['nullable', 'mustExist:categories,id', new BelongsUser()],
'transactions.*.category_name' => 'min:1|max:255|nullable',
'transactions.*.category_name' => ['min:1', 'max:255', 'nullable'],
'transactions.*.piggy_bank_id' => ['nullable', 'numeric', 'mustExist:piggy_banks,id', new BelongsUser()],
'transactions.*.piggy_bank_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.tags' => 'nullable|min:1|max:255',
'transactions.*.tags' => ['nullable', 'min:1', 'max:255'],
];
}
@@ -80,11 +80,11 @@ class StoreRequest extends FormRequest
$contextActions = implode(',', config('firefly.context-rule-actions'));
return [
'title' => 'required|min:1|max:100|uniqueObjectForUser:rules,title',
'description' => 'min:1|max:32768|nullable',
'rule_group_id' => 'belongsToUser:rule_groups|required_without:rule_group_title',
'rule_group_title' => 'nullable|min:1|max:255|required_without:rule_group_id|belongsToUser:rule_groups,title',
'trigger' => 'required|in:store-journal,update-journal,manual-activation',
'title' => ['required', 'min:1', 'max:100', 'uniqueObjectForUser:rules,title'],
'description' => ['min:1', 'max:32768', 'nullable'],
'rule_group_id' => ['belongsToUser:rule_groups', 'required_without:rule_group_title'],
'rule_group_title' => ['nullable', 'min:1', 'max:255', 'required_without:rule_group_id', 'belongsToUser:rule_groups,title'],
'trigger' => ['required', 'in:store-journal,update-journal,manual-activation'],
'triggers.*.type' => 'required|in:'.implode(',', $validTriggers),
'triggers.*.value' => 'required_if:actions.*.type,'.$contextTriggers.'|min:1|ruleTriggerValue|max:1024',
'triggers.*.stop_processing' => [new IsBoolean()],
@@ -47,10 +47,10 @@ class TestRequest extends FormRequest
public function rules(): array
{
return [
'start' => 'date|after:1970-01-02|before:2038-01-17',
'end' => 'date|after_or_equal:start|after:1970-01-02|before:2038-01-17',
'start' => ['date', 'after:1970-01-02', 'before:2038-01-17'],
'end' => ['date', 'after_or_equal:start', 'after:1970-01-02', 'before:2038-01-17'],
'accounts' => '',
'accounts.*' => 'required|exists:accounts,id|belongsToUser:accounts',
'accounts.*' => ['required', 'exists:accounts,id', 'belongsToUser:accounts'],
];
}
@@ -47,10 +47,10 @@ class TriggerRequest extends FormRequest
public function rules(): array
{
return [
'start' => 'date|after:1970-01-02|before:2038-01-17',
'end' => 'date|after_or_equal:start|after:1970-01-02|before:2038-01-17',
'start' => ['date', 'after:1970-01-02', 'before:2038-01-17'],
'end' => ['date', 'after_or_equal:start', 'after:1970-01-02', 'before:2038-01-17'],
'accounts' => '',
'accounts.*' => 'exists:accounts,id|belongsToUser:accounts',
'accounts.*' => ['exists:accounts,id', 'belongsToUser:accounts'],
];
}
@@ -91,9 +91,9 @@ class UpdateRequest extends FormRequest
return [
'title' => sprintf('min:1|max:100|uniqueObjectForUser:rules,title,%d', $rule->id),
'description' => 'min:1|max:32768|nullable',
'description' => ['min:1', 'max:32768', 'nullable'],
'rule_group_id' => 'belongsToUser:rule_groups',
'rule_group_title' => 'nullable|min:1|max:255|belongsToUser:rule_groups,title',
'rule_group_title' => ['nullable', 'min:1', 'max:255', 'belongsToUser:rule_groups,title'],
'trigger' => 'in:store-journal,update-journal,manual-activation',
'triggers.*.type' => 'required|in:'.implode(',', $validTriggers),
'triggers.*.value' => 'required_if:actions.*.type,'.$contextTriggers.'|min:1|ruleTriggerValue|max:1024',
@@ -106,7 +106,7 @@ class UpdateRequest extends FormRequest
'strict' => [new IsBoolean()],
'stop_processing' => [new IsBoolean()],
'active' => [new IsBoolean()],
'order' => 'numeric|min:1|max:2048',
'order' => ['numeric', 'min:1', 'max:2048'],
];
}
@@ -67,8 +67,8 @@ class StoreRequest extends FormRequest
public function rules(): array
{
return [
'title' => 'required|min:1|max:100|uniqueObjectForUser:rule_groups,title',
'description' => 'min:1|max:32768|nullable',
'title' => ['required', 'min:1', 'max:100', 'uniqueObjectForUser:rule_groups,title'],
'description' => ['min:1', 'max:32768', 'nullable'],
'active' => [new IsBoolean()],
];
}
@@ -47,10 +47,10 @@ class TestRequest extends FormRequest
public function rules(): array
{
return [
'start' => 'date|after:1970-01-02|before:2038-01-17',
'end' => 'date|after_or_equal:start|after:1970-01-02|before:2038-01-17',
'start' => ['date', 'after:1970-01-02', 'before:2038-01-17'],
'end' => ['date', 'after_or_equal:start', 'after:1970-01-02', 'before:2038-01-17'],
'accounts' => '',
'accounts.*' => 'exists:accounts,id|belongsToUser:accounts',
'accounts.*' => ['exists:accounts,id', 'belongsToUser:accounts'],
];
}
@@ -46,7 +46,7 @@ class TriggerRequest extends FormRequest
public function rules(): array
{
return ['start' => 'date|after:1970-01-02|before:2038-01-17', 'end' => 'date|after_or_equal:start|after:1970-01-02|before:2038-01-17'];
return ['start' => ['date', 'after:1970-01-02', 'before:2038-01-17'], 'end' => ['date', 'after_or_equal:start', 'after:1970-01-02', 'before:2038-01-17']];
}
private function getAccounts(): array
@@ -66,7 +66,7 @@ class UpdateRequest extends FormRequest
return [
'title' => 'min:1|max:100|uniqueObjectForUser:rule_groups,title,'.$ruleGroup->id,
'description' => 'min:1|max:32768|nullable',
'description' => ['min:1', 'max:32768', 'nullable'],
'active' => [new IsBoolean()],
];
}
@@ -62,9 +62,9 @@ class StoreRequest extends FormRequest
public function rules(): array
{
$rules = [
'tag' => 'required|min:1|uniqueObjectForUser:tags,tag|max:1024',
'description' => 'min:1|nullable|max:32768',
'date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'tag' => ['required', 'min:1', 'uniqueObjectForUser:tags,tag', 'max:1024'],
'description' => ['min:1', 'nullable', 'max:32768'],
'date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
];
return Location::requestRules($rules);
@@ -63,8 +63,8 @@ class UpdateRequest extends FormRequest
$tag = $this->route()->parameter('tagOrId');
$rules = [
'tag' => 'min:1|max:1024|uniqueObjectForUser:tags,tag,'.$tag->id,
'description' => 'min:1|nullable|max:32768',
'date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'description' => ['min:1', 'nullable', 'max:32768'],
'date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
];
return Location::requestRules($rules);
@@ -86,7 +86,7 @@ class StoreRequest extends FormRequest
return [
// basic fields for group:
'group_title' => 'min:1|max:1000|nullable',
'group_title' => ['min:1', 'max:1000', 'nullable'],
'error_if_duplicate_hash' => [new IsBoolean()],
'fire_webhooks' => [new IsBoolean()],
'apply_rules' => [new IsBoolean()],
@@ -97,42 +97,42 @@ class StoreRequest extends FormRequest
'transactions.*.zoom_level' => $locationRules['zoom_level'],
// transaction rules (in array for splits):
'transactions.*.type' => 'required|in:withdrawal,deposit,transfer,opening-balance,reconciliation',
'transactions.*.type' => ['required', 'in:withdrawal,deposit,transfer,opening-balance,reconciliation'],
'transactions.*.date' => ['required', new IsDateOrTime()],
'transactions.*.order' => 'numeric|min:0',
'transactions.*.order' => ['numeric', 'min:0'],
// currency info
'transactions.*.currency_id' => 'numeric|exists:transaction_currencies,id|nullable',
'transactions.*.currency_code' => 'min:3|max:51|exists:transaction_currencies,code|nullable',
'transactions.*.foreign_currency_id' => 'numeric|exists:transaction_currencies,id|nullable',
'transactions.*.foreign_currency_code' => 'min:3|max:51|exists:transaction_currencies,code|nullable',
'transactions.*.currency_id' => ['numeric', 'exists:transaction_currencies,id', 'nullable'],
'transactions.*.currency_code' => ['min:3', 'max:51', 'exists:transaction_currencies,code', 'nullable'],
'transactions.*.foreign_currency_id' => ['numeric', 'exists:transaction_currencies,id', 'nullable'],
'transactions.*.foreign_currency_code' => ['min:3', 'max:51', 'exists:transaction_currencies,code', 'nullable'],
// amount
'transactions.*.amount' => ['required', new IsValidPositiveAmount()],
'transactions.*.foreign_amount' => ['nullable', new IsValidZeroOrMoreAmount()],
// description
'transactions.*.description' => 'nullable|min:1|max:1000',
'transactions.*.description' => ['nullable', 'min:1', 'max:1000'],
// source of transaction
'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.source_name' => 'min:1|max:255|nullable',
'transactions.*.source_iban' => 'min:1|max:255|nullable|iban',
'transactions.*.source_number' => 'min:1|max:255|nullable',
'transactions.*.source_bic' => 'min:1|max:255|nullable|bic',
'transactions.*.source_name' => ['min:1', 'max:255', 'nullable'],
'transactions.*.source_iban' => ['min:1', 'max:255', 'nullable', 'iban'],
'transactions.*.source_number' => ['min:1', 'max:255', 'nullable'],
'transactions.*.source_bic' => ['min:1', 'max:255', 'nullable', 'bic'],
// destination of transaction
'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.destination_name' => 'min:1|max:255|nullable',
'transactions.*.destination_iban' => 'min:1|max:255|nullable|iban',
'transactions.*.destination_number' => 'min:1|max:255|nullable',
'transactions.*.destination_bic' => 'min:1|max:255|nullable|bic',
'transactions.*.destination_name' => ['min:1', 'max:255', 'nullable'],
'transactions.*.destination_iban' => ['min:1', 'max:255', 'nullable', 'iban'],
'transactions.*.destination_number' => ['min:1', 'max:255', 'nullable'],
'transactions.*.destination_bic' => ['min:1', 'max:255', 'nullable', 'bic'],
// budget, category, bill and piggy
'transactions.*.budget_id' => ['mustExist:budgets,id', new BelongsUser()],
'transactions.*.budget_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUser(), 'nullable'],
'transactions.*.category_name' => 'min:1|max:255|nullable',
'transactions.*.category_name' => ['min:1', 'max:255', 'nullable'],
'transactions.*.bill_id' => ['numeric', 'nullable', 'mustExist:bills,id', new BelongsUser()],
'transactions.*.bill_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.piggy_bank_id' => ['numeric', 'nullable', 'mustExist:piggy_banks,id', new BelongsUser()],
@@ -140,34 +140,34 @@ class StoreRequest extends FormRequest
// other interesting fields
'transactions.*.reconciled' => [new IsBoolean()],
'transactions.*.notes' => 'min:1|max:32768|nullable',
'transactions.*.tags' => 'min:0|max:255',
'transactions.*.tags.*' => 'min:0|max:255',
'transactions.*.notes' => ['min:1', 'max:32768', 'nullable'],
'transactions.*.tags' => ['min:0', 'max:255'],
'transactions.*.tags.*' => ['min:0', 'max:255'],
// meta info fields
'transactions.*.internal_reference' => 'min:1|max:255|nullable',
'transactions.*.external_id' => 'min:1|max:255|nullable',
'transactions.*.recurrence_id' => 'min:1|max:255|nullable',
'transactions.*.bunq_payment_id' => 'min:1|max:255|nullable',
'transactions.*.internal_reference' => ['min:1', 'max:255', 'nullable'],
'transactions.*.external_id' => ['min:1', 'max:255', 'nullable'],
'transactions.*.recurrence_id' => ['min:1', 'max:255', 'nullable'],
'transactions.*.bunq_payment_id' => ['min:1', 'max:255', 'nullable'],
'transactions.*.external_url' => sprintf('min:1|max:255|nullable|url:%s', $validProtocols),
// SEPA fields:
'transactions.*.sepa_cc' => 'min:1|max:255|nullable',
'transactions.*.sepa_ct_op' => 'min:1|max:255|nullable',
'transactions.*.sepa_ct_id' => 'min:1|max:255|nullable',
'transactions.*.sepa_db' => 'min:1|max:255|nullable',
'transactions.*.sepa_country' => 'min:1|max:255|nullable',
'transactions.*.sepa_ep' => 'min:1|max:255|nullable',
'transactions.*.sepa_ci' => 'min:1|max:255|nullable',
'transactions.*.sepa_batch_id' => 'min:1|max:255|nullable',
'transactions.*.sepa_cc' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_ct_op' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_ct_id' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_db' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_country' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_ep' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_ci' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_batch_id' => ['min:1', 'max:255', 'nullable'],
// dates
'transactions.*.interest_date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'transactions.*.book_date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'transactions.*.process_date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'transactions.*.due_date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'transactions.*.payment_date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'transactions.*.invoice_date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'transactions.*.interest_date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
'transactions.*.book_date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
'transactions.*.process_date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
'transactions.*.due_date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
'transactions.*.payment_date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
'transactions.*.invoice_date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
];
}
@@ -145,76 +145,76 @@ class UpdateRequest extends FormRequest
return [
// basic fields for group:
'group_title' => 'min:1|max:1000|nullable',
'group_title' => ['min:1', 'max:1000', 'nullable'],
'apply_rules' => [new IsBoolean()],
// transaction rules (in array for splits):
'transactions.*.type' => 'in:withdrawal,deposit,transfer,opening-balance,reconciliation',
'transactions.*.date' => [new IsDateOrTime()],
'transactions.*.order' => 'numeric|min:0',
'transactions.*.order' => ['numeric', 'min:0'],
// group id:
'transactions.*.transaction_journal_id' => ['nullable', 'numeric', new BelongsUser()],
// currency info
'transactions.*.currency_id' => 'numeric|exists:transaction_currencies,id|nullable',
'transactions.*.currency_code' => 'min:3|max:51|exists:transaction_currencies,code|nullable',
'transactions.*.foreign_currency_id' => 'nullable|numeric|exists:transaction_currencies,id',
'transactions.*.foreign_currency_code' => 'nullable|min:3|max:51|exists:transaction_currencies,code',
'transactions.*.currency_id' => ['numeric', 'exists:transaction_currencies,id', 'nullable'],
'transactions.*.currency_code' => ['min:3', 'max:51', 'exists:transaction_currencies,code', 'nullable'],
'transactions.*.foreign_currency_id' => ['nullable', 'numeric', 'exists:transaction_currencies,id'],
'transactions.*.foreign_currency_code' => ['nullable', 'min:3', 'max:51', 'exists:transaction_currencies,code'],
// amount
'transactions.*.amount' => [new IsValidPositiveAmount()],
'transactions.*.foreign_amount' => ['nullable', new IsValidZeroOrMoreAmount()],
// description
'transactions.*.description' => 'nullable|min:1|max:1000',
'transactions.*.description' => ['nullable', 'min:1', 'max:1000'],
// source of transaction
'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.source_name' => 'min:1|max:255|nullable',
'transactions.*.source_name' => ['min:1', 'max:255', 'nullable'],
// destination of transaction
'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.destination_name' => 'min:1|max:255|nullable',
'transactions.*.destination_name' => ['min:1', 'max:255', 'nullable'],
// budget, category, bill and piggy
'transactions.*.budget_id' => ['mustExist:budgets,id', new BelongsUser(), 'nullable'],
'transactions.*.budget_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUser(), 'nullable'],
'transactions.*.category_name' => 'min:1|max:255|nullable',
'transactions.*.category_name' => ['min:1', 'max:255', 'nullable'],
'transactions.*.bill_id' => ['numeric', 'nullable', 'mustExist:bills,id', new BelongsUser()],
'transactions.*.bill_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
// other interesting fields
'transactions.*.reconciled' => [new IsBoolean()],
'transactions.*.notes' => 'min:1|max:32768|nullable',
'transactions.*.tags' => 'min:0|max:255|nullable',
'transactions.*.tags.*' => 'min:0|max:255',
'transactions.*.notes' => ['min:1', 'max:32768', 'nullable'],
'transactions.*.tags' => ['min:0', 'max:255', 'nullable'],
'transactions.*.tags.*' => ['min:0', 'max:255'],
// meta info fields
'transactions.*.internal_reference' => 'min:1|max:255|nullable',
'transactions.*.external_id' => 'min:1|max:255|nullable',
'transactions.*.recurrence_id' => 'min:1|max:255|nullable',
'transactions.*.bunq_payment_id' => 'min:1|max:255|nullable',
'transactions.*.internal_reference' => ['min:1', 'max:255', 'nullable'],
'transactions.*.external_id' => ['min:1', 'max:255', 'nullable'],
'transactions.*.recurrence_id' => ['min:1', 'max:255', 'nullable'],
'transactions.*.bunq_payment_id' => ['min:1', 'max:255', 'nullable'],
'transactions.*.external_url' => sprintf('min:1|max:255|nullable|url:%s', $validProtocols),
// SEPA fields:
'transactions.*.sepa_cc' => 'min:1|max:255|nullable',
'transactions.*.sepa_ct_op' => 'min:1|max:255|nullable',
'transactions.*.sepa_ct_id' => 'min:1|max:255|nullable',
'transactions.*.sepa_db' => 'min:1|max:255|nullable',
'transactions.*.sepa_country' => 'min:1|max:255|nullable',
'transactions.*.sepa_ep' => 'min:1|max:255|nullable',
'transactions.*.sepa_ci' => 'min:1|max:255|nullable',
'transactions.*.sepa_batch_id' => 'min:1|max:255|nullable',
'transactions.*.sepa_cc' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_ct_op' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_ct_id' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_db' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_country' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_ep' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_ci' => ['min:1', 'max:255', 'nullable'],
'transactions.*.sepa_batch_id' => ['min:1', 'max:255', 'nullable'],
// dates
'transactions.*.interest_date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'transactions.*.book_date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'transactions.*.process_date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'transactions.*.due_date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'transactions.*.payment_date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'transactions.*.invoice_date' => 'date|nullable|after:1970-01-02|before:2038-01-17',
'transactions.*.interest_date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
'transactions.*.book_date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
'transactions.*.process_date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
'transactions.*.due_date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
'transactions.*.payment_date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
'transactions.*.invoice_date' => ['date', 'nullable', 'after:1970-01-02', 'before:2038-01-17'],
];
}
@@ -69,10 +69,10 @@ class StoreRequest extends FormRequest
public function rules(): array
{
return [
'name' => 'required|min:1|max:255|unique:transaction_currencies,name',
'code' => 'required|min:3|max:32|unique:transaction_currencies,code',
'symbol' => 'required|min:1|max:32|unique:transaction_currencies,symbol',
'decimal_places' => 'numeric|min:0|max:12',
'name' => ['required', 'min:1', 'max:255', 'unique:transaction_currencies,name'],
'code' => ['required', 'min:3', 'max:32', 'unique:transaction_currencies,code'],
'symbol' => ['required', 'min:1', 'max:32', 'unique:transaction_currencies,symbol'],
'decimal_places' => ['numeric', 'min:0', 'max:12'],
'enabled' => [new IsBoolean()],
'default' => [new IsBoolean()],
];
@@ -82,7 +82,7 @@ class UpdateRequest extends FormRequest
'name' => sprintf('min:1|max:255|unique:transaction_currencies,name,%d', $currency->id),
'code' => sprintf('min:3|max:32|unique:transaction_currencies,code,%d', $currency->id),
'symbol' => sprintf('min:1|max:32|unique:transaction_currencies,symbol,%d', $currency->id),
'decimal_places' => 'numeric|min:0|max:12',
'decimal_places' => ['numeric', 'min:0', 'max:12'],
'enabled' => [new IsBoolean()],
'default' => [new IsBoolean()],
];
@@ -63,11 +63,11 @@ class StoreRequest extends FormRequest
public function rules(): array
{
return [
'link_type_id' => 'exists:link_types,id|required_without:link_type_name',
'link_type_name' => 'exists:link_types,name|required_without:link_type_id',
'inward_id' => 'required|belongsToUser:transaction_journals,id|different:outward_id',
'outward_id' => 'required|belongsToUser:transaction_journals,id|different:inward_id',
'notes' => 'min:1|max:32768|nullable',
'link_type_id' => ['exists:link_types,id', 'required_without:link_type_name'],
'link_type_name' => ['exists:link_types,name', 'required_without:link_type_id'],
'inward_id' => ['required', 'belongsToUser:transaction_journals,id', 'different:outward_id'],
'outward_id' => ['required', 'belongsToUser:transaction_journals,id', 'different:inward_id'],
'notes' => ['min:1', 'max:32768', 'nullable'],
];
}
@@ -65,9 +65,9 @@ class UpdateRequest extends FormRequest
return [
'link_type_id' => 'exists:link_types,id',
'link_type_name' => 'exists:link_types,name',
'inward_id' => 'belongsToUser:transaction_journals,id|different:outward_id',
'outward_id' => 'belongsToUser:transaction_journals,id|different:inward_id',
'notes' => 'min:1|max:32768|nullable',
'inward_id' => ['belongsToUser:transaction_journals,id', 'different:outward_id'],
'outward_id' => ['belongsToUser:transaction_journals,id', 'different:inward_id'],
'notes' => ['min:1', 'max:32768', 'nullable'],
];
}
@@ -52,9 +52,9 @@ class StoreRequest extends FormRequest
public function rules(): array
{
return [
'name' => 'required|unique:link_types,name|min:1|max:1024',
'outward' => 'required|unique:link_types,outward|min:1|different:inward|max:1024',
'inward' => 'required|unique:link_types,inward|min:1|different:outward|max:1024',
'name' => ['required', 'unique:link_types,name', 'min:1', 'max:1024'],
'outward' => ['required', 'unique:link_types,outward', 'min:1', 'different:inward', 'max:1024'],
'inward' => ['required', 'unique:link_types,inward', 'min:1', 'different:outward', 'max:1024'],
];
}
}
@@ -75,16 +75,16 @@ class CreateRequest extends FormRequest
$validProtocols = FireflyConfig::get('valid_url_protocols', config('firefly.valid_url_protocols'))->data;
return [
'title' => 'required|min:1|max:255|uniqueObjectForUser:webhooks,title',
'title' => ['required', 'min:1', 'max:255', 'uniqueObjectForUser:webhooks,title'],
'active' => [new IsBoolean()],
'trigger' => 'prohibited',
'triggers' => 'required|array|min:1|max:10',
'triggers' => ['required', 'array', 'min:1', 'max:10'],
'triggers.*' => sprintf('required|in:%s', $triggers),
'response' => 'prohibited',
'responses' => 'required|array|min:1|max:1',
'responses' => ['required', 'array', 'min:1', 'max:1'],
'responses.*' => sprintf('required|in:%s', $responses),
'delivery' => 'prohibited',
'deliveries' => 'required|array|min:1|max:1',
'deliveries' => ['required', 'array', 'min:1', 'max:1'],
'deliveries.*' => sprintf('required|in:%s', $deliveries),
'url' => ['required', sprintf('url:%s', $validProtocols), new IsValidWebhookUrl()],
];
@@ -82,13 +82,13 @@ class UpdateRequest extends FormRequest
'title' => sprintf('min:1|max:255|uniqueObjectForUser:webhooks,title,%d', $webhook->id),
'active' => [new IsBoolean()],
'trigger' => 'prohibited',
'triggers' => 'required|array|min:1|max:10',
'triggers' => ['required', 'array', 'min:1', 'max:10'],
'triggers.*' => sprintf('required|in:%s', $triggers),
'response' => 'prohibited',
'responses' => 'required|array|min:1|max:1',
'responses' => ['required', 'array', 'min:1', 'max:1'],
'responses.*' => sprintf('required|in:%s', $responses),
'delivery' => 'prohibited',
'deliveries' => 'required|array|min:1|max:1',
'deliveries' => ['required', 'array', 'min:1', 'max:1'],
'deliveries.*' => sprintf('required|in:%s', $deliveries),
'url' => [sprintf('url:%s', $validProtocols), sprintf('uniqueExistingWebhook:%d', $webhook->id), new IsValidWebhookUrl()],
];
+2 -2
View File
@@ -50,8 +50,8 @@ class PaginationRequest extends ApiRequest
{
return [
'sort' => ['nullable', new IsValidSortInstruction((string) $this->sortClass)],
'limit' => 'numeric|min:1|max:131337',
'page' => 'numeric|min:1|max:131337',
'limit' => ['numeric', 'min:1', 'max:131337'],
'page' => ['numeric', 'min:1', 'max:131337'],
];
}
+4 -4
View File
@@ -34,10 +34,10 @@ class CountRequest extends AggregateFormRequest
public function rules(): array
{
return [
'notes' => 'string|min:1|max:255',
'external_identifier' => 'string|min:1|max:255',
'description' => 'string|min:1|max:255',
'internal_reference' => 'string|min:1|max:255',
'notes' => ['string', 'min:1', 'max:255'],
'external_identifier' => ['string', 'min:1', 'max:255'],
'description' => ['string', 'min:1', 'max:255'],
'internal_reference' => ['string', 'min:1', 'max:255'],
'include_deleted' => new IsBoolean(),
];
}
+1 -1
View File
@@ -68,6 +68,6 @@ class CronRequest extends FormRequest
*/
public function rules(): array
{
return ['force' => 'in:true,false', 'date' => 'nullable|date|after:1970-01-02|before:2038-01-17'];
return ['force' => 'in:true,false', 'date' => ['nullable', 'date', 'after:1970-01-02', 'before:2038-01-17']];
}
}
+2 -2
View File
@@ -77,10 +77,10 @@ class UpdateRequest extends FormRequest
return ['value' => ['required', new IsBoolean()]];
}
if ('configuration.permission_update_check' === $name) {
return ['value' => 'required|numeric|min:-1|max:1'];
return ['value' => ['required', 'numeric', 'min:-1', 'max:1']];
}
if (in_array($name, $this->integers, strict: true)) {
return ['value' => 'required|numeric|min:464272080'];
return ['value' => ['required', 'numeric', 'min:464272080']];
}
return ['value' => 'required'];
@@ -71,7 +71,7 @@ class UserStoreRequest extends FormRequest
public function rules(): array
{
return [
'email' => 'required|email|unique:users,email',
'email' => ['required', 'email', 'unique:users,email'],
'blocked' => [new IsBoolean()],
'blocked_code' => 'in:email_changed',
'role' => 'in:owner,demo',
@@ -52,15 +52,15 @@ class ClearsEmptyForeignAmounts extends Command
public function handle(): int
{
// transaction: has no amount, but reference to currency.
$count = Transaction::whereNull('foreign_amount')->whereNotNull('foreign_currency_id')->count();
$count = Transaction::query()->whereNull('foreign_amount')->whereNotNull('foreign_currency_id')->count();
if ($count > 0) {
Transaction::whereNull('foreign_amount')->whereNotNull('foreign_currency_id')->update(['foreign_currency_id' => null]);
Transaction::query()->whereNull('foreign_amount')->whereNotNull('foreign_currency_id')->update(['foreign_currency_id' => null]);
$this->friendlyInfo(sprintf('Corrected %d invalid foreign amount reference(s)', $count));
}
// transaction: has amount, but no currency.
$count = Transaction::whereNull('foreign_currency_id')->whereNotNull('foreign_amount')->count();
$count = Transaction::query()->whereNull('foreign_currency_id')->whereNotNull('foreign_amount')->count();
if ($count > 0) {
Transaction::whereNull('foreign_currency_id')->whereNotNull('foreign_amount')->update(['foreign_amount' => null]);
Transaction::query()->whereNull('foreign_currency_id')->whereNotNull('foreign_amount')->update(['foreign_amount' => null]);
$this->friendlyInfo(sprintf('Corrected %d invalid foreign amount reference(s)', $count));
}
@@ -88,7 +88,7 @@ class CorrectsAmounts extends Command
/** @var AccountRepositoryInterface $repository */
$repository = app(AccountRepositoryInterface::class);
$type = TransactionType::where('type', TransactionTypeEnum::TRANSFER->value)->first();
$type = TransactionType::query()->where('type', TransactionTypeEnum::TRANSFER->value)->first();
$journals = TransactionJournal::leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id')
->whereNotNull('transactions.foreign_amount')
->where('transaction_journals.transaction_type_id', $type->id)
@@ -188,7 +188,7 @@ class CorrectsAmounts extends Command
private function fixAutoBudgets(): void
{
$count = AutoBudget::where('amount', '<', 0)->update(['amount' => DB::raw('amount * -1')]);
$count = AutoBudget::query()->where('amount', '<', 0)->update(['amount' => DB::raw('amount * -1')]);
if (0 === $count) {
return;
}
@@ -197,7 +197,7 @@ class CorrectsAmounts extends Command
private function fixAvailableBudgets(): void
{
$count = AvailableBudget::where('amount', '<', 0)->update(['amount' => DB::raw('amount * -1')]);
$count = AvailableBudget::query()->where('amount', '<', 0)->update(['amount' => DB::raw('amount * -1')]);
if (0 === $count) {
return;
}
@@ -207,8 +207,8 @@ class CorrectsAmounts extends Command
private function fixBills(): void
{
$count = 0;
$count += Bill::where('amount_max', '<', 0)->update(['amount_max' => DB::raw('amount_max * -1')]);
$count += Bill::where('amount_min', '<', 0)->update(['amount_min' => DB::raw('amount_min * -1')]);
$count += Bill::query()->where('amount_max', '<', 0)->update(['amount_max' => DB::raw('amount_max * -1')]);
$count += Bill::query()->where('amount_min', '<', 0)->update(['amount_min' => DB::raw('amount_min * -1')]);
if (0 === $count) {
return;
}
@@ -217,7 +217,7 @@ class CorrectsAmounts extends Command
private function fixBudgetLimits(): void
{
$count = BudgetLimit::where('amount', '<', 0)->update(['amount' => DB::raw('amount * -1')]);
$count = BudgetLimit::query()->where('amount', '<', 0)->update(['amount' => DB::raw('amount * -1')]);
if (0 === $count) {
return;
}
@@ -226,7 +226,7 @@ class CorrectsAmounts extends Command
private function fixExchangeRates(): void
{
$count = CurrencyExchangeRate::where('rate', '<', 0)->update(['rate' => DB::raw('rate * -1')]);
$count = CurrencyExchangeRate::query()->where('rate', '<', 0)->update(['rate' => DB::raw('rate * -1')]);
if (0 === $count) {
return;
}
@@ -235,7 +235,7 @@ class CorrectsAmounts extends Command
private function fixPiggyBanks(): void
{
$count = PiggyBank::where('target_amount', '<', 0)->update(['target_amount' => DB::raw('target_amount * -1')]);
$count = PiggyBank::query()->where('target_amount', '<', 0)->update(['target_amount' => DB::raw('target_amount * -1')]);
if (0 === $count) {
return;
}
@@ -245,8 +245,8 @@ class CorrectsAmounts extends Command
private function fixRecurrences(): void
{
$count = 0;
$count += RecurrenceTransaction::where('amount', '<', 0)->update(['amount' => DB::raw('amount * -1')]);
$count += RecurrenceTransaction::where('foreign_amount', '<', 0)->update(['foreign_amount' => DB::raw('foreign_amount * -1')]);
$count += RecurrenceTransaction::query()->where('amount', '<', 0)->update(['amount' => DB::raw('amount * -1')]);
$count += RecurrenceTransaction::query()->where('foreign_amount', '<', 0)->update(['foreign_amount' => DB::raw('foreign_amount * -1')]);
if (0 === $count) {
return;
}
@@ -285,7 +285,7 @@ class CorrectsAmounts extends Command
*/
private function fixRuleTriggers(): void
{
$set = RuleTrigger::whereIn('trigger_type', ['amount_less', 'amount_more', 'amount_is'])->get();
$set = RuleTrigger::query()->whereIn('trigger_type', ['amount_less', 'amount_more', 'amount_is'])->get();
$fixed = 0;
/** @var RuleTrigger $item */
@@ -81,7 +81,7 @@ class CorrectsCurrencies extends Command
}
// get all from journals:
$journals = TransactionJournal::where('user_group_id', $userGroup->id)->groupBy('transaction_currency_id')->get(['transaction_currency_id']);
$journals = TransactionJournal::query()->where('user_group_id', $userGroup->id)->groupBy('transaction_currency_id')->get(['transaction_currency_id']);
foreach ($journals as $entry) {
$found[] = (int) $entry->transaction_currency_id;
}
@@ -49,7 +49,7 @@ class CorrectsGroupAccounts extends Command
{
Log::debug('Start of correction:group-accounts');
$groups = [];
$res = TransactionJournal::groupBy('transaction_group_id')->get(['transaction_group_id', DB::raw('COUNT(transaction_group_id) as the_count')]);
$res = TransactionJournal::query()->groupBy('transaction_group_id')->get(['transaction_group_id', DB::raw('COUNT(transaction_group_id) as the_count')]);
/** @var TransactionJournal $journal */
foreach ($res as $journal) {
@@ -44,7 +44,7 @@ class CorrectsIbans extends Command
*/
public function handle(): int
{
$accounts = Account::with('accountMeta')->get();
$accounts = Account::query()->with('accountMeta')->get();
$this->filterIbans($accounts);
$this->countAndCorrectIbans($accounts);
@@ -53,7 +53,7 @@ class CorrectsInvertedBudgetLimits extends Command
*/
public function handle(): int
{
$set = BudgetLimit::where('start_date', '>', DB::raw('end_date'))->get();
$set = BudgetLimit::query()->where('start_date', '>', DB::raw('end_date'))->get();
if (0 === $set->count()) {
Log::debug('No inverted budget limits found.');
@@ -44,7 +44,7 @@ class CorrectsLongDescriptions extends Command
*/
public function handle(): int
{
$journals = TransactionJournal::where(DB::raw('LENGTH(description)'), '>', self::MAX_LENGTH)->get(['id', 'description']);
$journals = TransactionJournal::query()->where(DB::raw('LENGTH(description)'), '>', self::MAX_LENGTH)->get(['id', 'description']);
$count = 0;
/** @var TransactionJournal $journal */
@@ -57,7 +57,7 @@ class CorrectsLongDescriptions extends Command
}
}
$groups = TransactionGroup::where(DB::raw('LENGTH(title)'), '>', self::MAX_LENGTH)->get(['id', 'title']);
$groups = TransactionGroup::query()->where(DB::raw('LENGTH(title)'), '>', self::MAX_LENGTH)->get(['id', 'title']);
/** @var TransactionGroup $group */
foreach ($groups as $group) {
@@ -42,7 +42,7 @@ class CorrectsPiggyBanks extends Command
public function handle(): int
{
$count = 0;
$set = PiggyBankEvent::with(['PiggyBank', 'TransactionJournal'])->get();
$set = PiggyBankEvent::query()->with(['PiggyBank', 'TransactionJournal'])->get();
/** @var PiggyBankEvent $event */
foreach ($set as $event) {
@@ -47,7 +47,7 @@ class CorrectsPreferences extends Command
foreach ($users as $user) {
$count = 0;
foreach ($items as $item) {
$preference = Preference::where('name', $item)->where('user_id', $user->id)->first();
$preference = Preference::query()->where('name', $item)->where('user_id', $user->id)->first();
if (null === $preference) {
continue;
}
@@ -81,7 +81,7 @@ class CorrectsTransactionTypes extends Command
*/
private function collectJournals(): Collection
{
return TransactionJournal::with(['transactionType', 'transactions', 'transactions.account', 'transactions.account.accountType'])->get();
return TransactionJournal::query()->with(['transactionType', 'transactions', 'transactions.account', 'transactions.account.accountType'])->get();
}
private function fixJournal(TransactionJournal $journal): bool
@@ -42,7 +42,7 @@ class CorrectsTransferBudgets extends Command
*/
public function handle(): int
{
$set = TransactionJournal::distinct()
$set = TransactionJournal::query()->distinct()
->leftJoin('transaction_types', 'transaction_types.id', '=', 'transaction_journals.transaction_type_id')
->leftJoin('budget_transaction_journal', 'transaction_journals.id', '=', 'budget_transaction_journal.transaction_journal_id')
->whereNotIn('transaction_types.type', [TransactionTypeEnum::WITHDRAWAL->value])
@@ -76,7 +76,7 @@ class CorrectsUnevenAmount extends Command
$repository = app(AccountRepositoryInterface::class);
Log::debug('convertOldStyleTransactions()');
$count = 0;
$transactions = Transaction::distinct()
$transactions = Transaction::query()->distinct()
->leftJoin('transaction_journals', 'transaction_journals.id', 'transactions.transaction_journal_id')
->leftJoin('transaction_types', 'transaction_types.id', 'transaction_journals.transaction_type_id')
->leftJoin('accounts', 'accounts.id', 'transactions.account_id')
@@ -188,7 +188,7 @@ class CorrectsUnevenAmount extends Command
{
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()
$transactions = Transaction::query()->distinct()
->leftJoin('transaction_journals', 'transaction_journals.id', 'transactions.transaction_journal_id')
->leftJoin('transaction_types', 'transaction_types.id', 'transaction_journals.transaction_type_id')
->where('transaction_types.type', TransactionTypeEnum::TRANSFER->value)
@@ -262,8 +262,8 @@ class CorrectsUnevenAmount extends Command
$journal->id ?? 0,
$journal->description ?? ''
));
Transaction::where('transaction_journal_id', $journal->id ?? 0)->forceDelete();
TransactionJournal::where('id', $journal->id ?? 0)->forceDelete();
Transaction::query()->where('transaction_journal_id', $journal->id ?? 0)->forceDelete();
TransactionJournal::query()->where('id', $journal->id ?? 0)->forceDelete();
++$this->count;
return;
@@ -282,8 +282,8 @@ class CorrectsUnevenAmount extends Command
$journal->description ?? ''
));
Transaction::where('transaction_journal_id', $journal->id ?? 0)->forceDelete();
TransactionJournal::where('id', $journal->id ?? 0)->forceDelete();
Transaction::query()->where('transaction_journal_id', $journal->id ?? 0)->forceDelete();
TransactionJournal::query()->where('id', $journal->id ?? 0)->forceDelete();
++$this->count;
return;
@@ -430,7 +430,7 @@ class CorrectsUnevenAmount extends Command
/** @var TransactionJournal $journal */
foreach ($journals as $journal) {
if (!$this->isForeignCurrencyTransfer($journal) && !$this->isBetweenAssetAndLiability($journal)) {
Transaction::where('transaction_journal_id', $journal->id)->update(['transaction_currency_id' => $journal->transaction_currency_id]);
Transaction::query()->where('transaction_journal_id', $journal->id)->update(['transaction_currency_id' => $journal->transaction_currency_id]);
++$count;
continue;
@@ -50,17 +50,17 @@ class CreatesGroupMemberships extends Command
public static function createGroupMembership(User $user): void
{
// check if membership exists
$userGroup = UserGroup::where('title', $user->email)->first();
$userGroup = UserGroup::query()->where('title', $user->email)->first();
if (null === $userGroup) {
$userGroup = UserGroup::create(['title' => $user->email]);
}
$userRole = UserRole::where('title', UserRoleEnum::OWNER->value)->first();
$userRole = UserRole::query()->where('title', UserRoleEnum::OWNER->value)->first();
if (null === $userRole) {
throw new FireflyException('Firefly III could not find a user role. Please make sure all migrations have run.');
}
$membership = GroupMembership::where('user_id', $user->id)->where('user_group_id', $userGroup->id)->where('user_role_id', $userRole->id)->first();
$membership = GroupMembership::query()->where('user_id', $user->id)->where('user_group_id', $userGroup->id)->where('user_role_id', $userRole->id)->first();
if (null === $membership) {
GroupMembership::create(['user_id' => $user->id, 'user_role_id' => $userRole->id, 'user_group_id' => $userGroup->id]);
}
@@ -49,7 +49,7 @@ class CreatesLinkTypes extends Command
'Reimbursement' => ['(partially) reimburses', 'is (partially) reimbursed by'],
];
foreach ($set as $name => $values) {
$link = LinkType::where('name', $name)->first();
$link = LinkType::query()->where('name', $name)->first();
if (null === $link) {
$link = new LinkType();
$link->name = $name;
@@ -43,11 +43,11 @@ class RemovesBills extends Command
public function handle(): int
{
/** @var null|TransactionType $withdrawal */
$withdrawal = TransactionType::where('type', TransactionTypeEnum::WITHDRAWAL->value)->first();
$withdrawal = TransactionType::query()->where('type', TransactionTypeEnum::WITHDRAWAL->value)->first();
if (null === $withdrawal) {
return 0;
}
$journals = TransactionJournal::whereNotNull('bill_id')->where('transaction_type_id', '!=', $withdrawal->id)->get();
$journals = TransactionJournal::query()->whereNotNull('bill_id')->where('transaction_type_id', '!=', $withdrawal->id)->get();
/** @var TransactionJournal $journal */
foreach ($journals as $journal) {
@@ -57,7 +57,7 @@ class RemovesEmptyGroups extends Command
// again, chunks for SQLite.
$chunks = array_chunk($groupIds, 500);
foreach ($chunks as $chunk) {
TransactionGroup::whereNull('deleted_at')->whereIn('id', $chunk)->delete();
TransactionGroup::query()->whereNull('deleted_at')->whereIn('id', $chunk)->delete();
}
}
@@ -80,7 +80,7 @@ class RemovesEmptyJournals extends Command
*/
private function deleteUnevenJournals(): void
{
$set = Transaction::whereNull('deleted_at')->groupBy('transactions.transaction_journal_id')->get([
$set = Transaction::query()->whereNull('deleted_at')->groupBy('transactions.transaction_journal_id')->get([
DB::raw('COUNT(transactions.transaction_journal_id) as the_count'),
'transaction_journal_id',
]);
@@ -100,7 +100,7 @@ class RemovesEmptyJournals extends Command
Log::error($e->getTraceAsString());
}
Transaction::where('transaction_journal_id', $row->transaction_journal_id)->delete();
Transaction::query()->where('transaction_journal_id', $row->transaction_journal_id)->delete();
$this->friendlyWarning(sprintf(
'Deleted transaction journal #%d because it had an uneven number of transactions.',
$row->transaction_journal_id
@@ -57,10 +57,10 @@ class RemovesLinksToDeletedObjects extends Command
*/
public function handle(): void
{
$deletedTags = Tag::withTrashed()->whereNotNull('deleted_at')->get('tags.id')->pluck('id')->toArray();
$deletedJournals = TransactionJournal::withTrashed()->whereNotNull('deleted_at')->get('transaction_journals.id')->pluck('id')->toArray();
$deletedBudgets = Budget::withTrashed()->whereNotNull('deleted_at')->get('budgets.id')->pluck('id')->toArray();
$deletedCategories = Category::withTrashed()->whereNotNull('deleted_at')->get('categories.id')->pluck('id')->toArray();
$deletedTags = Tag::query()->withTrashed()->whereNotNull('deleted_at')->get('tags.id')->pluck('id')->toArray();
$deletedJournals = TransactionJournal::query()->withTrashed()->whereNotNull('deleted_at')->get('transaction_journals.id')->pluck('id')->toArray();
$deletedBudgets = Budget::query()->withTrashed()->whereNotNull('deleted_at')->get('budgets.id')->pluck('id')->toArray();
$deletedCategories = Category::query()->withTrashed()->whereNotNull('deleted_at')->get('categories.id')->pluck('id')->toArray();
if (count($deletedTags) > 0) {
$this->cleanupTags($deletedTags);
@@ -67,7 +67,7 @@ class RemovesOrphanedTransactions extends Command
/** @var null|TransactionJournal $journal */
$journal = TransactionJournal::find($transaction->transaction_journal_id);
$journal?->delete();
Transaction::where('transaction_journal_id', $transaction->transaction_journal_id)->delete();
Transaction::query()->where('transaction_journal_id', $transaction->transaction_journal_id)->delete();
$this->friendlyWarning(sprintf(
'Deleted transaction journal #%d because account #%d was already deleted.',
$transaction->transaction_journal_id,
@@ -93,7 +93,7 @@ class RemovesOrphanedTransactions extends Command
$this->friendlyInfo(sprintf('Found %d orphaned journal(s).', $count));
foreach ($set as $entry) {
/** @var null|TransactionJournal $journal */
$journal = TransactionJournal::withTrashed()->find($entry->id);
$journal = TransactionJournal::query()->withTrashed()->find($entry->id);
if (null !== $journal) {
$journal->delete();
$this->friendlyWarning(sprintf(
@@ -42,16 +42,16 @@ class RemovesZeroAmount extends Command
*/
public function handle(): int
{
$set = Transaction::where('amount', 0)->get(['transaction_journal_id'])->pluck('transaction_journal_id')->toArray();
$set = Transaction::query()->where('amount', 0)->get(['transaction_journal_id'])->pluck('transaction_journal_id')->toArray();
$set = array_unique($set);
$journals = TransactionJournal::whereIn('id', $set)->get();
$journals = TransactionJournal::query()->whereIn('id', $set)->get();
/** @var TransactionJournal $journal */
foreach ($journals as $journal) {
$this->friendlyWarning(sprintf('Deleted transaction journal #%d because the amount is zero (0.00).', $journal->id));
$journal->delete();
Transaction::where('transaction_journal_id', $journal->id)->delete();
Transaction::query()->where('transaction_journal_id', $journal->id)->delete();
}
return 0;
@@ -490,7 +490,7 @@ class ForcesDecimalSize extends Command
{
// select all transactions with this currency and issue.
/** @var Builder $query */
$query = Transaction::where('transaction_currency_id', $currency->id)->where(
$query = Transaction::query()->where('transaction_currency_id', $currency->id)->where(
DB::raw(sprintf('CAST(amount as %s)', $this->cast)),
$this->operator,
DB::raw(sprintf($this->regularExpression, $currency->decimal_places))
@@ -519,7 +519,7 @@ class ForcesDecimalSize extends Command
// select all transactions with this FOREIGN currency and issue.
/** @var Builder $query */
$query = Transaction::where('foreign_currency_id', $currency->id)->where(
$query = Transaction::query()->where('foreign_currency_id', $currency->id)->where(
DB::raw(sprintf('CAST(foreign_amount as %s)', $this->cast)),
$this->operator,
DB::raw(sprintf($this->regularExpression, $currency->decimal_places))
@@ -93,7 +93,7 @@ class AddsTransactionIdentifiers extends Command
try {
/** @var Transaction $opposing */
$opposing = Transaction::where('transaction_journal_id', $transaction->transaction_journal_id)
$opposing = Transaction::query()->where('transaction_journal_id', $transaction->transaction_journal_id)
->where('amount', $amount)
->where('identifier', '=', 0)
->whereNotIn('id', $exclude)
@@ -106,7 +106,7 @@ class UpgradesAccountCurrencies extends Command
// both 0? set to default currency:
if (0 === $accountCurrency && 0 === $obCurrency) {
AccountMeta::where('account_id', $account->id)->where('name', 'currency_id')->forceDelete();
AccountMeta::query()->where('account_id', $account->id)->where('name', 'currency_id')->forceDelete();
AccountMeta::create(['account_id' => $account->id, 'name' => 'currency_id', 'data' => $currency->id]);
$this->friendlyInfo(sprintf('Account #%d ("%s") now has a currency setting (%s).', $account->id, $account->name, $currency->code));
++$this->count;
@@ -66,10 +66,10 @@ class UpgradesAccountMetaData extends Command
* @var string $new
*/
foreach ($array as $old => $new) {
$count += AccountMeta::where('name', $old)->update(['name' => $new]);
$count += AccountMeta::query()->where('name', $old)->update(['name' => $new]);
// delete empty entries while we're at it.
AccountMeta::where('name', $new)->where('data', '""')->delete();
AccountMeta::query()->where('name', $new)->where('data', '""')->delete();
}
$this->markAsExecuted();
@@ -152,7 +152,7 @@ class UpgradesBudgetLimitPeriods extends Command
private function theresNoLimit(): void
{
$limits = BudgetLimit::whereNull('period')->get();
$limits = BudgetLimit::query()->whereNull('period')->get();
/** @var BudgetLimit $limit */
foreach ($limits as $limit) {
@@ -55,8 +55,8 @@ class UpgradesCreditCardLiabilities extends Command
return 0;
}
$ccType = AccountType::where('type', AccountTypeEnum::CREDITCARD->value)->first();
$debtType = AccountType::where('type', AccountTypeEnum::DEBT->value)->first();
$ccType = AccountType::query()->where('type', AccountTypeEnum::CREDITCARD->value)->first();
$debtType = AccountType::query()->where('type', AccountTypeEnum::DEBT->value)->first();
if (null === $ccType || null === $debtType) {
$this->markAsExecuted();
@@ -64,7 +64,7 @@ class UpgradesCreditCardLiabilities extends Command
}
/** @var Collection $accounts */
$accounts = Account::where('account_type_id', $ccType->id)->get();
$accounts = Account::query()->where('account_type_id', $ccType->id)->get();
foreach ($accounts as $account) {
$account->account_type_id = $debtType->id;
$account->save();
@@ -66,7 +66,7 @@ class UpgradesCurrencyPreferences extends Command
private function getPreference(User $user): string
{
$preference = Preference::where('user_id', $user->id)
$preference = Preference::query()->where('user_id', $user->id)
->where('name', 'currencyPreference')
->first(['id', 'user_id', 'name', 'data', 'updated_at', 'created_at'])
;
@@ -144,7 +144,7 @@ class UpgradesCurrencyPreferences extends Command
try {
$primaryCurrency = Amount::getTransactionCurrencyByCode($preference);
} catch (FireflyException) {
$primaryCurrency = TransactionCurrency::where('code', 'EUR')->first();
$primaryCurrency = TransactionCurrency::query()->where('code', 'EUR')->first();
}
$user->currencies()->updateExistingPivot($primaryCurrency->id, ['user_default' => true]);
$user->userGroup->currencies()->updateExistingPivot($primaryCurrency->id, ['group_default' => true]);
@@ -131,7 +131,7 @@ class UpgradesJournalMetaData extends Command
$allIds = $this->getIdsForBudgets();
$chunks = array_chunk($allIds, 500);
foreach ($chunks as $journalIds) {
$collected = TransactionJournal::whereIn('id', $journalIds)->with(['transactions', 'budgets', 'transactions.budgets'])->get();
$collected = TransactionJournal::query()->whereIn('id', $journalIds)->with(['transactions', 'budgets', 'transactions.budgets'])->get();
$journals = $journals->merge($collected);
}
@@ -180,7 +180,7 @@ class UpgradesJournalMetaData extends Command
$chunks = array_chunk($allIds, 500);
foreach ($chunks as $chunk) {
$collected = TransactionJournal::whereIn('id', $chunk)->with(['transactions', 'categories', 'transactions.categories'])->get();
$collected = TransactionJournal::query()->whereIn('id', $chunk)->with(['transactions', 'categories', 'transactions.categories'])->get();
$journals = $journals->merge($collected);
}
@@ -105,7 +105,7 @@ class UpgradesMultiPiggyBanks extends Command
{
$this->repository = app(PiggyBankRepositoryInterface::class);
$this->accountRepository = app(AccountRepositoryInterface::class);
$set = PiggyBank::whereNotNull('account_id')->get();
$set = PiggyBank::query()->whereNotNull('account_id')->get();
Log::debug(sprintf('Will update %d piggy banks(s).', $set->count()));
/** @var PiggyBank $piggyBank */
@@ -104,7 +104,7 @@ class UpgradesRecurrenceMetaData extends Command
{
$count = 0;
// get all recurrence meta data:
$collection = RecurrenceMeta::with('recurrence')->get();
$collection = RecurrenceMeta::query()->with('recurrence')->get();
/** @var RecurrenceMeta $meta */
foreach ($collection as $meta) {
@@ -106,7 +106,7 @@ class UpgradesRuleActions extends Command
'move_descr_to_notes',
'move_notes_to_descr',
];
$actions = RuleAction::whereIn('action_type', $obsolete)->get();
$actions = RuleAction::query()->whereIn('action_type', $obsolete)->get();
/** @var RuleAction $action */
foreach ($actions as $action) {
@@ -84,9 +84,9 @@ class UpgradesWebhooks extends Command
return;
}
$deliveryModel = WebhookDeliveryModel::where('key', $delivery->value)->first();
$responseModel = WebhookResponseModel::where('key', $response->value)->first();
$triggerModel = WebhookTriggerModel::where('key', $trigger->value)->first();
$deliveryModel = WebhookDeliveryModel::query()->where('key', $delivery->value)->first();
$responseModel = WebhookResponseModel::query()->where('key', $response->value)->first();
$triggerModel = WebhookTriggerModel::query()->where('key', $trigger->value)->first();
if (in_array(null, [$deliveryModel, $responseModel, $triggerModel], true)) {
$this->friendlyError(sprintf('[b] Webhook #%d has an invalid delivery, response or trigger model. Will not upgrade.', $webhook->id));
@@ -104,7 +104,7 @@ class UpgradesWebhooks extends Command
private function upgradeWebhooks(): void
{
$set = Webhook::where('delivery', '>', 1)->orWhere('trigger', '>', 1)->orWhere('response', '>', 1)->get();
$set = Webhook::query()->where('delivery', '>', 1)->orWhere('trigger', '>', 1)->orWhere('response', '>', 1)->get();
/** @var Webhook $webhook */
foreach ($set as $webhook) {
+1 -1
View File
@@ -157,7 +157,7 @@ class AccountFactory
if (null === $result) {
$types = config(sprintf('firefly.accountTypeByIdentifier.%s', $accountTypeName)) ?? [];
if (0 !== count($types)) {
$result = AccountType::whereIn('type', $types)->first();
$result = AccountType::query()->whereIn('type', $types)->first();
}
}
if (null === $result) {
+2 -2
View File
@@ -46,9 +46,9 @@ class TransactionCurrencyFactory
$data['decimal_places'] = (int) $data['decimal_places'];
// if the code already exists (deleted)
// force delete it and then create the transaction:
$count = TransactionCurrency::withTrashed()->whereCode($data['code'])->count();
$count = TransactionCurrency::query()->withTrashed()->whereCode($data['code'])->count();
if (1 === $count) {
$old = TransactionCurrency::withTrashed()->whereCode($data['code'])->first();
$old = TransactionCurrency::query()->withTrashed()->whereCode($data['code'])->first();
$old->forceDelete();
Log::warning(sprintf('Force deleted old currency with ID #%d and code "%s".', $old->id, $data['code']));
}
+1 -1
View File
@@ -425,7 +425,7 @@ class TransactionJournalFactory
Log::debug('Will verify duplicate!');
/** @var null|TransactionJournalMeta $result */
$result = TransactionJournalMeta::withTrashed()
$result = TransactionJournalMeta::query()->withTrashed()
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'journal_meta.transaction_journal_id')
->whereNotNull('transaction_journals.id')
->where('transaction_journals.user_id', $this->user->id)
@@ -49,18 +49,18 @@ class DeletedAccountObserver
$repository->destroy($attachment);
}
$journalIds = Transaction::where('account_id', $account->id)->get(['transactions.transaction_journal_id'])->pluck('transaction_journal_id')->toArray();
$journalIds = Transaction::query()->where('account_id', $account->id)->get(['transactions.transaction_journal_id'])->pluck('transaction_journal_id')->toArray();
$groupIds = array_map(function (array $item) {
return $item['transaction_group_id'];
}, TransactionJournal::whereIn('id', $journalIds)->get(['transaction_journals.transaction_group_id'])->toArray());
}, TransactionJournal::query()->whereIn('id', $journalIds)->get(['transaction_journals.transaction_group_id'])->toArray());
if (count($journalIds) > 0) {
Transaction::whereIn('transaction_journal_id', $journalIds)->delete();
TransactionJournal::whereIn('id', $journalIds)->delete();
Transaction::query()->whereIn('transaction_journal_id', $journalIds)->delete();
TransactionJournal::query()->whereIn('id', $journalIds)->delete();
}
if (count($groupIds) > 0) {
TransactionGroup::whereIn('id', $groupIds)->delete();
TransactionGroup::query()->whereIn('id', $groupIds)->delete();
}
Log::debug(sprintf('Delete %d journal(s)', count($journalIds)));
@@ -50,8 +50,8 @@ class DeletedTransactionJournalObserver
});
// delete all links:
TransactionJournalLink::where('source_id', $transactionJournal->id)->delete();
TransactionJournalLink::where('destination_id', $transactionJournal->id)->delete();
TransactionJournalLink::query()->where('source_id', $transactionJournal->id)->delete();
TransactionJournalLink::query()->where('destination_id', $transactionJournal->id)->delete();
// update events
// TODO move to repository
@@ -84,7 +84,7 @@ final class ForgotPasswordController extends Controller
// verify if the user is not a demo user. If so, we give him back an error.
/** @var null|User $user */
$user = User::where('email', $request->get('email'))->first();
$user = User::query()->where('email', $request->get('email'))->first();
if (null !== $user && $repository->hasRole($user, 'demo')) {
return back()->withErrors(['email' => (string) trans('firefly.cannot_reset_demo_user')]);
+1 -1
View File
@@ -114,7 +114,7 @@ final class DebugController extends Controller
Artisan::call('route:clear');
Artisan::call('view:clear');
PeriodStatistic::where('id', '>', 0)->delete();
PeriodStatistic::query()->where('id', '>', 0)->delete();
// also do some recalculations.
Artisan::call('correction:recalculates-liabilities');
+1 -1
View File
@@ -73,7 +73,7 @@ class Range
app('view')->share('listLength', $pref);
// share security message:
if (FireflyConfig::has('upgrade_security_message') && FireflyConfig::has('upgrade_security_level')) {
if (FireflyConfig::query()->has('upgrade_security_message') && FireflyConfig::query()->has('upgrade_security_level')) {
app('view')->share('upgrade_security_message', FireflyConfig::get('upgrade_security_message')->data);
app('view')->share('upgrade_security_level', FireflyConfig::get('upgrade_security_level')->data);
}
+5 -5
View File
@@ -104,14 +104,14 @@ class AccountFormRequest extends FormRequest
$types = implode(',', array_keys(config('firefly.subTitlesByIdentifier')));
$ccPaymentTypes = implode(',', array_keys(config('firefly.ccTypes')));
$rules = [
'name' => 'required|max:1024|min:1|uniqueAccountForUser',
'name' => ['required', 'max:1024', 'min:1', 'uniqueAccountForUser'],
'opening_balance' => ['nullable', new IsValidAmount()],
'opening_balance_date' => 'date|required_with:opening_balance|nullable',
'opening_balance_date' => ['date', 'required_with:opening_balance', 'nullable'],
'iban' => ['iban', 'nullable', new UniqueIban(null, $this->convertString('objectType'))],
'BIC' => 'bic|nullable',
'BIC' => ['bic', 'nullable'],
'virtual_balance' => ['nullable', new IsValidAmount()],
'currency_id' => 'exists:transaction_currencies,id',
'account_number' => 'min:1|max:255|uniqueAccountNumberForUser|nullable',
'account_number' => ['min:1', 'max:255', 'uniqueAccountNumberForUser', 'nullable'],
'account_role' => 'in:'.$accountRoles,
'active' => 'boolean',
'cc_type' => 'in:'.$ccPaymentTypes,
@@ -119,7 +119,7 @@ class AccountFormRequest extends FormRequest
'amount_currency_id_virtual_balance' => 'exists:transaction_currencies,id',
'what' => 'in:'.$types,
'interest_period' => 'in:daily,monthly,yearly',
'notes' => 'min:1|max:32768|nullable',
'notes' => ['min:1', 'max:32768', 'nullable'],
];
$rules = Location::requestRules($rules);
+1 -1
View File
@@ -53,7 +53,7 @@ class AttachmentFormRequest extends FormRequest
public function rules(): array
{
// fixed
return ['title' => 'min:1|max:255|nullable', 'notes' => 'min:1|max:32768|nullable'];
return ['title' => ['min:1', 'max:255', 'nullable'], 'notes' => ['min:1', 'max:32768', 'nullable']];
}
public function withValidator(Validator $validator): void
+7 -7
View File
@@ -68,16 +68,16 @@ class BillStoreRequest extends FormRequest
public function rules(): array
{
return [
'name' => 'required|min:1|max:255|uniqueObjectForUser:bills,name',
'name' => ['required', 'min:1', 'max:255', 'uniqueObjectForUser:bills,name'],
'amount_min' => ['required', new IsValidPositiveAmount()],
'amount_max' => ['required', new IsValidPositiveAmount()],
'transaction_currency_id' => 'required|exists:transaction_currencies,id',
'date' => 'required|date',
'notes' => 'min:1|max:32768|nullable',
'bill_end_date' => 'nullable|date',
'extension_date' => 'nullable|date',
'transaction_currency_id' => ['required', 'exists:transaction_currencies,id'],
'date' => ['required', 'date'],
'notes' => ['min:1', 'max:32768', 'nullable'],
'bill_end_date' => ['nullable', 'date'],
'extension_date' => ['nullable', 'date'],
'repeat_freq' => sprintf('required|in:%s', implode(',', config('firefly.bill_periods'))),
'skip' => 'required|integer|gte:0|lte:31',
'skip' => ['required', 'integer', 'gte:0', 'lte:31'],
'active' => 'boolean',
];
}
+6 -6
View File
@@ -75,14 +75,14 @@ class BillUpdateRequest extends FormRequest
'name' => sprintf('required|min:1|max:255|uniqueObjectForUser:bills,name,%d', $bill->id),
'amount_min' => ['required', new IsValidPositiveAmount()],
'amount_max' => ['required', new IsValidPositiveAmount()],
'transaction_currency_id' => 'required|exists:transaction_currencies,id',
'date' => 'required|date',
'bill_end_date' => 'nullable|date',
'extension_date' => 'nullable|date',
'transaction_currency_id' => ['required', 'exists:transaction_currencies,id'],
'date' => ['required', 'date'],
'bill_end_date' => ['nullable', 'date'],
'extension_date' => ['nullable', 'date'],
'repeat_freq' => sprintf('required|in:%s', implode(',', config('firefly.bill_periods'))),
'skip' => 'required|integer|gte:0|lte:31',
'skip' => ['required', 'integer', 'gte:0', 'lte:31'],
'active' => 'boolean',
'notes' => 'min:1|max:32768|nullable',
'notes' => ['min:1', 'max:32768', 'nullable'],
];
}
+4 -4
View File
@@ -63,13 +63,13 @@ class BudgetFormStoreRequest extends FormRequest
public function rules(): array
{
return [
'name' => 'required|min:1|max:255|uniqueObjectForUser:budgets,name',
'active' => 'numeric|min:0|max:1',
'auto_budget_type' => 'numeric|integer|gte:0|lte:3',
'name' => ['required', 'min:1', 'max:255', 'uniqueObjectForUser:budgets,name'],
'active' => ['numeric', 'min:0', 'max:1'],
'auto_budget_type' => ['numeric', 'integer', 'gte:0', 'lte:3'],
'auto_budget_currency_id' => 'exists:transaction_currencies,id',
'auto_budget_amount' => ['required_if:auto_budget_type,1', 'required_if:auto_budget_type,2', new IsValidPositiveAmount()],
'auto_budget_period' => 'in:daily,weekly,monthly,quarterly,half_year,yearly',
'notes' => 'min:1|max:32768|nullable',
'notes' => ['min:1', 'max:32768', 'nullable'],
];
}
@@ -75,12 +75,12 @@ class BudgetFormUpdateRequest extends FormRequest
return [
'name' => $nameRule,
'active' => 'numeric|min:0|max:1',
'auto_budget_type' => 'numeric|integer|gte:0|lte:31',
'active' => ['numeric', 'min:0', 'max:1'],
'auto_budget_type' => ['numeric', 'integer', 'gte:0', 'lte:31'],
'auto_budget_currency_id' => 'exists:transaction_currencies,id',
'auto_budget_amount' => ['required_if:auto_budget_type,1', 'required_if:auto_budget_type,2|numeric', new IsValidPositiveAmount()],
'auto_budget_period' => 'in:daily,weekly,monthly,quarterly,half_year,yearly',
'notes' => 'min:1|max:32768|nullable',
'notes' => ['min:1', 'max:32768', 'nullable'],
];
}
+1 -1
View File
@@ -44,7 +44,7 @@ class BudgetIncomeRequest extends FormRequest
public function rules(): array
{
// fixed
return ['amount' => ['required', new IsValidPositiveAmount()], 'start' => 'required|date|before:end', 'end' => 'required|date|after:start'];
return ['amount' => ['required', new IsValidPositiveAmount()], 'start' => ['required', 'date', 'before:end'], 'end' => ['required', 'date', 'after:start']];
}
public function withValidator(Validator $validator): void
+1 -1
View File
@@ -45,7 +45,7 @@ class BulkEditJournalRequest extends FormRequest
public function rules(): array
{
// fixed
return ['journals.*' => 'required|belongsToUser:transaction_journals,id', 'tags_action' => 'in:no_nothing,do_replace,do_append'];
return ['journals.*' => ['required', 'belongsToUser:transaction_journals,id'], 'tags_action' => 'in:no_nothing,do_replace,do_append'];
}
public function withValidator(Validator $validator): void

Some files were not shown because too many files have changed in this diff Show More