Merge branch 'bugfix/NikarayanService' into 'develop'
Bugfix/nikarayan service See merge request witelgroup/rms_v2!123
This commit is contained in:
@@ -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'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3\Dashboard\Reports;
|
||||
|
||||
use App\Exports\V2\RoadObservation\ReportComplaintsExport;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\RoadObserved;
|
||||
use App\Services\Cartables\RoadObservationTableService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
|
||||
class RoadObservationReportController extends Controller
|
||||
{
|
||||
public function index(Request $request, RoadObservationTableService $roadObservationTableService): JsonResponse
|
||||
{
|
||||
$data = $roadObservationTableService->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);
|
||||
}
|
||||
}
|
||||
@@ -1,91 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3\Dashboard;
|
||||
namespace App\Http\Controllers\V3\Dashboard\RoadObservation;
|
||||
|
||||
use App\Exports\V3\RoadObservation\ComplaintsReport;
|
||||
use App\Exports\V3\RoadObservation\OperatorCartableReport;
|
||||
use App\Exports\V3\RoadObservation\SupervisorCartableReport;
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
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;
|
||||
use App\Http\Requests\V3\RoadObservation\VerifyBySupervisorRequest;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\EdarateShahri;
|
||||
use App\Models\Province;
|
||||
use App\Models\RoadObservationHistory;
|
||||
use App\Models\RoadObserved;
|
||||
use App\Models\User;
|
||||
use App\Services\Cartables\RoadObservation\OperatorService;
|
||||
use App\Services\NikarayanService;
|
||||
use Carbon\Carbon;
|
||||
use Hekmatinasser\Verta\Verta;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\Cartables\RoadObservationTableService;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use SoapFault;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
|
||||
class RoadObservationController extends Controller
|
||||
class OperatorController
|
||||
{
|
||||
use ApiResponse;
|
||||
|
||||
public function supervisorIndex(Request $request,RoadObservationTableService $roadObservationTableService ): JsonResponse
|
||||
public function cartableIndex(Request $request, OperatorService $operatorService): JsonResponse
|
||||
{
|
||||
return response()->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']
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3\Dashboard\RoadObservation;
|
||||
|
||||
use App\Exports\V2\RoadObservation\ReportComplaintsExport;
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\RoadObserved;
|
||||
use App\Services\Cartables\RoadObservation\ReportService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
|
||||
class ReportController
|
||||
{
|
||||
use ApiResponse;
|
||||
|
||||
public function index(Request $request, ReportService $reportService): JsonResponse
|
||||
{
|
||||
$data = $reportService->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']
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\V3\Dashboard\RoadObservation;
|
||||
|
||||
use App\Exports\V3\RoadObservation\SupervisorCartableReport;
|
||||
use App\Facades\File\FileFacade;
|
||||
use App\Http\Requests\V3\RoadObservation\RestoreRequest;
|
||||
use App\Http\Requests\V3\RoadObservation\VerifyBySupervisorRequest;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\RoadObservationHistory;
|
||||
use App\Models\RoadObserved;
|
||||
use App\Services\Cartables\RoadObservation\SupervisorService;
|
||||
use App\Services\Cartables\RoadObservationTableService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
|
||||
class SupervisorController
|
||||
{
|
||||
use ApiResponse;
|
||||
|
||||
public function index(Request $request, SupervisorService $supervisorService): JsonResponse
|
||||
{
|
||||
return response()->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();
|
||||
}
|
||||
}
|
||||
@@ -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('استانی برای شما در سامانه ثبت نشده است!'));
|
||||
|
||||
84
app/Services/Cartables/RoadObservation/OperatorService.php
Normal file
84
app/Services/Cartables/RoadObservation/OperatorService.php
Normal file
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Cartables\RoadObservation;
|
||||
|
||||
use App\Exceptions\ProhibitedAction;
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Models\RoadObserved;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class OperatorService
|
||||
{
|
||||
public function cartableIndex(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: ['*']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @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
|
||||
);
|
||||
}
|
||||
}
|
||||
53
app/Services/Cartables/RoadObservation/ReportService.php
Normal file
53
app/Services/Cartables/RoadObservation/ReportService.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Cartables\RoadObservation;
|
||||
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Models\RoadObserved;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ReportService
|
||||
{
|
||||
public function index(Request $request): array
|
||||
{
|
||||
$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,
|
||||
];
|
||||
}
|
||||
}
|
||||
48
app/Services/Cartables/RoadObservation/SupervisorService.php
Normal file
48
app/Services/Cartables/RoadObservation/SupervisorService.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Cartables\RoadObservation;
|
||||
|
||||
use App\Exceptions\ProhibitedAction;
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Models\RoadObserved;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SupervisorService
|
||||
{
|
||||
/**
|
||||
* @throws \Throwable
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$user = auth()->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: ['*']);
|
||||
}
|
||||
}
|
||||
@@ -1,169 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Cartables;
|
||||
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\RoadObserved;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class RoadObservationTableService
|
||||
{
|
||||
use ApiResponse;
|
||||
public function supervisorCartableIndex(Request $request)
|
||||
{
|
||||
$user = auth()->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,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user