From 79e625d8f22de5de20f368be86840790959f2b40 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 16 Oct 2020 08:17:31 +1100 Subject: [PATCH] Fixes for recurring number rules and assigned_user_id stickiness for Vendors --- .../RecurringInvoice/StoreRecurringInvoiceRequest.php | 3 +++ .../RecurringInvoice/UpdateRecurringInvoiceRequest.php | 4 ++++ app/Http/Requests/Vendor/StoreVendorRequest.php | 9 ++++++--- app/Http/Requests/Vendor/UpdateVendorRequest.php | 4 ++++ app/Repositories/VendorRepository.php | 1 + 5 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php b/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php index 67fb0ef95051..0e21a96e7802 100644 --- a/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php +++ b/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php @@ -12,6 +12,7 @@ namespace App\Http\Requests\RecurringInvoice; use App\Http\Requests\Request; +use App\Http\ValidationRules\Recurring\UniqueRecurringInvoiceNumberRule; use App\Models\Client; use App\Models\RecurringInvoice; use App\Utils\Traits\CleanLineItems; @@ -52,6 +53,8 @@ class StoreRecurringInvoiceRequest extends Request $rules['frequency_id'] = 'required|integer'; + $rules['number'] = new UniqueRecurringInvoiceNumberRule($this->all()); + return $rules; } diff --git a/app/Http/Requests/RecurringInvoice/UpdateRecurringInvoiceRequest.php b/app/Http/Requests/RecurringInvoice/UpdateRecurringInvoiceRequest.php index 7a6cbfbe656f..f5782f7ad989 100644 --- a/app/Http/Requests/RecurringInvoice/UpdateRecurringInvoiceRequest.php +++ b/app/Http/Requests/RecurringInvoice/UpdateRecurringInvoiceRequest.php @@ -48,6 +48,10 @@ class UpdateRecurringInvoiceRequest extends Request $rules['documents'] = 'file|mimes:png,ai,svg,jpeg,tiff,pdf,gif,psd,txt,doc,xls,ppt,xlsx,docx,pptx|max:20000'; } + if ($this->input('number')) { + $rules['number'] = 'unique:recurring_invoices,number,'.$this->id.',id,company_id,'.$this->recurring_invoice->company_id; + } + return $rules; } diff --git a/app/Http/Requests/Vendor/StoreVendorRequest.php b/app/Http/Requests/Vendor/StoreVendorRequest.php index df27f39ea8b6..f892593a51b6 100644 --- a/app/Http/Requests/Vendor/StoreVendorRequest.php +++ b/app/Http/Requests/Vendor/StoreVendorRequest.php @@ -48,10 +48,13 @@ class StoreVendorRequest extends Request protected function prepareForValidation() { - // $input = $this->all(); + $input = $this->all(); - - // $this->replace($input); + if (array_key_exists('assigned_user_id', $input) && is_string($input['assigned_user_id'])) { + $input['assigned_user_id'] = $this->decodePrimaryKey($input['assigned_user_id']); + } + + $this->replace($input); } public function messages() diff --git a/app/Http/Requests/Vendor/UpdateVendorRequest.php b/app/Http/Requests/Vendor/UpdateVendorRequest.php index bd8b44d6966b..8a6cba26d39f 100644 --- a/app/Http/Requests/Vendor/UpdateVendorRequest.php +++ b/app/Http/Requests/Vendor/UpdateVendorRequest.php @@ -69,6 +69,10 @@ class UpdateVendorRequest extends Request { $input = $this->all(); + if (array_key_exists('assigned_user_id', $input) && is_string($input['assigned_user_id'])) { + $input['assigned_user_id'] = $this->decodePrimaryKey($input['assigned_user_id']); + } + $this->replace($input); } } diff --git a/app/Repositories/VendorRepository.php b/app/Repositories/VendorRepository.php index 6f241f8187a5..fca84a6ba067 100644 --- a/app/Repositories/VendorRepository.php +++ b/app/Repositories/VendorRepository.php @@ -57,6 +57,7 @@ class VendorRepository extends BaseRepository */ public function save(array $data, Vendor $vendor) : ?Vendor { + $vendor->fill($data); $vendor->save();