This commit is contained in:
salam committed 2025-10-06 13:32:40 +02:00
1 parent 313d47e902
commit 0df1017cb7
4 files changed
+50 -9

No files matched your search

@@ -0,0 +1,21 @@
<?php
namespace App\Actions;
use App\Models\OrientierungZuAbschlaege;
use App\Models\Raeumealle;
class CreateOrientierungZuAbschlaege
{
public function create($record)
{
OrientierungZuAbschlaege::where('projekte_id', $record->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,
]);
}
}
}
@@ -44,8 +44,9 @@ class AllgemeinflaechenImporter extends Importer
return iconv(mb_detect_encoding($state, mb_detect_order(), true), 'UTF-8', $state); return iconv(mb_detect_encoding($state, mb_detect_order(), true), 'UTF-8', $state);
}), }),
ImportColumn::make('flaeche') ImportColumn::make('flaeche')
->label('Fläche')
->validationAttribute('Fläche') ->validationAttribute('Fläche')
->rules(['required']) ->rules(['required', 'max:32'])
->example('52,75') ->example('52,75')
->castStateUsing(function (string $state): ?float { ->castStateUsing(function (string $state): ?float {
if (blank($state)) { if (blank($state)) {
@@ -2,11 +2,13 @@
namespace App\Filament\Resources\Projektes\RelationManagers; namespace App\Filament\Resources\Projektes\RelationManagers;
use App\Actions\CreateOrientierungZuAbschlaege;
use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup; use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteBulkAction; use Filament\Actions\DeleteBulkAction;
use Filament\Resources\RelationManagers\RelationManager; use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\TextInputColumn;
use Filament\Tables\Table; use Filament\Tables\Table;
class OrientierungZuAbschlaegesRelationManager extends RelationManager class OrientierungZuAbschlaegesRelationManager extends RelationManager
@@ -28,14 +30,23 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
->columns([ ->columns([
TextColumn::make('top_nummer') TextColumn::make('top_nummer')
->searchable(), ->searchable(),
TextInputColumn::make('raumart')
->rules(['required'])
->searchable(),
]) ])
->filters([ ->filters([
// //
]) ])
->headerActions([ ->headerActions([
CreateAction::make(), Action::make('erstellen')
]) ->action(fn (CreateOrientierungZuAbschlaege $createOrientierungZuAbschlaege) => $createOrientierungZuAbschlaege->create($this->ownerRecord))
->recordActions([ ->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([ ->toolbarActions([
BulkActionGroup::make([ BulkActionGroup::make([
+12 -4
View File
@@ -7,12 +7,20 @@ use Illuminate\Database\Eloquent\Model;
class OrientierungZuAbschlaege extends Model class OrientierungZuAbschlaege extends Model
{ {
protected $fillable = [ protected $fillable = [
'methode_id', 'projekte_id',
'orientierung_id', 'orientierung_id',
'nicht_in_orientierung',
'top_nummer', 'top_nummer',
'geschoss',
'raumart', 'raumart',
'faktor', 'a',
'flaeche', 'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
]; ];
} }