change structure of road patrol

This commit is contained in:
2025-06-16 12:35:04 +03:30
parent 6aa073f0ae
commit d16effc80e
9 changed files with 73 additions and 75 deletions

View File

@@ -1,11 +0,0 @@
<?php
namespace App\Http\Controllers\RoadPatrole;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class OperateorController extends Controller
{
//
}

View File

@@ -7,8 +7,8 @@ use App\Exports\V3\RoadPatrols\OperatorCartableReport;
use App\Exports\V3\RoadPatrols\SupervisorCartableReport;
use App\Facades\Sms\Sms;
use App\Http\Controllers\Controller;
use App\Http\Requests\V3\RoadPatrolProject\DeleteRequest;
use App\Http\Requests\V3\RoadPatrolProject\StoreRequest;
use App\Http\Requests\V3\RoadPatrol\DeleteRequest;
use App\Http\Requests\V3\RoadPatrol\StoreRequest;
use App\Http\Traits\ApiResponse;
use App\Models\EdarateShahri;
use App\Models\InfoItem;

View File

@@ -2,32 +2,16 @@
namespace App\Http\Controllers\V3\RoadPatrole;
use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse;
use App\Models\EdarateShahri;
use App\Models\RoadPatrol;
use App\Services\Cartables\RoadPatrolTableService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class OperateorController extends Controller
class DetailController 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 activitiesOnMap(Request $request): JsonResponse
{
$date_from = $request->from_date ? $request->from_date .' 00:00:00' : now()->startOfDay()->toDateTimeString();

View File

@@ -2,19 +2,35 @@
namespace App\Http\Controllers\V3\RoadPatrole;
use App\Exports\V3\RoadPatrols\OperatorCartableReport;
use App\Exports\V3\RoadPatrols\ProvinceActivity;
use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse;
use App\Models\EdarateShahri;
use App\Services\Cartables\RoadPatrolTableService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class OperateorReportController extends Controller
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);

View File

@@ -2,12 +2,15 @@
namespace App\Http\Controllers\V3\RoadPatrole;
use App\Exports\V3\RoadPatrols\CountryActivity;
use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse;
use App\Models\Province;
use App\Services\Cartables\RoadPatrolTableService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class SupervisorController extends Controller
{
@@ -23,6 +26,19 @@ class SupervisorController extends Controller
'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);
}
}

View File

@@ -1,31 +0,0 @@
<?php
namespace App\Http\Controllers\V3\RoadPatrole;
use App\Exports\V3\RoadPatrols\CountryActivity;
use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse;
use App\Models\Province;
use App\Services\Cartables\RoadPatrolTableService;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class SupervisorReportController extends Controller
{
use ApiResponse;
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);
}
}

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Http\Requests\V3\RoadPatrolProject;
namespace App\Http\Requests\V3\RoadPatrol;
use Illuminate\Foundation\Http\FormRequest;

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Http\Requests\V3\RoadPatrolProject;
namespace App\Http\Requests\V3\RoadPatrol;
use App\Rules\VerificationCode;
use Illuminate\Foundation\Http\FormRequest;

View File

@@ -237,19 +237,43 @@ Route::prefix('road_item_reports')
Route::get('/show_on_map/{roadItemsProject}', 'showOnMap')->name('showOnMap');
});
Route::prefix('road_patrol_reports')
->name('roadPatrolReports.')
->controller(RoadPatrolReportController::class)
Route::prefix('road_patrol')
->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::prefix('details')
->name('details.')
->controller(\App\Http\Controllers\V3\RoadPatrole\DetailController::class)
->group(function () {
Route::get('/activities_on_map', 'activitiesOnMap')->name('activitiesOnMap');
Route::get('/show_on_map/{roadPatrol}', 'showOnMap')->name('showOnMap');
});
Route::prefix('operator')
->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::prefix('supervisor')
->name('supervisor.')
->controller(App\Http\Controllers\V3\RoadPatrole\SupervisorController::class)
->group(function () {
Route::get('/country_activity', 'countryPatrolActivity')->name('countryPatrolActivity');
Route::get('/province_activity_excel', 'provinceActivityExcel')->name('provinceActivityExcel');
});
});
//Route::prefix('road_patrol_reports')
// ->name('roadPatrolReports.')
// ->controller(RoadPatrolReportController::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::prefix('damages')
->name('damages.')
->middleware('permission:manage-damage')