diff --git a/ARTISAN.md b/ARTISAN.md index cb59679..745cb1c 100644 --- a/ARTISAN.md +++ b/ARTISAN.md @@ -17,12 +17,12 @@ a make:model ZuAbschlaege -m a make:filament-resource ProjekteImport --nested a make:filament-relation-manager ProjekteResource ProjekteImports name -a make:filament-relation-manager ProjektRaeumealleResource ProjektRaeumealles geschoss +a make:filament-relation-manager ProjektObjekteImDetailResource ProjektObjekteImDetails geschoss a make:model ProjektAllgemeinflaechen -ms -a make:model ProjektRaeumealle -ms +a make:model ProjektObjekteImDetail -ms -php artisan make:filament-importer ProjektRaeumealle +php artisan make:filament-importer ProjektObjekteImDetail A make:filament-resource ProjektAllgemeinflaechen --nested diff --git a/app/Actions/Create/CreateOrientierungZuAbschlaege.php b/app/Actions/Create/CreateOrientierungZuAbschlaege.php index 094ba3f..6b4573a 100644 --- a/app/Actions/Create/CreateOrientierungZuAbschlaege.php +++ b/app/Actions/Create/CreateOrientierungZuAbschlaege.php @@ -2,28 +2,28 @@ namespace App\Actions\Create; -use App\Models\ProjektOrientierungZuAbschlaege; -use App\Models\ProjektRaeumealle; +use App\Models\ProjektObjekte; +use App\Models\ProjektObjekteImDetail; -class CreateProjektOrientierungZuAbschlaege +class CreateProjektObjekte { public function create($record) { - ProjektOrientierungZuAbschlaege::where('projekte_id', $record->id)->delete(); + ProjektObjekte::where('projekte_id', $record->id)->delete(); - $projekt_raeumealles = ProjektRaeumealle::select('top_nummer', 'geschoss')->where('projekte_id', $record->id)->get(); + $projekt_raeumealles = ProjektObjekteImDetail::select('top_nummer', 'geschoss')->where('projekte_id', $record->id)->get(); $arr = []; foreach ($projekt_raeumealles as $raeumealle) { if (! in_array($raeumealle->top_nummer, $arr)) { - $orientierung = new ProjektOrientierungZuAbschlaege; + $orientierung = new ProjektObjekte; $orientierung->projekte_id = $record->id; $orientierung->top_nummer = $raeumealle->top_nummer; $orientierung->geschoss = $raeumealle->geschoss ?? ''; $orientierung->save(); - ProjektRaeumealle::where('projekte_id', $record->id)->where('top_nummer', $raeumealle->top_nummer)->update(['projekt_orientierung_zu_abschlaege_id' => $orientierung->id]); + ProjektObjekteImDetail::where('projekte_id', $record->id)->where('top_nummer', $raeumealle->top_nummer)->update(['projekt_objekte_id' => $orientierung->id]); $arr[] = $raeumealle->top_nummer; } diff --git a/app/Actions/Create/CreateProjektMethoden.php b/app/Actions/Create/CreateProjektMethoden.php index 5d11bd8..39fc072 100644 --- a/app/Actions/Create/CreateProjektMethoden.php +++ b/app/Actions/Create/CreateProjektMethoden.php @@ -3,14 +3,14 @@ namespace App\Actions\Create; use App\Models\ProjektMethode; -use App\Models\ProjektRaeumealle; +use App\Models\ProjektObjekteImDetail; class CreateProjektMethoden { public function create($record) { ProjektMethode::where('projekte_id', $record->id)->delete(); - $projekt_raeumealles = ProjektRaeumealle::where('projekte_id', $record->id)->get(); + $projekt_raeumealles = ProjektObjekteImDetail::where('projekte_id', $record->id)->get(); foreach ($projekt_raeumealles as $raeumealle) { ProjektMethode::firstOrCreate([ 'projekte_id' => $record->id, diff --git a/app/Actions/Generate/Gutachten/Paragraph6Tabelle.php b/app/Actions/Generate/Gutachten/Paragraph6Tabelle.php index a6e8f6a..9b60c26 100644 --- a/app/Actions/Generate/Gutachten/Paragraph6Tabelle.php +++ b/app/Actions/Generate/Gutachten/Paragraph6Tabelle.php @@ -3,14 +3,14 @@ namespace App\Actions\Generate\Gutachten; use App\Actions\Generate\Utilities\Html; -use App\Models\ProjektOrientierungZuAbschlaege; +use App\Models\ProjektObjekte; class Paragraph6Tabelle { public static function load($projekte_id) { - $data = ProjektOrientierungZuAbschlaege::with('orientierung') + $data = ProjektObjekte::with('orientierung') ->where('projekte_id', $projekte_id) ->orderBy('nicht_in_orientierung') ->orderBy('top_nummer') diff --git a/app/Actions/Generate/Nutzwerte/Allgemeinflaechens.php b/app/Actions/Generate/Nutzwerte/ProjektAllgemeinflaechens.php similarity index 100% rename from app/Actions/Generate/Nutzwerte/Allgemeinflaechens.php rename to app/Actions/Generate/Nutzwerte/ProjektAllgemeinflaechens.php diff --git a/app/Actions/Generate/Nutzwerte/ZuUndAbschlaege.php b/app/Actions/Generate/Nutzwerte/ZuUndAbschlaege.php index 32fd824..c0a47a1 100644 --- a/app/Actions/Generate/Nutzwerte/ZuUndAbschlaege.php +++ b/app/Actions/Generate/Nutzwerte/ZuUndAbschlaege.php @@ -3,7 +3,7 @@ namespace App\Actions\Generate\Nutzwerte; use App\Models\Merkmale; -use App\Models\ProjektOrientierungZuAbschlaege; +use App\Models\ProjektObjekte; use App\Models\Raumalles; use App\Models\Raumorientierung; use App\Utilities\Format; @@ -14,7 +14,7 @@ class ZuUndAbschlaege public static function load(int $projekte_id) { - $orientierungen = ProjektOrientierungZuAbschlaege::select() + $orientierungen = ProjektObjekte::select() ->with('orientierung') ->where('projekte_id', $projekte_id) ->where('nicht_in_orientierung', 0) diff --git a/app/Actions/Validation/GutachtenValidation.php b/app/Actions/Validation/GutachtenValidation.php index 8918e13..04803f2 100644 --- a/app/Actions/Validation/GutachtenValidation.php +++ b/app/Actions/Validation/GutachtenValidation.php @@ -6,9 +6,9 @@ use App\Models\ProjektAllgemeinflaechen; use App\Models\Projekte; use App\Models\ProjektInhaltsverzeichnis; use App\Models\ProjektMethode; -use App\Models\ProjektOrientierungZuAbschlaege; +use App\Models\ProjektObjekte; +use App\Models\ProjektObjekteImDetail; use App\Models\ProjektPlatzhalter; -use App\Models\ProjektRaeumealle; use Filament\Notifications\Notification; class GutachtenValidation @@ -21,7 +21,7 @@ class GutachtenValidation $res = ProjektAllgemeinflaechen::where('projekte_id', $record->id)->get(); if (! $res->count()) { Notification::make() - ->title('Allgemeinflächen') + ->title('Tabelle Allgemeinflächen') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) @@ -33,7 +33,7 @@ class GutachtenValidation foreach ($res as $value) { if (! $value->geschoss) { Notification::make() - ->title('Allgemeinflächen') + ->title('Tabelle Allgemeinflächen') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) @@ -44,7 +44,7 @@ class GutachtenValidation } if (! $value->raumart) { Notification::make() - ->title('Allgemeinflächen') + ->title('Tabelle Allgemeinflächen') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) @@ -55,7 +55,7 @@ class GutachtenValidation } if ($value->flaeche == 0) { Notification::make() - ->title('Allgemeinflächen') + ->title('Tabelle Allgemeinflächen') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) @@ -67,58 +67,113 @@ class GutachtenValidation } /** - * ProjektRaeumealle + * ProjektObjekte + nicht_in_orientierung */ - $res = ProjektRaeumealle::where('projekte_id', $record->id)->get(); + $res = ProjektObjekte::where('projekte_id', $record->id)->get(); if (! $res->count()) { Notification::make() - ->title('Räume Alle') + ->title('Tabelle Objekte') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) - ->body('Die Tabelle Räume Alle ist leer.') + ->body('Die Tabelle Objekte ist leer.') + ->send(); + + return false; + } + $res = ProjektObjekte::where('projekte_id', $record->id)->where('nicht_in_orientierung', false)->get(); + foreach ($res as $value) { + if (! $value->orientierung_id && ! $value->nicht_in_orientierung) { + Notification::make() + ->title('Tabelle Objekte') + ->info() + ->icon('heroicon-o-exclamation-triangle') + ->duration(10000) + ->body('Bei der Top Nummer '.$value->top_nummer.' fehlt die Orientierung.') + ->send(); + + return false; + } + if (! $value->orientierung_id && ! $value->type) { + Notification::make() + ->title('Tabelle Objekte') + ->info() + ->icon('heroicon-o-exclamation-triangle') + ->duration(10000) + ->body('Bei der Top Nummer '.$value->top_nummer.' fehlt der Type.') + ->send(); + + return false; + } + } + /** + * ProjektObjekte & ProjektObjekteImDetail + */ + $res = ProjektObjekte::with('ProjektObjekteImDetail')->where('projekte_id', $record->id)->get(); + if (! $res->count()) { + Notification::make() + ->title('Tabelle Objekte im Detail') + ->info() + ->icon('heroicon-o-exclamation-triangle') + ->duration(10000) + ->body('Die Tabelle Objekte im Detail ist leer.') ->send(); return false; } foreach ($res as $value) { + + $raeume = $value->ProjektObjekteImDetail->toArray(); + $raeume = $raeume[0] ?? []; + + if (! count($raeume)) { + Notification::make() + ->title('Tabelle Objekte') + ->info() + ->icon('heroicon-o-exclamation-triangle') + ->duration(10000) + ->body('Der Top Nummer '.$value->top_nummer.' sind keine Räume zugeordnet.') + ->send(); + + return false; + } if (! $value->top_nummer) { Notification::make() - ->title('Räume Alle') + ->title('Tabelle Objekte') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) - ->body('Für den Raum '.$value->raumart.' im Geschoss '.$value->geschoss.' fehlt die Angabe der Top Nummer.') + ->body('Für den Raum mit der ID '.$value->id.' fehlt die Angabe der Top Nummer.') ->send(); return false; } - if (! $value->geschoss) { + if (! $raeume['geschoss']) { Notification::make() - ->title('Räume Alle') + ->title('Tabelle Objekte im Detail') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) - ->body('Für den Raum '.$value->raumart.' mit der Top Nummer '.$value->top_nummer.' fehlt die Angabe der Geschoßes.') + ->body('Beim Objekt Top Nummer '.$value->top_nummer.' fehlt die Angabe des Geschoßes.') ->send(); return false; } - if (! $value->raumart) { + if (! $raeume['raumart']) { Notification::make() - ->title('Räume Alle') + ->title('Tabelle Objekte im Detail') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) - ->body('Für den Raum mit der Top Nummer '.$value->top_nummer.' im Geschoßes '.$value->geschoss.' fehlt die Angabe der Raumart.') + ->body('Beim Objekt Top Nummer '.$value->top_nummer.' fehlt die Angabe der Raumart.') ->send(); return false; } - if ($value->flaeche == 0) { + if (! $raeume['flaeche']) { Notification::make() - ->title('Räume Alle') + ->title('Tabelle Objekte im Detail') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) @@ -127,17 +182,6 @@ class GutachtenValidation return false; } - if ($value->faktor == 0) { - Notification::make() - ->title('Räume Alle') - ->info() - ->icon('heroicon-o-exclamation-triangle') - ->duration(10000) - ->body('Für die Raumart '.$value->raumart.' mit der Top Nummer '.$value->top_nummer.' im Geschoss '.$value->geschoss.' fehlt die Angabe des Faktors.') - ->send(); - - return false; - } } /** @@ -146,7 +190,7 @@ class GutachtenValidation $res = ProjektMethode::where('projekte_id', $record->id)->get(); if (! $res->count()) { Notification::make() - ->title('Räume Methoden') + ->title('Tabelle Räume Methoden') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) @@ -158,7 +202,7 @@ class GutachtenValidation foreach ($res as $value) { if (! $value->methode_id) { Notification::make() - ->title('Räume Methoden') + ->title('Tabelle Räume Methoden') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) @@ -167,58 +211,18 @@ class GutachtenValidation return false; } - if ($value->faktor == 0) { - Notification::make() - ->title('Räume Methoden') - ->info() - ->icon('heroicon-o-exclamation-triangle') - ->duration(10000) - ->body('Für den Raum '.$value->raumart.' fehlt die Angabe des Faktors.') - ->send(); + // KANN 0 SEIN + // if ($value->faktor == 0) { + // Notification::make() + // ->title('Tabelle Räume Methoden') + // ->info() + // ->icon('heroicon-o-exclamation-triangle') + // ->duration(10000) + // ->body('Für den Raum '.$value->raumart.' fehlt die Angabe des Faktors.') + // ->send(); - return false; - } - } - - /** - * Orientierung Zu und Abschläge - */ - $res = ProjektOrientierungZuAbschlaege::where('projekte_id', $record->id)->get(); - if (! $res->count()) { - Notification::make() - ->title('Orientierung Zu und Abschläge') - ->info() - ->icon('heroicon-o-exclamation-triangle') - ->duration(10000) - ->body('Die Tabelle Orientierung Zu und Abschläge ist leer.') - ->send(); - - return false; - } - $res = ProjektOrientierungZuAbschlaege::where('projekte_id', $record->id)->where('nicht_in_orientierung', false)->get(); - foreach ($res as $value) { - if (! $value->orientierung_id && ! $value->nicht_in_orientierung) { - Notification::make() - ->title('Orientierung Zu und Abschläge') - ->info() - ->icon('heroicon-o-exclamation-triangle') - ->duration(10000) - ->body('Bei der Top Nummer '.$value->top_nummer.' fehlt die Orientierung.') - ->send(); - - return false; - } - if (! $value->orientierung_id && ! $value->type) { - Notification::make() - ->title('Orientierung Zu und Abschläge') - ->info() - ->icon('heroicon-o-exclamation-triangle') - ->duration(10000) - ->body('Bei der Top Nummer '.$value->top_nummer.' fehlt der Type.') - ->send(); - - return false; - } + // return false; + // } } /** @@ -227,7 +231,7 @@ class GutachtenValidation $res = ProjektInhaltsverzeichnis::where('projekte_id', $record->id)->get(); if (! $res->count()) { Notification::make() - ->title('Inhaltsverzeichnis') + ->title('Tabelle Inhaltsverzeichnis') ->info() ->icon('heroicon-o-exclamation-triangle') ->body('Inhaltsverzeichnis fehlt!') @@ -243,7 +247,7 @@ class GutachtenValidation $res = ProjektPlatzhalter::where('projekte_id', $record->id)->whereNull('platzhaltertext')->orWhere('platzhaltertext', '=', '')->get(); if ($res->count()) { Notification::make() - ->title('Platzhalter') + ->title('Tabelle Platzhalter') ->info() ->icon('heroicon-o-exclamation-triangle') ->duration(10000) @@ -254,7 +258,7 @@ class GutachtenValidation } Notification::make() - ->title('Evaluation') + ->title('Evaluierung') ->success() ->duration(10000) ->body('Die Evaluierung des Projektes war erfolgreich.') diff --git a/app/Filament/Imports/ProjektRaeumealleImporter.php b/app/Filament/Imports/ProjektRaeumealleImporter.php index 58796f3..533773b 100644 --- a/app/Filament/Imports/ProjektRaeumealleImporter.php +++ b/app/Filament/Imports/ProjektRaeumealleImporter.php @@ -2,51 +2,47 @@ namespace App\Filament\Imports; -use App\Models\ProjektOrientierungZuAbschlaege; -use App\Models\ProjektRaeumealle; +use App\Models\ProjektObjekte; +use App\Models\ProjektObjekteImDetail; use Filament\Actions\Imports\ImportColumn; use Filament\Actions\Imports\Importer; use Filament\Actions\Imports\Models\Import; use Illuminate\Support\Number; -class ProjektRaeumealleImporter extends Importer +class ProjektObjekteImDetailImporter extends Importer { - protected static ?string $model = ProjektRaeumealle::class; - - protected function beforeValidate(): void + protected static ?string $model = ProjektObjekteImDetail::class; + + public static $projekte_id; + + public function resolveRecord(): ProjektObjekteImDetail { - dd($this->data); + self::$projekte_id = $this->options['projekte_id']; - $res = ProjektOrientierungZuAbschlaege::firstOrCreate([ - 'projekte_id' => $this->options['projekte_id'], - 'top_nummer' => trim($this->data['top_nummer']), - ]); + $res = new ProjektObjekteImDetail; + $res->projekte_id = self::$projekte_id; - dd($res); - - $this->data['orientierung_zu_abschlaege_id'] = $res->id; - } - - - public function resolveRecord(): ProjektRaeumealle - { - return ProjektRaeumealle::firstOrNew([ - 'projekt_orientierung_zu_abschlaege_id' => $this->data['orientierung_zu_abschlaege_id'], - 'projekte_id' => $this->options['projekte_id'], - ]); + return $res; } public static function getColumns(): array { return [ - // ImportColumn::make('top_nummer') - // ->relationship('orientierung_zu_abschlaege'), ImportColumn::make('top_nummer') ->label('Top Nummer') ->validationAttribute('Top Nummer') ->requiredMapping() ->example('EG') ->rules(['required', 'max:255']) + ->relationship(resolveUsing: function (string $state, $data): ?ProjektObjekte { + return ProjektObjekte::query() + ->where('projekte_id', self::$projekte_id) + ->Where('top_nummer', $state) + ->firstOrCreate([ + 'projekte_id' => self::$projekte_id, + 'top_nummer' => $state, + ]); + }) ->castStateUsing(function (string $state) { $state = trim($state); @@ -93,10 +89,10 @@ class ProjektRaeumealleImporter extends Importer public static function getCompletedNotificationBody(Import $import): string { - $body = ' Der Import der Räume ist abgeschlossen. Es wurden '.Number::format($import->successful_rows).' '.str('row')->plural($import->successful_rows).' importiert.'; + $body = ' Der Import der Objekte ist abgeschlossen. Es wurden '.Number::format($import->successful_rows).' '.str('row')->plural($import->successful_rows).' importiert.'; if ($failedRowsCount = $import->getFailedRowsCount()) { - $body .= ' Bei '.Number::format($failedRowsCount).' '.str('row')->plural($failedRowsCount).' ist der Import fehlgeschlagen.'; + $body .= ' Bei '.Number::format($failedRowsCount).' '.@lang('Reihe|Reihen', $failedRowsCount).' ist der Import fehlgeschlagen.'; } return $body; diff --git a/app/Filament/Resources/Projektes/Pages/EditProjekte.php b/app/Filament/Resources/Projektes/Pages/EditProjekte.php index d972e3f..d246c2a 100644 --- a/app/Filament/Resources/Projektes/Pages/EditProjekte.php +++ b/app/Filament/Resources/Projektes/Pages/EditProjekte.php @@ -4,13 +4,13 @@ namespace App\Filament\Resources\Projektes\Pages; use App\Actions\Validation\GutachtenValidation; use App\Filament\Imports\ProjektAllgemeinflaechenImporter; -use App\Filament\Imports\ProjektRaeumealleImporter; +use App\Filament\Imports\ProjektObjekteImDetailImporter; use App\Filament\Resources\Projektes\ProjekteResource; use App\Models\Konto; use App\Models\ProjektAllgemeinflaechen; use App\Models\Projekte; -use App\Models\ProjektOrientierungZuAbschlaege; -use App\Models\ProjektRaeumealle; +use App\Models\ProjektObjekte; +use App\Models\ProjektObjekteImDetail; use Filament\Actions\Action; use Filament\Actions\ActionGroup; use Filament\Actions\DeleteAction; @@ -24,7 +24,7 @@ class EditProjekte extends EditRecord { protected static string $resource = ProjekteResource::class; - #[On('refreshProjektAllgemeinflaechen'), On('refreshProjektRaeumealle'), On('refreshMethods'), On('refreshOrientierung')] + #[On('refreshProjektAllgemeinflaechen'), On('refreshProjektObjekteImDetail'), On('refreshMethods'), On('refreshOrientierung')] public function refresh(): void {} protected function getHeaderActions(): array @@ -34,7 +34,7 @@ class EditProjekte extends EditRecord * IMPORT */ ActionGroup::make([ - ImportAction::make('allgemeinflaechen') + ImportAction::make('importallgemeinflaechen') ->hidden(fn ($record): bool => $record->bezahlt_am ? false : true) ->importer(ProjektAllgemeinflaechenImporter::class) ->modalHeading('Allgemeinflächen Import') @@ -64,9 +64,9 @@ class EditProjekte extends EditRecord ->fileRules([ File::types(['csv', 'txt'])->max(1024), ]), - ImportAction::make() + ImportAction::make('import_objekte') ->hidden(fn ($record): bool => $record->bezahlt_am ? false : true) - ->importer(ProjektRaeumealleImporter::class) + ->importer(ProjektObjekteImDetailImporter::class) ->modalHeading('Objekte im Detail Import') ->modalContent(view('filament.pages.actions.import-objektemitraeumen')) ->modalContentFooter(view('filament.pages.actions.footer-objektemitraeumen')) @@ -78,8 +78,8 @@ class EditProjekte extends EditRecord ->color('danger') ->requiresConfirmation() ->action(function ($record) { - ProjektRaeumealle::where('projekte_id', $record->id)->delete(); - ProjektOrientierungZuAbschlaege::where('projekte_id', $record->id)->delete(); + ProjektObjekteImDetail::where('projekte_id', $record->id)->delete(); + ProjektObjekte::where('projekte_id', $record->id)->delete(); $this->record->refresh(); @@ -216,7 +216,8 @@ class EditProjekte extends EditRecord ->icon('phosphor-download') ->color('info') ->button(), - DeleteAction::make()->icon('heroicon-o-trash'), + DeleteAction::make()->icon('heroicon-o-trash') + ->modalDescription('Möchten Sie dieses Projekt wirklich löschen? Die Daten werden unwiderbringlich gelöscht, dieser Vorgang kann nicht rückgängig gemacht werden.'), ]; } diff --git a/app/Filament/Resources/Projektes/ProjekteResource.php b/app/Filament/Resources/Projektes/ProjekteResource.php index 98144db..d8f82a1 100644 --- a/app/Filament/Resources/Projektes/ProjekteResource.php +++ b/app/Filament/Resources/Projektes/ProjekteResource.php @@ -7,9 +7,9 @@ use App\Filament\Resources\Projektes\Pages\ListProjektes; use App\Filament\Resources\Projektes\RelationManagers\ProjektAllgemeinflaechensRelationManager; use App\Filament\Resources\Projektes\RelationManagers\ProjektInhaltsverzeichnisRelationManager; use App\Filament\Resources\Projektes\RelationManagers\ProjektMethodesRelationManager; -use App\Filament\Resources\Projektes\RelationManagers\ProjektOrientierungZuAbschlaegesRelationManager; +use App\Filament\Resources\Projektes\RelationManagers\ProjektObjekteImDetailRelationManager; +use App\Filament\Resources\Projektes\RelationManagers\ProjektObjekteRelationManager; use App\Filament\Resources\Projektes\RelationManagers\ProjektPlatzhalterRelationManager; -use App\Filament\Resources\Projektes\RelationManagers\ProjektRaeumeallesRelationManager; use App\Filament\Resources\Projektes\Schemas\ProjekteForm; use App\Filament\Resources\Projektes\Tables\ProjektesTable; use App\Models\Projekte; @@ -48,8 +48,8 @@ class ProjekteResource extends Resource { return [ ProjektAllgemeinflaechensRelationManager::class, - ProjektOrientierungZuAbschlaegesRelationManager::class, - ProjektRaeumeallesRelationManager::class, + ProjektObjekteRelationManager::class, + ProjektObjekteImDetailRelationManager::class, ProjektMethodesRelationManager::class, ProjektInhaltsverzeichnisRelationManager::class, ProjektPlatzhalterRelationManager::class, diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektAllgemeinflaechensRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektAllgemeinflaechensRelationManager.php index 89ad8c3..be09d55 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektAllgemeinflaechensRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektAllgemeinflaechensRelationManager.php @@ -54,12 +54,14 @@ class ProjektAllgemeinflaechensRelationManager extends RelationManager public function table(Table $table): Table { return $table + ->emptyStateDescription('Schalten Sie das Projekt frei und importieren Sie die Daten der Allgemeinflächen.') ->striped() ->recordTitleAttribute('geschoss') ->columns([ TextColumn::make('geschoss')->searchable(), TextColumn::make('raumart')->searchable(), TextInputColumn::make('flaeche') + ->extraInputAttributes(['onClick' => 'this.select()']) ->summarize(Sum::make()->label('Gesammt')->numeric( decimalPlaces: 2, )->suffix(new HtmlString(' m²'))) diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektInhaltsverzeichnisRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektInhaltsverzeichnisRelationManager.php index 82ef9d4..5906d75 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektInhaltsverzeichnisRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektInhaltsverzeichnisRelationManager.php @@ -207,6 +207,8 @@ class ProjektInhaltsverzeichnisRelationManager extends RelationManager public function table(Table $table): Table { return $table + ->emptyStateHeading('Kein Inhaltsverzeichnis') + ->emptyStateDescription('Generiere ein Inhaltsverzeichnis um zu beginnen.') ->recordTitleAttribute('text') // ->recordClasses(fn ($record) => $record->part == 'gutachten' ? 'border-l border-primary-500' : 'border-l border-success-500') ->columns([ diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektMethodesRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektMethodesRelationManager.php index 746d7b4..d411a36 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektMethodesRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektMethodesRelationManager.php @@ -52,6 +52,7 @@ class ProjektMethodesRelationManager extends RelationManager TextColumn::make('raumart') ->searchable(), TextInputColumn::make('faktor') + ->extraInputAttributes(['onClick' => 'this.select()']) ->suffixIcon('phosphor-function') ->width('1rem') ->rules(['required', 'faktor' => 'decimal:0,2']) diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektRaeumeallesRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteImDetailRelationManager.php similarity index 78% rename from app/Filament/Resources/Projektes/RelationManagers/ProjektRaeumeallesRelationManager.php rename to app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteImDetailRelationManager.php index 7946b58..324572b 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektRaeumeallesRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteImDetailRelationManager.php @@ -2,13 +2,14 @@ namespace App\Filament\Resources\Projektes\RelationManagers; -use App\Models\ProjektRaeumealle; +use App\Models\ProjektObjekteImDetail; use Filament\Actions\BulkAction; use Filament\Actions\BulkActionGroup; use Filament\Actions\CreateAction; use Filament\Actions\DeleteAction; use Filament\Actions\DeleteBulkAction; use Filament\Actions\EditAction; +use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Resources\RelationManagers\RelationManager; use Filament\Schemas\Schema; @@ -18,11 +19,12 @@ use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextInputColumn; use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Table; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Collection; use Illuminate\Support\HtmlString; use Livewire\Component; -class ProjektRaeumeallesRelationManager extends RelationManager +class ProjektObjekteImDetailRelationManager extends RelationManager { protected static string $relationship = 'projekt_raeumealles'; @@ -36,11 +38,13 @@ class ProjektRaeumeallesRelationManager extends RelationManager public function form(Schema $schema): Schema { + return $schema ->components([ - TextInput::make('top_nummer') + Select::make('projekt_objekte_id') + ->relationship('top_nummer', 'top_nummer', fn (Builder $query) => $query->where('projekte_id', $this->getOwnerRecord()->id)) ->required() - ->maxLength(255), + ->searchable(), TextInput::make('geschoss') ->required() ->maxLength(255), @@ -62,7 +66,7 @@ class ProjektRaeumeallesRelationManager extends RelationManager ->suffixIcon('phosphor-function') ->rules(['required', 'faktor' => 'decimal:0,2']) ->afterStateUpdated(function (Component $livewire) { - $livewire->dispatch('refreshProjektRaeumealle'); + $livewire->dispatch('refreshProjektObjekteImDetail'); })->validationMessages([ 'required' => 'Die Eingabe eines Faktors ist erforderlich.', 'decimal' => 'Für den Faktors sind zwei Dezimalstellen erforderlich.', @@ -73,27 +77,30 @@ class ProjektRaeumeallesRelationManager extends RelationManager public function table(Table $table): Table { return $table + ->emptyStateDescription('Schalten Sie das Projekt frei und importieren Sie die Daten der Objekte.') ->striped() ->recordTitleAttribute('top_nummer') ->columns([ - TextColumn::make('top_nummer') + TextColumn::make('top_nummer.top_nummer') ->extraAttributes(['pointer-events' => 'none']) ->searchable() ->label('Top'), TextColumn::make('geschoss')->searchable(), TextColumn::make('raumart')->searchable(), TextInputColumn::make('faktor') + ->extraInputAttributes(['onClick' => 'this.select()']) ->suffixIcon('phosphor-function') ->width('1rem') ->rules(['required', 'faktor' => 'decimal:0,2']) ->searchable() ->afterStateUpdated(function (Component $livewire) { - $livewire->dispatch('refreshProjektRaeumealle'); + $livewire->dispatch('refreshProjektObjekteImDetail'); })->validationMessages([ 'required' => 'Die Eingabe eines Faktors ist erforderlich.', 'decimal' => 'Für den Faktors sind zwei Dezimalstellen erforderlich.', ]), TextInputColumn::make('flaeche') + ->extraInputAttributes(['onClick' => 'this.select()']) ->summarize(Sum::make()->label('Gesammt')->numeric( decimalPlaces: 2, )->suffix(new HtmlString(' m²'))) @@ -104,7 +111,7 @@ class ProjektRaeumeallesRelationManager extends RelationManager ->label('Fläche') ->searchable() ->afterStateUpdated(function (Component $livewire) { - $livewire->dispatch('refreshProjektRaeumealle'); + $livewire->dispatch('refreshProjektObjekteImDetail'); })->validationMessages([ 'required' => 'Die Eingabe einer Fläche ist erforderlich.', 'decimal' => 'Für die Fläche sind zwei Dezimalstellen erforderlich.', @@ -117,22 +124,19 @@ class ProjektRaeumeallesRelationManager extends RelationManager ->filters([ SelectFilter::make('top_nummer') ->label('Top Nummer') - ->searchable() - ->options(function (): array { - return ProjektRaeumealle::where('projekte_id', $this->getOwnerRecord()->id)->groupBy('top_nummer')->orderBy('top_nummer')->pluck('top_nummer', 'top_nummer')->toArray(); - }), + ->relationship('top_nummer', 'top_nummer', fn (Builder $query) => $query->where('projekte_id', $this->getOwnerRecord()->id)) + ->searchable(), SelectFilter::make('geschoss') - ->searchable() + ->preload() ->options(function (): array { - return ProjektRaeumealle::where('projekte_id', $this->getOwnerRecord()->id)->groupBy('geschoss')->orderBy('geschoss')->pluck('geschoss', 'geschoss')->toArray(); + return ProjektObjekteImDetail::where('projekte_id', $this->getOwnerRecord()->id)->groupBy('geschoss')->orderBy('geschoss')->pluck('geschoss', 'geschoss')->toArray(); }), SelectFilter::make('raumart') ->searchable() ->options(function (): array { - return ProjektRaeumealle::where('projekte_id', $this->getOwnerRecord()->id)->groupBy('raumart')->orderBy('raumart')->pluck('raumart', 'raumart')->toArray(); + return ProjektObjekteImDetail::where('projekte_id', $this->getOwnerRecord()->id)->groupBy('raumart')->orderBy('raumart')->pluck('raumart', 'raumart')->toArray(); }), ]) - // ], layout: FiltersLayout::AboveContentCollapsible) ->headerActions([ CreateAction::make() ->icon('phosphor-file-plus') @@ -145,10 +149,10 @@ class ProjektRaeumeallesRelationManager extends RelationManager return $data; })->after(function (Component $livewire) { - $livewire->dispatch('refreshProjektRaeumealle'); + $livewire->dispatch('refreshProjektObjekteImDetail'); }), DeleteAction::make()->iconButton()->after(function (Component $livewire) { - $livewire->dispatch('refreshProjektRaeumealle'); + $livewire->dispatch('refreshProjektObjekteImDetail'); }), ]) ->toolbarActions([ @@ -166,7 +170,7 @@ class ProjektRaeumeallesRelationManager extends RelationManager ->action(function (Collection $records, array $data): void { foreach ($records as $record) { $nutzwert = round($data['faktor'] * $record->flaeche); - ProjektRaeumealle::where('id', '=', $record->id) + ProjektObjekteImDetail::where('id', '=', $record->id) ->update( [ 'faktor' => $data['faktor'], @@ -175,10 +179,10 @@ class ProjektRaeumeallesRelationManager extends RelationManager ); } })->after(function (Component $livewire) { - $livewire->dispatch('refreshProjektRaeumealle'); + $livewire->dispatch('refreshProjektObjekteImDetail'); }), DeleteBulkAction::make()->after(function (Component $livewire) { - $livewire->dispatch('refreshProjektRaeumealle'); + $livewire->dispatch('refreshProjektObjekteImDetail'); }), ]), ]); diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektOrientierungZuAbschlaegesRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php similarity index 89% rename from app/Filament/Resources/Projektes/RelationManagers/ProjektOrientierungZuAbschlaegesRelationManager.php rename to app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php index f52a72d..0e8ae42 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektOrientierungZuAbschlaegesRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php @@ -2,17 +2,21 @@ namespace App\Filament\Resources\Projektes\RelationManagers; -use App\Actions\Create\CreateProjektOrientierungZuAbschlaege; +use App\Actions\Create\CreateProjektObjekte; use App\Models\Merkmale; use App\Models\Orientierung; -use App\Models\ProjektOrientierungZuAbschlaege; +use App\Models\ProjektObjekte; use Filament\Actions\Action; use Filament\Actions\BulkAction; use Filament\Actions\BulkActionGroup; +use Filament\Actions\CreateAction; +use Filament\Actions\DeleteAction; +use Filament\Actions\EditAction; use Filament\Forms\Components\Radio; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Resources\RelationManagers\RelationManager; +use Filament\Schemas\Schema; use Filament\Support\Enums\FontWeight; use Filament\Support\Enums\Width; use Filament\Tables\Columns\CheckboxColumn; @@ -25,7 +29,7 @@ use Filament\Tables\Table; use Illuminate\Database\Eloquent\Collection; use Livewire\Component; -class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager +class ProjektObjekteRelationManager extends RelationManager { protected static string $relationship = 'projekt_orientierung_zu_abschlaeges'; @@ -37,6 +41,16 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager protected static ?string $pluralModelLabel = 'Objekte'; + public function form(Schema $schema): Schema + { + return $schema + ->components([ + TextInput::make('top_nummer') + ->required() + ->maxLength(255), + ]); + } + public function table(Table $table): Table { @@ -44,6 +58,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager return $table // ->striped() + ->emptyStateDescription('Schalten Sie das Projekt frei und importieren Sie die Daten der Objekte.') ->recordTitleAttribute('top_nummer') ->description('Orientierungen, Zu- und Abschläge') ->columns([ @@ -59,9 +74,6 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager 'style' => 'position: sticky; left: 0; z-index: 1;', 'class' => 'bg-gray-50 dark:bg-gray-900', ]), - TextInputColumn::make('geschoss') - ->width('1rem') - ->toggleable(), CheckboxColumn::make('nicht_in_orientierung') ->label('NiO') ->toggleable() @@ -69,6 +81,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager $livewire->dispatch('refreshOrientierung'); }), TextInputColumn::make('type') + ->extraInputAttributes(['onClick' => 'this.select()']) ->toggleable() ->disabled(fn ($record): bool => $record->nicht_in_orientierung) ->width('2rem') @@ -217,7 +230,23 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager TernaryFilter::make('nicht_in_orientierung') ->label('Objekte "Nicht in Orientierung" anzeigen'), ]) + ->recordActions([ + EditAction::make()->iconButton() + ->mutateDataUsing(function (array $data): array { + $data['projekte_id'] = $this->ownerRecord->id; + + return $data; + })->after(function (Component $livewire) { + $livewire->dispatch('refreshProjektObjekteImDetail'); + }), + DeleteAction::make()->iconButton()->after(function (Component $livewire) { + $livewire->dispatch('refreshProjektObjekteImDetail'); + }), + ]) ->headerActions([ + CreateAction::make() + ->icon('phosphor-file-plus') + ->createAnother(false), Action::make('merkmale') ->icon('phosphor-pen') ->modalCancelAction(fn (Action $action) => $action->label('Schließen')) @@ -229,18 +258,18 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->after(function (Component $livewire) { $livewire->dispatch('refreshOrientierung'); }), - Action::make('erstellen') - ->action(fn (CreateProjektOrientierungZuAbschlaege $createProjektOrientierungZuAbschlaege) => $createProjektOrientierungZuAbschlaege->create($this->ownerRecord)) - ->requiresConfirmation() - ->modalHeading('Objekte erstellen') - ->modalDescription('Alle bestehenden Daten in dieser Tabelle werden vorher gelöscht.') - ->modalSubmitActionLabel('Generieren') - ->label('Generieren') - ->tooltip('Daten werden aus "Räume Alle" gefiltert.') - ->icon('heroicon-o-cog-8-tooth') - ->after(function (Component $livewire) { - $livewire->dispatch('refreshOrientierung'); - }), + // Action::make('erstellen') + // ->action(fn (CreateProjektObjekte $createProjektObjekte) => $createProjektObjekte->create($this->ownerRecord)) + // ->requiresConfirmation() + // ->modalHeading('Objekte erstellen') + // ->modalDescription('Alle bestehenden Daten in dieser Tabelle werden vorher gelöscht.') + // ->modalSubmitActionLabel('Generieren') + // ->label('Generieren') + // ->tooltip('Daten werden aus "Räume Alle" gefiltert.') + // ->icon('heroicon-o-cog-8-tooth') + // ->after(function (Component $livewire) { + // $livewire->dispatch('refreshOrientierung'); + // }), ]) ->toolbarActions([ BulkActionGroup::make([ @@ -254,7 +283,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->icon('phosphor-align-center-horizontal-simple') ->action(function (Collection $records, array $data): void { foreach ($records as $record) { - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->where('nicht_in_orientierung', '=', false) ->update( ['type' => $data['type']] @@ -278,7 +307,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->icon('phosphor-compass') ->action(function (Collection $records, array $data): void { foreach ($records as $record) { - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->update( ['orientierung_id' => $data['methode_id']] ); @@ -302,7 +331,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->icon('phosphor-check-square') ->action(function (Collection $records, array $data): void { foreach ($records as $record) { - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->update( ['nicht_in_orientierung' => 1] ); @@ -323,7 +352,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->action(function (Collection $records, array $data): void { foreach ($records as $record) { $nutzwert = $this->sum_nutzwerte('a', $data['a'], $record); - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->update( [ 'a' => $data['a'], @@ -346,7 +375,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->action(function (Collection $records, array $data): void { foreach ($records as $record) { $nutzwert = $this->sum_nutzwerte('b', $data['b'], $record); - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->update( [ 'b' => $data['b'], @@ -369,7 +398,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->action(function (Collection $records, array $data): void { foreach ($records as $record) { $nutzwert = $this->sum_nutzwerte('c', $data['c'], $record); - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->update( [ 'c' => $data['c'], @@ -392,7 +421,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->action(function (Collection $records, array $data): void { foreach ($records as $record) { $nutzwert = $this->sum_nutzwerte('d', $data['d'], $record); - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->update( [ 'd' => $data['d'], @@ -415,7 +444,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->action(function (Collection $records, array $data): void { foreach ($records as $record) { $nutzwert = $this->sum_nutzwerte('e', $data['e'], $record); - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->update( [ 'e' => $data['e'], @@ -438,7 +467,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->action(function (Collection $records, array $data): void { foreach ($records as $record) { $nutzwert = $this->sum_nutzwerte('f', $data['f'], $record); - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->update( [ 'f' => $data['f'], @@ -461,7 +490,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->action(function (Collection $records, array $data): void { foreach ($records as $record) { $nutzwert = $this->sum_nutzwerte('g', $data['g'], $record); - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->update( [ 'g' => $data['g'], @@ -484,7 +513,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->action(function (Collection $records, array $data): void { foreach ($records as $record) { $nutzwert = $this->sum_nutzwerte('h', $data['h'], $record); - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->update( [ 'h' => $data['h'], @@ -507,7 +536,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->action(function (Collection $records, array $data): void { foreach ($records as $record) { $nutzwert = $this->sum_nutzwerte('i', $data['i'], $record); - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->update( [ 'i' => $data['i'], @@ -530,7 +559,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager ->action(function (Collection $records, array $data): void { foreach ($records as $record) { $nutzwert = $this->sum_nutzwerte('j', $data['j'], $record); - ProjektOrientierungZuAbschlaege::where('id', '=', $record->id) + ProjektObjekte::where('id', '=', $record->id) ->update( [ 'j' => $data['j'], diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektPlatzhalterRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektPlatzhalterRelationManager.php index a1e2bb7..e01202b 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektPlatzhalterRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektPlatzhalterRelationManager.php @@ -41,10 +41,12 @@ class ProjektPlatzhalterRelationManager extends RelationManager { return $table ->recordTitleAttribute('name') + ->emptyStateDescription('Generiere die Platzhalter aus dem Inhaltsverzeichnis.') ->columns([ TextColumn::make('platzhalter') ->searchable(), TextInputColumn::make('platzhaltertext') + ->extraInputAttributes(['onClick' => 'this.select()']) ->label('Platzhalter Text') ->searchable(), ]) diff --git a/app/Filament/Resources/Projektes/Widgets/WidgetMerkmale.php b/app/Filament/Resources/Projektes/Widgets/WidgetMerkmale.php index 5a87e97..a2db541 100644 --- a/app/Filament/Resources/Projektes/Widgets/WidgetMerkmale.php +++ b/app/Filament/Resources/Projektes/Widgets/WidgetMerkmale.php @@ -3,7 +3,7 @@ namespace App\Filament\Resources\Projektes\Widgets; use App\Models\Merkmale; -use App\Models\ProjektOrientierungZuAbschlaege; +use App\Models\ProjektObjekte; use Filament\Actions\Action; use Filament\Actions\DeleteAction; use Filament\Actions\EditAction; @@ -49,14 +49,14 @@ class WidgetMerkmale extends TableWidget ->color('gray') ->iconButton() ->after(function ($record) { - ProjektOrientierungZuAbschlaege::where('projekte_id', '=', $record->projekte_id) + ProjektObjekte::where('projekte_id', '=', $record->projekte_id) ->update( [$record->code => 0] ); - $res = ProjektOrientierungZuAbschlaege::where('projekte_id', '=', $record->projekte_id)->get(); + $res = ProjektObjekte::where('projekte_id', '=', $record->projekte_id)->get(); foreach ($res as $value) { $nutzwert = round($value->a + $value->b + $value->c + $value->d + $value->e + $value->f + $value->g + $value->h + $value->i + $value->j); - ProjektOrientierungZuAbschlaege::where('id', '=', $value->id) + ProjektObjekte::where('id', '=', $value->id) ->update( ['nutzwert' => $nutzwert] ); diff --git a/app/Models/ProjektOrientierungZuAbschlaege.php b/app/Models/ProjektObjekte.php similarity index 77% rename from app/Models/ProjektOrientierungZuAbschlaege.php rename to app/Models/ProjektObjekte.php index 143efbf..a97e06a 100644 --- a/app/Models/ProjektOrientierungZuAbschlaege.php +++ b/app/Models/ProjektObjekte.php @@ -3,8 +3,10 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\HasOne; -class ProjektOrientierungZuAbschlaege extends Model +class ProjektObjekte extends Model { protected $fillable = [ 'projekte_id', @@ -52,8 +54,13 @@ class ProjektOrientierungZuAbschlaege extends Model ]; } - public function orientierung() + public function orientierung(): HasOne { return $this->hasOne(Orientierung::class, 'id', 'orientierung_id'); } + + public function ProjektObjekteImDetail(): HasMany + { + return $this->hasMany(ProjektObjekteImDetail::class, 'projekt_objekte_id', 'id'); + } } diff --git a/app/Models/ProjektRaeumealle.php b/app/Models/ProjektObjekteImDetail.php similarity index 73% rename from app/Models/ProjektRaeumealle.php rename to app/Models/ProjektObjekteImDetail.php index 94f3468..f117bf9 100644 --- a/app/Models/ProjektRaeumealle.php +++ b/app/Models/ProjektObjekteImDetail.php @@ -4,11 +4,11 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; -class ProjektRaeumealle extends Model +class ProjektObjekteImDetail extends Model { protected $fillable = [ 'projekte_id', - 'projekt_orientierung_zu_abschlaege_id', + 'projekt_objekte_id', 'methode_id', 'top_nummer', 'geschoss', @@ -32,8 +32,8 @@ class ProjektRaeumealle extends Model }); } - public function orientierung_zu_abschlaege() + public function top_nummer() { - return $this->belongsTo(ProjektOrientierungZuAbschlaege::class, 'projekt_orientierung_zu_abschlaege_id', 'id'); + return $this->belongsTo(ProjektObjekte::class, 'projekt_objekte_id', 'id'); } } diff --git a/app/Models/Projekte.php b/app/Models/Projekte.php index 73595f8..1b868fe 100644 --- a/app/Models/Projekte.php +++ b/app/Models/Projekte.php @@ -46,7 +46,7 @@ class Projekte extends Model public function projekt_orientierung_zu_abschlaeges() { - return $this->hasMany(ProjektOrientierungZuAbschlaege::class); + return $this->hasMany(ProjektObjekte::class); } public function auftraggeber() @@ -71,7 +71,7 @@ class Projekte extends Model public function projekt_raeumealles() { - return $this->hasMany(ProjektRaeumealle::class); + return $this->hasMany(ProjektObjekteImDetail::class); } public function projekt_methodes() diff --git a/bootstrap/cache/blade-icons.php b/bootstrap/cache/blade-icons.php index 24cfd29..be5c76f 100755 --- a/bootstrap/cache/blade-icons.php +++ b/bootstrap/cache/blade-icons.php @@ -1,7 +1,7 @@ array ( - '/Users/hermanntelser/Sites/nutzwerte_fi4/resources/svg' => + '/Users/salam/Sites/nutzwerte_fi4/resources/svg' => array ( 0 => 'excel', 1 => 'logo', @@ -11,7 +11,7 @@ ), 'heroicons' => array ( - '/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/blade-ui-kit/blade-heroicons/src/../resources/svg' => + '/Users/salam/Sites/nutzwerte_fi4/vendor/blade-ui-kit/blade-heroicons/src/../resources/svg' => array ( 0 => 'c-academic-cap', 1 => 'c-adjustments-horizontal', @@ -1305,7 +1305,7 @@ ), 'phosphor-icons' => array ( - '/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/codeat3/blade-phosphor-icons/src/../resources/svg' => + '/Users/salam/Sites/nutzwerte_fi4/vendor/codeat3/blade-phosphor-icons/src/../resources/svg' => array ( 0 => 'acorn-bold', 1 => 'acorn-duotone', @@ -10383,7 +10383,7 @@ ), 'filament' => array ( - '/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/filament/support/src/../resources/svg' => + '/Users/salam/Sites/nutzwerte_fi4/vendor/filament/support/src/../resources/svg' => array ( 0 => 'o-align-center', 1 => 'o-align-end', @@ -10420,7 +10420,7 @@ ), 'lucide' => array ( - '/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/mallardduck/blade-lucide-icons/src/../resources/svg' => + '/Users/salam/Sites/nutzwerte_fi4/vendor/mallardduck/blade-lucide-icons/src/../resources/svg' => array ( 0 => 'a-arrow-down', 1 => 'a-arrow-up', diff --git a/bootstrap/cache/config.php b/bootstrap/cache/config.php index 9a018f7..95900ff 100644 --- a/bootstrap/cache/config.php +++ b/bootstrap/cache/config.php @@ -81,9 +81,9 @@ array ( 'paths' => array ( - 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/resources/views', + 0 => '/Users/salam/Sites/nutzwerte_fi4/resources/views', ), - 'compiled' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/framework/views', + 'compiled' => '/Users/salam/Sites/nutzwerte_fi4/storage/framework/views', ), 'cors' => array ( @@ -124,9 +124,9 @@ 'timezone' => 'UTC', 'locale' => 'de', 'fallback_locale' => 'en', - 'faker_locale' => 'at_AT', + 'faker_locale' => 'de_AT', 'cipher' => 'AES-256-CBC', - 'key' => 'base64:yRi9h21i7xAkGpeF7JoArovQJU1w6xwczQ6ijpYpJrs=', + 'key' => 'base64:zrVnUcBmUGjEV/EoAKnZCm/1FWplKu79kYBvevE2/ek=', 'previous_keys' => array ( ), @@ -301,8 +301,8 @@ 'file' => array ( 'driver' => 'file', - 'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/framework/cache/data', - 'lock_path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/framework/cache/data', + 'path' => '/Users/salam/Sites/nutzwerte_fi4/storage/framework/cache/data', + 'lock_path' => '/Users/salam/Sites/nutzwerte_fi4/storage/framework/cache/data', ), 'memcached' => array ( @@ -522,7 +522,7 @@ ), 'policies' => array ( - 'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Policies', + 'path' => '/Users/salam/Sites/nutzwerte_fi4/app/Policies', 'merge' => true, 'generate' => true, 'methods' => @@ -610,7 +610,7 @@ 'local' => array ( 'driver' => 'local', - 'root' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/private', + 'root' => '/Users/salam/Sites/nutzwerte_fi4/storage/app/private', 'serve' => true, 'throw' => false, 'report' => false, @@ -618,7 +618,7 @@ 'public' => array ( 'driver' => 'local', - 'root' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/public', + 'root' => '/Users/salam/Sites/nutzwerte_fi4/storage/app/public', 'url' => 'http://nutzwerte_fi4.test/storage', 'visibility' => 'public', 'throw' => false, @@ -640,7 +640,7 @@ 'promotion' => array ( 'driver' => 'local', - 'root' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/public/promotion', + 'root' => '/Users/salam/Sites/nutzwerte_fi4/storage/app/public/promotion', 'url' => 'http://nutzwerte_fi4.test/storage/promotion', 'visibility' => 'public', 'throw' => false, @@ -648,7 +648,7 @@ ), 'links' => array ( - '/Users/hermanntelser/Sites/nutzwerte_fi4/public/storage' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/public', + '/Users/salam/Sites/nutzwerte_fi4/public/storage' => '/Users/salam/Sites/nutzwerte_fi4/storage/app/public', ), ), 'logging' => @@ -673,14 +673,14 @@ 'single' => array ( 'driver' => 'single', - 'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/logs/laravel.log', + 'path' => '/Users/salam/Sites/nutzwerte_fi4/storage/logs/laravel.log', 'level' => 'debug', 'replace_placeholders' => true, ), 'daily' => array ( 'driver' => 'daily', - 'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/logs/laravel.log', + 'path' => '/Users/salam/Sites/nutzwerte_fi4/storage/logs/laravel.log', 'level' => 'debug', 'days' => 14, 'replace_placeholders' => true, @@ -745,7 +745,7 @@ ), 'emergency' => array ( - 'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/logs/laravel.log', + 'path' => '/Users/salam/Sites/nutzwerte_fi4/storage/logs/laravel.log', ), ), ), @@ -844,7 +844,7 @@ 'theme' => 'default', 'paths' => array ( - 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/resources/views/vendor/mail', + 0 => '/Users/salam/Sites/nutzwerte_fi4/resources/views/vendor/mail', ), ), ), @@ -1033,7 +1033,7 @@ 'lifetime' => 120, 'expire_on_close' => false, 'encrypt' => false, - 'files' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/framework/sessions', + 'files' => '/Users/salam/Sites/nutzwerte_fi4/storage/framework/sessions', 'connection' => NULL, 'table' => 'sessions', 'store' => NULL, @@ -1081,7 +1081,7 @@ ), 'default_filesystem_disk' => 'local', 'assets_path' => NULL, - 'cache_path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/bootstrap/cache/filament', + 'cache_path' => '/Users/salam/Sites/nutzwerte_fi4/bootstrap/cache/filament', 'livewire_loading_delay' => 'default', 'file_generation' => array ( @@ -1094,7 +1094,7 @@ 'livewire' => array ( 'class_namespace' => 'App\\Livewire', - 'view_path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/resources/views/livewire', + 'view_path' => '/Users/salam/Sites/nutzwerte_fi4/resources/views/livewire', 'layout' => 'components.layouts.app', 'lazy_placeholder' => NULL, 'temporary_file_upload' => diff --git a/bootstrap/cache/filament/panels/admin.php b/bootstrap/cache/filament/panels/admin.php index d2b670c..5de3ef0 100644 --- a/bootstrap/cache/filament/panels/admin.php +++ b/bootstrap/cache/filament/panels/admin.php @@ -34,9 +34,9 @@ 'app.filament.resources.projektes.relation-managers.projekt-allgemeinflaechens-relation-manager' => 'App\\Filament\\Resources\\Projektes\\RelationManagers\\ProjektAllgemeinflaechensRelationManager', 'app.filament.resources.projektes.relation-managers.projekt-inhaltsverzeichnis-relation-manager' => 'App\\Filament\\Resources\\Projektes\\RelationManagers\\ProjektInhaltsverzeichnisRelationManager', 'app.filament.resources.projektes.relation-managers.projekt-methodes-relation-manager' => 'App\\Filament\\Resources\\Projektes\\RelationManagers\\ProjektMethodesRelationManager', - 'app.filament.resources.projektes.relation-managers.projekt-orientierung-zu-abschlaeges-relation-manager' => 'App\\Filament\\Resources\\Projektes\\RelationManagers\\ProjektOrientierungZuAbschlaegesRelationManager', + 'app.filament.resources.projektes.relation-managers.projekt-objekte-im-detail-relation-manager' => 'App\\Filament\\Resources\\Projektes\\RelationManagers\\ProjektObjekteImDetailRelationManager', + 'app.filament.resources.projektes.relation-managers.projekt-objekte-relation-manager' => 'App\\Filament\\Resources\\Projektes\\RelationManagers\\ProjektObjekteRelationManager', 'app.filament.resources.projektes.relation-managers.projekt-platzhalter-relation-manager' => 'App\\Filament\\Resources\\Projektes\\RelationManagers\\ProjektPlatzhalterRelationManager', - 'app.filament.resources.projektes.relation-managers.projekt-raeumealles-relation-manager' => 'App\\Filament\\Resources\\Projektes\\RelationManagers\\ProjektRaeumeallesRelationManager', 'app.filament.resources.projektes.widgets.widget-merkmale' => 'App\\Filament\\Resources\\Projektes\\Widgets\\WidgetMerkmale', 'app.filament.resources.projektes.widgets.widget-methoden' => 'App\\Filament\\Resources\\Projektes\\Widgets\\WidgetMethoden', 'app.filament.resources.textblocks.pages.create-textblock' => 'App\\Filament\\Resources\\Textblocks\\Pages\\CreateTextblock', @@ -70,9 +70,9 @@ ), 'clusters' => array ( - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Projekte/ProjekteCluster.php' => 'App\\Filament\\Clusters\\Projekte\\ProjekteCluster', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Projekte/ProjekteCluster.php' => 'App\\Filament\\Clusters\\Projekte\\ProjekteCluster', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster', ), 'clusteredComponents' => array ( @@ -97,7 +97,7 @@ ), 'clusterDirectories' => array ( - 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters', + 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters', ), 'clusterNamespaces' => array ( @@ -105,14 +105,14 @@ ), 'pages' => array ( - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Projekte/ProjekteCluster.php' => 'App\\Filament\\Clusters\\Projekte\\ProjekteCluster', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Projekte/ProjekteCluster.php' => 'App\\Filament\\Clusters\\Projekte\\ProjekteCluster', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster', 0 => 'Filament\\Pages\\Dashboard', ), 'pageDirectories' => array ( - 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Pages', + 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Pages', ), 'pageNamespaces' => array ( @@ -120,23 +120,23 @@ ), 'resources' => array ( - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Auftraggebers/AuftraggeberResource.php' => 'App\\Filament\\Resources\\Auftraggebers\\AuftraggeberResource', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Gutachters/GutachterResource.php' => 'App\\Filament\\Resources\\Gutachters\\GutachterResource', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Inhaltsverzeichnis/InhaltsverzeichnisResource.php' => 'App\\Filament\\Resources\\Inhaltsverzeichnis\\InhaltsverzeichnisResource', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/KontoTextblocks/KontoTextblockResource.php' => 'App\\Filament\\Resources\\KontoTextblocks\\KontoTextblockResource', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Kontos/KontoResource.php' => 'App\\Filament\\Resources\\Kontos\\KontoResource', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Methodes/MethodeResource.php' => 'App\\Filament\\Resources\\Methodes\\MethodeResource', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Orientierungs/OrientierungResource.php' => 'App\\Filament\\Resources\\Orientierungs\\OrientierungResource', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Permissions/PermissionResource.php' => 'App\\Filament\\Resources\\Permissions\\PermissionResource', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Plans/PlanResource.php' => 'App\\Filament\\Resources\\Plans\\PlanResource', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Projektes/ProjekteResource.php' => 'App\\Filament\\Resources\\Projektes\\ProjekteResource', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Textblocks/TextblockResource.php' => 'App\\Filament\\Resources\\Textblocks\\TextblockResource', - '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Users/UserResource.php' => 'App\\Filament\\Resources\\Users\\UserResource', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Auftraggebers/AuftraggeberResource.php' => 'App\\Filament\\Resources\\Auftraggebers\\AuftraggeberResource', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Gutachters/GutachterResource.php' => 'App\\Filament\\Resources\\Gutachters\\GutachterResource', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Inhaltsverzeichnis/InhaltsverzeichnisResource.php' => 'App\\Filament\\Resources\\Inhaltsverzeichnis\\InhaltsverzeichnisResource', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/KontoTextblocks/KontoTextblockResource.php' => 'App\\Filament\\Resources\\KontoTextblocks\\KontoTextblockResource', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Kontos/KontoResource.php' => 'App\\Filament\\Resources\\Kontos\\KontoResource', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Methodes/MethodeResource.php' => 'App\\Filament\\Resources\\Methodes\\MethodeResource', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Orientierungs/OrientierungResource.php' => 'App\\Filament\\Resources\\Orientierungs\\OrientierungResource', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Permissions/PermissionResource.php' => 'App\\Filament\\Resources\\Permissions\\PermissionResource', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Plans/PlanResource.php' => 'App\\Filament\\Resources\\Plans\\PlanResource', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Projektes/ProjekteResource.php' => 'App\\Filament\\Resources\\Projektes\\ProjekteResource', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Textblocks/TextblockResource.php' => 'App\\Filament\\Resources\\Textblocks\\TextblockResource', + '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Users/UserResource.php' => 'App\\Filament\\Resources\\Users\\UserResource', 0 => 'BezhanSalleh\\FilamentShield\\Resources\\Roles\\RoleResource', ), 'resourceDirectories' => array ( - 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources', + 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources', ), 'resourceNamespaces' => array ( @@ -149,7 +149,7 @@ ), 'widgetDirectories' => array ( - 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Widgets', + 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Widgets', ), 'widgetNamespaces' => array ( diff --git a/bootstrap/cache/routes-v7.php b/bootstrap/cache/routes-v7.php index d25dbca..0616965 100644 --- a/bootstrap/cache/routes-v7.php +++ b/bootstrap/cache/routes-v7.php @@ -531,7 +531,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::Feas8RlpQLNfkhRA', + '_route' => 'generated::4SIj1nKjOMZa2Dgp', ), 1 => NULL, 2 => @@ -551,7 +551,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::qmUdscx1u8NuSJsH', + '_route' => 'generated::FVBSV1p9Dk0O3Q1T', ), 1 => NULL, 2 => @@ -609,7 +609,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::UmhduMDKaxd1xZ8m', + '_route' => 'generated::nVz7MuifKVdqmvkL', ), 1 => NULL, 2 => @@ -629,7 +629,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::Lbt6IijwSEnP7rwK', + '_route' => 'generated::zSeFCuUksgCJprOh', ), 1 => NULL, 2 => @@ -649,7 +649,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::e1au2bDwPbNUQD8Q', + '_route' => 'generated::BWXgxDSnJHlDg6U4', ), 1 => NULL, 2 => @@ -669,7 +669,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::HpvYDbQuLdTEPABh', + '_route' => 'generated::VCgOmaKwkbcvQjAw', ), 1 => NULL, 2 => @@ -689,7 +689,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::FA40qXcJYirVk60o', + '_route' => 'generated::aSkUTnt3y0YYhani', ), 1 => NULL, 2 => @@ -2740,7 +2740,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::Feas8RlpQLNfkhRA' => + 'generated::4SIj1nKjOMZa2Dgp' => array ( 'methods' => array ( @@ -2752,7 +2752,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', - 'as' => 'generated::Feas8RlpQLNfkhRA', + 'as' => 'generated::4SIj1nKjOMZa2Dgp', ), 'fallback' => false, 'defaults' => @@ -2768,7 +2768,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::qmUdscx1u8NuSJsH' => + 'generated::FVBSV1p9Dk0O3Q1T' => array ( 'methods' => array ( @@ -2780,7 +2780,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', - 'as' => 'generated::qmUdscx1u8NuSJsH', + 'as' => 'generated::FVBSV1p9Dk0O3Q1T', ), 'fallback' => false, 'defaults' => @@ -2882,7 +2882,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::UmhduMDKaxd1xZ8m' => + 'generated::nVz7MuifKVdqmvkL' => array ( 'methods' => array ( @@ -2892,7 +2892,7 @@ app('router')->setCompiledRoutes( 'uri' => 'up', 'action' => array ( - 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:834:"function () { + 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:826:"function () { $exception = null; try { @@ -2907,11 +2907,11 @@ app('router')->setCompiledRoutes( $exception = $e->getMessage(); } - return response(\\Illuminate\\Support\\Facades\\View::file(\'/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/laravel/framework/src/Illuminate/Foundation/Configuration\'.\'/../resources/health-up.blade.php\', [ + return response(\\Illuminate\\Support\\Facades\\View::file(\'/Users/salam/Sites/nutzwerte_fi4/vendor/laravel/framework/src/Illuminate/Foundation/Configuration\'.\'/../resources/health-up.blade.php\', [ \'exception\' => $exception, ]), status: $exception ? 500 : 200); }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000f3b0000000000000000";}}', - 'as' => 'generated::UmhduMDKaxd1xZ8m', + 'as' => 'generated::nVz7MuifKVdqmvkL', ), 'fallback' => false, 'defaults' => @@ -2927,7 +2927,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::Lbt6IijwSEnP7rwK' => + 'generated::zSeFCuUksgCJprOh' => array ( 'methods' => array ( @@ -2949,7 +2949,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::Lbt6IijwSEnP7rwK', + 'as' => 'generated::zSeFCuUksgCJprOh', ), 'fallback' => false, 'defaults' => @@ -2965,7 +2965,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::e1au2bDwPbNUQD8Q' => + 'generated::BWXgxDSnJHlDg6U4' => array ( 'methods' => array ( @@ -2987,7 +2987,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::e1au2bDwPbNUQD8Q', + 'as' => 'generated::BWXgxDSnJHlDg6U4', ), 'fallback' => false, 'defaults' => @@ -3003,7 +3003,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::HpvYDbQuLdTEPABh' => + 'generated::VCgOmaKwkbcvQjAw' => array ( 'methods' => array ( @@ -3025,7 +3025,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::HpvYDbQuLdTEPABh', + 'as' => 'generated::VCgOmaKwkbcvQjAw', ), 'fallback' => false, 'defaults' => @@ -3041,7 +3041,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::FA40qXcJYirVk60o' => + 'generated::aSkUTnt3y0YYhani' => array ( 'methods' => array ( @@ -3063,7 +3063,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::FA40qXcJYirVk60o', + 'as' => 'generated::aSkUTnt3y0YYhani', ), 'fallback' => false, 'defaults' => @@ -3203,7 +3203,7 @@ app('router')->setCompiledRoutes( 'uri' => 'storage/{path}', 'action' => array ( - 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:3:{s:4:"disk";s:5:"local";s:6:"config";a:5:{s:6:"driver";s:5:"local";s:4:"root";s:60:"/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/private";s:5:"serve";b:1;s:5:"throw";b:0;s:6:"report";b:0;}s:12:"isProduction";b:0;}s:8:"function";s:323:"function (\\Illuminate\\Http\\Request $request, string $path) use ($disk, $config, $isProduction) { + 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:3:{s:4:"disk";s:5:"local";s:6:"config";a:5:{s:6:"driver";s:5:"local";s:4:"root";s:52:"/Users/salam/Sites/nutzwerte_fi4/storage/app/private";s:5:"serve";b:1;s:5:"throw";b:0;s:6:"report";b:0;}s:12:"isProduction";b:0;}s:8:"function";s:323:"function (\\Illuminate\\Http\\Request $request, string $path) use ($disk, $config, $isProduction) { return (new \\Illuminate\\Filesystem\\ServeFile( $disk, $config, diff --git a/composer.lock b/composer.lock index c13c5e2..6352139 100644 --- a/composer.lock +++ b/composer.lock @@ -3256,16 +3256,16 @@ }, { "name": "league/csv", - "version": "9.27.0", + "version": "9.27.1", "source": { "type": "git", "url": "https://github.com/thephpleague/csv.git", - "reference": "cb491b1ba3c42ff2bcd0113814f4256b42bae845" + "reference": "26de738b8fccf785397d05ee2fc07b6cd8749797" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/csv/zipball/cb491b1ba3c42ff2bcd0113814f4256b42bae845", - "reference": "cb491b1ba3c42ff2bcd0113814f4256b42bae845", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/26de738b8fccf785397d05ee2fc07b6cd8749797", + "reference": "26de738b8fccf785397d05ee2fc07b6cd8749797", "shasum": "" }, "require": { @@ -3343,7 +3343,7 @@ "type": "github" } ], - "time": "2025-10-16T08:22:09+00:00" + "time": "2025-10-25T08:35:20+00:00" }, { "name": "league/flysystem", diff --git a/database/migrations/2025_10_06_074618_create_orientierung_zu_abschlaeges_table.php b/database/migrations/2025_10_03_154046_create_projekt_objektes_table.php similarity index 89% rename from database/migrations/2025_10_06_074618_create_orientierung_zu_abschlaeges_table.php rename to database/migrations/2025_10_03_154046_create_projekt_objektes_table.php index a7f6ac1..34bbfe0 100644 --- a/database/migrations/2025_10_06_074618_create_orientierung_zu_abschlaeges_table.php +++ b/database/migrations/2025_10_03_154046_create_projekt_objektes_table.php @@ -11,7 +11,7 @@ return new class extends Migration */ public function up(): void { - Schema::create('projekt_orientierung_zu_abschlaeges', function (Blueprint $table) { + Schema::create('projekt_objektes', function (Blueprint $table) { $table->id(); $table->foreignId('projekte_id')->constrained()->cascadeOnDelete(); $table->integer('orientierung_id')->nullable()->default(0); @@ -41,6 +41,6 @@ return new class extends Migration */ public function down(): void { - Schema::dropIfExists('projekt_orientierung_zu_abschlaeges'); + Schema::dropIfExists('projekt_objektes'); } }; diff --git a/database/migrations/2025_10_03_154047_create_raeumealles_table.php b/database/migrations/2025_10_03_154047_create_projekt_objekte_im_details_table.php similarity index 76% rename from database/migrations/2025_10_03_154047_create_raeumealles_table.php rename to database/migrations/2025_10_03_154047_create_projekt_objekte_im_details_table.php index 45993a7..50c538c 100644 --- a/database/migrations/2025_10_03_154047_create_raeumealles_table.php +++ b/database/migrations/2025_10_03_154047_create_projekt_objekte_im_details_table.php @@ -11,10 +11,10 @@ return new class extends Migration */ public function up(): void { - Schema::create('projekt_raeumealles', function (Blueprint $table) { + Schema::create('projekt_objekte_im_details', function (Blueprint $table) { $table->id(); $table->foreignId('projekte_id')->constrained()->cascadeOnDelete(); - $table->integer('projekt_orientierung_zu_abschlaege_id')->constrained()->cascadeOnDelete(); + $table->foreignId('projekt_objekte_id')->constrained()->cascadeOnDelete(); $table->string('geschoss')->nullable(); $table->string('raumart')->nullable(); $table->double('faktor')->nullable(); @@ -29,6 +29,6 @@ return new class extends Migration */ public function down(): void { - Schema::dropIfExists('projekt_raeumealles'); + Schema::dropIfExists('projekt_objekte_im_details'); } }; diff --git a/database/seeders/ProjektRaeumealleSeeder.php b/database/seeders/ProjektRaeumealleSeeder.php index a429aea..b8aceb8 100644 --- a/database/seeders/ProjektRaeumealleSeeder.php +++ b/database/seeders/ProjektRaeumealleSeeder.php @@ -4,7 +4,7 @@ namespace Database\Seeders; use Illuminate\Database\Seeder; -class ProjektRaeumealleSeeder extends Seeder +class ProjektObjekteImDetailSeeder extends Seeder { /** * Run the database seeds. diff --git a/resources/views/filament/pages/actions/footer-objektemitraeumen.php b/resources/views/filament/pages/actions/footer-objektemitraeumen.blade.php similarity index 100% rename from resources/views/filament/pages/actions/footer-objektemitraeumen.php rename to resources/views/filament/pages/actions/footer-objektemitraeumen.blade.php diff --git a/resources/views/filament/pages/actions/import-objektemitraeumen.blade.php b/resources/views/filament/pages/actions/import-objektemitraeumen.blade.php index 4a14589..4879b5a 100644 --- a/resources/views/filament/pages/actions/import-objektemitraeumen.blade.php +++ b/resources/views/filament/pages/actions/import-objektemitraeumen.blade.php @@ -1,5 +1,7 @@