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