diff --git a/app/Filament/User/Resources/SpiceSupplierResource/Pages/EditSpiceSupplier.php b/app/Filament/User/Resources/SpiceSupplierResource/Pages/EditSpiceSupplier.php index 40b54cf..eb7fc33 100644 --- a/app/Filament/User/Resources/SpiceSupplierResource/Pages/EditSpiceSupplier.php +++ b/app/Filament/User/Resources/SpiceSupplierResource/Pages/EditSpiceSupplier.php @@ -4,30 +4,28 @@ namespace App\Filament\User\Resources\SpiceSupplierResource\Pages; use App\Filament\User\Resources\SpiceSupplierResource; use Filament\Resources\Pages\EditRecord; -use Filament\Notifications\Notification; -use App\Models\Spice; class EditSpiceSupplier extends EditRecord { protected static string $resource = SpiceSupplierResource::class; - - protected function getHeaderActions(): array { return [ - \Filament\Actions\DeleteAction::make()->before(function ($record) { - if (!$record->spice || $record->spice->quantity < $record->amount) { - Notification::make() - ->warning() - ->title('Fehler!') - ->body('Nicht mehr genügend ' . htmlentities($record->spice->name) . ' im Lager (bräuchte mindestens Liefermenge um Lieferung rückgängig zu machen)') - ->send(); - $this->halt(); - return false; - } - Spice::findOrFail($record->spice->id)->decrement('quantity', $record->amount); - }), + \Filament\Actions\DeleteAction::make() + ->requiresConfirmation() + ->modalHeading('Lieferung löschen') + ->modalDescription(fn ($record) => $record->spice && $record->spice->quantity < $record->amount + ? 'Warnung: Nicht mehr genügend ' . $record->spice->name . ' im Lager. Der Bestand wird auf 0 gesetzt. Trotzdem löschen?' + : 'Soll diese Lieferung wirklich gelöscht werden?' + ) + ->before(function ($record) { + if ($record->spice) { + $record->spice->update([ + 'quantity' => max(0, $record->spice->quantity - $record->amount), + ]); + } + }), ]; } }