modify the blades

This commit is contained in:
2025-03-01 13:10:07 +03:30
parent fc747ae68b
commit 9dfcc96fc7
7 changed files with 143 additions and 103 deletions

View File

@@ -7,6 +7,7 @@ use App\Exports\V3\RoadObservation\SupervisorCartableReport;
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;
@@ -64,19 +65,11 @@ class RoadObservationController extends Controller
public function operatorIndex(Request $request, RoadObservationTableService $roadObservationTableService): JsonResponse
{
if (is_null(auth()->user()->edarate_shahri_id)) {
return $this->errorResponse('اداره‌ای برای شما در سامانه ثبت نشده است!');
}
return response()->json($roadObservationTableService->operatorCartableIndex($request));
}
public function operatorCartableReport(Request $request, RoadObservationTableService $roadObservationTableService): BinaryFileResponse
{
if (is_null(auth()->user()->edarate_shahri_id)) {
return $this->errorResponse('اداره‌ای برای شما در سامانه ثبت نشده است!');
}
$name = 'گزارش از کارتابل عملیات واکنش سریع ' . verta()->now()->format('Y-m-d H:i') . '.xlsx';
$data = $roadObservationTableService->operatorCartableIndex($request);
return Excel::download(new OperatorCartableReport($data['data']), $name);
@@ -117,6 +110,67 @@ class RoadObservationController extends Controller
'new_files' => json_encode([])
];
if ($request->rms_status == 1) {
$files_path = [];
$roadObserved->files()->where('path', 'like', '%_image_before%')->delete();
$roadObserved->files()->where('path', 'like', '%_image_after%')->delete();
$image_before = FileFacade::save($request->image_before, "road_observeds/{$roadObserved->id}/");
$image_after = FileFacade::save($request->image_after, "road_observeds/{$roadObserved->id}/");
$files_path[0]['path'] = $image_before;
$files_path[1]['path'] = $image_after;
$files = json_encode($files_path);
$now_date_time = Carbon::now();
$roadObservedData['image_after'] = $image_after;
$roadObservedData['image_before'] = $image_before;
$roadObservedData['rms_start_latlng'] = explode(',', $request->start_point);
$roadObservedData['updated_at_fa'] = Verta::instance($now_date_time);
$roadObservedData['rms_last_activity_fa'] = Verta::instance($now_date_time);
$roadObservedData['rms_last_activity'] = $now_date_time;
$roadObservedHistoryData['new_files'] = $files;
}
$roadObserved->problemHistories()->create($roadObservedHistoryData);
$roadObserved->update($roadObservedData);
auth()->user()->addActivityComplete(1142);
try {
$nikarayanService->updateRoadObservedInfoByNikarayan($request, $roadObserved, json_encode($roadObservedHistoryData['new_files']));
}
catch (SoapFault $e) {
$msg = "error in send to nikarayan at" . date("Y-m-d H:i:s") . "\n";
$msg .= $e->getMessage();
Sms::sendSms(env('RMS_CTO_PHONE_NUMBER'), $msg);
}
return $this->successResponse();
}
public function modifyRegistration(ModifyRegisterationRequest $request, RoadObserved $roadObserved, NikarayanService $nikarayanService): JsonResponse
{
$roadObservedData = [
'status' => 0,
'status_fa' => 'در حال بررسی',
'rms_status' => $request->rms_status ?? $roadObserved->rms_status,
'rms_description' => $request->rms_description ?? $roadObserved->rms_description,
];
$roadObservedHistoryData = [
'user_id' => auth()->user()->id,
'previous_rms_status' => $roadObserved->rms_status,
'previous_rms_start_latlng' => $roadObserved->rms_start_latlng,
'previous_rms_end_latlng' => $roadObserved->rms_end_latlng,
'previous_rms_description' => $roadObserved->rms_description,
'new_files' => json_encode([])
];
if ($request->rms_status == 1) {
$files_path = [];
@@ -125,12 +179,18 @@ class RoadObservationController extends Controller
$roadObserved->files()->where('path', 'like', '%_image_after%')->delete();
if ($request->has('image_before')) {
if ($roadObserved->image_before) {
FileFacade::delete($roadObserved->image_before, true);
}
$image_before = FileFacade::save($request->image_before, "road_observeds/{$roadObserved->id}/");
$roadObservedData['image_before'] = $image_before;
$files_path[0]['path'] = $image_before;
}
if ($request->has('image_after')) {
if ($roadObserved->image_after) {
FileFacade::delete($roadObserved->image_after, true);
}
$image_after = FileFacade::save($request->image_after, "road_observeds/{$roadObserved->id}/");
$roadObservedData['image_after'] = $image_after;
$files_path[1]['path'] = $image_after;

View File

@@ -0,0 +1,32 @@
<?php
namespace App\Http\Requests\V3\RoadObservation;
use Illuminate\Foundation\Http\FormRequest;
class ModifyRegisterationRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'rms_status' => 'required|in:1,2',
'rms_description' => 'required_if:rms_status,1|string',
'image_before' => 'file|mimes:jpg,jpeg,png',
'image_after' => 'file|mimes:jpg,jpeg,png',
'start_point' => 'string',
];
}
}

View File

@@ -24,8 +24,8 @@ class RegisterRequest extends FormRequest
return [
'rms_status' => 'required|in:1,2',
'rms_description' => 'required_if:rms_status,1|string',
'image_before' => 'file|mimes:jpg,jpeg,png',
'image_after' => 'file|mimes:jpg,jpeg,png',
'image_before' => 'required_if:rms_status,1|file|mimes:jpg,jpeg,png',
'image_after' => 'required_if:rms_status,1|file|mimes:jpg,jpeg,png',
'start_point' => 'string',
];
}

View File

@@ -60,49 +60,13 @@ class RoadObservationTableService
'edarate_shahri.name_fa', 'status', 'status_fa', 'supervisor_description', 'supervising_time'
];
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')
->select($fields);
}
elseif (auth()->user()->hasPermissionTo('show-fast-react-province')) {
if (is_null(auth()->user()->province_id)) {
return response()->json([
'message' => 'استانی برای شما در سامانه ثبت نشده است!'
], 400);
}
$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')
->select($fields);
}
elseif (auth()->user()->hasPermissionTo('show-fast-react-edarate-shahri')) {
if (is_null(auth()->user()->edarate_shahri_id)) {
return response()->json([
'message' => 'اداره ای برای شما در سامانه ثبت نشده است!'
], 400);
}
$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')
->select($fields);
}
// $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);
$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,