diff --git a/app/Enums/SafetyAndPrivacyStatus.php b/app/Enums/SafetyAndPrivacyStatus.php new file mode 100644 index 00000000..4e7c164d --- /dev/null +++ b/app/Enums/SafetyAndPrivacyStatus.php @@ -0,0 +1,19 @@ + 'تایید', + 2 => 'عدم تایید', + ]; + + return $mapArray[$state]; + } +} \ No newline at end of file diff --git a/app/Models/SafetyAndPrivacy.php b/app/Models/SafetyAndPrivacy.php index ac347063..77a64138 100644 --- a/app/Models/SafetyAndPrivacy.php +++ b/app/Models/SafetyAndPrivacy.php @@ -36,7 +36,10 @@ class SafetyAndPrivacy extends Model 'action_picture_document_upload_date', 'axis_type_id', 'axis_type_name', - 'action_date' + 'action_date', + 'status', + 'final_description', + 'is_finished' ]; public $table = "safety_and_privacy"; diff --git a/app/Services/Cartables/SafetyAndPrivacyTableService.php b/app/Services/Cartables/SafetyAndPrivacyTableService.php index afe8c30a..8aca0a54 100644 --- a/app/Services/Cartables/SafetyAndPrivacyTableService.php +++ b/app/Services/Cartables/SafetyAndPrivacyTableService.php @@ -18,7 +18,7 @@ class SafetyAndPrivacyTableService /** * @throws Throwable */ - public function dataTable(Request $request, $loadRelations = false) + public function operatorDataTable(Request $request) { $user = auth()->user(); @@ -50,6 +50,30 @@ class SafetyAndPrivacyTableService ); } + public function supervisorDataTable(Request $request) + { + $user = auth()->user(); + + $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', 'action_date' + ]; + + $query = SafetyAndPrivacy::query()->where([ + ['province_id', '=', $user->province_id], + ['is_finished', '=', 1] + ]); + + return DataTableFacade::run( + $query, + $request, + allowedFilters: ['*'], + allowedSortings: ['*'], + allowedSelects: $fields + ); + } + public function countryActivity(Request $request): array { $activities = []; diff --git a/database/migrations/2025_04_22_100327_add_column_to_safety_and_privacy_table.php b/database/migrations/2025_04_22_100327_add_column_to_safety_and_privacy_table.php new file mode 100644 index 00000000..1a63dd23 --- /dev/null +++ b/database/migrations/2025_04_22_100327_add_column_to_safety_and_privacy_table.php @@ -0,0 +1,30 @@ +boolean('is_finished')->nullable(); + $table->integer('status')->nullable(); + $table->string('final_description')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('safety_and_privacy', function (Blueprint $table) { + $table->dropColumn(['status', 'final_description', 'is_finished']); + }); + } +};