|
|
@@ -346,7 +346,7 @@ class SegnalazioneController extends Controller implements HasMiddleware
|
|
346
|
346
|
'ordine_lavoro_id' => 'nullable|exists:ordine_lavoro,id',
|
|
347
|
347
|
'contratto_servizio_id' => 'nullable|exists:contratto_servizio,id',
|
|
348
|
348
|
'titolo' => 'required|string|max:255',
|
|
349
|
|
- 'descrizione' => 'required|string',
|
|
|
349
|
+ 'descrizione' => 'nullable|string',
|
|
350
|
350
|
'allegato' => 'nullable|array',
|
|
351
|
351
|
'allegato.*' => 'file|max:10240', // max 10MB per file
|
|
352
|
352
|
'cc' => 'nullable|string',
|
|
|
@@ -390,38 +390,41 @@ class SegnalazioneController extends Controller implements HasMiddleware
|
|
390
|
390
|
}
|
|
391
|
391
|
$segnalazione->save();
|
|
392
|
392
|
|
|
393
|
|
- // creo la prima annotazione con il testo della segnalazione
|
|
394
|
|
- $annotazione = new Annotazione();
|
|
395
|
|
- $annotazione->text = $request->descrizione;
|
|
396
|
|
- $annotazione->segnalazione_id = $segnalazione->id;
|
|
397
|
|
- $annotazione->riservata = false;
|
|
398
|
|
- $annotazione->user_id = Auth::user()->id;
|
|
399
|
|
- $annotazione->riferimento = null;
|
|
400
|
|
- $annotazione->email = null;
|
|
401
|
|
- $annotazione->telefono = null;
|
|
402
|
|
- $annotazione->save();
|
|
403
|
|
-
|
|
404
|
|
-
|
|
405
|
|
- // Se è stato caricato un file, crea l'allegato usando il sistema esistente
|
|
406
|
|
- if ($request->hasFile('allegato')) {
|
|
407
|
|
- // Assicurati che la directory esista
|
|
408
|
|
- $directory = storage_path('app/public/allegatiAnnotazioni/' . $segnalazione->id);
|
|
409
|
|
- if (!\Illuminate\Support\Facades\File::exists($directory)) {
|
|
410
|
|
- \Illuminate\Support\Facades\File::makeDirectory($directory, 0755, true);
|
|
411
|
|
- }
|
|
|
393
|
+ $descrizioneHtml = (string) $request->input('descrizione', '');
|
|
|
394
|
+ $descrizioneVuota = trim(html_entity_decode(strip_tags(str_replace(' ', ' ', $descrizioneHtml)))) === '';
|
|
|
395
|
+ $haAllegati = $request->hasFile('allegato');
|
|
|
396
|
+
|
|
|
397
|
+ // La descrizione è facoltativa: l'annotazione nasce solo se c'è testo o un allegato.
|
|
|
398
|
+ if (! $descrizioneVuota || $haAllegati) {
|
|
|
399
|
+ $annotazione = new Annotazione();
|
|
|
400
|
+ $annotazione->text = $descrizioneVuota ? '' : $descrizioneHtml;
|
|
|
401
|
+ $annotazione->segnalazione_id = $segnalazione->id;
|
|
|
402
|
+ $annotazione->riservata = false;
|
|
|
403
|
+ $annotazione->user_id = Auth::user()->id;
|
|
|
404
|
+ $annotazione->riferimento = null;
|
|
|
405
|
+ $annotazione->email = null;
|
|
|
406
|
+ $annotazione->telefono = null;
|
|
|
407
|
+ $annotazione->save();
|
|
|
408
|
+
|
|
|
409
|
+ if ($haAllegati) {
|
|
|
410
|
+ $directory = storage_path('app/public/allegatiAnnotazioni/' . $segnalazione->id);
|
|
|
411
|
+ if (!\Illuminate\Support\Facades\File::exists($directory)) {
|
|
|
412
|
+ \Illuminate\Support\Facades\File::makeDirectory($directory, 0755, true);
|
|
|
413
|
+ }
|
|
412
|
414
|
|
|
413
|
|
- foreach (array_values($request->file('allegato')) as $index => $file) {
|
|
414
|
|
- if (!$file) {
|
|
415
|
|
- continue;
|
|
|
415
|
+ foreach (array_values($request->file('allegato')) as $index => $file) {
|
|
|
416
|
+ if (!$file) {
|
|
|
417
|
+ continue;
|
|
|
418
|
+ }
|
|
|
419
|
+ $filename = time() . '_' . $index . '_' . $file->getClientOriginalName();
|
|
|
420
|
+ $path = $file->storeAs($segnalazione->id, $filename, 'allegatiAnnotazioni');
|
|
|
421
|
+
|
|
|
422
|
+ $allegato = new AllegatoAnnotazione();
|
|
|
423
|
+ $allegato->annotazione()->associate($annotazione);
|
|
|
424
|
+ $allegato->nome = $file->getClientOriginalName();
|
|
|
425
|
+ $allegato->path_file = $path;
|
|
|
426
|
+ $allegato->save();
|
|
416
|
427
|
}
|
|
417
|
|
- $filename = time() . '_' . $index . '_' . $file->getClientOriginalName();
|
|
418
|
|
- $path = $file->storeAs($segnalazione->id, $filename, 'allegatiAnnotazioni');
|
|
419
|
|
-
|
|
420
|
|
- $allegato = new AllegatoAnnotazione();
|
|
421
|
|
- $allegato->annotazione()->associate($annotazione);
|
|
422
|
|
- $allegato->nome = $file->getClientOriginalName();
|
|
423
|
|
- $allegato->path_file = $path;
|
|
424
|
|
- $allegato->save();
|
|
425
|
428
|
}
|
|
426
|
429
|
}
|
|
427
|
430
|
|