Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
9501ff38d9
commit
38bcf60778
1 file changed
+25
-4
@@ -15,6 +15,7 @@ use Illuminate\Database\Eloquent\SoftDeletingScope;
|
|||||||
|
|
||||||
use Filament\Forms\Components\Select;
|
use Filament\Forms\Components\Select;
|
||||||
use Filament\Forms\Components\TextInput;
|
use Filament\Forms\Components\TextInput;
|
||||||
|
use Filament\Forms\Get;
|
||||||
|
|
||||||
|
|
||||||
use Filament\Forms\Components\DatePicker;
|
use Filament\Forms\Components\DatePicker;
|
||||||
@@ -41,6 +42,7 @@ class SpiceSupplierResource extends Resource
|
|||||||
->required()
|
->required()
|
||||||
->preload()
|
->preload()
|
||||||
->searchable()
|
->searchable()
|
||||||
|
->live()
|
||||||
->createOptionForm([
|
->createOptionForm([
|
||||||
TextInput::make('name')->label('Name')->required()->maxLength(255),
|
TextInput::make('name')->label('Name')->required()->maxLength(255),
|
||||||
Forms\Components\Select::make('unit')
|
Forms\Components\Select::make('unit')
|
||||||
@@ -58,17 +60,36 @@ class SpiceSupplierResource extends Resource
|
|||||||
}),
|
}),
|
||||||
Select::make('supplier_id')
|
Select::make('supplier_id')
|
||||||
->label('Lieferant')
|
->label('Lieferant')
|
||||||
->relationship('supplier', 'name')
|
->relationship('supplier', 'name')
|
||||||
->required()
|
->required()
|
||||||
->preload()
|
->preload()
|
||||||
->searchable(),
|
->searchable(),
|
||||||
|
|
||||||
TextInput::make('amount')
|
TextInput::make('amount')
|
||||||
->label('Liefermenge')
|
->label('Liefermenge')
|
||||||
->numeric()
|
->numeric()
|
||||||
->required()
|
->required()
|
||||||
->rules(['min:0.01'])
|
->rules(['min:0.001'])
|
||||||
->disabled(fn($record) => !is_null($record)),
|
->disabled(fn($record) => !is_null($record))
|
||||||
|
->suffix(function (Get $get) {
|
||||||
|
$unit = \App\Models\Spice::find($get('spice_id'))?->unit;
|
||||||
|
return match($unit) {
|
||||||
|
'grams' => 'kg',
|
||||||
|
'pieces' => 'Stück',
|
||||||
|
'liter' => 'Liter',
|
||||||
|
default => null,
|
||||||
|
};
|
||||||
|
})
|
||||||
|
->formatStateUsing(function ($state, $record) {
|
||||||
|
if ($record?->spice?->unit === 'grams') {
|
||||||
|
return round($state / 1000, 3);
|
||||||
|
}
|
||||||
|
return $state;
|
||||||
|
})
|
||||||
|
->dehydrateStateUsing(function ($state, Get $get) {
|
||||||
|
$unit = \App\Models\Spice::find($get('spice_id'))?->unit;
|
||||||
|
return $unit === 'grams' ? (float) $state * 1000 : $state;
|
||||||
|
}),
|
||||||
|
|
||||||
DatePicker::make('supplied_at')
|
DatePicker::make('supplied_at')
|
||||||
->label('Lieferdatum')
|
->label('Lieferdatum')
|
||||||
|
|||||||
Reference in new issue
Block a user