From 92872e7e1c8304404d74c25f3aec89abbce6c0cf Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Fri, 3 Apr 2026 18:07:07 +0200 Subject: [PATCH] Merge ShowReceiptController and UploadReceiptController into ExpensesController --- .../V1/Admin/Expense/ExpensesController.php | 37 ++++++++++++++++++ .../Admin/Expense/ShowReceiptController.php | 30 -------------- .../Admin/Expense/UploadReceiptController.php | 39 ------------------- routes/api.php | 6 +-- routes/web.php | 4 +- 5 files changed, 41 insertions(+), 75 deletions(-) delete mode 100644 app/Http/Controllers/V1/Admin/Expense/ShowReceiptController.php delete mode 100644 app/Http/Controllers/V1/Admin/Expense/UploadReceiptController.php diff --git a/app/Http/Controllers/V1/Admin/Expense/ExpensesController.php b/app/Http/Controllers/V1/Admin/Expense/ExpensesController.php index 6bad574e..8b9e32f7 100644 --- a/app/Http/Controllers/V1/Admin/Expense/ExpensesController.php +++ b/app/Http/Controllers/V1/Admin/Expense/ExpensesController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\V1\Admin\Expense; use App\Http\Controllers\Controller; use App\Http\Requests\DeleteExpensesRequest; use App\Http\Requests\ExpenseRequest; +use App\Http\Requests\UploadExpenseReceiptRequest; use App\Http\Resources\ExpenseResource; use App\Models\Expense; use App\Services\ExpenseService; @@ -96,4 +97,40 @@ class ExpensesController extends Controller 'success' => true, ]); } + + public function showReceipt(Expense $expense) + { + $this->authorize('view', $expense); + + if ($expense) { + $media = $expense->getFirstMedia('receipts'); + + if ($media) { + return response()->file($media->getPath()); + } + + return respondJson('receipt_does_not_exist', 'Receipt does not exist.'); + } + } + + public function uploadReceipt(UploadExpenseReceiptRequest $request, Expense $expense) + { + $this->authorize('update', $expense); + + $data = json_decode($request->attachment_receipt); + + if ($data) { + if ($request->type === 'edit') { + $expense->clearMediaCollection('receipts'); + } + + $expense->addMediaFromBase64($data->data) + ->usingFileName($data->name) + ->toMediaCollection('receipts'); + } + + return response()->json([ + 'success' => 'Expense receipts uploaded successfully', + ], 200); + } } diff --git a/app/Http/Controllers/V1/Admin/Expense/ShowReceiptController.php b/app/Http/Controllers/V1/Admin/Expense/ShowReceiptController.php deleted file mode 100644 index 9d3ac9de..00000000 --- a/app/Http/Controllers/V1/Admin/Expense/ShowReceiptController.php +++ /dev/null @@ -1,30 +0,0 @@ -authorize('view', $expense); - - if ($expense) { - $media = $expense->getFirstMedia('receipts'); - - if ($media) { - return response()->file($media->getPath()); - } - - return respondJson('receipt_does_not_exist', 'Receipt does not exist.'); - } - } -} diff --git a/app/Http/Controllers/V1/Admin/Expense/UploadReceiptController.php b/app/Http/Controllers/V1/Admin/Expense/UploadReceiptController.php deleted file mode 100644 index 2122ded7..00000000 --- a/app/Http/Controllers/V1/Admin/Expense/UploadReceiptController.php +++ /dev/null @@ -1,39 +0,0 @@ -authorize('update', $expense); - - $data = json_decode($request->attachment_receipt); - - if ($data) { - if ($request->type === 'edit') { - $expense->clearMediaCollection('receipts'); - } - - $expense->addMediaFromBase64($data->data) - ->usingFileName($data->name) - ->toMediaCollection('receipts'); - } - - return response()->json([ - 'success' => 'Expense receipts uploaded successfully', - ], 200); - } -} diff --git a/routes/api.php b/routes/api.php index 05bc4078..5ab82477 100644 --- a/routes/api.php +++ b/routes/api.php @@ -13,8 +13,6 @@ use App\Http\Controllers\V1\Admin\Estimate\EstimateTemplatesController; use App\Http\Controllers\V1\Admin\ExchangeRate\ExchangeRateProviderController; use App\Http\Controllers\V1\Admin\Expense\ExpenseCategoriesController; use App\Http\Controllers\V1\Admin\Expense\ExpensesController; -use App\Http\Controllers\V1\Admin\Expense\ShowReceiptController; -use App\Http\Controllers\V1\Admin\Expense\UploadReceiptController; use App\Http\Controllers\V1\Admin\General\BootstrapController; use App\Http\Controllers\V1\Admin\General\BulkExchangeRateController; use App\Http\Controllers\V1\Admin\General\ConfigController; @@ -308,9 +306,9 @@ Route::prefix('/v1')->group(function () { // Expenses // ---------------------------------- - Route::get('/expenses/{expense}/show/receipt', ShowReceiptController::class); + Route::get('/expenses/{expense}/show/receipt', [ExpensesController::class, 'showReceipt']); - Route::post('/expenses/{expense}/upload/receipts', UploadReceiptController::class); + Route::post('/expenses/{expense}/upload/receipts', [ExpensesController::class, 'uploadReceipt']); Route::post('/expenses/delete', [ExpensesController::class, 'delete']); diff --git a/routes/web.php b/routes/web.php index 2c27d156..4b1d541a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,7 +1,7 @@ prefix('reports')->group(function () { // download expense receipt // ------------------------------------------------- Route::get('/expenses/{expense}/download-receipt', DownloadReceiptController::class); - Route::get('/expenses/{expense}/receipt', ShowReceiptController::class); + Route::get('/expenses/{expense}/receipt', [ExpensesController::class, 'showReceipt']); }); // PDF Endpoints