Ver código fonte

fix(editors): block delete when linked historical data exists

Co-authored-by: Cursor <cursoragent@cursor.com>
marcofalabretti 2 semanas atrás
pai
commit
ff99881db9

+ 8
- 1
app/DataTables/CucinaDataTableEditor.php Ver arquivo

@@ -6,8 +6,9 @@ use App\Models\Cucina;
6 6
 use App\Models\Dispositivo;
7 7
 use App\Services\Attivita\AttivitaService;
8 8
 use Illuminate\Database\Eloquent\Model;
9
-use Yajra\DataTables\DataTablesEditor;
10 9
 use Illuminate\Support\Facades\Session;
10
+use Illuminate\Validation\ValidationException;
11
+use Yajra\DataTables\DataTablesEditor;
11 12
 
12 13
 class CucinaDataTableEditor extends DataTablesEditor
13 14
 {
@@ -104,6 +105,12 @@ class CucinaDataTableEditor extends DataTablesEditor
104 105
   {
105 106
     AttivitaService::garantisciAttivita($model->attivita_id);
106 107
 
108
+    if ($model->piatti()->exists() || $model->prenotazioni()->exists()) {
109
+      throw ValidationException::withMessages([
110
+        'cucina' => 'Non puoi eliminare questa cucina: ha ancora piatti o prenotazioni. Disattivala invece.',
111
+      ]);
112
+    }
113
+
107 114
     return $data;
108 115
   }
109 116
 

+ 6
- 1
app/DataTables/DispositivoDataTableEditor.php Ver arquivo

@@ -7,6 +7,7 @@ use App\Services\Attivita\AttivitaService;
7 7
 use Illuminate\Database\Eloquent\Model;
8 8
 use Illuminate\Support\Facades\Session;
9 9
 use Yajra\DataTables\DataTablesEditor;
10
+use Illuminate\Validation\ValidationException;
10 11
 
11 12
 class DispositivoDataTableEditor extends DataTablesEditor
12 13
 {
@@ -118,7 +119,11 @@ class DispositivoDataTableEditor extends DataTablesEditor
118 119
   public function deleting(Model $model, array $data): array
119 120
   {
120 121
     AttivitaService::garantisciAttivita($model->attivita_id);
121
-
122
+    if ($model->ordini()->exists()) {
123
+      throw ValidationException::withMessages([
124
+        'dispositivo' => 'Non puoi eliminare questo dispositivo: è già stato utilizzato in ordini. Modifica la disponiblità invece.',
125
+      ]);
126
+    }
122 127
     return $data;
123 128
   }
124 129
   public function messages(): array

+ 5
- 1
app/DataTables/EventoDataTableEditor.php Ver arquivo

@@ -129,7 +129,11 @@ class EventoDataTableEditor extends DataTablesEditor
129 129
   public function deleting(Model $model, array $data): array
130 130
   {
131 131
     AttivitaService::garantisciAttivita($model->attivita_id);
132
-
132
+    if ($model->prenotazioni()->exists()) {
133
+      throw ValidationException::withMessages([
134
+        'evento' => 'Non puoi eliminare questo evento: ha ancora prenotazioni. Modifica la disponiblità invece.',
135
+      ]);
136
+    }
133 137
     return $data;
134 138
   }
135 139
 

+ 6
- 1
app/DataTables/MetodoPagamentoDataTableEditor.php Ver arquivo

@@ -7,6 +7,7 @@ use App\Services\Attivita\AttivitaService;
7 7
 use Illuminate\Database\Eloquent\Model;
8 8
 use Yajra\DataTables\DataTablesEditor;
9 9
 use Illuminate\Support\Facades\Session;
10
+use Illuminate\Validation\ValidationException;
10 11
 
11 12
 class  MetodoPagamentoDataTableEditor extends DataTablesEditor
12 13
 {
@@ -100,7 +101,11 @@ class  MetodoPagamentoDataTableEditor extends DataTablesEditor
100 101
   public function deleting(Model $model, array $data): array
101 102
   {
102 103
     AttivitaService::garantisciAttivita($model->attivita_id);
103
-
104
+    if ($model->ordini()->exists() || $model->pagamenti()->exists()) {
105
+      throw ValidationException::withMessages([
106
+        'metodo_pagamento' => 'Non puoi eliminare questo metodo di pagamento: è già stato utilizzato in ordini. Modifica la disponiblità invece.',
107
+      ]);
108
+    }
104 109
     return $data;
105 110
   }
106 111
 

Carregando…
Cancelar
Salvar