diff --git a/app/Actions/CreateOrientierungZuAbschlaege.php b/app/Actions/CreateOrientierungZuAbschlaege.php new file mode 100644 index 0000000..f62ec43 --- /dev/null +++ b/app/Actions/CreateOrientierungZuAbschlaege.php @@ -0,0 +1,21 @@ +id)->delete(); + $raeumealles = Raeumealle::where('projekte_id', $record->id)->get(); + foreach ($raeumealles as $raeumealle) { + OrientierungZuAbschlaege::firstOrCreate([ + 'projekte_id' => $record->id, + 'top_nummer' => $raeumealle->top_nummer, + ]); + } + } +} diff --git a/app/Filament/Imports/AllgemeinflaechenImporter.php b/app/Filament/Imports/AllgemeinflaechenImporter.php index 7e41527..2d9bb76 100644 --- a/app/Filament/Imports/AllgemeinflaechenImporter.php +++ b/app/Filament/Imports/AllgemeinflaechenImporter.php @@ -44,8 +44,9 @@ class AllgemeinflaechenImporter extends Importer return iconv(mb_detect_encoding($state, mb_detect_order(), true), 'UTF-8', $state); }), ImportColumn::make('flaeche') + ->label('Fläche') ->validationAttribute('Fläche') - ->rules(['required']) + ->rules(['required', 'max:32']) ->example('52,75') ->castStateUsing(function (string $state): ?float { if (blank($state)) { diff --git a/app/Filament/Resources/Projektes/RelationManagers/OrientierungZuAbschlaegesRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/OrientierungZuAbschlaegesRelationManager.php index 43c2cb5..d342da4 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/OrientierungZuAbschlaegesRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/OrientierungZuAbschlaegesRelationManager.php @@ -2,11 +2,13 @@ namespace App\Filament\Resources\Projektes\RelationManagers; +use App\Actions\CreateOrientierungZuAbschlaege; +use Filament\Actions\Action; use Filament\Actions\BulkActionGroup; -use Filament\Actions\CreateAction; use Filament\Actions\DeleteBulkAction; use Filament\Resources\RelationManagers\RelationManager; use Filament\Tables\Columns\TextColumn; +use Filament\Tables\Columns\TextInputColumn; use Filament\Tables\Table; class OrientierungZuAbschlaegesRelationManager extends RelationManager @@ -28,14 +30,23 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager ->columns([ TextColumn::make('top_nummer') ->searchable(), + TextInputColumn::make('raumart') + ->rules(['required']) + ->searchable(), ]) ->filters([ // ]) ->headerActions([ - CreateAction::make(), - ]) - ->recordActions([ + Action::make('erstellen') + ->action(fn (CreateOrientierungZuAbschlaege $createOrientierungZuAbschlaege) => $createOrientierungZuAbschlaege->create($this->ownerRecord)) + ->requiresConfirmation() + ->modalHeading('Orientierung Zu/Abschläge erstellen') + ->modalDescription('Alle bestehenden Daten in dieser Tabelle werden vorher gelöscht.') + ->modalSubmitActionLabel('Erstellen') + ->label('Erstellen') + ->tooltip('Daten werden aus "Orientierung Zu/Abschläge" Tabelle gefiltert.') + ->icon('heroicon-o-cog-8-tooth'), ]) ->toolbarActions([ BulkActionGroup::make([ diff --git a/app/Models/OrientierungZuAbschlaege.php b/app/Models/OrientierungZuAbschlaege.php index 3e29da6..96ad5b9 100644 --- a/app/Models/OrientierungZuAbschlaege.php +++ b/app/Models/OrientierungZuAbschlaege.php @@ -7,12 +7,20 @@ use Illuminate\Database\Eloquent\Model; class OrientierungZuAbschlaege extends Model { protected $fillable = [ - 'methode_id', + 'projekte_id', 'orientierung_id', + 'nicht_in_orientierung', 'top_nummer', - 'geschoss', 'raumart', - 'faktor', - 'flaeche', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', ]; }