mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2026-08-17 08:25:04 -05:00
Lots of mago fixes applied.
This commit is contained in:
@@ -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']];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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']];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()],
|
||||
];
|
||||
|
||||
@@ -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'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -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(),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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']];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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']));
|
||||
}
|
||||
|
||||
@@ -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')]);
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -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'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user