diff --git a/app/Http/Controllers/V3/Reports/RoadItemsReportController.php b/app/Http/Controllers/V3/Reports/RoadItemsReportController.php index c5be196a..d89dbb3b 100644 --- a/app/Http/Controllers/V3/Reports/RoadItemsReportController.php +++ b/app/Http/Controllers/V3/Reports/RoadItemsReportController.php @@ -4,7 +4,9 @@ namespace App\Http\Controllers\V3\Reports; use App\Http\Controllers\Controller; use App\Http\Traits\ApiResponse; +use App\Models\EdarateShahri; use App\Models\InfoItem; +use App\Models\Province; use App\Models\RoadItemsProject; use App\Models\RoadPatrol; use Illuminate\Http\JsonResponse; @@ -24,7 +26,7 @@ class RoadItemsReportController extends Controller ]); } - public function getRoadItemsPerSubItem(Request $request): JsonResponse + public function provinceActivityPerSubItem(Request $request): JsonResponse { $fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString(); $toDate = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString(); @@ -67,7 +69,7 @@ class RoadItemsReportController extends Controller ]); } - public function getCityRoadItemsPerSubItem(Request $request): JsonResponse + public function cityActivityPerSubItem(Request $request): JsonResponse { $fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString(); $toDate = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString(); @@ -88,7 +90,7 @@ class RoadItemsReportController extends Controller ->groupBy('edarat_id', 'sub_item') ->get(); - $items = InfoItem::where('item', $item)->get()->keyBy('sub_item'); + $items = InfoItem::query()->where('item', $item)->get()->keyBy('sub_item'); $cityRoadItemsPerSubItem->each(function ($value) use ($items) { if (isset($items[$value->t])) { @@ -102,7 +104,7 @@ class RoadItemsReportController extends Controller ]); } - public function activityStatisticsPerProvince(Request $request): JsonResponse + public function provinceActivityPerItem(Request $request): JsonResponse { if (auth()->check()) { auth()->user()->addActivityComplete(1033); @@ -114,7 +116,6 @@ class RoadItemsReportController extends Controller $isSpecialUser = in_array($user->username, ['witel', 'drdanesh']); $provinceId = $isSpecialUser ? null : $user->province_id; - // Base queries $roadItemsProjectsQuery = RoadItemsProject::query() ->selectRaw('COUNT(*) AS s, province_id AS p, item AS i') ->where('status', 1) @@ -137,10 +138,15 @@ class RoadItemsReportController extends Controller ->unionAll($roadItemsProjectsSummaryQuery) ->get(); - return $this->successResponse($data); + $provinces = Province::all(['id', 'name']); + + return $this->successResponse([ + 'activities' => $data, + 'provinces' => $provinces, + ]); } - public function activityStatisticsPerCity(Request $request): JsonResponse + public function cityActivityPerItem(Request $request): JsonResponse { $provinceId = $request->province_id; $fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString(); @@ -170,7 +176,12 @@ class RoadItemsReportController extends Controller ->unionAll($roadItemsProjectsSummaryQuery) ->get(); - return $this->successResponse($data); + $edarateShahri = EdarateShahri::all(['id', 'name'])->where('province_id', $provinceId); + + return $this->successResponse([ + 'activities' => $data, + 'edaratShahri' => $edarateShahri, + ]); } public function map(Request $request): JsonResponse diff --git a/app/Http/Controllers/V3/Reports/RoadPatrolReportController.php b/app/Http/Controllers/V3/Reports/RoadPatrolReportController.php index 4c56abac..16f85d01 100644 --- a/app/Http/Controllers/V3/Reports/RoadPatrolReportController.php +++ b/app/Http/Controllers/V3/Reports/RoadPatrolReportController.php @@ -17,7 +17,7 @@ class RoadPatrolReportController extends Controller public function provincePatrolData(Request $request): JsonResponse { $fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString(); - $dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->addDay()->startOfDay()->toDateTimeString(); + $dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString(); $data = RoadPatrolProject::provincePatrolData($fromDate, $dateTo); return $this->successResponse($data); @@ -27,7 +27,7 @@ class RoadPatrolReportController extends Controller { $request->validate(["province_id" => "required",]); $fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString(); - $dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->addDay()->startOfDay()->toDateTimeString(); + $dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString(); $data = RoadPatrolProject::edarehPatrolData($fromDate, $dateTo, $request->province_id); return $this->successResponse($data); diff --git a/routes/v3.php b/routes/v3.php index c8a023a6..198fc35d 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -195,10 +195,10 @@ Route::prefix('road_item_reports') ->controller(RoadItemsReportController::class) ->group(function () { Route::get('/get_sub_items', 'getSubItems')->name('getSubItems'); - Route::get('/get_items', 'getRoadItemsPerSubItem')->name('getRoadItemsPerSubItem'); - Route::get('/get_items_city', 'getCityRoadItemsPerSubItem')->name('getCityRoadItemsPerSubItem'); - Route::get('/province_statistics', 'activityStatisticsPerProvince')->name('activityStatisticsPerProvince'); - Route::get('/city_statistics', 'activityStatisticsPerCity')->name('activityStatisticsPerCity'); + Route::get('/get_items', 'provinceActivityPerSubItem')->name('provinceActivityPerSubItem'); + Route::get('/get_items_city', 'cityActivityPerSubItem')->name('cityActivityPerSubItem'); + Route::get('/province_statistics', 'provinceActivityPerItem')->name('provinceActivityPerItem'); + Route::get('/city_statistics', 'cityActivityPerItem')->name('cityActivityPerItem'); Route::get('/map', 'map')->name('map'); });