json($safetyAndPrivacyTableService->datatable($request)); } public function firstStepStore(FirstStepStoreRequest $request, NominatimService $nominatimService): JsonResponse { $user = auth()->user(); if (auth()->user()->edarate_ostani_id || is_null(auth()->user()->city_id)) { return $this->errorResponse('امکان ثبت این مورد برای ادارات استانی و ستادی وجود ندارد!'); } if (is_null(auth()->user()->edarate_shahri_id)) { return $this->errorResponse('اداره شهری برای شما در سامانه ثبت نشده است!'); } $coordinates = explode(',', $request->point); $item = InfoItem::query() ->where('id', $request->info_id) ->where('item', 17) ->firstOrFail(); DB::transaction(function () use ($request, $coordinates, $item, $nominatimService) { $safety_and_privacy = SafetyAndPrivacy::query()->create([ 'lat' => $coordinates[0], 'lon' => $coordinates[1], 'operator_id' => auth()->user()->id, 'operator_name' => auth()->user()->name, 'province_id' => auth()->user()->province_id, 'province_fa' => auth()->user()->province_fa, 'info_id' => $item->id, 'info_fa' => $item->sub_item_str, 'city_id' => auth()->user()->city_id, 'city_fa' => auth()->user()->city_fa, 'activity_date_time' => $request->activity_date." ".$request->activity_time, 'edare_shahri_id' => auth()->user()->edarate_shahri_id, 'edare_shahri_name' => auth()->user()->edarate_shahri_name, 'way_id' => $nominatimService->get_way_id_from_nominatim($coordinates[0], $coordinates[1]), 'recognize_picture' => $request->has('recognize_picture') ? FileFacade::save($request->recognize_picture, 'safety_and_privacy') : null, 'step' => 1, 'step_fa' => 'گام اول (شناسایی)' ]); auth()->user()->addActivityComplete(1134); }); return $this->successResponse(); } public function secondStepStore(SecondStepStoreRequest $safety_and_privacy, Request $request): JsonResponse { $user = auth()->user(); if (auth()->user()->edarate_ostani_id || is_null(auth()->user()->city_id)) { return $this->errorResponse('امکان ثبت این مورد برای ادارات استانی و ستادی وجود ندارد!'); } if (is_null(auth()->user()->edarate_shahri_id)) { return $this->errorResponse('اداره شهری برای شما در سامانه ثبت نشده است!'); } DB::transaction(function () use ($request, $safety_and_privacy) { $judiciary_document = []; foreach ($request->judiciary_document as $index => $item) { $judiciary_document[] = $item->store('safety_and_privacy/'.$safety_and_privacy->id.'/judiciary_document', 'public'); } $safety_and_privacy->judiciary_document = serialize($judiciary_document); $safety_and_privacy->judiciary_document_upload_date = now(); $safety_and_privacy->goToSecondStep(); $safety_and_privacy->save(); auth()->user()->addActivityComplete(1135); }); return $this->successResponse(); } public function thirdStepStore(ThirdStepStoreRequest $safety_and_privacy, Request $request): JsonResponse { $user = auth()->user(); if (auth()->user()->edarate_ostani_id || is_null(auth()->user()->city_id)) { return $this->errorResponse('امکان ثبت این مورد برای ادارات استانی و ستادی وجود ندارد!'); } if (is_null(auth()->user()->edarate_shahri_id)) { return $this->errorResponse('اداره شهری برای شما در سامانه ثبت نشده است!'); } DB::transaction(function () use ($request, $safety_and_privacy) { $action_picture = $request->file('action_picture')->store('safety_and_privacy/'.$safety_and_privacy->id.'/action_picture', 'public'); $safety_and_privacy->action_picture = Storage::disk('public')->url($action_picture); $safety_and_privacy->action_picture_document_upload_date = now(); $safety_and_privacy->goToThirdStep(); $safety_and_privacy->save(); auth()->user()->addActivityComplete(1136); }); return $this->successResponse(); } public function show(SafetyAndPrivacy $safetyAndPrivacy): JsonResponse { return $this->successResponse($safetyAndPrivacy); } public function destroy(SafetyAndPrivacy $safetyAndPrivacy): JsonResponse { Storage::deleteDirectory('public/' . 'safety_and_privacy/' . $safetyAndPrivacy->id); DB::transaction(function () use ($safetyAndPrivacy) { auth()->user()->addActivityComplete(1155); $safetyAndPrivacy->delete(); }); return $this->successResponse(); } }