From b624bb13c30ce54111d019f4b97a9018986f7a0d Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Sun, 25 Sep 2016 20:36:15 +0300 Subject: [PATCH] Fix problem clearing duplicate invoice number error --- app/Http/Controllers/InvoiceController.php | 15 ++++++++++----- app/Http/routes.php | 2 +- resources/views/invoices/knockout.blade.php | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index 0cbe8a43a23e..5d58d1656a67 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -429,7 +429,7 @@ class InvoiceController extends BaseController { $data = $request->input(); $data['documents'] = $request->file('documents'); - + $action = Input::get('action'); $entityType = Input::get('entityType'); @@ -606,14 +606,19 @@ class InvoiceController extends BaseController return View::make('invoices.history', $data); } - public function checkInvoiceNumber() + public function checkInvoiceNumber($invoicePublicId = false) { $invoiceNumber = request()->invoice_number; - $count = Invoice::scope() + $query = Invoice::scope() ->whereInvoiceNumber($invoiceNumber) - ->withTrashed() - ->count(); + ->withTrashed(); + + if ($invoicePublicId) { + $query->where('public_id', '!=', $invoicePublicId); + } + + $count = $query->count(); return $count ? RESULT_FAILURE : RESULT_SUCCESS; } diff --git a/app/Http/routes.php b/app/Http/routes.php index e5f567bbcf2c..095e627f535b 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -129,7 +129,7 @@ Route::group(['middleware' => 'auth:user'], function() { Route::get('hide_message', 'HomeController@hideMessage'); Route::get('force_inline_pdf', 'UserController@forcePDFJS'); Route::get('account/get_search_data', ['as' => 'get_search_data', 'uses' => 'AccountController@getSearchData']); - Route::get('check_invoice_number', 'InvoiceController@checkInvoiceNumber'); + Route::get('check_invoice_number/{invoice_id?}', 'InvoiceController@checkInvoiceNumber'); Route::get('save_sidebar_state', 'UserController@saveSidebarState'); Route::get('settings/user_details', 'AccountController@showUserDetails'); diff --git a/resources/views/invoices/knockout.blade.php b/resources/views/invoices/knockout.blade.php index 335bc5b79609..d6f4616a736c 100644 --- a/resources/views/invoices/knockout.blade.php +++ b/resources/views/invoices/knockout.blade.php @@ -853,7 +853,7 @@ ko.bindingHandlers.productTypeahead = { }; function checkInvoiceNumber() { - var url = '{{ url('check_invoice_number') }}?invoice_number=' + encodeURIComponent($('#invoice_number').val()); + var url = '{{ url('check_invoice_number') }}/{{ $invoice->exists ? $invoice->public_id : '' }}?invoice_number=' + encodeURIComponent($('#invoice_number').val()); $.get(url, function(data) { var isValid = data == '{{ RESULT_SUCCESS }}' ? true : false; if (isValid) {