diff --git a/app/Http/Requests/Expense/UpdateExpenseRequest.php b/app/Http/Requests/Expense/UpdateExpenseRequest.php index 812449e30b38..50c496cf3301 100644 --- a/app/Http/Requests/Expense/UpdateExpenseRequest.php +++ b/app/Http/Requests/Expense/UpdateExpenseRequest.php @@ -56,7 +56,7 @@ class UpdateExpenseRequest extends Request $rules['invoice_id'] = 'bail|sometimes|nullable|exists:invoices,id,company_id,'.$user->company()->id; $rules['documents'] = 'bail|sometimes|array'; $rules['amount'] = ['sometimes', 'bail', 'nullable', 'numeric', 'max:99999999999999']; - + return $this->globalRules($rules); } diff --git a/app/Repositories/ExpenseRepository.php b/app/Repositories/ExpenseRepository.php index ab83f2f80fb1..54feb009584b 100644 --- a/app/Repositories/ExpenseRepository.php +++ b/app/Repositories/ExpenseRepository.php @@ -46,7 +46,7 @@ class ExpenseRepository extends BaseRepository /** @var \App\Models\User $user */ $user = auth()->user(); - $payment_date = &$data['payment_date']; + $payment_date = isset($data['payment_date']) ? $data['payment_date'] : false; if($payment_date && $payment_date == $expense->payment_date) { //do nothing diff --git a/tests/Feature/ExpenseApiTest.php b/tests/Feature/ExpenseApiTest.php index 5cf695cb90d1..81d7dafbf2ab 100644 --- a/tests/Feature/ExpenseApiTest.php +++ b/tests/Feature/ExpenseApiTest.php @@ -47,6 +47,46 @@ class ExpenseApiTest extends TestCase Model::reguard(); } + + + public function testVendorPayment() + { + $data = [ + 'amount' => 100, + 'payment_date' => now()->format('Y-m-d'), + 'vendor_id' => $this->vendor->hashed_id, + 'date' => '2021-10-01', + ]; + + $response = $this->withHeaders([ + 'X-API-SECRET' => config('ninja.api_secret'), + 'X-API-TOKEN' => $this->token, + ])->postJson('/api/v1/expenses', $data); + + + $arr = $response->json(); + $response->assertStatus(200); + + $this->assertEquals($this->vendor->hashed_id, $arr['data']['vendor_id']); + $this->assertEquals(now()->format('Y-m-d'), $arr['data']['payment_date']); + + $data = [ + 'amount' => 100, + ]; + + $response = $this->withHeaders([ + 'X-API-SECRET' => config('ninja.api_secret'), + 'X-API-TOKEN' => $this->token, + ])->putJson('/api/v1/expenses/'.$arr['data']['id'], $data); + + $arr = $response->json(); + $response->assertStatus(200); + + $this->assertEquals(now()->format('Y-m-d'), $arr['data']['payment_date']); + + } + + public function testExpensePutWithVendorStatus() { diff --git a/tests/Feature/VendorApiTest.php b/tests/Feature/VendorApiTest.php index 386a691e9b5f..f47359235a4b 100644 --- a/tests/Feature/VendorApiTest.php +++ b/tests/Feature/VendorApiTest.php @@ -47,7 +47,6 @@ class VendorApiTest extends TestCase Model::reguard(); } - public function testVendorContactCreation() { $data = [