diff --git a/app/Http/Controllers/V3/Dashboard/SafetyAndPrivacyController.php b/app/Http/Controllers/V3/Dashboard/SafetyAndPrivacyController.php index 463a2900..df748c35 100644 --- a/app/Http/Controllers/V3/Dashboard/SafetyAndPrivacyController.php +++ b/app/Http/Controllers/V3/Dashboard/SafetyAndPrivacyController.php @@ -141,6 +141,7 @@ class SafetyAndPrivacyController extends Controller 'step_fa' => 'گام سوم (برخورد)', 'action_picture' => FileFacade::save($request->action_picture, "safety_and_privacy/{$safetyAndPrivacy->id}/action_picture"), 'action_picture_document_upload_date' => now(), + 'action_date' => $request->action_date, ]); $user->addActivityComplete(1136); @@ -201,4 +202,25 @@ class SafetyAndPrivacyController extends Controller ->select('id', 'item', 'item_str', 'sub_item_str as name', 'sub_item_unit as unit', 'needs_image', 'needs_end_point', 'sub_item') ->get()); } + + public function map(Request $request): JsonResponse + { + $province = $request->province_id; + $edare_shahri = $request->edare_shahri_id; + $step = $request->step; + $info_id = $request->info_id; + $fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString(); + $toDate = $request->date_to ? $request->date_to . ' 23:59:59' : now()->endOfDay()->toDateTimeString(); + + $activities = SafetyAndPrivacy::query() + ->when($province, fn ($query) => $query->where('province_id', '=', $province)) + ->when($edare_shahri, fn($query) => $query->where('edarate_shahri_id', '=', $edare_shahri)) + ->when($step, fn($query) => $query->where('step', '=', $step)) + ->when($info_id, fn($query) => $query->where('info_id', '=', $info_id)) + ->whereBetween('created_at', [$fromDate, $toDate]) + ->select('id', 'lat', 'lon', 'step') + ->get(); + + return $this->successResponse($activities); + } } diff --git a/app/Http/Requests/V3/SafetyAndPrivacy/ThirdStepStoreRequest.php b/app/Http/Requests/V3/SafetyAndPrivacy/ThirdStepStoreRequest.php index 652ea3a4..91879ed5 100644 --- a/app/Http/Requests/V3/SafetyAndPrivacy/ThirdStepStoreRequest.php +++ b/app/Http/Requests/V3/SafetyAndPrivacy/ThirdStepStoreRequest.php @@ -23,6 +23,7 @@ class ThirdStepStoreRequest extends FormRequest { return [ 'action_picture' => 'required|image', + 'action_date' => 'required|date', ]; } } diff --git a/app/Services/Cartables/SafetyAndPrivacyTableService.php b/app/Services/Cartables/SafetyAndPrivacyTableService.php index e7c9a85d..891999cc 100644 --- a/app/Services/Cartables/SafetyAndPrivacyTableService.php +++ b/app/Services/Cartables/SafetyAndPrivacyTableService.php @@ -20,7 +20,7 @@ class SafetyAndPrivacyTableService $fields = ['id','lat','lon','province_id','province_fa','city_id','city_fa','edare_shahri_id','edare_shahri_name', 'recognize_picture','action_picture','operator_id','operator_name','way_id','created_at','updated_at','step', 'info_id','info_fa','activity_date_time', 'action_picture_document_upload_date', 'judiciary_document_upload_date', - 'step_fa', 'axis_type_id', 'axis_type_name' + 'step_fa', 'axis_type_id', 'axis_type_name', 'action_date' ]; if ($user->hasPermissionTo('show-safety-and-privacy-operator-cartable')) { diff --git a/database/migrations/2025_04_07_133638_add_column_to_safety_and_privacy_table.php b/database/migrations/2025_04_07_133638_add_column_to_safety_and_privacy_table.php new file mode 100644 index 00000000..b3934b8b --- /dev/null +++ b/database/migrations/2025_04_07_133638_add_column_to_safety_and_privacy_table.php @@ -0,0 +1,28 @@ +dateTime('action_date')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('safety_and_privacy', function (Blueprint $table) { + $table->dropColumn('action_date'); + }); + } +}; diff --git a/resources/views/v3/Reports/SafetyAndPrivacy/CartableReport.blade.php b/resources/views/v3/Reports/SafetyAndPrivacy/CartableReport.blade.php index 48fb08bf..1888c78a 100644 --- a/resources/views/v3/Reports/SafetyAndPrivacy/CartableReport.blade.php +++ b/resources/views/v3/Reports/SafetyAndPrivacy/CartableReport.blade.php @@ -52,7 +52,15 @@