From 86ee5f477b4032bbac51cba424a080cba6da7012 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 29 Oct 2020 21:48:56 +1100 Subject: [PATCH] Fixes for expense numbers --- app/Http/Requests/Expense/StoreExpenseRequest.php | 4 ++-- app/Repositories/ExpenseRepository.php | 1 + tests/Feature/ExpenseApiTest.php | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/Http/Requests/Expense/StoreExpenseRequest.php b/app/Http/Requests/Expense/StoreExpenseRequest.php index 35ff9d450306..398fdf582fb1 100644 --- a/app/Http/Requests/Expense/StoreExpenseRequest.php +++ b/app/Http/Requests/Expense/StoreExpenseRequest.php @@ -39,9 +39,9 @@ class StoreExpenseRequest extends Request { $rules = []; - $rules['id_number'] = 'unique:expenses,id_number,'.$this->id.',id,company_id,'.$this->company_id; + $rules['number'] = 'unique:expenses,number,'.$this->id.',id,company_id,'.auth()->user()->company()->id; $rules['contacts.*.email'] = 'nullable|distinct'; - $rules['number'] = new UniqueExpenseNumberRule($this->all()); + //$rules['number'] = new UniqueExpenseNumberRule($this->all()); $rules['client_id'] = 'bail|sometimes|exists:clients,id,company_id,'.auth()->user()->company()->id; diff --git a/app/Repositories/ExpenseRepository.php b/app/Repositories/ExpenseRepository.php index 53eb5b8923cd..8eeb8e8409cc 100644 --- a/app/Repositories/ExpenseRepository.php +++ b/app/Repositories/ExpenseRepository.php @@ -49,6 +49,7 @@ class ExpenseRepository extends BaseRepository public function save(array $data, Expense $expense) : ?Expense { $expense->fill($data); + $expense->number = empty($expense->number) ? $this->getNextExpenseNumber($expense) : $expense->number; $expense->save(); diff --git a/tests/Feature/ExpenseApiTest.php b/tests/Feature/ExpenseApiTest.php index f31b7eb5007f..9b9f9829377d 100644 --- a/tests/Feature/ExpenseApiTest.php +++ b/tests/Feature/ExpenseApiTest.php @@ -62,7 +62,10 @@ class ExpenseApiTest extends TestCase 'X-API-TOKEN' => $this->token, ])->post('/api/v1/expenses', $data); + $arr = $response->json(); $response->assertStatus(200); + + $this->assertNotEmpty($arr['data']['number']); } public function testExpensePut()