mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-04-15 01:04:03 +00:00
Merge ShowReceiptController and UploadReceiptController into ExpensesController
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V1\Admin\Expense;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Expense;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class ShowReceiptController extends Controller
|
||||
{
|
||||
/**
|
||||
* Retrieve details of an expense receipt from storage.
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function __invoke(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.');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V1\Admin\Expense;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\ExpenseRequest;
|
||||
use App\Http\Requests\UploadExpenseReceiptRequest;
|
||||
use App\Models\Expense;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class UploadReceiptController extends Controller
|
||||
{
|
||||
/**
|
||||
* Upload the expense receipts to storage.
|
||||
*
|
||||
* @param ExpenseRequest $request
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function __invoke(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);
|
||||
}
|
||||
}
|
||||
@@ -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']);
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\V1\Admin\Auth\LoginController;
|
||||
use App\Http\Controllers\V1\Admin\Expense\ShowReceiptController;
|
||||
use App\Http\Controllers\V1\Admin\Expense\ExpensesController;
|
||||
use App\Http\Controllers\V1\Admin\Report\CustomerSalesReportController;
|
||||
use App\Http\Controllers\V1\Admin\Report\ExpensesReportController;
|
||||
use App\Http\Controllers\V1\Admin\Report\ItemSalesReportController;
|
||||
@@ -73,7 +73,7 @@ Route::middleware('auth:sanctum')->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
|
||||
|
||||
Reference in New Issue
Block a user