1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-20 08:21:34 +02:00

Improvements for validation

This commit is contained in:
David Bomba 2024-02-17 05:57:15 +11:00
parent 478dbe5c4a
commit a5fd1dc5ea
24 changed files with 71 additions and 14 deletions

View File

@ -49,6 +49,9 @@ class StoreClientRequest extends Request
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}
else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {
$rules['file.*'] = $this->file_validation;
@ -94,7 +97,6 @@ class StoreClientRequest extends Request
$rules['number'] = ['bail', 'nullable', Rule::unique('clients')->where('company_id', $user->company()->id)];
$rules['id_number'] = ['bail', 'nullable', Rule::unique('clients')->where('company_id', $user->company()->id)];
$rules['classification'] = 'bail|sometimes|nullable|in:individual,business,company,partnership,trust,charity,government,other';
$rules['documents'] = 'bail|sometimes|array';
return $rules;
}

View File

@ -53,6 +53,8 @@ class UpdateClientRequest extends Request
$rules['file.*'] = $this->file_validation;
} elseif ($this->file('file')) {
$rules['file'] = $this->file_validation;
} else {
$rules['documents'] = 'bail|sometimes|array';
}
$rules['company_logo'] = 'mimes:jpeg,jpg,png,gif|max:10000';
@ -84,8 +86,6 @@ class UpdateClientRequest extends Request
//'regex:/[@$!%*#?&.]/', // must contain a special character
];
$rules['documents'] = 'bail|sometimes|array';
return $rules;
}

View File

@ -50,6 +50,8 @@ class StoreCreditRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -52,6 +52,8 @@ class UpdateCreditRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -52,6 +52,7 @@ class StoreExpenseRequest extends Request
$rules['category_id'] = 'bail|nullable|sometimes|exists:expense_categories,id,company_id,'.$user->company()->id.',is_deleted,0';
$rules['payment_date'] = 'bail|nullable|sometimes|date:Y-m-d';
$rules['date'] = 'bail|sometimes|date:Y-m-d';
$rules['documents'] = 'bail|sometimes|array';
return $this->globalRules($rules);
}

View File

@ -29,25 +29,32 @@ class UpdateExpenseRequest extends Request
*/
public function authorize(): bool
{
return auth()->user()->can('edit', $this->expense);
/** @var \App\Models\User $user */
$user = auth()->user();
return $user->can('edit', $this->expense);
}
public function rules()
{
/** @var \App\Models\User $user */
$user = auth()->user();
/* Ensure we have a client name, and that all emails are unique*/
$rules = [];
if (isset($this->number)) {
$rules['number'] = Rule::unique('expenses')->where('company_id', auth()->user()->company()->id)->ignore($this->expense->id);
$rules['number'] = Rule::unique('expenses')->where('company_id', $user->company()->id)->ignore($this->expense->id);
}
if ($this->client_id) {
$rules['client_id'] = 'bail|sometimes|exists:clients,id,company_id,'.auth()->user()->company()->id;
$rules['client_id'] = 'bail|sometimes|exists:clients,id,company_id,'.$user->company()->id;
}
$rules['category_id'] = 'bail|sometimes|nullable|exists:expense_categories,id,company_id,'.auth()->user()->company()->id.',is_deleted,0';
$rules['transaction_id'] = 'bail|sometimes|nullable|exists:bank_transactions,id,company_id,'.auth()->user()->company()->id;
$rules['invoice_id'] = 'bail|sometimes|nullable|exists:invoices,id,company_id,'.auth()->user()->company()->id;
$rules['category_id'] = 'bail|sometimes|nullable|exists:expense_categories,id,company_id,'.$user->company()->id.',is_deleted,0';
$rules['transaction_id'] = 'bail|sometimes|nullable|exists:bank_transactions,id,company_id,'.$user->company()->id;
$rules['invoice_id'] = 'bail|sometimes|nullable|exists:invoices,id,company_id,'.$user->company()->id;
$rules['documents'] = 'bail|sometimes|array';
return $this->globalRules($rules);
@ -55,6 +62,10 @@ class UpdateExpenseRequest extends Request
public function prepareForValidation()
{
/** @var \App\Models\User $user */
$user = auth()->user();
$input = $this->all();
$input = $this->decodePrimaryKeys($input);
@ -64,7 +75,7 @@ class UpdateExpenseRequest extends Request
}
if (! array_key_exists('currency_id', $input) || strlen($input['currency_id']) == 0) {
$input['currency_id'] = (string) auth()->user()->company()->settings->currency_id;
$input['currency_id'] = (string) $user->company()->settings->currency_id;
}
/* Ensure the project is related */

View File

@ -47,6 +47,8 @@ class StoreInvoiceRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {
@ -76,6 +78,7 @@ class StoreInvoiceRequest extends Request
$rules['partial'] = 'bail|sometimes|nullable|numeric|gte:0';
$rules['partial_due_date'] = ['bail', 'sometimes', 'exclude_if:partial,0', Rule::requiredIf(fn () => $this->partial > 0), 'date'];
return $rules;
}

View File

@ -49,6 +49,8 @@ class UpdateInvoiceRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {
@ -77,6 +79,7 @@ class UpdateInvoiceRequest extends Request
$rules['partial'] = 'bail|sometimes|nullable|numeric';
$rules['partial_due_date'] = ['bail', 'sometimes', 'exclude_if:partial,0', Rule::requiredIf(fn () => $this->partial > 0), 'date', 'before:due_date'];
return $rules;
}

View File

@ -126,6 +126,8 @@ class StorePaymentRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -55,6 +55,8 @@ class UpdatePaymentRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -35,6 +35,8 @@ class StoreProductRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -25,7 +25,11 @@ class UpdateProductRequest extends Request
*/
public function authorize(): bool
{
return auth()->user()->can('edit', $this->product);
/** @var \App\Models\User $user */
$user = auth()->user();
return $user->can('edit', $this->product);
}
public function rules()
@ -34,6 +38,8 @@ class UpdateProductRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -53,6 +53,8 @@ class StoreProjectRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -49,6 +49,8 @@ class UpdateProjectRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -57,6 +57,8 @@ class StorePurchaseOrderRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
} else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -59,6 +59,8 @@ class UpdatePurchaseOrderRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -49,6 +49,8 @@ class StoreQuoteRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {
@ -59,11 +61,8 @@ class StoreQuoteRequest extends Request
$rules['number'] = ['nullable', Rule::unique('quotes')->where('company_id', $user->company()->id)];
$rules['discount'] = 'sometimes|numeric';
$rules['is_amount_discount'] = ['boolean'];
$rules['exchange_rate'] = 'bail|sometimes|numeric';
// $rules['number'] = new UniqueQuoteNumberRule($this->all());
$rules['line_items'] = 'array';
return $rules;

View File

@ -46,6 +46,8 @@ class UpdateQuoteRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -49,6 +49,8 @@ class StoreRecurringInvoiceRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -48,6 +48,8 @@ class UpdateRecurringInvoiceRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -82,6 +82,8 @@ class StoreTaskRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -88,6 +88,8 @@ class UpdateTaskRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -64,6 +64,8 @@ class StoreVendorRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {

View File

@ -65,6 +65,8 @@ class UpdateVendorRequest extends Request
$rules['documents.*'] = $this->file_validation;
} elseif ($this->file('documents')) {
$rules['documents'] = $this->file_validation;
}else {
$rules['documents'] = 'bail|sometimes|array';
}
if ($this->file('file') && is_array($this->file('file'))) {