diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 1559d32d..f1f2d616 100755 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -26,20 +26,19 @@ class Kernel extends ConsoleKernel protected function schedule(Schedule $schedule) { $schedule->command('webservice:roadobserved') - ->everyFiveMinutes()->appendOutputTo(storage_path('logs/nikarayan.log')); + ->everyTenMinutes()->appendOutputTo(storage_path('logs/nikarayan.log')); $schedule->command('command:sendcontractsmsnotification') - // ->everyMinute()->appendOutputTo(storage_path('logs/contractSms.log')); ->dailyAt('10:00')->appendOutputTo(storage_path('logs/contractSms.log')); $schedule->command('reports:rms-summary') ->dailyAt('00:00')->appendOutputTo(storage_path('logs/report_summary.log')); $schedule->command("webservice:roadobserved --daily-mode") - ->dailyAt('00:17')->appendOutputTo(storage_path('logs/nikarayan.log')); + ->dailyAt('00:05')->appendOutputTo(storage_path('logs/nikarayan.log')); $schedule->command("webservice:roadobserved --daily-mode") - ->dailyAt('00:47')->appendOutputTo(storage_path('logs/nikarayan.log')); + ->dailyAt('00:45')->appendOutputTo(storage_path('logs/nikarayan.log')); } /** diff --git a/app/Exports/V2/RoadObservation/PendingComplaintsExport.php b/app/Exports/V2/RoadObservation/PendingComplaintsExport.php index 46e766c0..94a5b586 100644 --- a/app/Exports/V2/RoadObservation/PendingComplaintsExport.php +++ b/app/Exports/V2/RoadObservation/PendingComplaintsExport.php @@ -38,10 +38,10 @@ class PendingComplaintsExport implements FromView, ShouldAutoSize, WithEvents, W return $query->where('road_observeds.province_id', $province_id); }) ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) { - return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]); + return $query->whereBetween('road_observeds.StartTime_DateTime', [$fromDate, $toDate]); }) ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, - road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, + road_observeds.StartTime_DateTime, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng') ->orderBy('status') ->orderBy('road_observeds.id', 'desc') @@ -60,10 +60,10 @@ class PendingComplaintsExport implements FromView, ShouldAutoSize, WithEvents, W ->where('rms_status', 0) ->whereNotNull('road_observeds.province_id') ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) { - return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]); + return $query->whereBetween('road_observeds.StartTime_DateTime', [$fromDate, $toDate]); }) ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, - road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, + road_observeds.StartTime_DateTime, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng') ->orderBy('status') ->orderBy('road_observeds.id', 'desc') @@ -81,10 +81,10 @@ class PendingComplaintsExport implements FromView, ShouldAutoSize, WithEvents, W ->where('rms_status', 0) ->whereNotNull('edarate_shahri_id') ->when(($fromDate && $toDate), function ($query) use ($fromDate, $toDate) { - return $query->whereBetween('road_observeds.created_at', [$fromDate, $toDate]); + return $query->whereBetween('road_observeds.StartTime_DateTime', [$fromDate, $toDate]); }) ->selectRaw('fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, - road_observeds.created_at, rms_last_activity, rms_last_activity_fa, status, + road_observeds.StartTime_DateTime, rms_last_activity, rms_last_activity_fa, status, status_fa, supervisor_description, rms_description, province_fa, city_fa, Description, edarate_shahri.name_fa as edarate_shahri_name_fa, lat, lng') ->orderBy('status') ->orderBy('road_observeds.id', 'desc') diff --git a/app/Http/Controllers/V3/Dashboard/Reports/RoadObservationReportController.php b/app/Http/Controllers/V3/Dashboard/Reports/RoadObservationReportController.php deleted file mode 100644 index eb20abf8..00000000 --- a/app/Http/Controllers/V3/Dashboard/Reports/RoadObservationReportController.php +++ /dev/null @@ -1,28 +0,0 @@ -reportIndex($request); - return response()->json($data['data']); - } - - public function excelReport(Request $request, RoadObservationTableService $roadObservationTableService): BinaryFileResponse - { - $name = 'گزارش رسیدگی به شکایات واکنش سریع ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; - $data = $roadObservationTableService->reportIndex($request); - return Excel::download(new ReportComplaintsExport($data), $name); - } -} diff --git a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php b/app/Http/Controllers/V3/Dashboard/RoadObservation/OperatorController.php similarity index 69% rename from app/Http/Controllers/V3/Dashboard/RoadObservationController.php rename to app/Http/Controllers/V3/Dashboard/RoadObservation/OperatorController.php index 8cdd32c7..6e701d44 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadObservation/OperatorController.php @@ -1,91 +1,54 @@ json($roadObservationTableService->supervisorCartableIndex($request)); + return response()->json($operatorService->cartableIndex($request)); } - public function verifyBySupervisor(VerifyBySupervisorRequest $request, RoadObserved $roadObserved): JsonResponse - { - $statusFa = $request->verify == 1 ? 'تایید شده' : 'عدم تایید'; - - $roadObserved->update([ - 'status' => $request->verify, - 'status_fa' => $statusFa, - 'supervisor_id' => auth()->user()->id, - 'supervisor_name' => auth()->user()->name, - 'supervisor_description' => $request->description, - 'supervising_time' => now(), - ]); - - auth()->user()->addActivityComplete(1138); - - return $this->successResponse(); - } - - public function supervisorCartableReport(Request $request, RoadObservationTableService $roadObservationTableService): BinaryFileResponse - { - $name = 'گزارش از کارتابل ارزیابی واکنش سریع '. verta()->now()->format('Y-m-d H:i') . '.xlsx'; - $data = $roadObservationTableService->supervisorCartableIndex($request); - - return Excel::download(new SupervisorCartableReport($data['data']), $name); - } - - public function operatorIndex(Request $request, RoadObservationTableService $roadObservationTableService): JsonResponse - { - return response()->json($roadObservationTableService->operatorCartableIndex($request)); - } - - public function operatorCartableReport(Request $request, RoadObservationTableService $roadObservationTableService): BinaryFileResponse + public function cartableReport(Request $request, OperatorService $operatorService): BinaryFileResponse { $name = 'گزارش از کارتابل عملیات واکنش سریع ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; - $data = $roadObservationTableService->operatorCartableIndex($request); + $data = $operatorService->cartableIndex($request); return Excel::download(new OperatorCartableReport($data['data']), $name); } - public function complaintsIndex(Request $request, RoadObservationTableService $roadObservationTableService): JsonResponse + public function complaintsIndex(Request $request, OperatorService $operatorService): JsonResponse { - return response()->json($roadObservationTableService->complaintsIndex($request)); + return response()->json($operatorService->complaintsIndex($request)); } - public function complaintsReport(Request $request, RoadObservationTableService $roadObservationTableService): BinaryFileResponse + public function complaintsReport(Request $request, OperatorService $operatorService): BinaryFileResponse { $name = 'گزارش از رسیدگی به شکایات واکنش سریع ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; - $data = $roadObservationTableService->complaintsIndex($request); + $data = $operatorService->complaintsIndex($request); return Excel::download(new ComplaintsReport($data['data']), $name); } @@ -144,7 +107,6 @@ class RoadObservationController extends Controller auth()->user()->addActivityComplete(1142); $nikarayanService->updateRoadObservedInfoByNikarayan($request, $roadObserved, json_encode($roadObservedHistoryData['new_files'])); - }); return $this->successResponse(); @@ -262,49 +224,4 @@ class RoadObservationController extends Controller } return $this->successResponse($data); } - - public function restore(RestoreRequest $request, RoadObserved $roadObserved): JsonResponse - { - if ($roadObserved->image_before) { - FileFacade::delete($roadObserved->image_before); - } - - if ($roadObserved->image_after) { - FileFacade::delete($roadObserved->image_after); - } - - $roadObserved->update([ - 'image_before' => null, - 'image_after' => null, - 'rms_last_activity' => null, - 'rms_last_activity_fa' => null, - 'updated_at_fa' => null, - 'updated_at' => null, - 'rms_status' => 0, - 'status' => null, - 'status_fa' => null, - ]); - - RoadObservationHistory::query()->create([ - 'id' => $roadObserved->id, - 'user_id' => auth()->user()->id, - 'action' => 'restore', - 'description' => $request->restore_description, - ]); - - auth()->user()->addActivityComplete(1141); - - return $this->successResponse(); - } - - public function map(Request $request): JsonResponse - { - return response()->json(DataTableFacade::run( - RoadObserved::query(), - $request, - allowedFilters: ['*'], - allowedSortings: ['*'], - allowedSelects: ['id', 'lat', 'lng', 'status'] - )); - } -} +} \ No newline at end of file diff --git a/app/Http/Controllers/V3/Dashboard/RoadObservation/ReportController.php b/app/Http/Controllers/V3/Dashboard/RoadObservation/ReportController.php new file mode 100644 index 00000000..db11136c --- /dev/null +++ b/app/Http/Controllers/V3/Dashboard/RoadObservation/ReportController.php @@ -0,0 +1,42 @@ +index($request); + return response()->json($data['data']); + } + + public function excel(Request $request, ReportService $reportService): BinaryFileResponse + { + $name = 'گزارش رسیدگی به شکایات واکنش سریع ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; + $data = $reportService->index($request); + return Excel::download(new ReportComplaintsExport($data), $name); + } + + public function map(Request $request): JsonResponse + { + return response()->json(DataTableFacade::run( + RoadObserved::query(), + $request, + allowedFilters: ['*'], + allowedSortings: ['*'], + allowedSelects: ['id', 'lat', 'lng', 'status'] + )); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/V3/Dashboard/RoadObservation/SupervisorController.php b/app/Http/Controllers/V3/Dashboard/RoadObservation/SupervisorController.php new file mode 100644 index 00000000..5af4756c --- /dev/null +++ b/app/Http/Controllers/V3/Dashboard/RoadObservation/SupervisorController.php @@ -0,0 +1,87 @@ +json($supervisorService->index($request)); + } + + public function verify(VerifyBySupervisorRequest $request, RoadObserved $roadObserved): JsonResponse + { + $statusFa = $request->verify == 1 ? 'تایید شده' : 'عدم تایید'; + + $roadObserved->update([ + 'status' => $request->verify, + 'status_fa' => $statusFa, + 'supervisor_id' => auth()->user()->id, + 'supervisor_name' => auth()->user()->name, + 'supervisor_description' => $request->description, + 'supervising_time' => now(), + ]); + + auth()->user()->addActivityComplete(1138); + + return $this->successResponse(); + } + + public function report(Request $request, SupervisorService $supervisorService): BinaryFileResponse + { + $name = 'گزارش از کارتابل ارزیابی واکنش سریع '. verta()->now()->format('Y-m-d H:i') . '.xlsx'; + $data = $supervisorService->index($request); + + return Excel::download(new SupervisorCartableReport($data['data']), $name); + } + + public function restore(RestoreRequest $request, RoadObserved $roadObserved): JsonResponse + { + if ($roadObserved->image_before) { + FileFacade::delete($roadObserved->image_before); + } + + if ($roadObserved->image_after) { + FileFacade::delete($roadObserved->image_after); + } + + $roadObserved->update([ + 'image_before' => null, + 'image_after' => null, + 'rms_last_activity' => null, + 'rms_last_activity_fa' => null, + 'updated_at_fa' => null, + 'updated_at' => null, + 'rms_status' => 0, + 'status' => null, + 'status_fa' => null, + ]); + + RoadObservationHistory::query()->create([ + 'id' => $roadObserved->id, + 'user_id' => auth()->user()->id, + 'action' => 'restore', + 'description' => $request->restore_description, + ]); + + auth()->user()->addActivityComplete(1141); + + return $this->successResponse(); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/V3/NotificationController.php b/app/Http/Controllers/V3/NotificationController.php index f5d3bb82..293a79b3 100644 --- a/app/Http/Controllers/V3/NotificationController.php +++ b/app/Http/Controllers/V3/NotificationController.php @@ -148,7 +148,9 @@ class NotificationController extends Controller ['status', '=', 0] ])->count(); - $road_observations['complaint_cnt'] = RoadObserved::query()->where('rms_status', '=', 0)->count(); + $road_observations['complaint_cnt'] = RoadObserved::query()->where('rms_status', '=', 0) + ->whereNotNull('edarate_shahri_id') + ->count(); } elseif ($user->hasPermissionTo('show-fast-react-province')) { throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); diff --git a/app/Services/Cartables/RoadObservation/OperatorService.php b/app/Services/Cartables/RoadObservation/OperatorService.php new file mode 100644 index 00000000..49ceb9cb --- /dev/null +++ b/app/Services/Cartables/RoadObservation/OperatorService.php @@ -0,0 +1,84 @@ +user(); + + $fields = [ + 'fk_RegisteredEventMessage', 'road_observeds.id', 'Title', 'road_observeds.created_at', 'StartTime_DateTime', + '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); + + return DataTableFacade::run( + $query, + $request, + allowedFilters: ['*'], + allowedSortings: ['*']); + } + + /** + * @throws \Throwable + */ + public function complaintsIndex(Request $request) + { + $user = auth()->user(); + + $fields = 'fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, StartTime_DateTime, + 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'; + + if ($user->hasPermissionTo('show-fast-react')) { + $query = RoadObserved::query()->leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') + ->where('rms_status', '=', 0) + ->whereNotNull('edarate_shahri_id'); + } + elseif ($user->hasPermissionTo('show-fast-react-province')) { + + throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); + + $query = RoadObserved::query()->leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') + ->where('rms_status', '=', 0) + ->whereNotNull('road_observeds.province_id') + ->where('road_observeds.province_id', '=', $user->province_id); + + } + elseif ($user->hasPermissionTo('show-fast-react-edarate-shahri')) { + + throw_if(is_null($user->edarate_shahri_id), new ProhibitedAction('اداره ای برای شما در سامانه ثبت نشده است!')); + + $query = RoadObserved::query()->leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') + ->where('rms_status', '=', 0) + ->whereNotNull('edarate_shahri_id') + ->where('edarate_shahri_id', '=', $user->edarate_shahri_id); + + } + + return DataTableFacade::run( + $query, + $request, + allowedFilters: ['*'], + allowedSortings: ['*'], + allowedSelects: $fields + ); + } +} \ No newline at end of file diff --git a/app/Services/Cartables/RoadObservation/ReportService.php b/app/Services/Cartables/RoadObservation/ReportService.php new file mode 100644 index 00000000..71d0cd03 --- /dev/null +++ b/app/Services/Cartables/RoadObservation/ReportService.php @@ -0,0 +1,53 @@ +from_date . ' 00:00:00'; + $toDate = $request->date_to . ' 23:59:59'; + + $fields = [ + 'fk_RegisteredEventMessage', + 'road_observeds.id', + 'Title', + 'road_observeds.created_at', + 'lat', + 'lng', + 'FeatureTypeTitle', + 'Description', + 'MobileForSendEventSms', + 'road_observeds.province_id', + 'province_fa', + 'city_fa', + 'edarate_shahri.name_fa', + 'rms_last_activity_fa', + 'rms_description' + ]; + + $query = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') + ->where('rms_status', "<>", 0) + ->whereNotNull('edarate_shahri_id') + ->whereBetween('road_observeds.created_at', [$fromDate, $toDate]) + ->select($fields); + + $data = DataTableFacade::run( + $query, + $request, + allowedFilters: ['*'], + allowedSortings: ['*'] + ); + + return [ + 'data' => $data, + 'fromDate' => $fromDate, + 'toDate' => $toDate, + ]; + } +} \ No newline at end of file diff --git a/app/Services/Cartables/RoadObservation/SupervisorService.php b/app/Services/Cartables/RoadObservation/SupervisorService.php new file mode 100644 index 00000000..ade845a0 --- /dev/null +++ b/app/Services/Cartables/RoadObservation/SupervisorService.php @@ -0,0 +1,48 @@ +user(); + + $fields = [ + 'fk_RegisteredEventMessage', 'road_observeds.id', 'Title', 'road_observeds.created_at', 'StartTime_DateTime', + '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') + ->select($fields); + } + elseif ($user->hasPermissionTo('show-fast-react-province')) + { + throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); + + $query = RoadObserved::query()->leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') + ->where('road_observeds.province_id', $user->province_id) + ->whereNotNull('road_observeds.status') + ->select($fields); + } + + return DataTableFacade::run( + $query, + $request, + allowedFilters: ['*'], + allowedSortings: ['*']); + } +} \ No newline at end of file diff --git a/app/Services/Cartables/RoadObservationTableService.php b/app/Services/Cartables/RoadObservationTableService.php deleted file mode 100644 index 810d4b88..00000000 --- a/app/Services/Cartables/RoadObservationTableService.php +++ /dev/null @@ -1,169 +0,0 @@ -user(); - - $fields = [ - 'fk_RegisteredEventMessage', 'road_observeds.id', 'Title', 'road_observeds.created_at', 'StartTime_DateTime', - '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') - ->select($fields); - } - elseif ($user->hasPermissionTo('show-fast-react-province')) - { - if (is_null($user->province_id)) - { - return $this->errorResponse('استانی برای شما در سامانه ثبت نشده است!'); - } - - $query = RoadObserved::query()->leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') - ->where('road_observeds.province_id', $user->province_id) - ->whereNotNull('road_observeds.status') - ->select($fields); - } - - return DataTableFacade::run( - $query, - $request, - allowedFilters: ['*'], - allowedSortings: ['*']); - } - - public function operatorCartableIndex(Request $request) - { - $user = auth()->user(); - - $fields = [ - 'fk_RegisteredEventMessage', 'road_observeds.id', 'Title', 'road_observeds.created_at', 'StartTime_DateTime', - '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); - - return DataTableFacade::run( - $query, - $request, - allowedFilters: ['*'], - allowedSortings: ['*']); - } - - public function complaintsIndex(Request $request) - { - $user = auth()->user(); - - $fields = 'fk_RegisteredEventMessage, road_observeds.id, Title, FeatureTypeTitle, MobileForSendEventSms, StartTime_DateTime, - 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'; - - if ($user->hasPermissionTo('show-fast-react')) { - $query = RoadObserved::query()->leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') - ->where('rms_status', '=', 0) - ->whereNotNull('edarate_shahri_id') - ->selectRaw($fields); - } - elseif ($user->hasPermissionTo('show-fast-react-province')) { - - if (is_null($user->province_id)) { - return $this->errorResponse('استانی برای شما در سامانه ثبت نشده است!'); - } - - $query = RoadObserved::query()->leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') - ->where('rms_status', '=', 0) - ->whereNotNull('road_observeds.province_id') - ->where('road_observeds.province_id', '=', $user->province_id) - ->selectRaw($fields); - - } - elseif ($user->hasPermissionTo('show-fast-react-edarate-shahri')) { - - if (is_null($user->edarate_shahri_id)) { - return $this->errorResponse('اداره ای برای شما در سامانه ثبت نشده است!'); - } - - $query = RoadObserved::query()->leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') - ->where('rms_status', '=', 0) - ->whereNotNull('edarate_shahri_id') - ->where('edarate_shahri_id', '=', $user->edarate_shahri_id) - ->selectRaw($fields); - - } - - return DataTableFacade::run( - $query, - $request, - allowedFilters: ['*'], - allowedSortings: ['*'] - ); - } - - public function reportIndex(Request $request) - { - $fromDate = $request->from_date . ' 00:00:00'; - $toDate = $request->date_to . ' 23:59:59'; - - $fields = [ - 'fk_RegisteredEventMessage', - 'road_observeds.id', - 'Title', - 'road_observeds.created_at', - 'lat', - 'lng', - 'FeatureTypeTitle', - 'Description', - 'MobileForSendEventSms', - 'road_observeds.province_id', - 'province_fa', - 'city_fa', - 'edarate_shahri.name_fa', - 'rms_last_activity_fa', - 'rms_description' - ]; - - $query = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id') - ->where('rms_status', "<>", 0) - ->whereNotNull('edarate_shahri_id') - ->whereBetween('road_observeds.created_at', [$fromDate, $toDate]) - ->select($fields); - - $data = DataTableFacade::run( - $query, - $request, - allowedFilters: ['*'], - allowedSortings: ['*'] - ); - - return [ - 'data' => $data, - 'fromDate' => $fromDate, - 'toDate' => $toDate, - ]; - } -} \ No newline at end of file diff --git a/app/Services/NikarayanService.php b/app/Services/NikarayanService.php index 702ab1d4..ba87eb8b 100644 --- a/app/Services/NikarayanService.php +++ b/app/Services/NikarayanService.php @@ -33,7 +33,7 @@ class NikarayanService $soapClient = new SoapClient($url); $result = $soapClient->UpdateInfo_RoadObservedProblems($array); - Log::channel('nikarayan')->info(json_encode($result)); + Log::channel('nikarayan')->info([json_encode($result), $roadObserved->fk_RegisteredEventMessage]); return $result; } diff --git a/routes/v3.php b/routes/v3.php index 3a49cc51..6fc3ec01 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -19,7 +19,7 @@ use App\Http\Controllers\V3\Dashboard\Reports\RoadItemsReportController; use App\Http\Controllers\V3\Dashboard\Reports\RoadPatrolReportController; use App\Http\Controllers\V3\Dashboard\RoadItemsProjectController; use App\Http\Controllers\V3\Dashboard\RoadMaintenanceStationController; -use App\Http\Controllers\V3\Dashboard\RoadObservationController; +use App\Http\Controllers\V3\Dashboard\RoadObservation\RoadObservationController; use App\Http\Controllers\V3\Dashboard\RoadPatrolProjectController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorReportController; @@ -292,37 +292,51 @@ Route::prefix('receipt_reports') Route::prefix('road_observations') ->name('roadObservations.') - ->controller(RoadObservationController::class) ->group(function () { - Route::get('/supervisor_index', 'supervisorIndex')->name('supervisorIndex')->middleware('permission:show-fast-react-province|show-fast-react'); - 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'); - 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::name('operator.') + ->prefix('operator') + ->controller(\App\Http\Controllers\V3\Dashboard\RoadObservation\OperatorController::class) + ->group(function () { + Route::get('/cartable','cartableIndex')->name('cartableIndex')->middleware('permission:show-fast-react-edarate-shahri'); + Route::get('/cartable_report','cartableReport')->name('cartableReport')->middleware('permission:show-fast-react-edarate-shahri'); + 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::post('/refer/{roadObserved}', 'refer') + ->middleware('permission:show-fast-react-edarate-shahri|show-fast-react-province|show-fast-react') + ->name('refer'); + Route::get('/refer_list/{roadObserved}', 'referList') + ->middleware('permission:show-fast-react-edarate-shahri|show-fast-react-province|show-fast-react') + ->name('referList'); + }); - 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'); + Route::name('supervisor.') + ->prefix('supervisor') + ->controller(\App\Http\Controllers\V3\Dashboard\RoadObservation\SupervisorController::class) + ->group(function () { + Route::get('/index', 'index')->name('index')->middleware('permission:show-fast-react-province|show-fast-react'); + Route::post('/verify/{roadObserved}', 'verify')->name('verify'); + Route::get('/report', 'report')->name('report')->middleware('permission:show-fast-react-province|show-fast-react'); + Route::post('/restore/{roadObserved}', 'restore')->middleware('permission:restore-fast-react')->name('restore'); + }); - Route::get('/refer_list/{roadObserved}', 'referList') - ->middleware('permission:show-fast-react-edarate-shahri|show-fast-react-province|show-fast-react') - ->name('referList'); - - Route::post('/restore/{roadObserved}', 'restore') - ->middleware('permission:restore-fast-react') - ->name('restore'); + Route::name('report.') + ->prefix('report') + ->controller(\App\Http\Controllers\V3\Dashboard\RoadObservation\ReportController::class) + ->group(function () { + Route::get('/index', 'index')->name('index')->middleware('permission:show-fast-react-province|show-fast-react'); + Route::get('/excel', 'excel')->name('excel')->middleware('permission:show-fast-react-province|show-fast-react'); + Route::get('/map', 'map')->name('map'); + }); + Route::get('/{roadObserved}', [\App\Http\Controllers\V3\Dashboard\RoadObservation\OperatorController::class, 'show'])->name('show'); }); Route::prefix('log_list')