From c8b66e29860dd06a8ca1b94f2e55381857632958 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Tue, 17 Jun 2025 13:12:30 +0330 Subject: [PATCH] create new postision for report --- .../V3/RoadPatrole/OperatorController.php | 28 +-------- .../V3/RoadPatrole/ReportController.php | 58 +++++++++++++++++++ .../V3/RoadPatrole/SupervisorController.php | 25 +------- routes/v3.php | 13 +++-- 4 files changed, 67 insertions(+), 57 deletions(-) diff --git a/app/Http/Controllers/V3/RoadPatrole/OperatorController.php b/app/Http/Controllers/V3/RoadPatrole/OperatorController.php index ca138c1e..c423388c 100644 --- a/app/Http/Controllers/V3/RoadPatrole/OperatorController.php +++ b/app/Http/Controllers/V3/RoadPatrole/OperatorController.php @@ -31,33 +31,7 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse; class OperatorController extends Controller { use ApiResponse; - public function provincePatrolActivity(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse - { - $request->validate(["province_id" => "required",]); - - $activities = $roadPatrolTableService->provinceActivity($request); - - $edarateShahri = EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']); - - return $this->successResponse([ - 'activities' => $activities['data'], - 'edarateShahri' => $edarateShahri, - ]); - } - - public function provinceActivityExcel(Request $request, RoadPatrolTableService $roadPatrolTableService): BinaryFileResponse - { - $activities = $roadPatrolTableService->provinceActivity($request); - $edarateShahri = EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']); - - $name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; - - return Excel::download(new ProvinceActivity([ - 'activities' => $activities, - 'edarateShahri' => $edarateShahri, - ]), $name); - } - public function operatorIndex(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse + public function index(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse { $data = $roadPatrolTableService->operatorCartableReport($request); return response()->json($data); diff --git a/app/Http/Controllers/V3/RoadPatrole/ReportController.php b/app/Http/Controllers/V3/RoadPatrole/ReportController.php index b1e4f79c..a900029e 100644 --- a/app/Http/Controllers/V3/RoadPatrole/ReportController.php +++ b/app/Http/Controllers/V3/RoadPatrole/ReportController.php @@ -2,11 +2,18 @@ namespace App\Http\Controllers\V3\RoadPatrole; +use App\Exports\V3\RoadPatrols\CountryActivity; +use App\Exports\V3\RoadPatrols\ProvinceActivity; use App\Http\Controllers\Controller; use App\Http\Traits\ApiResponse; +use App\Models\EdarateShahri; +use App\Models\Province; use App\Models\RoadPatrol; +use App\Services\Cartables\RoadPatrolTableService; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; +use Maatwebsite\Excel\Facades\Excel; +use Symfony\Component\HttpFoundation\BinaryFileResponse; class ReportController extends Controller { @@ -63,4 +70,55 @@ class ReportController extends Controller $data['observed_items'] = $observed_items; return $this->successResponse($data); } + public function countryPatrolActivity(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse + { + $activities = $roadPatrolTableService->countryActivity($request); + + $provinces = Province::all(['id', 'name_fa']); + + return $this->successResponse([ + 'activities' => $activities['data'], + 'provinces' => $provinces + ]); + } + + public function provincePatrolActivity(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse + { + $request->validate(["province_id" => "required",]); + + $activities = $roadPatrolTableService->provinceActivity($request); + + $edarateShahri = EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']); + + return $this->successResponse([ + 'activities' => $activities['data'], + 'edarateShahri' => $edarateShahri, + ]); + } + + public function countryActivityExcel(Request $request, RoadPatrolTableService $roadPatrolTableService): BinaryFileResponse + { + $activities = $roadPatrolTableService->countryActivity($request); + $provinces = Province::all(['id', 'name_fa']); + + $name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; + + return Excel::download(new CountryActivity([ + 'activities' => $activities, + 'provinces' => $provinces, + ]), $name); + } + + public function provinceActivityExcel(Request $request, RoadPatrolTableService $roadPatrolTableService): BinaryFileResponse + { + $activities = $roadPatrolTableService->provinceActivity($request); + $edarateShahri = EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']); + + $name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; + + return Excel::download(new ProvinceActivity([ + 'activities' => $activities, + 'edarateShahri' => $edarateShahri, + ]), $name); + } } diff --git a/app/Http/Controllers/V3/RoadPatrole/SupervisorController.php b/app/Http/Controllers/V3/RoadPatrole/SupervisorController.php index d3a60f88..e5be5893 100644 --- a/app/Http/Controllers/V3/RoadPatrole/SupervisorController.php +++ b/app/Http/Controllers/V3/RoadPatrole/SupervisorController.php @@ -17,30 +17,7 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse; class SupervisorController extends Controller { use ApiResponse; - public function countryPatrolActivity(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse - { - $activities = $roadPatrolTableService->countryActivity($request); - - $provinces = Province::all(['id', 'name_fa']); - - return $this->successResponse([ - 'activities' => $activities['data'], - 'provinces' => $provinces - ]); - } - public function countryActivityExcel(Request $request, RoadPatrolTableService $roadPatrolTableService): BinaryFileResponse - { - $activities = $roadPatrolTableService->countryActivity($request); - $provinces = Province::all(['id', 'name_fa']); - - $name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; - - return Excel::download(new CountryActivity([ - 'activities' => $activities, - 'provinces' => $provinces, - ]), $name); - } - public function supervisorIndex(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse + public function index(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse { $data = $roadPatrolTableService->supervisorCartableReport($request); diff --git a/routes/v3.php b/routes/v3.php index 1aa3954d..edae3210 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -31,6 +31,7 @@ use App\Http\Controllers\V3\NotificationController; use App\Http\Controllers\V3\PermissionManagementController; use App\Http\Controllers\V3\ProfileController; use App\Http\Controllers\V3\RahdaranController; +use App\Http\Controllers\V3\RoadPatrole\ReportController; use Illuminate\Support\Facades\Route; Route::get('admin/permissions', function () { @@ -252,9 +253,7 @@ Route::prefix('road_patrol') ->name('operator.') ->controller(App\Http\Controllers\V3\RoadPatrole\OperatorController::class) ->group(function () { - Route::get('/province_activity', 'provincePatrolActivity')->name('provincePatrolActivity'); - Route::get('/province_activity_excel', 'provinceActivityExcel')->name('provinceActivityExcel'); - Route::get('/index', 'operatorIndex') + Route::get('/', 'index') ->middleware('permission:add-road-patrol') ->name('index'); @@ -272,6 +271,10 @@ Route::prefix('road_patrol') ->name('report.') ->controller(ReportController::class) ->group(function () { + Route::get('/country_activity', 'countryPatrolActivity')->name('countryPatrolActivity'); + Route::get('/province_activity', 'provincePatrolActivity')->name('provincePatrolActivity'); + Route::get('/country_activity_excel', 'countryActivityExcel')->name('countryActivityExcel'); + Route::get('/province_activity_excel', 'provinceActivityExcel')->name('provinceActivityExcel'); Route::get('/activities_on_map', 'activitiesOnMap')->name('activitiesOnMap'); Route::get('/show_on_map/{roadPatrol}', 'showOnMap')->name('showOnMap'); Route::get('/{roadPatrol}', 'getReport') @@ -281,14 +284,12 @@ Route::prefix('road_patrol') ->name('supervisor.') ->controller(App\Http\Controllers\V3\RoadPatrole\SupervisorController::class) ->group(function () { - Route::get('/index', 'supervisorIndex') + Route::get('/','index') ->middleware(['permission:show-road-patrol-supervise-cartable|show-road-patrol-supervise-cartable-province']) ->name('index'); Route::get('/report', 'supervisorCartableReport') ->name('cartableReport'); - Route::get('/country_activity', 'countryPatrolActivity')->name('countryPatrolActivity'); - Route::get('/province_activity_excel', 'provinceActivityExcel')->name('provinceActivityExcel'); }); });