Milad made major changes in road observation (e.g. fast react)

This commit is contained in:
Hamidreza Ranjbarpour
2024-10-03 13:32:08 +00:00
parent c82e56ebfc
commit 6651275676
10 changed files with 3273 additions and 3125 deletions

View File

@@ -34,7 +34,7 @@ class RoadObservationController extends Controller
*/
public function supervisorCartable()
{
if (! auth()->user()->hasAnyPermission(['supervise-fast-react', 'supervise-fast-react-province'])) {
if (!auth()->user()->hasAnyPermission(['supervise-fast-react', 'supervise-fast-react-province'])) {
abort(403);
}
auth()->user()->addActivityComplete(1137);
@@ -44,33 +44,52 @@ class RoadObservationController extends Controller
public function supervisorShow(Request $request)
{
if (! auth()->user()->hasAnyPermission(['supervise-fast-react', 'supervise-fast-react-province'])) {
if (!auth()->user()->hasAnyPermission(['supervise-fast-react', 'supervise-fast-react-province'])) {
abort(403);
}
// if($request->dev)
// dd($request->query());
$fields = ['AutoID', 'road_observeds.id', 'Title', 'road_observeds.created_at', 'lat', 'lng',
'FeatureTypeTitle', 'Description', 'MobileForSendEventSms',
'rms_description','rms_status', 'rms_last_activity_fa', 'rms_last_activity', 'road_observeds.province_id', 'province_fa', 'city_fa', 'edarate_shahri.name_fa',
'status', 'status_fa', 'supervisor_description', 'supervising_time'];
$fields = [
'fk_RegisteredEventMessage',
'road_observeds.id',
'Title',
'road_observeds.created_at',
'lat',
'lng',
'FeatureTypeTitle',
'Description',
'MobileForSendEventSms',
'rms_description',
'rms_status',
'rms_last_activity_fa',
'rms_last_activity',
'road_observeds.province_id',
'province_fa',
'city_fa',
'edarate_shahri.name_fa',
'status',
'status_fa',
'supervisor_description',
'supervising_time'
];
$aliases = ['', 'road_observeds_id', '', 'road_observeds_created_at', '', '', '', '', '', '', '', '', '', 'province_id', '', '', 'edarate_shahri_name_fa', '', '', '', ''];
$selectRaw = makeSelectQuery($fields, $aliases);
if (auth()->user()->hasPermissionTo('supervise-fast-react')) {
$query = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id')
// ->where('rms_status', '!=', 0)
->whereNotNull('road_observeds.status')
// ->where(function ($query) {
// $query->where('status', 0)
// ->orWhere('supervisor_id', auth()->user()->id);
// })
->selectRaw($selectRaw)
->selectRaw("CONCAT('https://rms.rmto.ir/',image_before) as image_before, CONCAT('https://rms.rmto.ir/', image_after) as image_after");
// ->where('rms_status', '!=', 0)
->whereNotNull('road_observeds.status')
// ->where(function ($query) {
// $query->where('status', 0)
// ->orWhere('supervisor_id', auth()->user()->id);
// })
->selectRaw($selectRaw)
->selectRaw("CONCAT('https://rms.rmto.ir/',image_before) as image_before, CONCAT('https://rms.rmto.ir/', image_after) as image_after");
} elseif (auth()->user()->hasPermissionTo('supervise-fast-react-province')) {
if (is_null(auth()->user()->province_id)) {
@@ -78,19 +97,19 @@ class RoadObservationController extends Controller
'message' => 'استانی برای شما در سامانه ثبت نشده است!'
], 400);
}
$query = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id')
// ->where('rms_status', '!=', 0)
->where('road_observeds.province_id', auth()->user()->province_id)
->whereNotNull('road_observeds.status')
// ->where(function ($query) {
// $query->where('status', 0)
// ->orWhere('supervisor_id', auth()->user()->id);
// })
->selectRaw($selectRaw)
->selectRaw("CONCAT('https://rms.rmto.ir/',image_before) as image_before, CONCAT('https://rms.rmto.ir/', image_after) as image_after");
// ->where('rms_status', '!=', 0)
->where('road_observeds.province_id', auth()->user()->province_id)
->whereNotNull('road_observeds.status')
// ->where(function ($query) {
// $query->where('status', 0)
// ->orWhere('supervisor_id', auth()->user()->id);
// })
->selectRaw($selectRaw)
->selectRaw("CONCAT('https://rms.rmto.ir/',image_before) as image_before, CONCAT('https://rms.rmto.ir/', image_after) as image_after");
}
$data = processDataTable($request, '', $fields, $query);
return response()->json(
$data,
@@ -135,14 +154,14 @@ class RoadObservationController extends Controller
/**
* Supervisor(End)
*/
*/
/**
* Operator(Begin)
*/
*/
public function operatorCartable()
{
if (! auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
if (!auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
abort(403);
}
auth()->user()->addActivityComplete(1139);
@@ -152,14 +171,34 @@ class RoadObservationController extends Controller
public function operatorShow(Request $request)
{
if (! auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
if (!auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
abort(403);
}
$fields = ['AutoID', 'road_observeds.id', 'Title', 'road_observeds.created_at', 'lat', 'lng',
'FeatureTypeTitle', 'Description', 'MobileForSendEventSms',
'rms_description','rms_status','rms_start_latlng','rms_last_activity_fa','rms_last_activity', 'road_observeds.province_id', 'province_fa', 'city_fa', 'edarate_shahri.name_fa',
'status', 'status_fa', 'supervisor_description', 'supervising_time'];
$fields = [
'fk_RegisteredEventMessage',
'road_observeds.id',
'Title',
'road_observeds.created_at',
'lat',
'lng',
'FeatureTypeTitle',
'Description',
'MobileForSendEventSms',
'rms_description',
'rms_status',
'rms_start_latlng',
'rms_last_activity_fa',
'rms_last_activity',
'road_observeds.province_id',
'province_fa',
'city_fa',
'edarate_shahri.name_fa',
'status',
'status_fa',
'supervisor_description',
'supervising_time'
];
$aliases = ['', 'road_observeds_id', '', 'road_observeds_created_at', '', '', '', '', '', '', '', '', '', '', 'province_id', '', '', 'edarate_shahri_name_fa', '', '', '', ''];
@@ -167,11 +206,11 @@ class RoadObservationController extends Controller
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')
->selectRaw($selectRaw)
->selectRaw("CONCAT('https://rms.rmto.ir/',image_before) as image_before, CONCAT('https://rms.rmto.ir/', image_after) as image_after");
->where('rms_status', '!=', 0)
->whereNotNull('road_observeds.province_id')
->whereNotNull('status')
->selectRaw($selectRaw)
->selectRaw("CONCAT('https://rms.rmto.ir/',image_before) as image_before, CONCAT('https://rms.rmto.ir/', image_after) as image_after");
} elseif (auth()->user()->hasPermissionTo('show-fast-react-province')) {
if (is_null(auth()->user()->province_id)) {
return response()->json([
@@ -180,12 +219,12 @@ class RoadObservationController extends Controller
}
$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')
->selectRaw($selectRaw)
->selectRaw("CONCAT('https://rms.rmto.ir/',image_before) as image_before, CONCAT('https://rms.rmto.ir/', image_after) as image_after");
->where('rms_province_id', auth()->user()->province_id)
->where('rms_status', '!=', 0)
->whereNotNull('road_observeds.province_id')
->whereNotNull('status')
->selectRaw($selectRaw)
->selectRaw("CONCAT('https://rms.rmto.ir/',image_before) as image_before, CONCAT('https://rms.rmto.ir/', image_after) as image_after");
} elseif (auth()->user()->hasPermissionTo('show-fast-react-edarate-shahri')) {
if (is_null(auth()->user()->edarate_shahri_id)) {
return response()->json([
@@ -194,12 +233,12 @@ class RoadObservationController extends Controller
}
$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')
->selectRaw($selectRaw)
->selectRaw("CONCAT('https://rms.rmto.ir/',image_before) as image_before, CONCAT('https://rms.rmto.ir/', image_after) as image_after");
->where('edarate_shahri_id', auth()->user()->edarate_shahri_id)
->where('rms_status', '!=', 0)
->whereNotNull('road_observeds.province_id')
->whereNotNull('status')
->selectRaw($selectRaw)
->selectRaw("CONCAT('https://rms.rmto.ir/',image_before) as image_before, CONCAT('https://rms.rmto.ir/', image_after) as image_after");
}
$data = processDataTable($request, '', $fields, $query);
@@ -217,11 +256,11 @@ class RoadObservationController extends Controller
}
/**
* Operator(End)
*/
*/
public function pendingView()
{
if (! auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
if (!auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
abort(403);
}
auth()->user()->addActivityComplete(1140);
@@ -231,7 +270,7 @@ class RoadObservationController extends Controller
public function count()
{
if (! auth()->user()->permissions()->where('type', 'fastreact')->exists()) {
if (!auth()->user()->permissions()->where('type', 'fastreact')->exists()) {
abort(403);
}
@@ -241,9 +280,9 @@ class RoadObservationController extends Controller
if (auth()->user()->hasPermissionTo('show-fast-react')) {
$data = RoadObserved::whereBetween('created_at', [$from_datetime, $to_datetime])
->selectRaw('sum(case when rms_status = 0 then 1 else 0 end) as pending,
->selectRaw('sum(case when rms_status = 0 then 1 else 0 end) as pending,
sum(case when rms_status != 0 then 1 else 0 end) as done')
->get();
->get();
} elseif (auth()->user()->hasPermissionTo('show-fast-react-province')) {
if (!auth()->user()->province_id) {
return response()->json([
@@ -252,10 +291,10 @@ class RoadObservationController extends Controller
}
$data = RoadObserved::where('rms_province_id', Auth::user()->province_id)
->whereBetween('created_at', [$from_datetime, $to_datetime])
->selectRaw('sum(case when rms_status = 0 then 1 else 0 end) as pending,
->whereBetween('created_at', [$from_datetime, $to_datetime])
->selectRaw('sum(case when rms_status = 0 then 1 else 0 end) as pending,
sum(case when rms_status != 0 then 1 else 0 end) as done')
->get();
->get();
} elseif (auth()->user()->hasPermissionTo('show-fast-react-city')) {
if (!auth()->user()->city_id) {
return response()->json([
@@ -264,10 +303,10 @@ class RoadObservationController extends Controller
}
$data = RoadObserved::where('rms_city_id', Auth::user()->city_id)
->whereBetween('created_at', [$from_datetime, $to_datetime])
->selectRaw('sum(case when rms_status = 0 then 1 else 0 end) as pending,
->whereBetween('created_at', [$from_datetime, $to_datetime])
->selectRaw('sum(case when rms_status = 0 then 1 else 0 end) as pending,
sum(case when rms_status != 0 then 1 else 0 end) as done')
->get();
->get();
}
return response()->json([
@@ -278,15 +317,28 @@ class RoadObservationController extends Controller
public function showPending(Request $request)
{
if (! auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
if (!auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
abort(403);
}
if($request->dev)
if ($request->dev)
dd(auth()->user()->permissions->pluck('name'));
$fields = ['AutoID', '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'];
$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'
];
$aliases = ['', 'road_observeds_id', '', 'road_observeds_created_at', '', '', '', '', '', 'province_id', '', '', 'edarate_shahri_name_fa'];
@@ -294,9 +346,9 @@ class RoadObservationController extends Controller
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('edarate_shahri_id')
->selectRaw($selectRaw);
->where('rms_status', 0)
->whereNotNull('edarate_shahri_id')
->selectRaw($selectRaw);
} elseif (auth()->user()->hasPermissionTo('show-fast-react-province')) {
if (is_null(auth()->user()->province_id)) {
return response()->json([
@@ -305,10 +357,10 @@ class RoadObservationController extends Controller
}
$query = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id')
->where('rms_status', 0)
->whereNotNull('edarate_shahri_id')
->where('road_observeds.province_id', auth()->user()->province_id)
->selectRaw($selectRaw);
->where('rms_status', 0)
->whereNotNull('edarate_shahri_id')
->where('road_observeds.province_id', auth()->user()->province_id)
->selectRaw($selectRaw);
// dd(2);
} elseif (auth()->user()->hasPermissionTo('show-fast-react-edarate-shahri')) {
@@ -319,22 +371,22 @@ class RoadObservationController extends Controller
}
$query = RoadObserved::leftjoin('edarate_shahri', 'road_observeds.edarate_shahri_id', 'edarate_shahri.id')
->where('rms_status', 0)
->whereNotNull('edarate_shahri_id')
->where('edarate_shahri_id', auth()->user()->edarate_shahri_id)
->selectRaw($selectRaw);
->where('rms_status', 0)
->whereNotNull('edarate_shahri_id')
->where('edarate_shahri_id', auth()->user()->edarate_shahri_id)
->selectRaw($selectRaw);
}
$data = processDataTable($request, '', $fields, $query);
return response()->json(
$data,
$data['status'],
);
}
public function referList(int $id)
{
@@ -346,6 +398,20 @@ class RoadObservationController extends Controller
'data' => $edarat_shahri,
]);
}
public function referReport(Request $request, RoadObserved $roadObserved)
{
$data = RoadObservationHistory::where('road_observation_histories.id', $roadObserved->id)->where('action', 'refer')->get();
foreach ($data as $key => $value) {
$data[$key]->from_edareh = EdarateShahri::find($value->from_edareh)->name_fa;
$data[$key]->to_edareh = EdarateShahri::find($value->to_edareh)->name_fa;
$user = User::find($value->user_id);
$data[$key]->user = $user->first_name . ' ' . $user->last_name;
}
return response()->json([
'status' => 200,
'data' => $data,
]);
}
public function refer(Request $request, RoadObserved $roadObserved)
{
@@ -359,18 +425,20 @@ class RoadObservationController extends Controller
'message' => 'access to requested resource is forbidden.'
], 403);
}
$from_edareh = $roadObserved->edarate_shahri_id;
$roadObserved->update([
'edarate_shahri_id' => $request->edarate_shahri_id,
]);
RoadObservationHistory::create([
'id' => $roadObserved->id,
'user_id' => auth()->user()->id,
'action' => 'refer',
'description' => $request->refer_description,
'from_edareh' => $from_edareh,
'to_edareh' => $request->edarate_shahri_id
]);
auth()->user()->addActivityComplete(1037);
return response()->json([
'status' => 'succeed',
@@ -381,7 +449,7 @@ class RoadObservationController extends Controller
public function restore(Request $request, RoadObserved $roadObserved)
{
if (! auth()->user()->hasPermissionTo('restore-fast-react')) {
if (!auth()->user()->hasPermissionTo('restore-fast-react')) {
abort(403);
}
@@ -391,12 +459,12 @@ class RoadObservationController extends Controller
if ($roadObserved->image_before) {
$before_path = explode('/', $roadObserved->image_before);
Storage::delete('public/'. implode('/', array_slice($before_path, 1)));
Storage::delete('public/' . implode('/', array_slice($before_path, 1)));
}
if ($roadObserved->image_after) {
$after_path = explode('/', $roadObserved->image_after);
Storage::delete('public/'. implode('/', array_slice($after_path, 1)));
Storage::delete('public/' . implode('/', array_slice($after_path, 1)));
}
$roadObserved->update([
@@ -417,7 +485,7 @@ class RoadObservationController extends Controller
'action' => 'restore',
'description' => $request->restore_description,
]);
auth()->user()->addActivityComplete(1141);
return response()->json([
'status' => 'succeed',
@@ -428,7 +496,7 @@ class RoadObservationController extends Controller
public function handle(Request $request, RoadObserved $roadObserved, NikarayanService $nikarayanService)
{
if (! auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
if (!auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
return response()->json([
'message' => 'access to requested resource is forbidden.'
], 403);
@@ -439,16 +507,16 @@ class RoadObservationController extends Controller
$file_time = time();
// $uuid = \Uuid::generate();
$uuid = (string) Str::uuid();
if ($request->file('image-before-1')) {
$roadObserved->files()->where('path', 'like', '%_image-before-1_%')->delete();
$files_path[$file_index]['path'] = $request->file('image-before-1')->storeAs(
'public/road_observeds',
'img4_' . $file_time . '_image-before-1_' . $roadObserved->id . '_' . $uuid.'.'. $request->file('image-before-1')->extension()
'img4_' . $file_time . '_image-before-1_' . $roadObserved->id . '_' . $uuid . '.' . $request->file('image-before-1')->extension()
);
$file_index++;
$roadObserved->image_before = 'storage/road_observeds/'.'img4_' . $file_time . '_image-before-1_' . $roadObserved->id . '_' . $uuid.'.'. $request->file('image-before-1')->extension();
$roadObserved->image_before = 'storage/road_observeds/' . 'img4_' . $file_time . '_image-before-1_' . $roadObserved->id . '_' . $uuid . '.' . $request->file('image-before-1')->extension();
}
if ($request->file('image-after-1')) {
@@ -456,14 +524,14 @@ class RoadObservationController extends Controller
$files_path[$file_index]['path'] = $request->file('image-after-1')->storeAs(
'public/road_observeds',
'img4_' . $file_time . '_image-after-1_' . $roadObserved->id . '_' . $uuid.'.'. $request->file('image-after-1')->extension()
'img4_' . $file_time . '_image-after-1_' . $roadObserved->id . '_' . $uuid . '.' . $request->file('image-after-1')->extension()
);
$file_index++;
$roadObserved->image_after = 'storage/road_observeds/'.'img4_' . $file_time . '_image-after-1_' . $roadObserved->id . '_' . $uuid.'.'.$request->file('image-after-1')->extension();
$roadObserved->image_after = 'storage/road_observeds/' . 'img4_' . $file_time . '_image-after-1_' . $roadObserved->id . '_' . $uuid . '.' . $request->file('image-after-1')->extension();
}
/////// milad i uncomment this
$files = json_encode($files_path);
$files = json_encode($files_path);
$roadObserved->problemHistories()->create([
'user_id' => Auth::user()->id, //$request->user()->id,// 470
'previous_rms_status' => $roadObserved->rms_status,
@@ -474,13 +542,13 @@ class RoadObservationController extends Controller
]);
$roadObserved->rms_status = $request->input('rms-status') ?? $roadObserved->rms_status;
if ($request->input('rms-start-latlng')) {
$roadObserved->rms_start_latlng = explode(',', $request->input('rms-start-latlng')) ?? null;
if ($request->input('start_point')) {
$roadObserved->rms_start_latlng = explode(',', $request->input('start_point')) ?? null;
}
if ($request->input('rms-end-latlng')) {
$roadObserved->rms_end_latlng = explode(',', $request->input('rms-end-latlng')) ?? null;
}
$roadObserved->rms_description = $request->input('rms-description') ?? $roadObserved->rms_description;
// if ($request->input('rms-end-latlng')) {
// $roadObserved->rms_end_latlng = explode(',', $request->input('rms-end-latlng')) ?? null;
// }
$roadObserved->rms_description = $request->input('description') ?? $roadObserved->rms_description;
$now_date_time = Carbon::now();
$roadObserved->updated_at_fa = Verta::instance($now_date_time);
@@ -503,10 +571,10 @@ class RoadObservationController extends Controller
try {
$result = $nikarayanService->updateRoadObservedInfoByNikarayan($request, $roadObserved, $files);
} catch (SoapFault $e) {
$msg = "error in send to nikarayan at".date("Y-m-d H:i:s")."\n".'rms: error in get road observation webservice babe!!!!'."\n";
$msg = "error in send to nikarayan at" . date("Y-m-d H:i:s") . "\n" . 'rms: error in get road observation webservice babe!!!!' . "\n";
$msg .= $e->getMessage();
Sms::sendSms(env('RMS_CTO_PHONE_NUMBER'), $msg);
}
///// sms send