From 72462e8016aedfb17d7d52a08987216fc6f9a957 Mon Sep 17 00:00:00 2001 From: faezehzafarbakhsh Date: Wed, 10 Jun 2026 15:24:50 +0330 Subject: [PATCH] create list for province and city --- .../Controllers/V3/CMMSMachinesController.php | 3 ++- app/Http/Controllers/V3/CityController.php | 19 +++++++++++++++ .../Report/ReportMachineController.php | 24 +++++++++++++++++++ .../Controllers/V3/ProvinceController.php | 19 +++++++++++++++ app/Models/City.php | 1 + app/Models/Province.php | 1 + .../Mission/Report/ReportMachineService.php | 10 ++++---- routes/v3.php | 18 +++++++++++++- 8 files changed, 88 insertions(+), 7 deletions(-) create mode 100644 app/Http/Controllers/V3/CityController.php create mode 100644 app/Http/Controllers/V3/ProvinceController.php diff --git a/app/Http/Controllers/V3/CMMSMachinesController.php b/app/Http/Controllers/V3/CMMSMachinesController.php index 3fa35b93..a5e18a34 100644 --- a/app/Http/Controllers/V3/CMMSMachinesController.php +++ b/app/Http/Controllers/V3/CMMSMachinesController.php @@ -23,7 +23,8 @@ class CMMSMachinesController extends Controller $request, allowedFilters: ['*'], allowedSortings: ['*'], - allowedSelects: ['machine_code', 'id', 'plak_number', 'car_name', 'car_type', 'status'], + allowedSelects: ['machine_code', 'id', 'plak_number', 'car_name', 'car_type', 'status', + 'province_id', 'city_id', 'station_id', 'status','driver_name'], )); } diff --git a/app/Http/Controllers/V3/CityController.php b/app/Http/Controllers/V3/CityController.php new file mode 100644 index 00000000..50d0d48f --- /dev/null +++ b/app/Http/Controllers/V3/CityController.php @@ -0,0 +1,19 @@ +successResponse(City::query()->where('cities.province_id', $request->query('province_id'))->get(['id', 'name_fa'])); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportMachineController.php b/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportMachineController.php index 5f5700a3..94c99b47 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportMachineController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportMachineController.php @@ -72,6 +72,18 @@ class ReportMachineController extends Controller ]); } + /** + * @throws Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + */ + public function countryMachineTypesActivityExcel(Request $request, ReportMachineService $reportMachineService): BinaryFileResponse + { + $data = $reportMachineService->countryMachineTypesActivity($request); + $name = 'گزارش ماشین آلات'.verta()->now()->format('Y-m-d H-i').'.xlsx'; + + return Excel::download(new machineReport($data), $name); + } + public function provinceMachineTypesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse { return $this->successResponse([ @@ -85,4 +97,16 @@ class ReportMachineController extends Controller // ->get(['id', 'name_fa']) ]); } + + /** + * @throws Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + */ + public function provinceMachineTypesActivityExcel(Request $request, ReportMachineService $reportMachineService): BinaryFileResponse + { + $data = $reportMachineService->provinceMachineTypesActivity($request); + $name = 'گزارش ماشین آلات'.verta()->now()->format('Y-m-d H-i').'.xlsx'; + + return Excel::download(new machineReport($data), $name); + } } diff --git a/app/Http/Controllers/V3/ProvinceController.php b/app/Http/Controllers/V3/ProvinceController.php new file mode 100644 index 00000000..e295370c --- /dev/null +++ b/app/Http/Controllers/V3/ProvinceController.php @@ -0,0 +1,19 @@ +successResponse(Province::all(['id', 'name_fa'])); + } +} \ No newline at end of file diff --git a/app/Models/City.php b/app/Models/City.php index 614cc699..4a312930 100644 --- a/app/Models/City.php +++ b/app/Models/City.php @@ -14,6 +14,7 @@ class City extends Model * * @var array */ + protected $guarded = ['id']; protected $hidden = [ 'name_en', 'feature_id', diff --git a/app/Models/Province.php b/app/Models/Province.php index 0c803401..3254540e 100644 --- a/app/Models/Province.php +++ b/app/Models/Province.php @@ -13,6 +13,7 @@ class Province extends Model * * @var array */ + protected $guarded = ['id']; protected $hidden = [ 'feature_id', //'center_lat', diff --git a/app/Services/Cartables/Mission/Report/ReportMachineService.php b/app/Services/Cartables/Mission/Report/ReportMachineService.php index 3fba507b..9a454fdb 100644 --- a/app/Services/Cartables/Mission/Report/ReportMachineService.php +++ b/app/Services/Cartables/Mission/Report/ReportMachineService.php @@ -20,7 +20,7 @@ class ReportMachineService m.machine_code, cm.car_name, COUNT(*) AS missions, - SUM(m.end_km - m.km) AS func, + SUM(m.end_km - m.km) AS func FROM missions m JOIN cmms_machines cm ON cm.id = m.machine_id WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to @@ -59,7 +59,7 @@ class ReportMachineService $sql = "SELECT cm.car_type, COUNT(*) AS missions, - SUM(m.end_km - m.km) AS func, + SUM(m.end_km - m.km) AS func FROM missions m JOIN cmms_machines cm ON cm.id = m.machine_id WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to @@ -80,7 +80,7 @@ class ReportMachineService $sql = "SELECT cm.car_type, COUNT(*) AS missions, - SUM(m.end_km - m.km) AS func, + SUM(m.end_km - m.km) AS func FROM missions m JOIN cmms_machines cm ON cm.id = m.machine_id WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to AND province_id = :province_id @@ -102,7 +102,7 @@ class ReportMachineService m.driver_id, m.driver_name, COUNT(*) AS missions, - SUM(m.end_km - m.km) AS func, + SUM(m.end_km - m.km) AS func FROM missions m WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to GROUP BY m.driver_id;"; @@ -123,7 +123,7 @@ class ReportMachineService m.driver_id, m.driver_name, COUNT(*) AS missions, - SUM(m.end_km - m.km) AS func, + SUM(m.end_km - m.km) AS func FROM missions m WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to AND province_id = :province_id GROUP BY m.driver_id;"; diff --git a/routes/v3.php b/routes/v3.php index 00410870..7873d96a 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -1,6 +1,7 @@ build(\App\Models\User::all(), ['id' => 'کد یکتا', 'username' => 'نام کاربری'])->download(); -}); \ No newline at end of file +}); + +Route::prefix('provinces') + ->name('provinces.') + ->controller(ProvinceController::class) + ->group(function () { + Route::get('/list', 'list')->name('list'); + }); + +Route::prefix('cities') + ->name('cities.') + ->controller(CityController::class) + ->group(function () { + Route::get('/list', 'list')->name('list'); + }); \ No newline at end of file