diff --git a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php b/app/Http/Controllers/V3/Dashboard/RoadObservationController.php index a3b97c4c..01291183 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadObservationController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadObservationController.php @@ -24,6 +24,7 @@ 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; @@ -117,8 +118,8 @@ class RoadObservationController extends Controller $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}/"); + $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; @@ -135,20 +136,15 @@ class RoadObservationController extends Controller $roadObservedHistoryData['new_files'] = $files; } - $roadObserved->problemHistories()->create($roadObservedHistoryData); - $roadObserved->update($roadObservedData); + DB::transaction(function () use ($roadObserved, $roadObservedHistoryData, $roadObservedData, $request, $nikarayanService) { + $roadObserved->problemHistories()->create($roadObservedHistoryData); + $roadObserved->update($roadObservedData); - auth()->user()->addActivityComplete(1142); + 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(); } @@ -182,7 +178,7 @@ class RoadObservationController extends Controller if ($roadObserved->image_before) { FileFacade::delete($roadObserved->image_before, true); } - $image_before = FileFacade::save($request->image_before, "road_observeds/{$roadObserved->id}/"); + $image_before = FileFacade::save($request->image_before, "road_observeds/{$roadObserved->id}"); $roadObservedData['image_before'] = $image_before; $files_path[0]['path'] = $image_before; } @@ -191,7 +187,7 @@ class RoadObservationController extends Controller if ($roadObserved->image_after) { FileFacade::delete($roadObserved->image_after, true); } - $image_after = FileFacade::save($request->image_after, "road_observeds/{$roadObserved->id}/"); + $image_after = FileFacade::save($request->image_after, "road_observeds/{$roadObserved->id}"); $roadObservedData['image_after'] = $image_after; $files_path[1]['path'] = $image_after; } @@ -206,20 +202,14 @@ class RoadObservationController extends Controller $roadObservedHistoryData['new_files'] = $files; } - $roadObserved->problemHistories()->create($roadObservedHistoryData); - $roadObserved->update($roadObservedData); + DB::transaction(function () use ($roadObserved, $roadObservedHistoryData, $roadObservedData, $request, $nikarayanService) { + $roadObserved->problemHistories()->create($roadObservedHistoryData); + $roadObserved->update($roadObservedData); - auth()->user()->addActivityComplete(1142); + 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(); } diff --git a/app/Http/Controllers/V3/NotificationController.php b/app/Http/Controllers/V3/NotificationController.php index 01d4ae63..833ba72c 100644 --- a/app/Http/Controllers/V3/NotificationController.php +++ b/app/Http/Controllers/V3/NotificationController.php @@ -144,56 +144,44 @@ class NotificationController extends Controller 'supervise_cnt' => 0 ]; - $conditions = []; - $complaintConditions = [ - ['rms_status', '=', 0], - ['edarate_shahri_id', '!=', null] - ]; - if ($user->hasPermissionTo('show-fast-react')) { - $conditions[] = ['status', '=', 2]; + $road_observations['supervise_cnt'] = RoadObserved::query()->where([ + ['rms_status', '<>', 0], + ['status', '=', 0] + ])->count(); + + $road_observations['complaint_cnt'] = RoadObserved::query()->where('rms_status', '=', 0)->count(); } elseif ($user->hasPermissionTo('show-fast-react-province')) { throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); - $conditions = [ - ['status', '=', 2], - ['rms_province_id', '=', $user->province_id] - ]; - $complaintConditions[] = ['province_id', '=', $user->province_id]; + + $road_observations['supervise_cnt'] = RoadObserved::query()->where([ + ['rms_status', '<>', 0], + ['status', '=', 0], + ['province_id', '=', $user->province_id] + ])->count(); + + $road_observations['complaint_cnt'] = RoadObserved::query()->where([ + ['rms_status', '=', 0], + ['province_id', '=', $user->province_id] + ])->count(); } elseif ($user->hasPermissionTo('show-fast-react-edarate-shahri')) { throw_if(is_null($user->edarate_shahri_id), new ProhibitedAction('اداره ای برای شما در سامانه ثبت نشده است!')); - $conditions = [ + + $road_observations['operation_cnt'] = RoadObserved::query()->where([ + ['rms_status', '<>', 0], ['status', '=', 2], ['edarate_shahri_id', '=', $user->edarate_shahri_id] - ]; - $complaintConditions[] = ['edarate_shahri_id', '=', $user->edarate_shahri_id]; + ])->count(); + + $road_observations['complaint_cnt'] = RoadObserved::query()->where([ + ['rms_status', '=', 0], + ['edarate_shahri_id', '=', $user->edarate_shahri_id] + ])->count(); } - if (!empty($conditions)) { - $road_observations['operation_cnt'] = RoadObserved::query()->where($conditions)->count(); - $road_observations['complaint_cnt'] = RoadObserved::query()->where($complaintConditions)->count(); - $road_observations['total'] += $road_observations['operation_cnt'] + $road_observations['complaint_cnt']; - } - - $superviseConditions = [ - ['status', '=', 0] - ]; - - if ($user->hasPermissionTo('supervise-fast-react')) { - $road_observations['supervise_cnt'] = RoadObserved::query()->where($superviseConditions)->count(); - $road_observations['complaint_cnt'] = RoadObserved::query()->where($complaintConditions)->count(); - $road_observations['total'] += $road_observations['supervise_cnt'] + $road_observations['complaint_cnt']; - } - elseif ($user->hasPermissionTo('supervise-fast-react-province')) { - throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); - $superviseConditions[] = ['province_id', '=', $user->province_id]; - $complaintConditions[] = ['province_id', '=', $user->province_id]; - - $road_observations['supervise_cnt'] = RoadObserved::query()->where($superviseConditions)->count(); - $road_observations['complaint_cnt'] = RoadObserved::query()->where($complaintConditions)->count(); - $road_observations['total'] += $road_observations['supervise_cnt'] + $road_observations['complaint_cnt']; - } + $road_observations['total'] += $road_observations['operation_cnt'] + $road_observations['complaint_cnt'] + $road_observations['supervise_cnt']; return $road_observations; } diff --git a/app/Models/RoadObserved.php b/app/Models/RoadObserved.php index 18c4c9af..ce30a7a2 100644 --- a/app/Models/RoadObserved.php +++ b/app/Models/RoadObserved.php @@ -108,14 +108,20 @@ class RoadObserved extends Model protected function imageAfter(): Attribute { return Attribute::make( - get: fn($value) => $value == null ? null : Storage::disk('public')->url($value) + get: fn($value) => $value == null ? null : + (filter_var($value, FILTER_VALIDATE_URL) + ? $value + : Storage::disk('public')->url($value)) ); } protected function imageBefore(): Attribute { return Attribute::make( - get: fn($value) => $value == null ? null : Storage::disk('public')->url($value) + get: fn($value) => $value == null ? null : + (filter_var($value, FILTER_VALIDATE_URL) + ? $value + : Storage::disk('public')->url($value)) ); } }