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
 use App\Models\Dispositivo;
6
 use App\Models\Dispositivo;
7
 use App\Services\Attivita\AttivitaService;
7
 use App\Services\Attivita\AttivitaService;
8
 use Illuminate\Database\Eloquent\Model;
8
 use Illuminate\Database\Eloquent\Model;
9
-use Yajra\DataTables\DataTablesEditor;
10
 use Illuminate\Support\Facades\Session;
9
 use Illuminate\Support\Facades\Session;
10
+use Illuminate\Validation\ValidationException;
11
+use Yajra\DataTables\DataTablesEditor;
11
 
12
 
12
 class CucinaDataTableEditor extends DataTablesEditor
13
 class CucinaDataTableEditor extends DataTablesEditor
13
 {
14
 {
104
   {
105
   {
105
     AttivitaService::garantisciAttivita($model->attivita_id);
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
     return $data;
114
     return $data;
108
   }
115
   }
109
 
116
 

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

7
 use Illuminate\Database\Eloquent\Model;
7
 use Illuminate\Database\Eloquent\Model;
8
 use Illuminate\Support\Facades\Session;
8
 use Illuminate\Support\Facades\Session;
9
 use Yajra\DataTables\DataTablesEditor;
9
 use Yajra\DataTables\DataTablesEditor;
10
+use Illuminate\Validation\ValidationException;
10
 
11
 
11
 class DispositivoDataTableEditor extends DataTablesEditor
12
 class DispositivoDataTableEditor extends DataTablesEditor
12
 {
13
 {
118
   public function deleting(Model $model, array $data): array
119
   public function deleting(Model $model, array $data): array
119
   {
120
   {
120
     AttivitaService::garantisciAttivita($model->attivita_id);
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
     return $data;
127
     return $data;
123
   }
128
   }
124
   public function messages(): array
129
   public function messages(): array

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

129
   public function deleting(Model $model, array $data): array
129
   public function deleting(Model $model, array $data): array
130
   {
130
   {
131
     AttivitaService::garantisciAttivita($model->attivita_id);
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
     return $data;
137
     return $data;
134
   }
138
   }
135
 
139
 

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

7
 use Illuminate\Database\Eloquent\Model;
7
 use Illuminate\Database\Eloquent\Model;
8
 use Yajra\DataTables\DataTablesEditor;
8
 use Yajra\DataTables\DataTablesEditor;
9
 use Illuminate\Support\Facades\Session;
9
 use Illuminate\Support\Facades\Session;
10
+use Illuminate\Validation\ValidationException;
10
 
11
 
11
 class  MetodoPagamentoDataTableEditor extends DataTablesEditor
12
 class  MetodoPagamentoDataTableEditor extends DataTablesEditor
12
 {
13
 {
100
   public function deleting(Model $model, array $data): array
101
   public function deleting(Model $model, array $data): array
101
   {
102
   {
102
     AttivitaService::garantisciAttivita($model->attivita_id);
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
     return $data;
109
     return $data;
105
   }
110
   }
106
 
111
 

Carregando…
Cancelar
Salvar