1260 lines
54 KiB
PHP
1260 lines
54 KiB
PHP
<?php
|
||
|
||
namespace App\Http\Controllers;
|
||
|
||
use Illuminate\Http\Request;
|
||
use Illuminate\Support\Facades\Auth;
|
||
use App\Models\DangerPoint;
|
||
use App\Models\DangerPointAccident;
|
||
use Barryvdh\Snappy\Facades\SnappyPdf;
|
||
use Carbon\Carbon;
|
||
use Illuminate\Support\Facades\Hash;
|
||
|
||
class DangerPointPublicController extends Controller
|
||
{
|
||
public function getUserProvince(Request $request)
|
||
{
|
||
// if ($request->user()->province_id != null
|
||
// && ($request->user()->username == 'witeL' || $request->user()->username == 'drdanesh')) {
|
||
// $provinces = \App\Models\Province::all();
|
||
// } else {
|
||
// $provinces = \App\Models\Province::find($request->user()->province_id);
|
||
// }
|
||
|
||
$provinces = \App\Models\Province::all();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $provinces
|
||
], 200);
|
||
}
|
||
|
||
public function getDangerPoint() {
|
||
// if (Auth::user()->province_id != null
|
||
// && (Auth::user()->username == 'witeL' || Auth::user()->username == 'drdanesh')) {
|
||
// $dangerPoints = DangerPoint::all();
|
||
// } else {
|
||
// $dangerPoints = DangerPoint::where('province_id', Auth::user()->province_id)
|
||
// ->get();
|
||
// }
|
||
|
||
$dangerPoints = DangerPoint::all();
|
||
|
||
$dangerPointsArray = [];
|
||
|
||
foreach ($dangerPoints As $key => $dangerPoint) {
|
||
$dangerPointsArray[$key] = [
|
||
'id' => $dangerPoint->id,
|
||
'province' => [
|
||
'id' => $dangerPoint->province->id,
|
||
'name' => $dangerPoint->province->name_fa
|
||
],
|
||
'axis_name' => $dangerPoint->axis_name,
|
||
'axis_type' => $dangerPoint->axis_type,
|
||
'axis_start' => $dangerPoint->axis_start,
|
||
'axis_end' => $dangerPoint->axis_end,
|
||
'distance_axis_start' => $dangerPoint->distance_axis_start,
|
||
'local_name' => $dangerPoint->local_name,
|
||
'lat_lng' => [
|
||
$dangerPoint->lat,
|
||
$dangerPoint->lng
|
||
],
|
||
'accident_251' => $dangerPoint->accident_251,
|
||
'accident_251_code' => $dangerPoint->accident_251_code,
|
||
'speed_limit' => $dangerPoint->speed_limit,
|
||
'speed_average' => $dangerPoint->speed_average,
|
||
'accident_possibility' => $dangerPoint->accident_possibility,
|
||
'road_guard' => $dangerPoint->road_guard,
|
||
'geometric_desc' => $dangerPoint->geometric_desc,
|
||
'accident_cause' => $dangerPoint->accident_cause,
|
||
'accident_cause_suggest' => $dangerPoint->accident_cause_suggest,
|
||
'accident_severity' => $dangerPoint->accident_severity,
|
||
'accident_severity_suggest' => $dangerPoint->accident_severity_suggest,
|
||
'correction_plan_done' => $dangerPoint->correction_plan_done,
|
||
'correction_plan_doing' => $dangerPoint->correction_plan_doing,
|
||
'correction_plan_doing_desc' => $dangerPoint->correction_plan_doing_desc,
|
||
'correction_plan_doing_suggest' => $dangerPoint->correction_plan_doing_suggest,
|
||
'point_images' => $dangerPoint->files,
|
||
'btn_deactive' => [
|
||
(($dangerPoint->dangerPointAccidents()->count() > 0) ? 0 : 1),
|
||
(($dangerPoint->speed_limit != null) ? 0 : 1),
|
||
1,
|
||
(($dangerPoint->files()->count() == 9) ? 0 : 1),
|
||
(($dangerPoint->signature_file != null && $dangerPoint->police_file != null) ? 0 : 1),
|
||
1
|
||
],
|
||
'uploaded_files' => [
|
||
['signature_file' => ($dangerPoint->signature_file) ? asset('storage' . substr($dangerPoint->signature_file, 6)) : null],
|
||
['police_file' => ($dangerPoint->police_file) ? asset('storage' . substr($dangerPoint->police_file, 6)) : null]
|
||
],
|
||
'status' => $dangerPoint->status,
|
||
'status_desc' => $dangerPoint->status_desc,
|
||
'submited_at' => verta($dangerPoint->created_at)->format('Y/m/d'),
|
||
'code' => $dangerPoint->code
|
||
];
|
||
|
||
if ($dangerPointsArray[$key]['btn_deactive'][0] == 0 && $dangerPointsArray[$key]['btn_deactive'][1] == 0) {
|
||
$dangerPointsArray[$key]['btn_deactive'][2] = 0;
|
||
}
|
||
|
||
if ($dangerPointsArray[$key]['btn_deactive'][0] == 0
|
||
&& $dangerPointsArray[$key]['btn_deactive'][1] == 0
|
||
&& $dangerPointsArray[$key]['btn_deactive'][2] == 0
|
||
&& $dangerPointsArray[$key]['btn_deactive'][3] == 0
|
||
&& $dangerPointsArray[$key]['btn_deactive'][4] == 0) {
|
||
$dangerPointsArray[$key]['btn_deactive'][5] = 0;
|
||
}
|
||
}
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $dangerPointsArray,
|
||
'can_submit' => 1
|
||
], 200);
|
||
}
|
||
|
||
public function getDangerPointAdmin() {
|
||
$dangerPoints = DangerPoint::whereIn('status', [1, 2, 3, 4])->get();
|
||
|
||
$dangerPointsArray = [];
|
||
|
||
foreach ($dangerPoints As $key => $dangerPoint) {
|
||
$dangerPointsArray[$key] = [
|
||
'id' => $dangerPoint->id,
|
||
'province' => [
|
||
'id' => $dangerPoint->province->id,
|
||
'name' => $dangerPoint->province->name_fa
|
||
],
|
||
'axis_name' => $dangerPoint->axis_name,
|
||
'axis_type' => $dangerPoint->axis_type,
|
||
'axis_start' => $dangerPoint->axis_start,
|
||
'axis_end' => $dangerPoint->axis_end,
|
||
'distance_axis_start' => $dangerPoint->distance_axis_start,
|
||
'local_name' => $dangerPoint->local_name,
|
||
'lat_lng' => [
|
||
$dangerPoint->lat,
|
||
$dangerPoint->lng
|
||
],
|
||
'accident_251' => $dangerPoint->accident_251,
|
||
'accident_251_code' => $dangerPoint->accident_251_code,
|
||
'speed_limit' => $dangerPoint->speed_limit,
|
||
'speed_average' => $dangerPoint->speed_average,
|
||
'accident_possibility' => $dangerPoint->accident_possibility,
|
||
'road_guard' => $dangerPoint->road_guard,
|
||
'geometric_desc' => $dangerPoint->geometric_desc,
|
||
'accident_cause' => $dangerPoint->accident_cause,
|
||
'accident_cause_suggest' => $dangerPoint->accident_cause_suggest,
|
||
'accident_severity' => $dangerPoint->accident_severity,
|
||
'accident_severity_suggest' => $dangerPoint->accident_severity_suggest,
|
||
'correction_plan_done' => $dangerPoint->correction_plan_done,
|
||
'correction_plan_doing' => $dangerPoint->correction_plan_doing,
|
||
'correction_plan_doing_desc' => $dangerPoint->correction_plan_doing_desc,
|
||
'correction_plan_doing_suggest' => $dangerPoint->correction_plan_doing_suggest,
|
||
'point_images' => $dangerPoint->files,
|
||
'btn_deactive' => [
|
||
0,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
'uploaded_files' => [
|
||
['signature_file' => ($dangerPoint->signature_file) ? asset('storage' . substr($dangerPoint->signature_file, 6)) : null],
|
||
['police_file' => ($dangerPoint->police_file) ? asset('storage' . substr($dangerPoint->police_file, 6)) : null]
|
||
],
|
||
'status' => $dangerPoint->status,
|
||
'status_desc' => $dangerPoint->status_desc,
|
||
'submited_at' => verta($dangerPoint->created_at)->format('Y/m/d'),
|
||
'code' => $dangerPoint->code
|
||
];
|
||
}
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $dangerPointsArray
|
||
], 200);
|
||
}
|
||
|
||
public function getDangerAccidents($id) {
|
||
$dangerAccidents = DangerPoint::find($id)->dangerPointAccidents;
|
||
|
||
$dangerAccidentsArray = [];
|
||
|
||
foreach ($dangerAccidents As $key => $dangerAccident) {
|
||
$dangerAccidentsArray[$key] = [
|
||
'id' => $dangerAccident->id,
|
||
'serial_number' => $dangerAccident->serial_number,
|
||
'accident_date' => (($dangerAccident->accident_date) ? verta($dangerAccident->accident_date)->format('Y/m/d') : $dangerAccident->accident_date),
|
||
'day' => $dangerAccident->day,
|
||
'time' => $dangerAccident->time,
|
||
'accident_direction' => $dangerAccident->accident_direction,
|
||
'collision_type' => $dangerAccident->collision_type,
|
||
'accident_factors' => $dangerAccident->accident_factors,
|
||
'accident_type' => $dangerAccident->accident_type ?? [],
|
||
'accident_result' => $dangerAccident->accident_result
|
||
];
|
||
}
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $dangerAccidentsArray
|
||
], 200);
|
||
}
|
||
|
||
public function storeDanger(Request $request)
|
||
{
|
||
$request->validate([
|
||
'province-id' => 'required|integer|exists:provinces,id',
|
||
'axis-name' => 'required|string',
|
||
'axis-type' => 'required|integer|between:1,6',
|
||
'axis-start' => 'required|string',
|
||
'axis-end' => 'required|string',
|
||
'distance-axis-start' => 'required|integer',
|
||
'local-name' => 'required|string',
|
||
'lat' => 'required|string|regex:/^[1-9][0-9]\.[0-9]{1,}$/i',
|
||
'lng' => 'required|string|regex:/^[1-9][0-9]\.[0-9]{1,}$/i'
|
||
]);
|
||
|
||
$dangerPoint = new DangerPoint;
|
||
|
||
// PUBLIC URL
|
||
$dangerPoint->user_id = Auth::user()->id;//// i commented 470
|
||
$dangerPoint->province_id = $request->input('province-id') ?? null;
|
||
$dangerPoint->axis_name = $request->input('axis-name') ?? null;
|
||
$dangerPoint->axis_type = $request->input('axis-type') ?? null;
|
||
$dangerPoint->axis_start = $request->input('axis-start') ?? null;
|
||
$dangerPoint->axis_end = $request->input('axis-end') ?? null;
|
||
$dangerPoint->distance_axis_start = $request->input('distance-axis-start') ?? null;
|
||
$dangerPoint->local_name = $request->input('local-name') ?? null;
|
||
$dangerPoint->lat = $request->input('lat') ?? null;
|
||
$dangerPoint->lng = $request->input('lng') ?? null;
|
||
|
||
$dangerPoint->save();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $dangerPoint
|
||
], 201);
|
||
}
|
||
|
||
public function storeDangerDetails(Request $request)
|
||
{
|
||
$request->validate([
|
||
'danger-id' => 'required|integer|exists:danger_points,id',
|
||
'accident-251' => 'required|boolean',
|
||
'accident-251-code' => 'required_if:accident-251,1|string',
|
||
'speed-limit' => 'required|integer',
|
||
'speed-average' => 'required|integer',
|
||
'accident-possibility' => 'required|boolean',
|
||
'road-guard' => 'required|boolean',
|
||
'geometric-desc' => 'required|integer|between:1,16',
|
||
'accident-cause' => 'string',
|
||
'accident-cause-suggest' => 'string',
|
||
'accident-severity' => 'string',
|
||
'accident-severity-suggest' => 'string',
|
||
'correction-plan-done' => 'string',
|
||
'correction-plan-doing' => 'string',
|
||
'correction-plan-doing-desc' => 'string',
|
||
'correction-plan-doing-suggest' => 'string',
|
||
//'signature-file' => 'required|file'
|
||
]);
|
||
|
||
$dangerPoint = DangerPoint::find($request->input('danger-id'));
|
||
|
||
$dangerPoint->accident_251 = $request->input('accident-251') ?? null;
|
||
$dangerPoint->accident_251_code = $request->input('accident-251-code') ?? null;
|
||
$dangerPoint->speed_limit = $request->input('speed-limit') ?? null;
|
||
$dangerPoint->speed_average = $request->input('speed-average') ?? null;
|
||
$dangerPoint->accident_possibility = $request->input('accident-possibility') ?? null;
|
||
$dangerPoint->road_guard = $request->input('road-guard') ?? null;
|
||
$dangerPoint->geometric_desc = $request->input('geometric-desc') ?? null;
|
||
if ($request->input('accident-cause')) {
|
||
$dangerPoint->accident_cause = explode(',', $request->input('accident-cause')) ?? null;
|
||
} else {
|
||
$dangerPoint->accident_cause = null;
|
||
}
|
||
$dangerPoint->accident_cause_suggest = $request->input('accident-cause-suggest') ?? null;
|
||
if ($request->input('accident-severity')) {
|
||
$dangerPoint->accident_severity = explode(',', $request->input('accident-severity')) ?? null;
|
||
} else {
|
||
$dangerPoint->accident_severity = null;
|
||
}
|
||
$dangerPoint->accident_severity_suggest = $request->input('accident-severity-suggest') ?? null;
|
||
$dangerPoint->correction_plan_done = $request->input('correction-plan-done') ?? null;
|
||
$dangerPoint->correction_plan_doing = $request->input('correction-plan-doing') ?? null;
|
||
$dangerPoint->correction_plan_doing_desc = $request->input('correction-plan-doing-desc') ?? null;
|
||
$dangerPoint->correction_plan_doing_suggest = $request->input('correction-plan-doing-suggest') ?? null;
|
||
|
||
// $files_path = null;
|
||
|
||
// if ($request->file('signature-file')) {
|
||
// $files_path = $request->file('signature-file')->storeAs(
|
||
// 'public/danger-points/signature',
|
||
// 'sign_' . time() . '_signature_file_' . $dangerPoint->id . '_' . $request->file('signature-file')->getClientOriginalName()
|
||
// );
|
||
// }
|
||
|
||
// $dangerPoint->signature_file = $files_path;
|
||
|
||
$dangerPoint->save();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $dangerPoint
|
||
], 201);
|
||
}
|
||
|
||
public function storeDangerAccident(Request $request)
|
||
{
|
||
$request->validate([
|
||
'danger-id' => 'required|integer|exists:danger_points,id',
|
||
'serial-number' => 'required|string',
|
||
'accident-date' => 'required|date_format:Y-m-d',
|
||
'day' => 'required|integer|between:1,7',
|
||
'time' => 'required|string',
|
||
'accident-direction' => 'required|integer|between:1,2',
|
||
'collision-type' => 'required|integer|between:1,6',
|
||
'accident-factors' => 'required|json',
|
||
'accident-type' => 'required|integer|between:1,3',
|
||
'accident-result' => 'required|json'
|
||
]);
|
||
|
||
$dangerPoint = DangerPoint::find($request->input('danger-id'));
|
||
|
||
$dangerPointAccident = $dangerPoint->dangerPointAccidents()->create([
|
||
// PUBLIC URL
|
||
'user_id' => Auth::user()->id,
|
||
'serial_number' => $request->input('serial-number') ?? null,
|
||
'accident_date' => $request->input('accident-date') ?? null,
|
||
'day' => $request->input('day') ?? null,
|
||
'time' => $request->input('time') ?? null,
|
||
'accident_direction' => $request->input('accident-direction') ?? null,
|
||
'collision_type' => $request->input('collision-type') ?? null,
|
||
'accident_factors' => (($request->input('accident-factors')) ? json_decode($request->input('accident-factors')) : null),
|
||
'accident_type' => $request->input('accident-type') ?? null,
|
||
'accident_result' => (($request->input('accident-result')) ? json_decode($request->input('accident-result')) : null)
|
||
]);
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $dangerPointAccident
|
||
], 201);
|
||
}
|
||
|
||
public function storeDangerImages(Request $request)
|
||
{
|
||
$request->validate([
|
||
'danger-id' => 'required|integer|exists:danger_points,id',
|
||
'image-right-100-1' => 'image',
|
||
'image-right-100-2' => 'image',
|
||
'image-right-50-1' => 'image',
|
||
'image-right-50-2' => 'image',
|
||
'image-left-100-1' => 'image',
|
||
'image-left-100-2' => 'image',
|
||
'image-left-50-1' => 'image',
|
||
'image-left-50-2' => 'image',
|
||
'image-satellite' => 'image'
|
||
]);
|
||
|
||
$dangerPoint = DangerPoint::find($request->input('danger-id'));
|
||
|
||
$files_path = [];
|
||
$file_index = 0;
|
||
$file_time = time();
|
||
|
||
if ($request->file('image-right-100-1')) {
|
||
$dangerPoint->files()->where('path', 'like', '%_image-right-100-1_0_%')->delete();
|
||
|
||
$files_path[$file_index]['path'] = $request->file('image-right-100-1')->storeAs(
|
||
'public/danger_points',
|
||
'img9_' . $file_time . '_image-right-100-1_0_' . $dangerPoint->id . '_' . $request->file('image-right-100-1')->getClientOriginalName()
|
||
);
|
||
$file_index++;
|
||
}
|
||
if ($request->file('image-right-100-2')) {
|
||
$dangerPoint->files()->where('path', 'like', '%_image-right-100-2_1_%')->delete();
|
||
|
||
$files_path[$file_index]['path'] = $request->file('image-right-100-2')->storeAs(
|
||
'public/danger_points',
|
||
'img9_' . $file_time . '_image-right-100-2_1_' . $dangerPoint->id . '_' . $request->file('image-right-100-2')->getClientOriginalName()
|
||
);
|
||
$file_index++;
|
||
}
|
||
if ($request->file('image-right-50-1')) {
|
||
$dangerPoint->files()->where('path', 'like', '%_image-right-50-1_2_%')->delete();
|
||
|
||
$files_path[$file_index]['path'] = $request->file('image-right-50-1')->storeAs(
|
||
'public/danger_points',
|
||
'img9_' . $file_time . '_image-right-50-1_2_' . $dangerPoint->id . '_' . $request->file('image-right-50-1')->getClientOriginalName()
|
||
);
|
||
$file_index++;
|
||
}
|
||
if ($request->file('image-right-50-2')) {
|
||
$dangerPoint->files()->where('path', 'like', '%_image-right-50-2_3_%')->delete();
|
||
|
||
$files_path[$file_index]['path'] = $request->file('image-right-50-2')->storeAs(
|
||
'public/danger_points',
|
||
'img9_' . $file_time . '_image-right-50-2_3_' . $dangerPoint->id . '_' . $request->file('image-right-50-2')->getClientOriginalName()
|
||
);
|
||
$file_index++;
|
||
}
|
||
if ($request->file('image-left-100-1')) {
|
||
$dangerPoint->files()->where('path', 'like', '%_image-left-100-1_4_%')->delete();
|
||
|
||
$files_path[$file_index]['path'] = $request->file('image-left-100-1')->storeAs(
|
||
'public/danger_points',
|
||
'img9_' . $file_time . '_image-left-100-1_4_' . $dangerPoint->id . '_' . $request->file('image-left-100-1')->getClientOriginalName()
|
||
);
|
||
$file_index++;
|
||
}
|
||
if ($request->file('image-left-100-2')) {
|
||
$dangerPoint->files()->where('path', 'like', '%_image-left-100-2_5_%')->delete();
|
||
|
||
$files_path[$file_index]['path'] = $request->file('image-left-100-2')->storeAs(
|
||
'public/danger_points',
|
||
'img9_' . $file_time . '_image-left-100-2_5_' . $dangerPoint->id . '_' . $request->file('image-left-100-2')->getClientOriginalName()
|
||
);
|
||
$file_index++;
|
||
}
|
||
if ($request->file('image-left-50-1')) {
|
||
$dangerPoint->files()->where('path', 'like', '%_image-left-50-1_6_%')->delete();
|
||
|
||
$files_path[$file_index]['path'] = $request->file('image-left-50-1')->storeAs(
|
||
'public/danger_points',
|
||
'img9_' . $file_time . '_image-left-50-1_6_' . $dangerPoint->id . '_' . $request->file('image-left-50-1')->getClientOriginalName()
|
||
);
|
||
$file_index++;
|
||
}
|
||
if ($request->file('image-left-50-2')) {
|
||
$dangerPoint->files()->where('path', 'like', '%_image-left-50-2_7_%')->delete();
|
||
|
||
$files_path[$file_index]['path'] = $request->file('image-left-50-2')->storeAs(
|
||
'public/danger_points',
|
||
'img9_' . $file_time . '_image-left-50-2_7_' . $dangerPoint->id . '_' . $request->file('image-left-50-2')->getClientOriginalName()
|
||
);
|
||
$file_index++;
|
||
}
|
||
if ($request->file('image-satellite')) {
|
||
$dangerPoint->files()->where('path', 'like', '%_image-satellite_8_%')->delete();
|
||
|
||
$files_path[$file_index]['path'] = $request->file('image-satellite')->storeAs(
|
||
'public/danger_points',
|
||
'img9_' . $file_time . '_image-satellite_8_' . $dangerPoint->id . '_' . $request->file('image-satellite')->getClientOriginalName()
|
||
);
|
||
$file_index++;
|
||
}
|
||
|
||
$dangerPoint->files()->createMany($files_path);
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $dangerPoint->files
|
||
], 201);
|
||
}
|
||
|
||
public function storeDangerPreviewImage(Request $request)
|
||
{
|
||
$request->validate([
|
||
'danger-id' => 'required|integer|exists:danger_points,id',
|
||
'image' => 'required|image',
|
||
'name' => 'required|string'
|
||
]);
|
||
|
||
$dangerPoint = DangerPoint::find($request->input('danger-id'));
|
||
|
||
$dangerPoint->files()->where('path', 'like', '%img9_' . $request->input('name') . '_%')->delete();
|
||
|
||
$files_path = $request->file('image')->storeAs(
|
||
'public/danger_points',
|
||
'img9_' . $request->input('name') . '_' . $dangerPoint->id . '_' . time() . '_' . $request->file('image')->getClientOriginalName()
|
||
);
|
||
|
||
$dangerPoint->files()->create([
|
||
'path' => $files_path
|
||
]);
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $files_path
|
||
], 201);
|
||
}
|
||
|
||
public function destroyDangerPreviewImage(Request $request)
|
||
{
|
||
$request->validate([
|
||
'danger-id' => 'required|integer|exists:danger_points,id',
|
||
'name' => 'required|string'
|
||
]);
|
||
|
||
$dangerPoint = DangerPoint::find($request->input('danger-id'));
|
||
|
||
$dangerPoint->files()->where('path', 'like', '%_' . $request->input('name') . '_%')->delete();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => 1
|
||
], 200);
|
||
}
|
||
|
||
public function showDangerPointPage() {
|
||
return view('rmto-preview.pages.danger-point');
|
||
}
|
||
|
||
public function showDangerPointAdminPage() {
|
||
if (Auth::user()->username == 'witeL' || Auth::user()->username == 'drdanesh') {
|
||
return view('rmto-preview.pages.danger-point-admin');
|
||
} else {
|
||
return redirect('/danger-point');
|
||
}
|
||
}
|
||
|
||
public function updateDanger(Request $request, $id)
|
||
{
|
||
$request->validate([
|
||
'province-id' => 'required|integer|exists:provinces,id',
|
||
'axis-name' => 'required|string',
|
||
'axis-type' => 'required|integer|between:1,6',
|
||
'axis-start' => 'required|string',
|
||
'axis-end' => 'required|string',
|
||
'distance-axis-start' => 'required|integer',
|
||
'local-name' => 'required|string',
|
||
'lat' => 'required|string|regex:/^[1-9][0-9]\.[0-9]{1,}$/i',
|
||
'lng' => 'required|string|regex:/^[1-9][0-9]\.[0-9]{1,}$/i'
|
||
]);
|
||
|
||
$dangerPoint = DangerPoint::find($id);
|
||
|
||
$dangerPoint->dangerPointHistories()->create([
|
||
// PUBLIC URL
|
||
'user_id' => Auth::user()->id,
|
||
'previous_code' => $dangerPoint->code,
|
||
'previous_axis_name' => $dangerPoint->axis_name,
|
||
'previous_axis_type' => $dangerPoint->axis_type,
|
||
'previous_axis_start' => $dangerPoint->axis_start,
|
||
'previous_axis_end' => $dangerPoint->axis_end,
|
||
'previous_distance_axis_start' => $dangerPoint->distance_axis_start,
|
||
'previous_local_name' => $dangerPoint->local_name,
|
||
'previous_lat' => $dangerPoint->lat,
|
||
'previous_lng' => $dangerPoint->lng,
|
||
'previous_accident_251' => $dangerPoint->accident_251,
|
||
'previous_accident_251_code' => $dangerPoint->accident_251_code,
|
||
'previous_speed_limit' => $dangerPoint->speed_limit,
|
||
'previous_speed_average' => $dangerPoint->speed_average,
|
||
'previous_accident_possibility' => $dangerPoint->accident_possibility,
|
||
'previous_road_guard' => $dangerPoint->road_guard,
|
||
'previous_geometric_desc' => $dangerPoint->geometric_desc,
|
||
'previous_accident_cause' => $dangerPoint->accident_cause,
|
||
'previous_accident_cause_suggest' => $dangerPoint->accident_cause_suggest,
|
||
'previous_accident_severity' => $dangerPoint->accident_severity,
|
||
'previous_accident_severity_suggest' => $dangerPoint->accident_severity_suggest,
|
||
'previous_correction_plan_done' => $dangerPoint->correction_plan_done,
|
||
'previous_correction_plan_doing' => $dangerPoint->correction_plan_doing,
|
||
'previous_correction_plan_doing_desc' => $dangerPoint->correction_plan_doing_desc,
|
||
'previous_correction_plan_doing_suggest' => $dangerPoint->correction_plan_doing_suggest,
|
||
'previous_status' => $dangerPoint->status,
|
||
'previous_status_desc' => $dangerPoint->status_desc
|
||
]);
|
||
|
||
$dangerPoint->province_id = $request->input('province-id') ?? $dangerPoint->province_id;
|
||
$dangerPoint->axis_name = $request->input('axis-name') ?? $dangerPoint->axis_name;
|
||
$dangerPoint->axis_type = $request->input('axis-type') ?? $dangerPoint->axis_type;
|
||
$dangerPoint->axis_start = $request->input('axis-start') ?? $dangerPoint->axis_start;
|
||
$dangerPoint->axis_end = $request->input('axis-end') ?? $dangerPoint->axis_end;
|
||
$dangerPoint->distance_axis_start = $request->input('distance-axis-start') ?? $dangerPoint->distance_axis_start;
|
||
$dangerPoint->local_name = $request->input('local-name') ?? $dangerPoint->local_name;
|
||
$dangerPoint->lat = $request->input('lat') ?? $dangerPoint->lat;
|
||
$dangerPoint->lng = $request->input('lng') ?? $dangerPoint->lng;
|
||
|
||
$dangerPoint->save();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $dangerPoint
|
||
], 200);
|
||
}
|
||
|
||
public function updateDangerDetails(Request $request, $id)
|
||
{
|
||
$request->validate([
|
||
'accident-251' => 'required|boolean',
|
||
'accident-251-code' => 'required_if:accident-251,1|string',
|
||
'speed-limit' => 'required|integer',
|
||
'speed-average' => 'required|integer',
|
||
'accident-possibility' => 'required|boolean',
|
||
'road-guard' => 'required|boolean',
|
||
'geometric-desc' => 'required|integer|between:1,16',
|
||
'accident-cause' => 'string',
|
||
'accident-cause-suggest' => 'string',
|
||
'accident-severity' => 'string',
|
||
'accident-severity-suggest' => 'string',
|
||
'correction-plan-done' => 'string',
|
||
'correction-plan-doing' => 'string',
|
||
'correction-plan-doing-desc' => 'string',
|
||
'correction-plan-doing-suggest' => 'string',
|
||
//'signature-file' => 'required|file'
|
||
]);
|
||
|
||
$dangerPoint = DangerPoint::find($id);
|
||
|
||
$dangerPoint->dangerPointHistories()->create([
|
||
// PUBLIC URL
|
||
'user_id' => Auth::user()->id,
|
||
'previous_code' => $dangerPoint->code,
|
||
'previous_axis_name' => $dangerPoint->axis_name,
|
||
'previous_axis_type' => $dangerPoint->axis_type,
|
||
'previous_axis_start' => $dangerPoint->axis_start,
|
||
'previous_axis_end' => $dangerPoint->axis_end,
|
||
'previous_distance_axis_start' => $dangerPoint->distance_axis_start,
|
||
'previous_local_name' => $dangerPoint->local_name,
|
||
'previous_lat' => $dangerPoint->lat,
|
||
'previous_lng' => $dangerPoint->lng,
|
||
'previous_accident_251' => $dangerPoint->accident_251,
|
||
'previous_accident_251_code' => $dangerPoint->accident_251_code,
|
||
'previous_speed_limit' => $dangerPoint->speed_limit,
|
||
'previous_speed_average' => $dangerPoint->speed_average,
|
||
'previous_accident_possibility' => $dangerPoint->accident_possibility,
|
||
'previous_road_guard' => $dangerPoint->road_guard,
|
||
'previous_geometric_desc' => $dangerPoint->geometric_desc,
|
||
'previous_accident_cause' => $dangerPoint->accident_cause,
|
||
'previous_accident_cause_suggest' => $dangerPoint->accident_cause_suggest,
|
||
'previous_accident_severity' => $dangerPoint->accident_severity,
|
||
'previous_accident_severity_suggest' => $dangerPoint->accident_severity_suggest,
|
||
'previous_correction_plan_done' => $dangerPoint->correction_plan_done,
|
||
'previous_correction_plan_doing' => $dangerPoint->correction_plan_doing,
|
||
'previous_correction_plan_doing_desc' => $dangerPoint->correction_plan_doing_desc,
|
||
'previous_correction_plan_doing_suggest' => $dangerPoint->correction_plan_doing_suggest,
|
||
'previous_status' => $dangerPoint->status,
|
||
'previous_status_desc' => $dangerPoint->status_desc
|
||
]);
|
||
|
||
$dangerPoint->accident_251 = $request->input('accident-251') ?? $dangerPoint->accident_251;
|
||
$dangerPoint->accident_251_code = $request->input('accident-251-code') ?? $dangerPoint->accident_251_code;
|
||
$dangerPoint->speed_limit = $request->input('speed-limit') ?? $dangerPoint->speed_limit;
|
||
$dangerPoint->speed_average = $request->input('speed-average') ?? $dangerPoint->speed_average;
|
||
$dangerPoint->accident_possibility = $request->input('accident-possibility') ?? $dangerPoint->accident_possibility;
|
||
$dangerPoint->road_guard = $request->input('road-guard') ?? $dangerPoint->road_guard;
|
||
$dangerPoint->geometric_desc = $request->input('geometric-desc') ?? $dangerPoint->geometric_desc;
|
||
if ($request->input('accident-cause')) {
|
||
$dangerPoint->accident_cause = explode(',', $request->input('accident-cause')) ?? $dangerPoint->accident_cause;
|
||
}
|
||
$dangerPoint->accident_cause_suggest = $request->input('accident-cause-suggest') ?? $dangerPoint->accident_cause_suggest;
|
||
if ($request->input('accident-severity')) {
|
||
$dangerPoint->accident_severity = explode(',', $request->input('accident-severity')) ?? $dangerPoint->accident_severity;
|
||
}
|
||
$dangerPoint->accident_severity_suggest = $request->input('accident-severity-suggest') ?? $dangerPoint->accident_severity_suggest;
|
||
$dangerPoint->correction_plan_done = $request->input('correction-plan-done') ?? $dangerPoint->correction_plan_done;
|
||
$dangerPoint->correction_plan_doing = $request->input('correction-plan-doing') ?? $dangerPoint->correction_plan_doing;
|
||
$dangerPoint->correction_plan_doing_desc = $request->input('correction-plan-doing-desc') ?? $dangerPoint->correction_plan_doing_des;
|
||
$dangerPoint->correction_plan_doing_suggest = $request->input('correction-plan-doing-suggest') ?? $dangerPoint->correction_plan_doing_suggest;
|
||
|
||
// $files_path = null;
|
||
|
||
// if ($request->file('signature-file')) {
|
||
// $files_path = $request->file('signature-file')->storeAs(
|
||
// 'public/danger-points/signature',
|
||
// 'sign_' . time() . '_signature_file_' . $dangerPoint->id . '_' . $request->file('signature-file')->getClientOriginalName()
|
||
// );
|
||
// }
|
||
|
||
// $dangerPoint->signature_file = $files_path;
|
||
|
||
$dangerPoint->save();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $dangerPoint
|
||
], 200);
|
||
}
|
||
|
||
public function updateDangerAccident(Request $request, $id)
|
||
{
|
||
$request->validate([
|
||
'danger-id' => 'required|integer|exists:danger_points,id',
|
||
'serial-number' => 'required|string',
|
||
'accident-date' => 'required|date_format:Y-m-d',
|
||
'day' => 'required|integer|between:1,7',
|
||
'time' => 'required|string',
|
||
'accident-direction' => 'required|integer|between:1,2',
|
||
'collision-type' => 'required|integer|between:1,6',
|
||
'accident-factors' => 'required|json',
|
||
'accident-type' => 'required|integer|between:1,3',
|
||
'accident-result' => 'required|json'
|
||
]);
|
||
|
||
$dangerPointAccident = DangerPointAccident::find($id);
|
||
|
||
$dangerPointAccident->serial_number = $request->input('serial-number') ?? $dangerPointAccident->serial_number;
|
||
$dangerPointAccident->accident_date = $request->input('accident-date') ?? $dangerPointAccident->accident_date;
|
||
$dangerPointAccident->day = $request->input('day') ?? $dangerPointAccident->day;
|
||
$dangerPointAccident->time = $request->input('time') ?? $dangerPointAccident->time;
|
||
$dangerPointAccident->accident_direction = $request->input('accident-direction') ?? $dangerPointAccident->accident_direction;
|
||
$dangerPointAccident->collision_type = $request->input('collision-type') ?? $dangerPointAccident->collision_type;
|
||
if ($request->input('accident-factors')) {
|
||
$dangerPointAccident->accident_factors = json_decode($request->input('accident-factors'));
|
||
}
|
||
$dangerPointAccident->accident_type = $request->input('accident-type') ?? $dangerPointAccident->accident_type;
|
||
if ($request->input('accident-result')) {
|
||
$dangerPointAccident->accident_result = json_decode($request->input('accident-result'));
|
||
}
|
||
|
||
$dangerPointAccident->save();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $dangerPointAccident
|
||
], 200);
|
||
}
|
||
|
||
function getDangerPointPreview($id, $op = 'print')
|
||
{
|
||
$dangerPoint = DangerPoint::where('id', $id)->with('dangerPointAccidents')->get();
|
||
|
||
$dayArray = [
|
||
'شنبه',
|
||
'یکشنبه',
|
||
'دوشنبه',
|
||
'سهشنبه',
|
||
'چهارشنبه',
|
||
'پنجشنبه',
|
||
'جمعه'
|
||
];
|
||
|
||
$collisionTypeArray = [
|
||
'رخ به رخ',
|
||
'واژگونی',
|
||
'جلو به عقب',
|
||
'جلو به پهلو',
|
||
'برخورد با شی ثابت',
|
||
'برخورد با عابر'
|
||
];
|
||
|
||
$dangerAccidentsArray = [];
|
||
$dangerAccidentsSum = [
|
||
0, 0, 0, 0, 0
|
||
];
|
||
|
||
foreach ($dangerPoint[0]->dangerPointAccidents As $key => $dangerAccident) {
|
||
$dangerAccidentsArray[$key] = [
|
||
'serial_number' => $dangerAccident->serial_number,
|
||
'accident_day' => verta($dangerAccident->accident_date)->format('j'),
|
||
'accident_month' => verta($dangerAccident->accident_date)->format('n'),
|
||
'accident_year' => verta($dangerAccident->accident_date)->format('y'),
|
||
'day' => $dayArray[$dangerAccident->day - 1],
|
||
'time' => $dangerAccident->time,
|
||
'accident_direction' => $dangerAccident->accident_direction,
|
||
'collision_type' => $collisionTypeArray[$dangerAccident->collision_type - 1],
|
||
'accident_factors' => $dangerAccident->accident_factors,
|
||
'accident_type' => $dangerAccident->accident_type,
|
||
'accident_result' => $dangerAccident->accident_result
|
||
];
|
||
|
||
$dangerAccidentsSum[0] += ($dangerAccident->accident_type == 1) ? 1 : 0;
|
||
$dangerAccidentsSum[1] += ($dangerAccident->accident_type == 2) ? 1 : 0;
|
||
//$dangerAccidentsSum[2] += ($dangerAccident->accident_type == 3) ? 1 : 0;
|
||
$dangerAccidentsSum[3] += $dangerAccident->accident_result['de'];
|
||
$dangerAccidentsSum[4] += $dangerAccident->accident_result['in'];
|
||
}
|
||
|
||
$axisTypeArray = [
|
||
'آزادراه',
|
||
'بزرگراه',
|
||
'راه اصلی',
|
||
'راه فرعی با عملکرد اصلی',
|
||
'راه فرعی (درجه 1 یا 2)',
|
||
'راه روستایی (فرعی درجه 3)'
|
||
];
|
||
|
||
$accidentPossibilityArray = [
|
||
'خیر',
|
||
'بله'
|
||
];
|
||
|
||
$roadGuardArray = [
|
||
'خیر',
|
||
'بله'
|
||
];
|
||
|
||
$accident251Array = [
|
||
'خیر',
|
||
'بله'
|
||
];
|
||
|
||
$geometricDescArray = [
|
||
'تقاطع',
|
||
'پل',
|
||
'قوس افقی',
|
||
'قوس قائم',
|
||
'قوس افقی و قائم',
|
||
'تونل',
|
||
'میدان',
|
||
'تقاطع-قوس',
|
||
'پل-قوس',
|
||
'تونل-قوس',
|
||
'پل-تقاطع',
|
||
'پل-تقاطع-قوس',
|
||
'منطقه مسکونی',
|
||
'مسیر مستقیم فاقد راه دسترسی',
|
||
'پل - تقاطع - منطقه مسکونی',
|
||
'تقاطع - قوس - منطقه مسکونی'
|
||
];
|
||
|
||
$accidentCauseArray = [
|
||
'قوس تند افقی',
|
||
'ابهام در مسیر (نقص در نحوه مسیرنمایی)',
|
||
'عدم رعایت سرعت مجاز',
|
||
'قوس تند قائم',
|
||
'دید ناکافی (مثلث دید-مسافتدید توفق یا سبقت)',
|
||
'عدم رعایت سبقت مجاز',
|
||
'قرارگیری قوس افقی در تاج قوس قائم',
|
||
'(جانمایی/طرح تابلو ) نقص در علائم پیش آگاهی و هدایت مسیر',
|
||
'عدم رعایت محدودیت/ممنوعیت عبور',
|
||
'قوس افقی در سرازیری تند',
|
||
'نقص در علائم اخطاری و انتظامی',
|
||
'عدم رعایت فاصله طولی',
|
||
'هندسه نامناسب ورودی و خروجی دسترسی-تقاطع-دوربرگردان',
|
||
'نقص در اشکارسازی نواحی انتقال قبل پل ها و تونل ها که شانه حذف میشود',
|
||
'افتادگی در لبه آسفالت و یا فقدان شانه',
|
||
'تبدیل نامناسب نوع راه (جدا شده به جدا نشده)',
|
||
'عدم روشنایی ضروری در نقطه (محل عبور عرضی عمده عابرین یا خودرو ها)',
|
||
'منطقه مه گیر /کولاک/یخ زدگی/شن زدگی',
|
||
'منطقه با تداخل ترافیکی (نواحی مسکونی ،صنعتی،تفریحی،مدارس،و..)',
|
||
'منطقه با عبور حیوانات اهلی / وحشی',
|
||
'کاهش نامناسب تعداد خطوط (4 به 3 یا به 2)',
|
||
'منطقه با افزایش ناگهانی تراکم ترافیک',
|
||
'منطقه با ریزش از دیوار ترانشه',
|
||
'نبود /نقص در خط سبقت در سربالایی برای وسایل نقلیه سنگین در نواحی ضروری',
|
||
'دور مناسب در قوس',
|
||
'نقص در آشکار سازی شرایط خاص یا غیر منتظره',
|
||
'رویه نامناسب (ناهموار-قیرزده-صیقلی) یا آسیب دیده (وجود چاله )',
|
||
'محل نامناسب دسترسی/دسترسی های متعدد و نا ایمن در حریم راه',
|
||
'عرض کم سواره رو',
|
||
'سرازیری تند'
|
||
];
|
||
|
||
$accidentSeverityArray = [
|
||
'شیروانی تند یا پرتگاه بدون حفاظت',
|
||
'سر ازاد حفاظ',
|
||
'مانع صلب بدون حفاظت در حاشیه راه',
|
||
'نقص در ناحیه انتقالی اتصال انواع حفاظ (محل پل و ...)',
|
||
'نقص یا عدم کفایت حفاظ کناری',
|
||
'نقص یا عدم کفایت نرده پل',
|
||
'نقص یا عدم کفایت حفاظ میانی',
|
||
'فقدان جداکننده در میانه راه چهار خطه'
|
||
];
|
||
|
||
$accidentCauseString = "";
|
||
|
||
if ($dangerPoint[0]->accident_cause) {
|
||
foreach ($dangerPoint[0]->accident_cause as $value) {
|
||
$accidentCauseString .= ($accidentCauseArray[$value - 1] . ", ");
|
||
}
|
||
}
|
||
|
||
$accidentSeverityString = "";
|
||
|
||
if ($dangerPoint[0]->accident_severity != null) {
|
||
foreach ($dangerPoint[0]->accident_severity as $value) {
|
||
$accidentSeverityString .= ($accidentSeverityArray[$value - 1] . ", ");
|
||
}
|
||
}
|
||
|
||
$dangerPointArray = [
|
||
'created_at' => verta($dangerPoint[0]->created_at)->format('Y/m/d - H:m'),
|
||
'updated_at' => verta($dangerPoint[0]->updated_at)->format('Y/m/d - H:m'),
|
||
'province_name' => $dangerPoint[0]->province->name_fa,
|
||
'axis_name' => $dangerPoint[0]->axis_name,
|
||
'axis_type' => $axisTypeArray[$dangerPoint[0]->axis_type - 1],
|
||
'axis_start' => $dangerPoint[0]->axis_start,
|
||
'axis_end' => $dangerPoint[0]->axis_end,
|
||
'distance_axis_start' => $dangerPoint[0]->distance_axis_start,
|
||
'local_name' => $dangerPoint[0]->local_name,
|
||
'lat_lng' => [
|
||
$dangerPoint[0]->lat,
|
||
$dangerPoint[0]->lng
|
||
],
|
||
'speed_limit' => $dangerPoint[0]->speed_limit,
|
||
'speed_average' => $dangerPoint[0]->speed_average,
|
||
'accident_possibility' => $accidentPossibilityArray[$dangerPoint[0]->accident_possibility],
|
||
'road_guard' => $roadGuardArray[$dangerPoint[0]->road_guard],
|
||
'geometric_desc' => $geometricDescArray[$dangerPoint[0]->geometric_desc - 1],
|
||
'accident_cause' => ((strlen($accidentCauseString) > 3) ? substr($accidentCauseString, 0, -2) : $accidentCauseString),
|
||
'accident_cause_suggest' => $dangerPoint[0]->accident_cause_suggest,
|
||
'accident_severity' => ((strlen($accidentSeverityString) > 3) ? substr($accidentSeverityString, 0, -2) : $accidentSeverityString),
|
||
'accident_severity_suggest' => $dangerPoint[0]->accident_severity_suggest,
|
||
'correction_plan_done' => $dangerPoint[0]->correction_plan_done,
|
||
'correction_plan_doing' => $dangerPoint[0]->correction_plan_doing,
|
||
'correction_plan_doing_desc' => $dangerPoint[0]->correction_plan_doing_desc,
|
||
'correction_plan_doing_suggest' => $dangerPoint[0]->correction_plan_doing_suggest,
|
||
'accident_251' => $accident251Array[$dangerPoint[0]->accident_251],
|
||
'accident_251_code' => $dangerPoint[0]->accident_251_code,
|
||
'danger_point_accidents' => $dangerAccidentsArray,
|
||
'danger_accidents_sum' => $dangerAccidentsSum
|
||
];
|
||
|
||
if ($op == 'print') {
|
||
$pdf = SnappyPdf::loadView('rmto-preview.pages.danger-point-preview', ['dangerPointArray' => $dangerPointArray]);
|
||
|
||
return $pdf->download('danger-points-id-' . $dangerPoint[0]->id . '.pdf');
|
||
} else {
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $dangerPointArray
|
||
], 200);
|
||
}
|
||
}
|
||
|
||
function uploadDangerPointFiles(Request $request)
|
||
{
|
||
$request->validate([
|
||
'danger-id' => 'required|integer|exists:danger_points,id',
|
||
'signature-file' => 'image',
|
||
'police-file' => 'image'
|
||
]);
|
||
|
||
$dangerPoint = DangerPoint::find($request->input('danger-id'));
|
||
|
||
if ($request->file('signature-file')) {
|
||
$signature_file = $request->file('signature-file')->storeAs(
|
||
'public/danger_points',
|
||
'file_signature-file_' . $dangerPoint->id . '_' . time() . '_' . $request->file('signature-file')->getClientOriginalName()
|
||
);
|
||
|
||
$dangerPoint->signature_file = $signature_file;
|
||
}
|
||
|
||
if ($request->file('police-file')) {
|
||
$police_file = $request->file('police-file')->storeAs(
|
||
'public/danger_points',
|
||
'file_police-file_' . $dangerPoint->id . '_' . time() . '_' . $request->file('police-file')->getClientOriginalName()
|
||
);
|
||
|
||
$dangerPoint->police_file = $police_file;
|
||
}
|
||
|
||
$dangerPoint->save();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => [
|
||
$dangerPoint->signature_file,
|
||
$dangerPoint->police_file
|
||
]
|
||
], 200);
|
||
}
|
||
|
||
public function destroyDangerFilesImage(Request $request)
|
||
{
|
||
$request->validate([
|
||
'danger-id' => 'required|integer|exists:danger_points,id',
|
||
'name' => 'required|string'
|
||
]);
|
||
|
||
$dangerPoint = DangerPoint::find($request->input('danger-id'));
|
||
|
||
if ($request->input('name') == 'signature-file') {
|
||
$dangerPoint->signature_file = null;
|
||
} elseif ($request->input('name') == 'police-file') {
|
||
$dangerPoint->police_file = null;
|
||
}
|
||
|
||
$dangerPoint->save();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => 1
|
||
], 200);
|
||
}
|
||
|
||
public function provinceFinalSubmit(Request $request)
|
||
{
|
||
$request->validate([
|
||
'danger-id' => 'required|integer|exists:danger_points,id'
|
||
]);
|
||
|
||
$dangerPoint = DangerPoint::find($request->input('danger-id'));
|
||
|
||
$dangerPoint->status = 1;
|
||
$dangerPoint->created_at = Carbon::now();
|
||
|
||
$dangerPoint->save();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => $dangerPoint->status
|
||
], 200);
|
||
}
|
||
|
||
public function destroyDanger($id)
|
||
{
|
||
$dangerPoint = DangerPoint::find($id);
|
||
|
||
$dangerPoint->dangerPointHistories()->delete();
|
||
$dangerPoint->dangerPointAccidents()->delete();
|
||
$dangerPoint->files()->delete();
|
||
$dangerPoint->delete();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => 1
|
||
], 200);
|
||
}
|
||
|
||
public function destroyDangerPointAccident(Request $request)
|
||
{
|
||
$request->validate([
|
||
'danger-id' => 'required|integer|exists:danger_points,id',
|
||
'acc-id' => 'required|integer|exists:danger_point_accidents,id'
|
||
]);
|
||
|
||
$dangerPoint = DangerPoint::find($request->input('danger-id'));
|
||
|
||
$dangerPoint->dangerPointAccidents()
|
||
->where('danger_point_accidents.id', $request->input('acc-id'))
|
||
->delete();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => 1
|
||
], 200);
|
||
}
|
||
|
||
public function adminSubmitStatus(Request $request)
|
||
{
|
||
$request->validate([
|
||
'danger-id' => 'required|integer|exists:danger_points,id',
|
||
'status' => 'required|integer|between:2,4',
|
||
'status-desc' => 'required_if:danger-status,3'
|
||
]);
|
||
|
||
$dangerPoint = DangerPoint::find($request->input('danger-id'));
|
||
|
||
$dangerPoint->status = $request->input('status');
|
||
|
||
if ($request->input('status-desc') && $request->input('status') == 3) {
|
||
$dangerPoint->status_desc = $request->input('status-desc');
|
||
}
|
||
|
||
if ($request->input('status') == 2) {
|
||
$provincesCode = [
|
||
3 => [
|
||
"province_id" => 3,
|
||
"province_name" => "اردبیل",
|
||
"province_code" => 9199
|
||
],
|
||
4 => [
|
||
"province_id" => 4,
|
||
"province_name" => "اصفهان",
|
||
"province_code" => 2199
|
||
],
|
||
5 => [
|
||
"province_id" => 5,
|
||
"province_name" => "البرز",
|
||
"province_code" => 1899
|
||
],
|
||
6 => [
|
||
"province_id" => 6,
|
||
"province_name" => "ايرانشهر",
|
||
"province_code" => 6299
|
||
],
|
||
7 => [
|
||
"province_id" => 7,
|
||
"province_name" => "ايلام ",
|
||
"province_code" => 8399
|
||
],
|
||
2 => [
|
||
"province_id" => 2,
|
||
"province_name" => "آذربايجان غربي",
|
||
"province_code" => 5799
|
||
],
|
||
1 => [
|
||
"province_id" => 1,
|
||
"province_name" => "آذربایجان شرقی",
|
||
"province_code" => 2699
|
||
],
|
||
8 => [
|
||
"province_id" => 8,
|
||
"province_name" => "بوشهر",
|
||
"province_code" => 9599
|
||
],
|
||
9 => [
|
||
"province_id" => 9,
|
||
"province_name" => "تهران",
|
||
"province_code" => 1199
|
||
],
|
||
10 => [
|
||
"province_id" => 10,
|
||
"province_name" => "چهارمحال و بختياري",
|
||
"province_code" => 7799
|
||
],
|
||
11 => [
|
||
"province_id" => 11,
|
||
"province_name" => "خراسان جنوبی",
|
||
"province_code" => 3399
|
||
],
|
||
12 => [
|
||
"province_id" => 12,
|
||
"province_name" => "خراسان رضوي",
|
||
"province_code" => 3199
|
||
],
|
||
13 => [
|
||
"province_id" => 13,
|
||
"province_name" => "خراسان شمالی",
|
||
"province_code" => 3299
|
||
],
|
||
14 => [
|
||
"province_id" => 14,
|
||
"province_name" => "خوزستان",
|
||
"province_code" => 3699
|
||
],
|
||
15 => [
|
||
"province_id" => 15,
|
||
"province_name" => "زنجان",
|
||
"province_code" => 6799
|
||
],
|
||
17 => [
|
||
"province_id" => 17,
|
||
"province_name" => "سمنان",
|
||
"province_code" => 8799
|
||
],
|
||
16 => [
|
||
"province_id" => 16,
|
||
"province_name" => "سمنان شرق",
|
||
"province_code" => 8899
|
||
],
|
||
18 => [
|
||
"province_id" => 18,
|
||
"province_name" => "سيستان و بلوچستان",
|
||
"province_code" => 6199
|
||
],
|
||
19 => [
|
||
"province_id" => 19,
|
||
"province_name" => "فارس",
|
||
"province_code" => 4199
|
||
],
|
||
20 => [
|
||
"province_id" => 20,
|
||
"province_name" => "قزوین",
|
||
"province_code" => 1599
|
||
],
|
||
21 => [
|
||
"province_id" => 21,
|
||
"province_name" => "قم",
|
||
"province_code" => 1499
|
||
],
|
||
25 => [
|
||
"province_id" => 25,
|
||
"province_name" => "كرمانشاه",
|
||
"province_code" => 7199
|
||
],
|
||
22 => [
|
||
"province_id" => 22,
|
||
"province_name" => "کردستان",
|
||
"province_code" => 7399
|
||
],
|
||
23 => [
|
||
"province_id" => 23,
|
||
"province_name" => "کرمان",
|
||
"province_code" => 4599
|
||
],
|
||
24 => [
|
||
"province_id" => 24,
|
||
"province_name" => "کرمان جنوب",
|
||
"province_code" => 4699
|
||
],
|
||
26 => [
|
||
"province_id" => 26,
|
||
"province_name" => "کهگیلویه و بویراحمد",
|
||
"province_code" => 8599
|
||
],
|
||
27 => [
|
||
"province_id" => 27,
|
||
"province_name" => "گلستان",
|
||
"province_code" => 9799
|
||
],
|
||
28 => [
|
||
"province_id" => 28,
|
||
"province_name" => "گیلان",
|
||
"province_code" => 5499
|
||
],
|
||
29 => [
|
||
"province_id" => 29,
|
||
"province_name" => "لارستان",
|
||
"province_code" => 2999
|
||
],
|
||
30 => [
|
||
"province_id" => 30,
|
||
"province_name" => "لرستان",
|
||
"province_code" => 8199
|
||
],
|
||
31 => [
|
||
"province_id" => 31,
|
||
"province_name" => "مازندران",
|
||
"province_code" => 1699
|
||
],
|
||
32 => [
|
||
"province_id" => 32,
|
||
"province_name" => "مركزي",
|
||
"province_code" => 5199
|
||
],
|
||
33 => [
|
||
"province_id" => 33,
|
||
"province_name" => "هرمزگان",
|
||
"province_code" => 6499
|
||
],
|
||
34 => [
|
||
"province_id" => 34,
|
||
"province_name" => "همدان",
|
||
"province_code" => 7599
|
||
],
|
||
35 => [
|
||
"province_id" => 35,
|
||
"province_name" => "يزد",
|
||
"province_code" => 9399
|
||
]
|
||
];
|
||
|
||
$dangerPoints = DangerPoint::where('province_id', $dangerPoint->province_id)
|
||
->where('status', 2)
|
||
->orderByDesc('code')
|
||
->limit(1)
|
||
->get();
|
||
|
||
if ($dangerPoints->count() == 1) {
|
||
$dangerPoint->code = $dangerPoints[0]->code + 1;
|
||
} else {
|
||
$dangerPoint->code = $provincesCode[$dangerPoint->province_id]['province_code'] . '001';
|
||
}
|
||
}
|
||
|
||
$dangerPoint->save();
|
||
|
||
return response()->json([
|
||
'status' => 'succeed',
|
||
'message' => '',
|
||
'data' => [
|
||
'status' => $dangerPoint->status,
|
||
'status_desc' => $dangerPoint->status_desc
|
||
]
|
||
], 200);
|
||
}
|
||
|
||
}
|