add map activities to cartables

This commit is contained in:
2025-02-02 11:25:04 +03:30
parent b505389a8a
commit d7990dd985
4 changed files with 31 additions and 45 deletions

View File

@@ -8,6 +8,8 @@ use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse;
use App\Models\EdarateShahri;
use App\Models\Province;
use App\Models\RoadObserved;
use App\Models\RoadPatrol;
use App\Services\Reports\RoadPatrolReportService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -66,4 +68,25 @@ class RoadPatrolReportController extends Controller
return Excel::download(new ProvinceActivity($activities), $name);
}
public function activitiesOnMap(Request $request): JsonResponse
{
$date_from = $request->date_from ? $request->date_from .' 00:00:00' : Date('Y-m-d') .' 00:00:00';
$date_to = $request->date_to ? $request->date_to.' 23:59:59' : (new \DateTime('tomorrow'))->format('Y-m-d').' 23:59:59';
$data = RoadPatrol::query()->when($request->province_id, function ($query, $province) {
return $query->where('province_id', '=', $province);
})
->when($request->edare_id, function ($query, $edare_id) {
return $query->where('edare_id', '=', $edare_id);
})
->whereBetween('created_at', [
$date_from,
$date_to,
])
->select('id', 'start_lat', 'start_lon')
->get();
return $this->successResponse($data);
}
}

View File

@@ -95,9 +95,7 @@ class RoadItemsProjectController extends Controller
public function restore(RoadItemsProject $roadItemsProject): JsonResponse
{
if ($roadItemsProject->status == 0) {
return response()->json([
'message' => 'امکان بازگردانی وضعیت این فعالیت وجود ندارد!'
], 400);
return $this->errorResponse('امکان بازگردانی وضعیت این فعالیت وجود ندارد!');
}
$roadItemsProject->update([
@@ -170,15 +168,11 @@ class RoadItemsProjectController extends Controller
$user = auth()->user();
if ($user->edarate_ostani_id || is_null($user->city_id)) {
return response()->json([
'message' => 'امکان ثبت فعالیت برای ادارات استانی و ستادی وجود ندارد!'
], 400);
return $this->errorResponse('امکان ثبت فعالیت برای ادارات استانی و ستادی وجود ندارد!');
}
if (is_null($user->edarate_shahri_id)) {
return response()->json([
'message' => 'اداره شهری برای شما در سامانه ثبت نشده است!'
], 400);
return $this->errorResponse('اداره شهری برای شما در سامانه ثبت نشده است!');
}
$info_item = InfoItem::query()->where('item', $request->item_id)
@@ -241,9 +235,7 @@ class RoadItemsProjectController extends Controller
$road_item = RoadItemsProject::store($user, $attributes, $before_image, $after_image, $request->observed_item_id);
if ($road_item === -1) {
return response()->json([
'message' => 'اقدام مربوطه قبلا رسیدگی شده است.'
], 400);
return $this->errorResponse('اقدام مربوطه قبلا رسیدگی شده است.');
}
$road_item->rahdaran()->attach($request->rahdaran_id);

View File

@@ -150,15 +150,11 @@ class RoadPatrolProjectController extends Controller
$user = auth()->user();
if ($user->edarate_ostani_id || is_null($user->city_id)) {
return response()->json([
'message' => 'امکان ثبت فعالیت برای ادارات استانی وجود ندارد!'
], 400);
return $this->errorResponse('امکان ثبت فعالیت برای ادارات استانی وجود ندارد!');
}
if (is_null($user->edarate_shahri_id)) {
return response()->json([
'message' => 'اداره شهری برای شما در سامانه ثبت نشده است!'
], 400);
return $this->errorResponse('اداره شهری برای شما در سامانه ثبت نشده است!');
}
$edare_id = $user->edarate_shahri_id ?? $user->edarate_ostani_id;
@@ -279,9 +275,7 @@ class RoadPatrolProjectController extends Controller
$road_item = RoadItemsProject::store($user, $attributes, $before_image, $after_image, $observed_item->id);
if ($road_item === -1) {
return response()->json([
'message' => 'اقدام مربوطه قبلا رسیدگی شده است.'
], 400);
return $this->errorResponse('اقدام مربوطه قبلا رسیدگی شده است.');
}
$road_item->rahdaran()->attach($item['road_item_rahdaran_id']);
@@ -332,27 +326,6 @@ class RoadPatrolProjectController extends Controller
return $this->successResponse($data);
}
public function getAllDataToMap(Request $request): JsonResponse
{
$date_from = $request->date_from ? $request->date_from .' 00:00:00' : Date('Y-m-d') .' 00:00:00';
$date_to = $request->date_to ? $request->date_to.' 23:59:59' : (new \DateTime('tomorrow'))->format('Y-m-d').' 23:59:59';
$data = RoadPatrol::query()->when($request->province_id, function ($query, $province) {
return $query->where('province_id', '=', $province);
})
->when($request->edare_id, function ($query, $edare_id) {
return $query->where('edare_id', '=', $edare_id);
})
->whereBetween('created_at', [
$date_from,
$date_to,
])
->select('id', 'start_lat', 'start_lon')
->get();
return $this->successResponse($data);
}
public function map(Request $request): JsonResponse
{
$province = $request->province_id;

View File

@@ -152,9 +152,6 @@ Route::prefix('road_patrols')
Route::get('/operator/report/{roadPatrol}', 'getReport')
->name('getReport');
Route::get('/operator/map_data', 'getAllDataToMap')
->name('getAllDataToMap');
Route::get('/detail/{roadPatrol}', 'show')
->name('show');
});
@@ -214,4 +211,5 @@ Route::prefix('road_patrol_reports')
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');
});