where('province_id', '=', auth()->user()->province_id) ->orderByRaw(" CASE state_id WHEN 2 THEN 1 WHEN 5 THEN 2 WHEN 13 THEN 3 ELSE 4 END "); $data = DataTableFacade::run( $query, $request, allowedFilters: ['*'], allowedSortings: ['*'], ); return response()->json($data); } /** * @throws Throwable */ public function rejectRequest(RejectRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( action: HarimAction::NO->value, description: $request->expert_description, data: [ 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, 'state_name' => HarimStates::BARESI_TAVASOT_MOAVEN->label(), 'is_possible' => false, ] ); return $this->successResponse(); } /** * @throws Throwable */ public function referRequest(ReferRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( action: HarimAction::REFER->value, description: $request->expert_description, data: [ 'state_id' => HarimStates::BARESI_EDARE_SHAHRESTAN->value, 'state_name' => HarimStates::BARESI_EDARE_SHAHRESTAN->label(), ] ); return $this->successResponse(); } /** * @throws Throwable */ public function needRoadAccess(NeedRoadAccessRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( action: HarimAction::YES->value, description: $request->expert_description, data: [ 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, 'state_name' => HarimStates::BARESI_TAVASOT_MOAVEN->label(), 'is_possible' => true, 'need_access_road' => true, 'need_payment' => $request->need_payment, ] ); return $this->successResponse(); } /** * @throws Throwable */ public function withoutRoadAccess(WithoutRoadAccessRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( action: HarimAction::YES->value, description: $request->expert_description, data: [ 'state_id' => HarimStates::BARESI_TAVASOT_MOAVEN->value, 'state_name' => HarimStates::BARESI_TAVASOT_MOAVEN->label(), 'is_possible' => true, 'need_access_road' => false, 'need_payment' => $request->need_payment, ] ); return $this->successResponse(); } /** * @throws Throwable */ public function fileAccepted(FileAcceptedRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( action: HarimAction::YES->value, description: $request->expert_description, data: [ 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value, 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->label(), 'access_road_allowed' => true, ] ); return $this->successResponse(); } /** * @throws Throwable */ public function fileRejected(FileRejectedRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( action: HarimAction::YES->value, description: $request->expert_description, data: [ 'state_id' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->value, 'state_name' => HarimStates::BARESI_RAHE_DASTRASI_APLODE_SHODE_TAVASOTE_MOAVEN->label(), 'access_road_allowed' => false, ] ); return $this->successResponse(); } public function show(ShowRequest $request, Harim $harim): JsonResponse { return $this->successResponse($harim); } public function referToCity(Request $request, Harim $harim) { $province = Province::query()->find($request->province_id); $harim->update([ 'edareh_shahri_id' => $request->edarate_shahri_id, 'province_id' => $province->id, 'province_name' => $province->name_fa, ]); } /** * @throws Throwable */ public function computingPayment(ComputingPaymentRequest $request, Harim $harim): JsonResponse { $harim->updateStateWithHistory( action: HarimAction::CONFIRM->value, description: $request->expert_description, data: [ 'state_id' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->value, 'state_name' => HarimStates::BARESI_ARSE_VA_AYAN_ERSAL_SHODE_TAVASOT_MOAVEN->label(), 'traffic' => $request->traffic, 'position' => $request->position, 'final_area_space' => $request->final_area_space, 'road_type' => $request->road_type, 'final_plan_space' => $request->final_plan_space, 'payment_amount' => $request->payment_amount, ] ); return $this->successResponse(); } }