From 3028d6a3ee23cfaa250ac434e62dc61421f6e277 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 26 Feb 2025 16:02:16 +0330 Subject: [PATCH 1/5] debug intern mistakes --- .../Dashboard/RoadObservationController.php | 3 +- .../V3/RoadObservation/RegisterRequest.php | 32 +++++++++++++++++++ app/Services/DataTable/Filter/ApplyFilter.php | 2 +- .../AccidentReceipt/DataTableReport.blade.php | 18 +++++++---- ...e.php => OperatorCartableReport.blade.php} | 0 routes/v3.php | 2 +- 6 files changed, 48 insertions(+), 9 deletions(-) create mode 100644 app/Http/Requests/V3/RoadObservation/RegisterRequest.php rename resources/views/v3/Reports/RoadObservation/{OpratorCartableReport.blade.php => OperatorCartableReport.blade.php} (100%) diff --git a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php b/app/Http/Controllers/V3/Dashboard/RoadObservationController.php index c8a52bdc..00b39cab 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadObservationController.php @@ -8,6 +8,7 @@ use App\Facades\File\FileFacade; use App\Facades\Sms\Sms; use App\Http\Controllers\Controller; use App\Http\Requests\V3\RoadObservation\ReferRequest; +use App\Http\Requests\V3\RoadObservation\RegisterRequest; use App\Http\Requests\V3\RoadObservation\RestoreRequest; use App\Http\Requests\V3\RoadObservation\VerifyBySupervisorRequest; use App\Http\Traits\ApiResponse; @@ -85,7 +86,7 @@ class RoadObservationController extends Controller return Excel::download(new ComplaintsReport($data['data']), $name); } - public function register(Request $request, RoadObserved $roadObserved, NikarayanService $nikarayanService): JsonResponse + public function register(RegisterRequest $request, RoadObserved $roadObserved, NikarayanService $nikarayanService): JsonResponse { $roadObservedData = [ 'status' => 0, diff --git a/app/Http/Requests/V3/RoadObservation/RegisterRequest.php b/app/Http/Requests/V3/RoadObservation/RegisterRequest.php new file mode 100644 index 00000000..68f93dae --- /dev/null +++ b/app/Http/Requests/V3/RoadObservation/RegisterRequest.php @@ -0,0 +1,32 @@ +|string> + */ + public function rules(): array + { + return [ + 'rms_status' => 'required|in:1,2', + 'rms_description' => 'required_if:rms_status,1|string', + 'image_before' => 'required_if:rms_status,1|file|mimes:jpg,jpeg,png', + 'image_after' => 'required_if:rms_status,1|file|mimes:jpg,jpeg,png', + 'start_point' => 'required_if:rms_status,1|string', + ]; + } +} diff --git a/app/Services/DataTable/Filter/ApplyFilter.php b/app/Services/DataTable/Filter/ApplyFilter.php index 971abccb..60ac88ea 100644 --- a/app/Services/DataTable/Filter/ApplyFilter.php +++ b/app/Services/DataTable/Filter/ApplyFilter.php @@ -66,7 +66,7 @@ class ApplyFilter } $relation = $this->filter->getRelation(); - return $relation ? $this->applyFilterToRelation($relation) : $this->searchFilter->apply(); + return method_exists($this->query->getModel(), $relation) ? $this->applyFilterToRelation($relation) : $this->searchFilter->apply(); } protected function applyFilterToRelation(string $relation): Builder diff --git a/resources/views/v3/Reports/AccidentReceipt/DataTableReport.blade.php b/resources/views/v3/Reports/AccidentReceipt/DataTableReport.blade.php index 5d0a85fd..134166b1 100644 --- a/resources/views/v3/Reports/AccidentReceipt/DataTableReport.blade.php +++ b/resources/views/v3/Reports/AccidentReceipt/DataTableReport.blade.php @@ -26,15 +26,18 @@ استان شهرستان نام محور + نام راننده + کد ملی راننده + شماره موبایل راننده + پلاک نوع تصادف تاریخ تصادف مبلغ کل خسارت - پلاک - تاریخ ثبت - آخرین وضعیت مبلغ فیش مبلغ بیمه مبلغ داغی + تاریخ ثبت + وضعیت @@ -45,15 +48,18 @@ {{$item->province_fa}} {{$item->city_fa}} {{$item->axis_name}} + {{$item->driver_name}} + {{$item->driver_national_code}} + {{$item->driver_phone_number}} + {{$item->plaque}} {{$item->accident_type_fa}} {{Hekmatinasser\Verta\Verta::instance($item->accident_date)->format('Y/n/j')}} {{$item->accident_time}} {{$item->sum ?? 0}} - {{$item->plaque}} - {{Hekmatinasser\Verta\Verta::instance($item->created_at)->format('Y/n/j')}} - {{$item->status_fa}} {{$item->final_amount ?? 0}} {{$item->deposit_insurance_amount ?? 0}} {{$item->deposit_daghi_amount ?? 0}} + {{Hekmatinasser\Verta\Verta::instance($item->created_at)->format('Y/n/j')}} + {{$item->status_fa}} @endforeach diff --git a/resources/views/v3/Reports/RoadObservation/OpratorCartableReport.blade.php b/resources/views/v3/Reports/RoadObservation/OperatorCartableReport.blade.php similarity index 100% rename from resources/views/v3/Reports/RoadObservation/OpratorCartableReport.blade.php rename to resources/views/v3/Reports/RoadObservation/OperatorCartableReport.blade.php diff --git a/routes/v3.php b/routes/v3.php index f4e235f0..f03cfe2e 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -282,7 +282,7 @@ Route::prefix('road_observations') ->controller(RoadObservationController::class) ->group(function () { Route::get('/supervisor_index', 'supervisorIndex')->name('supervisorIndex')->middleware('permission:show-fast-react-province|show-fast-react'); - Route::post('/verify/{road_observed}', 'verifyBySupervisor')->name('verifyBySupervisor'); + Route::post('/verify/{roadObserved}', 'verifyBySupervisor')->name('verifyBySupervisor'); Route::get('/supervisor_report', 'supervisorCartableReport')->name('supervisorCartableReport')->middleware('permission:show-fast-react-province|show-fast-react'); Route::get('/operator_index','operatorIndex')->name('operatorIndex')->middleware('permission:show-fast-react-edarate-shahri'); Route::get('/operator_report','operatorCartableReport')->name('operatorCartableReport')->middleware('permission:show-fast-react-edarate-shahri'); From 3fb6c61835584d7e27ee503e3a45fc9b6adbe440 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 26 Feb 2025 17:09:44 +0330 Subject: [PATCH 2/5] debuge refer list --- .../V3/Dashboard/RoadObservationController.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php b/app/Http/Controllers/V3/Dashboard/RoadObservationController.php index 00b39cab..8fc65f1f 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadObservationController.php @@ -172,20 +172,22 @@ class RoadObservationController extends Controller public function referList(RoadObserved $roadObserved): JsonResponse { - $referList = []; $data = RoadObservationHistory::query() ->where('road_observation_histories.id', $roadObserved->id) - ->where('action', '=', 'refer')->get(); + ->where('action', '=', 'refer')->get([ + 'created_at', 'description', 'from_edareh', 'to_edareh', + 'from_province', 'to_province', 'user_id' + ]); foreach ($data as $key => $value) { - $referList[$key]['from_edareh'] = EdarateShahri::query()->find($value->from_edareh)->name_fa; - $referList[$key]['to_edareh'] = EdarateShahri::query()->find($value->to_edareh)->name_fa; - $referList[$key]['from_province'] = Province::query()->find($value->from_province)->name_fa; - $referList[$key]['to_province'] = Province::query()->find($value->to_province)->name_fa; + $data[$key]->from_edareh = EdarateShahri::query()->find($value->from_edareh)->name_fa; + $data[$key]->to_edareh = EdarateShahri::query()->find($value->to_edareh)->name_fa; + $data[$key]->from_province = EdarateShahri::query()->find($value->from_province)->name_fa; + $data[$key]->to_province = EdarateShahri::query()->find($value->to_province)->name_fa; $user = User::query()->find($value->user_id); - $referList[$key]['user'] = $user->first_name . ' ' . $user->last_name; + $data[$key]->user = $user->first_name . ' ' . $user->last_name; } - return $this->successResponse($referList); + return $this->successResponse($data); } public function restore(RestoreRequest $request, RoadObserved $roadObserved): JsonResponse From fc747ae68bca4a0ec815b4b875e741b4dd52a673 Mon Sep 17 00:00:00 2001 From: Witel Group Date: Sat, 1 Mar 2025 06:40:53 +0000 Subject: [PATCH 3/5] debug the operator cartable logic --- .../Dashboard/RoadObservationController.php | 50 +++++++++----- .../V3/RoadObservation/RegisterRequest.php | 6 +- .../V3/RoadObservation/RestoreRequest.php | 2 +- app/Models/RoadObserved.php | 3 + .../Cartables/RoadObservationTableService.php | 67 ++++++++++++++----- routes/v3.php | 2 + 6 files changed, 93 insertions(+), 37 deletions(-) diff --git a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php b/app/Http/Controllers/V3/Dashboard/RoadObservationController.php index 8fc65f1f..278333c7 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadObservationController.php @@ -64,11 +64,19 @@ class RoadObservationController extends Controller public function operatorIndex(Request $request, RoadObservationTableService $roadObservationTableService): JsonResponse { + if (is_null(auth()->user()->edarate_shahri_id)) { + return $this->errorResponse('اداره‌ای برای شما در سامانه ثبت نشده است!'); + } + return response()->json($roadObservationTableService->operatorCartableIndex($request)); } public function operatorCartableReport(Request $request, RoadObservationTableService $roadObservationTableService): BinaryFileResponse { + if (is_null(auth()->user()->edarate_shahri_id)) { + return $this->errorResponse('اداره‌ای برای شما در سامانه ثبت نشده است!'); + } + $name = 'گزارش از کارتابل عملیات واکنش سریع ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; $data = $roadObservationTableService->operatorCartableIndex($request); return Excel::download(new OperatorCartableReport($data['data']), $name); @@ -86,13 +94,18 @@ class RoadObservationController extends Controller return Excel::download(new ComplaintsReport($data['data']), $name); } + public function show(RoadObserved $roadObserved): JsonResponse + { + return $this->successResponse($roadObserved); + } + public function register(RegisterRequest $request, RoadObserved $roadObserved, NikarayanService $nikarayanService): JsonResponse { $roadObservedData = [ 'status' => 0, 'status_fa' => 'در حال بررسی', 'rms_status' => $request->rms_status ?? $roadObserved->rms_status, - 'rms_description' => $request->description?? $roadObserved->rms_description, + 'rms_description' => $request->rms_description ?? $roadObserved->rms_description, ]; $roadObservedHistoryData = [ @@ -101,7 +114,7 @@ class RoadObservationController extends Controller 'previous_rms_start_latlng' => $roadObserved->rms_start_latlng, 'previous_rms_end_latlng' => $roadObserved->rms_end_latlng, 'previous_rms_description' => $roadObserved->rms_description, - 'new_files' => [] + 'new_files' => json_encode([]) ]; if ($request->rms_status == 1) { @@ -111,17 +124,21 @@ class RoadObservationController extends Controller $roadObserved->files()->where('path', 'like', '%_image_before%')->delete(); $roadObserved->files()->where('path', 'like', '%_image_after%')->delete(); - $image_before = FileFacade::save($request->image_before, "road_observeds/{$roadObserved->id}/"); - $image_after = FileFacade::save($request->image_after, "road_observeds/{$roadObserved->id}/"); + if ($request->has('image_before')) { + $image_before = FileFacade::save($request->image_before, "road_observeds/{$roadObserved->id}/"); + $roadObservedData['image_before'] = $image_before; + $files_path[0]['path'] = $image_before; + } - $files_path[0]['path'] = $image_before; - $files_path[1]['path'] = $image_after; + if ($request->has('image_after')) { + $image_after = FileFacade::save($request->image_after, "road_observeds/{$roadObserved->id}/"); + $roadObservedData['image_after'] = $image_after; + $files_path[1]['path'] = $image_after; + } $files = json_encode($files_path); $now_date_time = Carbon::now(); - $roadObservedData['image_before'] = $image_before; - $roadObservedData['image_after'] = $image_after; $roadObservedData['rms_start_latlng'] = explode(',', $request->start_point); $roadObservedData['updated_at_fa'] = Verta::instance($now_date_time); $roadObservedData['rms_last_activity_fa'] = Verta::instance($now_date_time); @@ -149,6 +166,8 @@ class RoadObservationController extends Controller public function refer(ReferRequest $request, RoadObserved $roadObserved): JsonResponse { + $province = Province::query()->find($request->province_id); + RoadObservationHistory::query()->create([ 'id' => $roadObserved->id, 'user_id' => auth()->user()->id, @@ -157,12 +176,13 @@ class RoadObservationController extends Controller 'from_edareh' => $roadObserved->edarate_shahri_id, 'to_edareh' => $request->edarate_shahri_id, 'from_province' => $roadObserved->province_id, - 'to_province' => $request->province_id + 'to_province' => $province->id ]); $roadObserved->update([ 'edarate_shahri_id' => $request->edarate_shahri_id, - 'province_id' => $request->province_id, + 'province_id' => $province->id, + 'province_fa' => $province->name_fa, ]); auth()->user()->addActivityComplete(1037); @@ -173,17 +193,17 @@ class RoadObservationController extends Controller public function referList(RoadObserved $roadObserved): JsonResponse { $data = RoadObservationHistory::query() - ->where('road_observation_histories.id', $roadObserved->id) + ->where('id', '=', $roadObserved->id) ->where('action', '=', 'refer')->get([ 'created_at', 'description', 'from_edareh', 'to_edareh', 'from_province', 'to_province', 'user_id' ]); foreach ($data as $key => $value) { - $data[$key]->from_edareh = EdarateShahri::query()->find($value->from_edareh)->name_fa; - $data[$key]->to_edareh = EdarateShahri::query()->find($value->to_edareh)->name_fa; - $data[$key]->from_province = EdarateShahri::query()->find($value->from_province)->name_fa; - $data[$key]->to_province = EdarateShahri::query()->find($value->to_province)->name_fa; + $data[$key]->from_edareh = EdarateShahri::query()->find($value->from_edareh)->name_fa ?? null; + $data[$key]->to_edareh = EdarateShahri::query()->find($value->to_edareh)->name_fa ?? null; + $data[$key]->from_province = Province::query()->find($value->from_province)->name_fa ?? null; + $data[$key]->to_province = Province::query()->find($value->to_province)->name_fa ?? null; $user = User::query()->find($value->user_id); $data[$key]->user = $user->first_name . ' ' . $user->last_name; } diff --git a/app/Http/Requests/V3/RoadObservation/RegisterRequest.php b/app/Http/Requests/V3/RoadObservation/RegisterRequest.php index 68f93dae..f2522339 100644 --- a/app/Http/Requests/V3/RoadObservation/RegisterRequest.php +++ b/app/Http/Requests/V3/RoadObservation/RegisterRequest.php @@ -24,9 +24,9 @@ class RegisterRequest extends FormRequest return [ 'rms_status' => 'required|in:1,2', 'rms_description' => 'required_if:rms_status,1|string', - 'image_before' => 'required_if:rms_status,1|file|mimes:jpg,jpeg,png', - 'image_after' => 'required_if:rms_status,1|file|mimes:jpg,jpeg,png', - 'start_point' => 'required_if:rms_status,1|string', + 'image_before' => 'file|mimes:jpg,jpeg,png', + 'image_after' => 'file|mimes:jpg,jpeg,png', + 'start_point' => 'string', ]; } } diff --git a/app/Http/Requests/V3/RoadObservation/RestoreRequest.php b/app/Http/Requests/V3/RoadObservation/RestoreRequest.php index 651de88a..1c02a650 100644 --- a/app/Http/Requests/V3/RoadObservation/RestoreRequest.php +++ b/app/Http/Requests/V3/RoadObservation/RestoreRequest.php @@ -22,7 +22,7 @@ class RestoreRequest extends FormRequest public function rules(): array { return [ - 'restore_description' => 'required|string', + 'restore_description' => 'string', ]; } } diff --git a/app/Models/RoadObserved.php b/app/Models/RoadObserved.php index 60131fd0..18c4c9af 100644 --- a/app/Models/RoadObserved.php +++ b/app/Models/RoadObserved.php @@ -62,6 +62,9 @@ class RoadObserved extends Model 'supervisor_description', 'supervising_time', 'supervisor_name', + 'rms_start_latlng', + 'rms_end_latlng', + 'rms_description', ]; /** diff --git a/app/Services/Cartables/RoadObservationTableService.php b/app/Services/Cartables/RoadObservationTableService.php index 504ea8e6..a9b326a7 100644 --- a/app/Services/Cartables/RoadObservationTableService.php +++ b/app/Services/Cartables/RoadObservationTableService.php @@ -17,13 +17,12 @@ class RoadObservationTableService $fields = [ 'fk_RegisteredEventMessage', 'road_observeds.id', 'Title', 'road_observeds.created_at', - 'lat', 'lng', 'FeatureTypeTitle', 'Description', 'MobileForSendEventSms', - 'rms_description', 'rms_status', 'rms_last_activity_fa', 'rms_last_activity', + 'lat', 'lng', 'FeatureTypeTitle', 'Description', 'MobileForSendEventSms', 'rms_start_latlng', + 'rms_description', 'rms_status', 'rms_last_activity_fa', 'rms_last_activity', 'edarate_shahri_id', 'road_observeds.province_id', 'province_fa', 'city_id', 'city_fa', 'edarate_shahri.name_fa', 'status', 'status_fa', 'supervisor_description', 'supervising_time', 'image_after', 'image_before' ]; - if ($user->hasPermissionTo('show-fast-react')) { $query = RoadObserved::query()->leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') ->whereNotNull('road_observeds.status') @@ -53,25 +52,57 @@ class RoadObservationTableService { $user = auth()->user(); - if (is_null($user->edarate_shahri_id)) { - return $this->errorResponse('اداره‌ای برای شما در سامانه ثبت نشده است!'); - } - $fields = [ 'fk_RegisteredEventMessage', 'road_observeds.id', 'Title', 'road_observeds.created_at', - 'lat', 'lng', 'FeatureTypeTitle', 'Description', 'MobileForSendEventSms', + 'lat', 'lng', 'FeatureTypeTitle', 'Description', 'MobileForSendEventSms', 'edarate_shahri_id', 'rms_description', 'rms_status', 'rms_start_latlng', 'rms_last_activity_fa', 'image_after', 'image_before', 'rms_last_activity', 'road_observeds.province_id', 'province_fa', 'city_id', 'city_fa', 'edarate_shahri.name_fa', 'status', 'status_fa', 'supervisor_description', 'supervising_time' ]; - $query = RoadObserved::query() - ->where('rms_status', '<>', 0) - ->whereNotNull('road_observeds.province_id') - ->whereNotNull('status') - ->leftJoin('edarate_shahri', 'road_observeds.edarate_shahri_id', '=', 'edarate_shahri.id') - ->where('edarate_shahri_id', $user->edarate_shahri_id) - ->select($fields); + if (auth()->user()->hasPermissionTo('show-fast-react')) { + $query = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') + ->where('rms_status', '!=', 0) + ->whereNotNull('road_observeds.province_id') + ->whereNotNull('status') + ->select($fields); + } + elseif (auth()->user()->hasPermissionTo('show-fast-react-province')) { + if (is_null(auth()->user()->province_id)) { + return response()->json([ + 'message' => 'استانی برای شما در سامانه ثبت نشده است!' + ], 400); + } + + $query = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') + ->where('rms_province_id', auth()->user()->province_id) + ->where('rms_status', '!=', 0) + ->whereNotNull('road_observeds.province_id') + ->whereNotNull('status') + ->select($fields); + } + elseif (auth()->user()->hasPermissionTo('show-fast-react-edarate-shahri')) { + if (is_null(auth()->user()->edarate_shahri_id)) { + return response()->json([ + 'message' => 'اداره ای برای شما در سامانه ثبت نشده است!' + ], 400); + } + + $query = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') + ->where('edarate_shahri_id', auth()->user()->edarate_shahri_id) + ->where('rms_status', '!=', 0) + ->whereNotNull('road_observeds.province_id') + ->whereNotNull('status') + ->select($fields); + } + + // $query = RoadObserved::query() + // ->where('rms_status', '!=', 0) + // ->whereNotNull('road_observeds.province_id') + // ->whereNotNull('status') + // ->leftJoin('edarate_shahri', 'road_observeds.edarate_shahri_id', '=', 'edarate_shahri.id') + // ->where('edarate_shahri_id', $user->edarate_shahri_id) + // ->select($fields); return DataTableFacade::run( $query, @@ -89,7 +120,7 @@ class RoadObservationTableService ->where('rms_status', '=', 0) ->whereNotNull('edarate_shahri_id') ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, - road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, + road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, edarate_shahri_id, status_fa, supervisor_description, rms_description, province_fa, city_id, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng' ); } @@ -104,7 +135,7 @@ class RoadObservationTableService ->whereNotNull('road_observeds.province_id') ->where('road_observeds.province_id', '=', $user->province_id) ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, - road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, + road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, edarate_shahri_id, status_fa, supervisor_description, rms_description, province_fa, city_id, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng' ); @@ -120,7 +151,7 @@ class RoadObservationTableService ->whereNotNull('edarate_shahri_id') ->where('edarate_shahri_id', '=', $user->edarate_shahri_id) ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, - road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, + road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, edarate_shahri_id, status_fa, supervisor_description, rms_description, province_fa, city_id, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng' ); diff --git a/routes/v3.php b/routes/v3.php index 19385474..9ae94585 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -293,6 +293,8 @@ Route::prefix('road_observations') Route::post('/register/{roadObserved}', 'register') ->middleware('permission:show-fast-react-edarate-shahri') ->name('register'); + + Route::get('/{roadObserved}', 'show')->name('show'); Route::post('/refer/{roadObserved}', 'refer') ->middleware('permission:show-fast-react-edarate-shahri|show-fast-react-province|show-fast-react') ->name('refer'); From 9dfcc96fc7f15fc6d3383ca554b0b590e30fb8e6 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Sat, 1 Mar 2025 13:10:07 +0330 Subject: [PATCH 4/5] modify the blades --- .../Dashboard/RoadObservationController.php | 76 +++++++++++++++++-- .../ModifyRegisterationRequest.php | 32 ++++++++ .../V3/RoadObservation/RegisterRequest.php | 4 +- .../Cartables/RoadObservationTableService.php | 50 ++---------- .../ComplaintsReport.blade.php | 46 ++++------- .../OperatorCartableReport.blade.php | 16 ++-- .../SupervisorCartableReport.blade.php | 22 +++--- 7 files changed, 143 insertions(+), 103 deletions(-) create mode 100644 app/Http/Requests/V3/RoadObservation/ModifyRegisterationRequest.php diff --git a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php b/app/Http/Controllers/V3/Dashboard/RoadObservationController.php index 278333c7..c2d9d0b6 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadObservationController.php @@ -7,6 +7,7 @@ use App\Exports\V3\RoadObservation\SupervisorCartableReport; use App\Facades\File\FileFacade; use App\Facades\Sms\Sms; use App\Http\Controllers\Controller; +use App\Http\Requests\V3\RoadObservation\ModifyRegisterationRequest; use App\Http\Requests\V3\RoadObservation\ReferRequest; use App\Http\Requests\V3\RoadObservation\RegisterRequest; use App\Http\Requests\V3\RoadObservation\RestoreRequest; @@ -64,19 +65,11 @@ class RoadObservationController extends Controller public function operatorIndex(Request $request, RoadObservationTableService $roadObservationTableService): JsonResponse { - if (is_null(auth()->user()->edarate_shahri_id)) { - return $this->errorResponse('اداره‌ای برای شما در سامانه ثبت نشده است!'); - } - return response()->json($roadObservationTableService->operatorCartableIndex($request)); } public function operatorCartableReport(Request $request, RoadObservationTableService $roadObservationTableService): BinaryFileResponse { - if (is_null(auth()->user()->edarate_shahri_id)) { - return $this->errorResponse('اداره‌ای برای شما در سامانه ثبت نشده است!'); - } - $name = 'گزارش از کارتابل عملیات واکنش سریع ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; $data = $roadObservationTableService->operatorCartableIndex($request); return Excel::download(new OperatorCartableReport($data['data']), $name); @@ -117,6 +110,67 @@ class RoadObservationController extends Controller 'new_files' => json_encode([]) ]; + if ($request->rms_status == 1) { + + $files_path = []; + + $roadObserved->files()->where('path', 'like', '%_image_before%')->delete(); + $roadObserved->files()->where('path', 'like', '%_image_after%')->delete(); + + $image_before = FileFacade::save($request->image_before, "road_observeds/{$roadObserved->id}/"); + $image_after = FileFacade::save($request->image_after, "road_observeds/{$roadObserved->id}/"); + + $files_path[0]['path'] = $image_before; + $files_path[1]['path'] = $image_after; + + $files = json_encode($files_path); + $now_date_time = Carbon::now(); + + $roadObservedData['image_after'] = $image_after; + $roadObservedData['image_before'] = $image_before; + $roadObservedData['rms_start_latlng'] = explode(',', $request->start_point); + $roadObservedData['updated_at_fa'] = Verta::instance($now_date_time); + $roadObservedData['rms_last_activity_fa'] = Verta::instance($now_date_time); + $roadObservedData['rms_last_activity'] = $now_date_time; + $roadObservedHistoryData['new_files'] = $files; + } + + $roadObserved->problemHistories()->create($roadObservedHistoryData); + $roadObserved->update($roadObservedData); + + auth()->user()->addActivityComplete(1142); + + try { + $nikarayanService->updateRoadObservedInfoByNikarayan($request, $roadObserved, json_encode($roadObservedHistoryData['new_files'])); + } + catch (SoapFault $e) { + + $msg = "error in send to nikarayan at" . date("Y-m-d H:i:s") . "\n"; + $msg .= $e->getMessage(); + Sms::sendSms(env('RMS_CTO_PHONE_NUMBER'), $msg); + } + + return $this->successResponse(); + } + + public function modifyRegistration(ModifyRegisterationRequest $request, RoadObserved $roadObserved, NikarayanService $nikarayanService): JsonResponse + { + $roadObservedData = [ + 'status' => 0, + 'status_fa' => 'در حال بررسی', + 'rms_status' => $request->rms_status ?? $roadObserved->rms_status, + 'rms_description' => $request->rms_description ?? $roadObserved->rms_description, + ]; + + $roadObservedHistoryData = [ + 'user_id' => auth()->user()->id, + 'previous_rms_status' => $roadObserved->rms_status, + 'previous_rms_start_latlng' => $roadObserved->rms_start_latlng, + 'previous_rms_end_latlng' => $roadObserved->rms_end_latlng, + 'previous_rms_description' => $roadObserved->rms_description, + 'new_files' => json_encode([]) + ]; + if ($request->rms_status == 1) { $files_path = []; @@ -125,12 +179,18 @@ class RoadObservationController extends Controller $roadObserved->files()->where('path', 'like', '%_image_after%')->delete(); if ($request->has('image_before')) { + if ($roadObserved->image_before) { + FileFacade::delete($roadObserved->image_before, true); + } $image_before = FileFacade::save($request->image_before, "road_observeds/{$roadObserved->id}/"); $roadObservedData['image_before'] = $image_before; $files_path[0]['path'] = $image_before; } if ($request->has('image_after')) { + if ($roadObserved->image_after) { + FileFacade::delete($roadObserved->image_after, true); + } $image_after = FileFacade::save($request->image_after, "road_observeds/{$roadObserved->id}/"); $roadObservedData['image_after'] = $image_after; $files_path[1]['path'] = $image_after; diff --git a/app/Http/Requests/V3/RoadObservation/ModifyRegisterationRequest.php b/app/Http/Requests/V3/RoadObservation/ModifyRegisterationRequest.php new file mode 100644 index 00000000..288ea697 --- /dev/null +++ b/app/Http/Requests/V3/RoadObservation/ModifyRegisterationRequest.php @@ -0,0 +1,32 @@ +|string> + */ + public function rules(): array + { + return [ + 'rms_status' => 'required|in:1,2', + 'rms_description' => 'required_if:rms_status,1|string', + 'image_before' => 'file|mimes:jpg,jpeg,png', + 'image_after' => 'file|mimes:jpg,jpeg,png', + 'start_point' => 'string', + ]; + } +} diff --git a/app/Http/Requests/V3/RoadObservation/RegisterRequest.php b/app/Http/Requests/V3/RoadObservation/RegisterRequest.php index f2522339..c3f59834 100644 --- a/app/Http/Requests/V3/RoadObservation/RegisterRequest.php +++ b/app/Http/Requests/V3/RoadObservation/RegisterRequest.php @@ -24,8 +24,8 @@ class RegisterRequest extends FormRequest return [ 'rms_status' => 'required|in:1,2', 'rms_description' => 'required_if:rms_status,1|string', - 'image_before' => 'file|mimes:jpg,jpeg,png', - 'image_after' => 'file|mimes:jpg,jpeg,png', + 'image_before' => 'required_if:rms_status,1|file|mimes:jpg,jpeg,png', + 'image_after' => 'required_if:rms_status,1|file|mimes:jpg,jpeg,png', 'start_point' => 'string', ]; } diff --git a/app/Services/Cartables/RoadObservationTableService.php b/app/Services/Cartables/RoadObservationTableService.php index a9b326a7..15d5dcce 100644 --- a/app/Services/Cartables/RoadObservationTableService.php +++ b/app/Services/Cartables/RoadObservationTableService.php @@ -60,49 +60,13 @@ class RoadObservationTableService 'edarate_shahri.name_fa', 'status', 'status_fa', 'supervisor_description', 'supervising_time' ]; - if (auth()->user()->hasPermissionTo('show-fast-react')) { - $query = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') - ->where('rms_status', '!=', 0) - ->whereNotNull('road_observeds.province_id') - ->whereNotNull('status') - ->select($fields); - } - elseif (auth()->user()->hasPermissionTo('show-fast-react-province')) { - if (is_null(auth()->user()->province_id)) { - return response()->json([ - 'message' => 'استانی برای شما در سامانه ثبت نشده است!' - ], 400); - } - - $query = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') - ->where('rms_province_id', auth()->user()->province_id) - ->where('rms_status', '!=', 0) - ->whereNotNull('road_observeds.province_id') - ->whereNotNull('status') - ->select($fields); - } - elseif (auth()->user()->hasPermissionTo('show-fast-react-edarate-shahri')) { - if (is_null(auth()->user()->edarate_shahri_id)) { - return response()->json([ - 'message' => 'اداره ای برای شما در سامانه ثبت نشده است!' - ], 400); - } - - $query = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') - ->where('edarate_shahri_id', auth()->user()->edarate_shahri_id) - ->where('rms_status', '!=', 0) - ->whereNotNull('road_observeds.province_id') - ->whereNotNull('status') - ->select($fields); - } - - // $query = RoadObserved::query() - // ->where('rms_status', '!=', 0) - // ->whereNotNull('road_observeds.province_id') - // ->whereNotNull('status') - // ->leftJoin('edarate_shahri', 'road_observeds.edarate_shahri_id', '=', 'edarate_shahri.id') - // ->where('edarate_shahri_id', $user->edarate_shahri_id) - // ->select($fields); + $query = RoadObserved::query() + ->where('rms_status', '!=', 0) + ->whereNotNull('road_observeds.province_id') + ->whereNotNull('status') + ->leftJoin('edarate_shahri', 'road_observeds.edarate_shahri_id', '=', 'edarate_shahri.id') + ->where('edarate_shahri_id', $user->edarate_shahri_id) + ->select($fields); return DataTableFacade::run( $query, diff --git a/resources/views/v3/Reports/RoadObservation/ComplaintsReport.blade.php b/resources/views/v3/Reports/RoadObservation/ComplaintsReport.blade.php index e2d061ba..9c40fa2b 100644 --- a/resources/views/v3/Reports/RoadObservation/ComplaintsReport.blade.php +++ b/resources/views/v3/Reports/RoadObservation/ComplaintsReport.blade.php @@ -38,37 +38,16 @@ - کد - سوانح - - استان - - - ادارات شهری - - - موضوع گزارش - - - نوع گزارش - - توضیح گزارش - - موقعیت مکانی - - شماره تماس گیرنده - - - تاریخ ثبت گزارش + کد یکتا + کد سوانح + استان + اداره + موضوع گزارش + نوع گزارش + توضیح گزارش + موقعیت مکانی + شماره تماس گیرنده + تاریخ ثبت @@ -76,9 +55,10 @@ @foreach ($data as $item) + {{ $item['id'] ?? '-' }} {{ $item['fk_RegisteredEventMessage'] ?? '-' }} - {{ $item['province_fa'] ?? '-' }} - {{ $item['edarate_shahri_name_fa'] ?? '-' }} + {{ $item['province_fa'] ?? '-' }} + {{ $item['name_fa'] ?? '-' }} {{ $item['Title'] ?? '-' }} {{ $item['FeatureTypeTitle'] ?? '-' }} {{ $item['Description'] ?? '-' }} diff --git a/resources/views/v3/Reports/RoadObservation/OperatorCartableReport.blade.php b/resources/views/v3/Reports/RoadObservation/OperatorCartableReport.blade.php index e15d1d53..6dd7d746 100644 --- a/resources/views/v3/Reports/RoadObservation/OperatorCartableReport.blade.php +++ b/resources/views/v3/Reports/RoadObservation/OperatorCartableReport.blade.php @@ -40,15 +40,15 @@ کد یکتا کد سوانح - استان - ادارات شهری موضوع گزارش نوع گزارش + توضیح گزارش شماره تماس گیرنده - وضعیت + تاریخ ثبت تاریخ اقدام - توضیحات - توضیحات کارشناس + توضیح مامور + توضیح کارشناس + وضعیت @@ -57,15 +57,15 @@ {{ $item['id'] ?? '-' }} {{ $item['fk_RegisteredEventMessage'] ?? '-' }} - {{ $item['province_fa'] ?? '-' }} - {{ $item['edarate_shahri_name_fa'] ?? '-' }} {{ $item['Title'] ?? '-' }} {{ $item['FeatureTypeTitle'] ?? '-' }} + {{ $item['Description'] ?? '-' }} {{ $item['MobileForSendEventSms'] ?? '-' }} - {{ $item['status_fa'] ?? '-' }} + {{ verta($item['created_at'])->format('Y/n/j') ?? '-' }} {{ $item['rms_last_activity_fa'] ?? '-' }} {{ $item['rms_description'] ?? '-' }} {{ $item['supervisor_description'] ?? '-' }} + {{ $item['status_fa'] ?? '-' }} @endforeach diff --git a/resources/views/v3/Reports/RoadObservation/SupervisorCartableReport.blade.php b/resources/views/v3/Reports/RoadObservation/SupervisorCartableReport.blade.php index 2ebaab38..fa412f98 100644 --- a/resources/views/v3/Reports/RoadObservation/SupervisorCartableReport.blade.php +++ b/resources/views/v3/Reports/RoadObservation/SupervisorCartableReport.blade.php @@ -33,23 +33,24 @@ + style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13px;"> گزارش کارتابل ارزیابی واکنش سریع - کد یکتا - کد پیگیری + کد سوانح استان - ادارات شهری + اداره موضوع گزارش نوع گزارش + توضیح گزارش شماره تماس گیرنده - وضعیت + تاریخ ثبت تاریخ اقدام - توضیحات - توضیحات کارشناس + توضیح مامور + توضیح کارشناس + وضعیت @@ -59,14 +60,17 @@ {{ $item['id'] ?? '-' }} {{ $item['fk_RegisteredEventMessage'] ?? '-' }} {{ $item['province_fa'] ?? '-' }} - {{ $item['edarate_shahri_name_fa'] ?? '-' }} + {{ $item['name_fa'] ?? '-' }} {{ $item['Title'] ?? '-' }} {{ $item['FeatureTypeTitle'] ?? '-' }} + {{ $item['Description'] ?? '-' }} {{ $item['MobileForSendEventSms'] ?? '-' }} - {{ $item['status_fa'] ?? '-' }} + {{ verta($item['created_at'])->format('Y/n/j') ?? '-' }} {{ $item['rms_last_activity_fa'] ?? '-' }} {{ $item['rms_description'] ?? '-' }} {{ $item['supervisor_description'] ?? '-' }} + {{ $item['status_fa'] ?? '-' }} + {{ $item['rms_last_activity_fa'] ?? '-' }} @endforeach From 6542f7832ae86c753b5fa2c441dbead11e8d78d4 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Sat, 1 Mar 2025 13:30:12 +0330 Subject: [PATCH 5/5] add modify route --- .../V3/Dashboard/RoadObservationController.php | 2 +- .../v3/Reports/RoadObservation/ComplaintsReport.blade.php | 8 ++++---- routes/v3.php | 8 +++++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php b/app/Http/Controllers/V3/Dashboard/RoadObservationController.php index c2d9d0b6..6cb292b6 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadObservationController.php @@ -89,7 +89,7 @@ class RoadObservationController extends Controller public function show(RoadObserved $roadObserved): JsonResponse { - return $this->successResponse($roadObserved); + return $this->successResponse($roadObserved->only(['rms_status', 'rms_description', 'image_before', 'image_after', 'rms_start_latlng'])); } public function register(RegisterRequest $request, RoadObserved $roadObserved, NikarayanService $nikarayanService): JsonResponse diff --git a/resources/views/v3/Reports/RoadObservation/ComplaintsReport.blade.php b/resources/views/v3/Reports/RoadObservation/ComplaintsReport.blade.php index 9c40fa2b..fb9c6b08 100644 --- a/resources/views/v3/Reports/RoadObservation/ComplaintsReport.blade.php +++ b/resources/views/v3/Reports/RoadObservation/ComplaintsReport.blade.php @@ -21,18 +21,18 @@ - - - @@ -58,7 +58,7 @@ - + diff --git a/routes/v3.php b/routes/v3.php index 9ae94585..3b8b1a9a 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -290,9 +290,14 @@ Route::prefix('road_observations') Route::get('/complaints_index', 'complaintsIndex') ->middleware('permission:show-fast-react-edarate-shahri|show-fast-react-province|show-fast-react') ->name('complaintsIndex'); + Route::get('/complaints_report', 'complaintsReport')->name('complaintsReport') + ->middleware('permission:show-fast-react-edarate-shahri|show-fast-react-province|show-fast-react'); Route::post('/register/{roadObserved}', 'register') ->middleware('permission:show-fast-react-edarate-shahri') ->name('register'); + Route::post('/modify_registration/{roadObserved}', 'modifyRegistration') + ->middleware('permission:show-fast-react-edarate-shahri') + ->name('modifyRegistration'); Route::get('/{roadObserved}', 'show')->name('show'); Route::post('/refer/{roadObserved}', 'refer') @@ -306,9 +311,6 @@ Route::prefix('road_observations') Route::post('/restore/{roadObserved}', 'restore') ->middleware('permission:restore-fast-react') ->name('restore'); - - Route::get('/complaints_report', 'complaintsReport')->name('complaintsReport') - ->middleware('permission:show-fast-react-edarate-shahri|show-fast-react-province|show-fast-react'); }); Route::prefix('log_list')
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
گزارش رسیدگی به شکایات واکنش سریع {{ $item['id'] ?? '-' }} {{ $item['fk_RegisteredEventMessage'] ?? '-' }} {{ $item['province_fa'] ?? '-' }}{{ $item['name_fa'] ?? '-' }}{{ $item['edarate_shahri_name_fa'] ?? '-' }} {{ $item['Title'] ?? '-' }} {{ $item['FeatureTypeTitle'] ?? '-' }} {{ $item['Description'] ?? '-' }}