feat: Aggiungi funzionalità di eliminazione per clienti e preventivi con gestione delle dipendenze

This commit is contained in:
2026-10-19 15:48:15 +02:00
parent d6a9978167
commit 31d5152d8c
20 changed files with 673 additions and 17 deletions
@@ -4,6 +4,7 @@ namespace App\Filament\Resources;
use App\Filament\Resources\PreventivoResource\Pages;
use App\Filament\Resources\PreventivoResource\RelationManagers\ItemsRelationManager;
use App\Models\Cliente;
use App\Models\Preventivo;
use App\Support\PreventivoPdf;
use Filament\Forms;
@@ -44,7 +45,13 @@ class PreventivoResource extends Resource
Forms\Components\Select::make('cliente_id')
->label('Cliente')
->relationship('cliente', 'nome')
->searchable()
->getOptionLabelFromRecordUsing(function (Cliente $record): string {
$nome = trim("{$record->nome} {$record->cognome}");
$parti = array_filter([$record->ragione_sociale, $nome]);
return $parti ? implode(' — ', $parti) : (string) $record->username;
})
->searchable(['ragione_sociale', 'nome', 'cognome'])
->preload(),
]);
}
@@ -58,9 +65,14 @@ class PreventivoResource extends Resource
->label('N.')
->sortable()
->placeholder('—'),
Tables\Columns\TextColumn::make('cliente.nominativo')
Tables\Columns\TextColumn::make('cliente.ragione_sociale')
->label('Ragione sociale')
->searchable()
->toggleable()
->placeholder('—'),
Tables\Columns\TextColumn::make('cliente.nome_completo')
->label('Cliente')
->searchable(['nome', 'cognome', 'ragione_sociale'])
->searchable(['nome', 'cognome'])
->placeholder('—'),
Tables\Columns\TextColumn::make('cliente.email')
->label('Email')
@@ -116,7 +128,8 @@ class PreventivoResource extends Resource
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
Tables\Actions\DeleteBulkAction::make()
->successRedirectUrl(static::getUrl('index')),
]),
]);
}