From 228927274d18e48071dc403ce9a155d836fc88ff Mon Sep 17 00:00:00 2001 From: salam Date: Wed, 15 Apr 2026 15:59:56 +0200 Subject: [PATCH] import new --- app/Actions/Helper/LineEndings.php | 16 --- .../Imports/ImportAllgemeinDirect.php | 47 +++++++ app/Filament/Imports/ImportObjekteDirect.php | 99 ++++++++++++++ .../Projektes/Pages/EditProjekte.php | 124 ------------------ ...ojektAllgemeinflaechensRelationManager.php | 38 +++++- .../ProjektObjekteImDetailRelationManager.php | 30 ++++- .../ProjektObjekteRelationManager.php | 2 +- app/Providers/Filament/AdminPanelProvider.php | 1 + bootstrap/cache/blade-icons.php | 10 +- bootstrap/cache/filament/panels/admin.php | 44 +++---- bootstrap/cache/routes-v7.php | 50 +++---- composer.lock | 18 +-- 12 files changed, 272 insertions(+), 207 deletions(-) delete mode 100644 app/Actions/Helper/LineEndings.php create mode 100644 app/Filament/Imports/ImportAllgemeinDirect.php create mode 100644 app/Filament/Imports/ImportObjekteDirect.php diff --git a/app/Actions/Helper/LineEndings.php b/app/Actions/Helper/LineEndings.php deleted file mode 100644 index 1958383..0000000 --- a/app/Actions/Helper/LineEndings.php +++ /dev/null @@ -1,16 +0,0 @@ - 0) { + + $allgemein = new ProjektAllgemeinflaechen; + $allgemein->projekte_id = $projekte_id; + $allgemein->geschoss = $geschoss; + $allgemein->raumart = $raumart; + $allgemein->flaeche = $flaeche; + $allgemein->save(); + $new++; + } + } + Notification::make() + ->title('Allgemeinflächen wurden erfolgreich importiert') + ->body($new.' wurden Flächen hinzugefügt') + ->success() + ->send(); + + $recipient = auth()->user(); + Notification::make() + ->title('Allgemeinflächen wurden erfolgreich importiert') + ->body($new.' wurden Flächen hinzugefügt') + ->success() + ->sendToDatabase($recipient); + } +} diff --git a/app/Filament/Imports/ImportObjekteDirect.php b/app/Filament/Imports/ImportObjekteDirect.php new file mode 100644 index 0000000..b8d5a8e --- /dev/null +++ b/app/Filament/Imports/ImportObjekteDirect.php @@ -0,0 +1,99 @@ +count(); + $has_detail = ProjektObjekteImDetail::where('projekte_id', $projekte_id)->count(); + $new_objekte = 0; + $new_detail = 0; + $update_objekte = 0; + $update_detail = 0; + + $projekt_objekte_check = 0; + + foreach ($data as $row) { + $row = str_replace(';', '|', $row); + $cells = explode('|', $row); + + $top_nummer = trim($cells[0]); + $geschoss = trim($cells[1]); + $raumart = trim($cells[2]); + $flaeche = (float) str_replace(',', '.', trim($cells[3])); + + if (is_numeric($flaeche) && $flaeche > 0) { + + $projekt_objekte = ProjektObjekte::firstOrCreate([ + 'projekte_id' => $projekte_id, + 'top_nummer' => $top_nummer, + ]); + + if ($projekt_objekte->new) { // some way to check + if ($projekt_objekte_check != $projekt_objekte->id) { + $new_objekte++; + } + } else { + if ($projekt_objekte_check != $projekt_objekte->id) { + $update_objekte++; + } + } + $projekt_objekte_check = $projekt_objekte->id; + + $prokectimdetail = ProjektObjekteImDetail::firstOrCreate( + ['projekte_id' => $projekte_id, 'projekt_objekte_id' => $projekt_objekte->id, 'geschoss' => $geschoss, 'raumart' => $raumart], + ['flaeche' => $flaeche] + ); + + if ($prokectimdetail->new) { // some way to check + $new_detail++; + } else { + $update_detail++; + } + } + } + + Notification::make() + ->title('Objekte im Detail wurden erfolgreich importiert') + ->success() + ->send(); + + $recipient = auth()->user(); + Notification::make() + ->title('Objekte im Detail wurden erfolgreich importiert') + ->body(self::getBody($has_objekte, $has_detail, $new_objekte, $new_detail, $update_objekte, $update_detail)) + ->success() + ->sendToDatabase($recipient); + } + + public static function getBody($has_objekte, $has_detail, $new_objekte, $new_detail, $update_objekte, $update_detail) + { + return new HtmlString('
+
Objekte
+
Bestehende
+
'.$has_objekte.'
+
Geänderte
+
'.$update_objekte.'
+
Neue
+
'.$new_objekte.'
+ +
Objekte im Detail
+
Bestehende
+
'.$has_detail.'
+
Geänderte
+
'.$update_detail.'
+
Neue
+
'.$new_detail.'
+ +
'); + } +} diff --git a/app/Filament/Resources/Projektes/Pages/EditProjekte.php b/app/Filament/Resources/Projektes/Pages/EditProjekte.php index 77f0905..3805aac 100644 --- a/app/Filament/Resources/Projektes/Pages/EditProjekte.php +++ b/app/Filament/Resources/Projektes/Pages/EditProjekte.php @@ -3,25 +3,17 @@ namespace App\Filament\Resources\Projektes\Pages; use App\Actions\Validation\GutachtenValidation; -use App\Filament\Imports\ProjektAllgemeinflaechenImporter; -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\ProjektObjekte; use App\Traits\HasBackUrl; use Carbon\Carbon; use Filament\Actions\Action; use Filament\Actions\ActionGroup; use Filament\Actions\DeleteAction; -use Filament\Actions\ImportAction; -use Filament\Forms\Components\Radio; -use Filament\Forms\Components\Textarea; use Filament\Notifications\Notification; use Filament\Resources\Pages\EditRecord; use Illuminate\Support\Facades\Auth; -use Illuminate\Validation\Rules\File; use Livewire\Attributes\On; class EditProjekte extends EditRecord @@ -36,122 +28,6 @@ class EditProjekte extends EditRecord protected function getHeaderActions(): array { return [ - /** - * IMPORT - */ - ActionGroup::make([ - Action::make('fix_line_endings') - ->icon('phosphor-file-text') - ->modalIcon('phosphor-file-csv') - ->label('Daten direkt hochladen') - ->schema([ - Radio::make('tabel_mode') - ->label('Tabellen Art') - ->inline() - ->options([ - 'allgemein' => 'Allgemeinflächen', - 'objekte_in_detail' => 'Objekte im Detail', - ]), - Textarea::make('upload_data') - ->label('Daten hier einfügen') - ->extraInputAttributes(['onClick' => 'this.select()']) - ->rows(5), - - ]), - ImportAction::make('import_allgemeinflaechen') - ->hidden(fn ($record): bool => $record->bezahlt_am ? false : true) - ->importer(ProjektAllgemeinflaechenImporter::class) - ->csvDelimiter('|') - ->modalIcon('phosphor-file-csv') - ->modalHeading('Dokument Allgemeinflächen Import') - ->modalContent(view('filament.pages.actions.import-allgemeinflaechen')) - ->modalContentFooter(view('filament.pages.actions.footer-allgemeinflaechen')) - ->label('Allgemeinflächen') - ->icon('phosphor-upload') - ->extraModalFooterActions([ - Action::make('copy') - ->tooltip('Kopiert die Spaltenname für die erste Zeile') - ->color('success') - ->label('Spalten Namen') - ->action(function ($livewire) { - $livewire->js('window.navigator.clipboard.writeText("Geschoss|Raumart|Fläche");'); - - Notification::make() - ->title('Spaltenname kopiert') - ->success() - ->send(); - }), - - Action::make('delete') - ->label('Tabelle leeren') - ->color('danger') - ->requiresConfirmation() - ->action(function ($record) { - ProjektAllgemeinflaechen::where('projekte_id', $record->id)->delete(); - - $this->record->refresh(); - - Notification::make() - ->title('Tabelle geleert') - ->success() - ->send(); - }), - ]) - ->options(function ($record) { - return ['projekte_id' => $record->id]; - }) - ->fileRules([ - File::types(['csv', 'txt'])->max(1024), - ]), - ImportAction::make('import_objekte') - ->hidden(fn ($record): bool => $record->bezahlt_am ? false : true) - ->importer(ProjektObjekteImDetailImporter::class) - ->csvDelimiter('|') - ->modalIcon('phosphor-file-csv') - ->modalHeading('Dokument Objekte im Detail Import') - ->modalContent(view('filament.pages.actions.import-objektemitraeumen')) - ->modalContentFooter(view('filament.pages.actions.footer-allgemeinflaechen')) - ->label('Objekte') - ->icon('phosphor-upload') - ->extraModalFooterActions([ - Action::make('copy') - ->tooltip('Kopiert die Spaltenname für die erste Zeile') - ->color('success') - ->label('Spalten Namen') - ->action(function ($livewire) { - $livewire->js('window.navigator.clipboard.writeText("Top Nummer|Geschoss|Raumart|Fläche");'); - - Notification::make() - ->title('Spaltenname kopiert') - ->success() - ->send(); - }), - Action::make('delete') - ->tooltip('Löscht alle Objekte für dieses Projekt') - ->label('Tabellen leeren') - ->color('danger') - ->requiresConfirmation() - ->action(function ($record) { - ProjektObjekte::where('projekte_id', $record->id)->delete(); - - $this->record->refresh(); - - Notification::make() - ->title('Tabellen geleert') - ->success() - ->send(); - }), - ]) - ->options(function ($record) { - return ['projekte_id' => $record->id]; - }) - ->fileRules([ - File::types(['csv', 'txt'])->max(1024), - ]), - ])->label('Import') - ->icon('phosphor-upload') - ->color('info') - ->button(), /** * FREISCHALTEN * auth()->user()->konto->guthaben diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektAllgemeinflaechensRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektAllgemeinflaechensRelationManager.php index 42ef6d7..b168d80 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektAllgemeinflaechensRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektAllgemeinflaechensRelationManager.php @@ -2,12 +2,17 @@ namespace App\Filament\Resources\Projektes\RelationManagers; +use App\Filament\Imports\ImportAllgemeinDirect; +use App\Models\ProjektAllgemeinflaechen; +use Filament\Actions\Action; use Filament\Actions\BulkActionGroup; use Filament\Actions\CreateAction; use Filament\Actions\DeleteAction; use Filament\Actions\DeleteBulkAction; use Filament\Actions\EditAction; +use Filament\Forms\Components\Textarea; use Filament\Forms\Components\TextInput; +use Filament\Notifications\Notification; use Filament\Resources\RelationManagers\RelationManager; use Filament\Schemas\Schema; use Filament\Tables\Columns\Summarizers\Sum; @@ -53,7 +58,7 @@ 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.') + ->emptyStateDescription('Bitte Projekt zuerst freischalten und dann die Daten der Allgemeinflächen hochladen.') ->striped() ->recordTitleAttribute('geschoss') ->columns([ @@ -75,6 +80,37 @@ class ProjektAllgemeinflaechensRelationManager extends RelationManager ->searchable(), ]) ->headerActions([ + Action::make('import-text') + ->icon('phosphor-upload') + ->hidden(fn (): bool => $this->ownerRecord->bezahlt_am ? false : true) + ->modalIcon('phosphor-file-csv') + ->color('info') + ->label('Hochladen') + ->modalHeading('Allgemeinflächen hochladen') + ->modalDescription(new HtmlString('Objekte werden immer hinzugefügt!
Spalten-Separator ist der Strichpunkt ";" oder die Pfeife "|"')) + ->schema([ + Textarea::make('upload_data') + ->required() + ->label('Text hier einfügen:') + ->extraInputAttributes(['onClick' => 'this.select()']) + ->rows(5), + + ]) + ->action(function (array $data): void { + ImportAllgemeinDirect::run($data, $this->ownerRecord->id); + }), + Action::make('leeren') + ->action(function () { + ProjektAllgemeinflaechen::where('projekte_id', $this->ownerRecord->id)->delete(); + }) + ->icon('phosphor-trash') + ->color('danger') + ->requiresConfirmation() + ->successNotification( + Notification::make() + ->success() + ->title('Allgemeinflächen gelöscht'), + ), CreateAction::make() ->icon('phosphor-file-plus') ->createAnother(false), diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteImDetailRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteImDetailRelationManager.php index 6a0286f..963a801 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteImDetailRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteImDetailRelationManager.php @@ -2,6 +2,7 @@ namespace App\Filament\Resources\Projektes\RelationManagers; +use App\Filament\Imports\ImportObjekteDirect; use App\Models\ProjektObjekteImDetail; use Filament\Actions\Action; use Filament\Actions\BulkActionGroup; @@ -10,6 +11,7 @@ use Filament\Actions\DeleteAction; use Filament\Actions\DeleteBulkAction; use Filament\Actions\EditAction; use Filament\Forms\Components\Select; +use Filament\Forms\Components\Textarea; use Filament\Forms\Components\TextInput; use Filament\Resources\RelationManagers\RelationManager; use Filament\Schemas\Schema; @@ -68,7 +70,7 @@ class ProjektObjekteImDetailRelationManager extends RelationManager public function table(Table $table): Table { return $table - ->emptyStateDescription('Schalten Sie das Projekt frei und importieren Sie die Daten der Objekte.') + ->emptyStateDescription('Bitte Projekt freischalten und Daten hochladen.') ->striped() ->recordTitleAttribute('top_nummer') ->columns([ @@ -139,20 +141,40 @@ class ProjektObjekteImDetailRelationManager extends RelationManager ]) ->deferFilters(false) ->headerActions([ + Action::make('import-text') + ->icon('phosphor-upload') + ->modalIcon('phosphor-file-csv') + ->color('info') + ->label('Hochladen') + ->modalHeading('Objekte im Detail hochladen') + ->modalDescription(new HtmlString('Objekte werden immer hinzugefügt!
Spalten-Separator ist der Strichpunkt ";" oder die Pfeife "|"')) + ->schema([ + Textarea::make('upload_data') + ->required() + ->label('Text hier einfügen:') + ->extraInputAttributes(['onClick' => 'this.select()']) + ->rows(5), + + ]) + ->action(function (array $data): void { + ImportObjekteDirect::run($data, $this->ownerRecord->id); + }), CreateAction::make() ->icon('phosphor-file-plus') ->createAnother(false), Action::make('nutzwerte') ->label('Nutzwerte') - ->icon('phosphor-gear') + ->icon('phosphor-calculator') ->action(function () { $res = ProjektObjekteImDetail::with('methode') ->where('projekte_id', $this->getOwnerRecord()->id) ->get(); foreach ($res as $row) { - ProjektObjekteImDetail::where('id', $row->id) - ->update(['nutzwert' => $row->flaeche * $row->methode->faktor]); + if ($row->methode?->faktor || null) { + ProjektObjekteImDetail::where('id', $row->id) + ->update(['nutzwert' => $row->flaeche * $row->methode->faktor]); + } } })->after(function (Component $livewire) { diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php index 4dd0d96..321cbf3 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php @@ -58,7 +58,7 @@ class ProjektObjekteRelationManager extends RelationManager return $table // ->striped() - ->emptyStateDescription('Schalten Sie das Projekt frei und importieren Sie die Daten der Objekte.') + ->emptyStateDescription(new HtmlString('Bitte Projekt freischalten und unter Objekte im Detail Daten hochladen.')) ->recordTitleAttribute('top_nummer') ->description(new HtmlString('Orientierungen, Zu- und Abschläge, '.Blade::render('').' Nicht in Orientierung')) ->columns([ diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index bd4ffa7..e05bf39 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -44,6 +44,7 @@ class AdminPanelProvider extends PanelProvider ->emailVerification() ->emailChangeVerification() ->databaseNotifications() + ->databaseNotificationsPolling('30s') ->profile(isSimple: false) ->default() ->registration(Register::class) diff --git a/bootstrap/cache/blade-icons.php b/bootstrap/cache/blade-icons.php index 9642ca4..bcb852a 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 => 'm-pencil-slash', 1 => 'o-align-center', @@ -10430,7 +10430,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/filament/panels/admin.php b/bootstrap/cache/filament/panels/admin.php index d2fe8d1..25100ca 100644 --- a/bootstrap/cache/filament/panels/admin.php +++ b/bootstrap/cache/filament/panels/admin.php @@ -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,9 +105,9 @@ ), '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', ), 'pageConfigurations' => @@ -115,7 +115,7 @@ ), 'pageDirectories' => array ( - 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Pages', + 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Pages', ), 'pageNamespaces' => array ( @@ -123,18 +123,18 @@ ), '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/Helps/HelpResource.php' => 'App\\Filament\\Resources\\Helps\\HelpResource', - '/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/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/Helps/HelpResource.php' => 'App\\Filament\\Resources\\Helps\\HelpResource', + '/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/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', ), 'resourceConfigurations' => @@ -142,7 +142,7 @@ ), 'resourceDirectories' => array ( - 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources', + 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources', ), 'resourceNamespaces' => array ( @@ -155,7 +155,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 f85b3eb..6fa39cb 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::rKcYFYxq66iyTy6k', + '_route' => 'generated::zXj1OrHfdPedCq53', ), 1 => NULL, 2 => @@ -551,7 +551,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::yK5CVRfU8mVGKJ7y', + '_route' => 'generated::6vcuPtD1iWunINoa', ), 1 => NULL, 2 => @@ -609,7 +609,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::OMFkFNUUPqJbGghK', + '_route' => 'generated::Jzp5jufvkDuCKQqi', ), 1 => NULL, 2 => @@ -629,7 +629,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::T2CBeTJ3Y5au3fTB', + '_route' => 'generated::xSdDkF8TLk6lZslQ', ), 1 => NULL, 2 => @@ -649,7 +649,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::q0ucPBmJRhhJdWJu', + '_route' => 'generated::aaWpPcmhf1lZCeN3', ), 1 => NULL, 2 => @@ -669,7 +669,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::W3VAdnMOWclqaIzO', + '_route' => 'generated::t6dwgim0taNT4YdB', ), 1 => NULL, 2 => @@ -689,7 +689,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::MSyQneC8KkRUCozm', + '_route' => 'generated::1kMCzd5dwnR5hqVH', ), 1 => NULL, 2 => @@ -2757,7 +2757,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::rKcYFYxq66iyTy6k' => + 'generated::zXj1OrHfdPedCq53' => array ( 'methods' => array ( @@ -2769,7 +2769,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', - 'as' => 'generated::rKcYFYxq66iyTy6k', + 'as' => 'generated::zXj1OrHfdPedCq53', ), 'fallback' => false, 'defaults' => @@ -2785,7 +2785,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::yK5CVRfU8mVGKJ7y' => + 'generated::6vcuPtD1iWunINoa' => array ( 'methods' => array ( @@ -2797,7 +2797,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', - 'as' => 'generated::yK5CVRfU8mVGKJ7y', + 'as' => 'generated::6vcuPtD1iWunINoa', ), 'fallback' => false, 'defaults' => @@ -2899,7 +2899,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::OMFkFNUUPqJbGghK' => + 'generated::Jzp5jufvkDuCKQqi' => array ( 'methods' => array ( @@ -2909,7 +2909,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 { @@ -2924,11 +2924,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:"000000000000103e0000000000000000";}}', - 'as' => 'generated::OMFkFNUUPqJbGghK', + 'as' => 'generated::Jzp5jufvkDuCKQqi', ), 'fallback' => false, 'defaults' => @@ -2944,7 +2944,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::T2CBeTJ3Y5au3fTB' => + 'generated::xSdDkF8TLk6lZslQ' => array ( 'methods' => array ( @@ -2966,7 +2966,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::T2CBeTJ3Y5au3fTB', + 'as' => 'generated::xSdDkF8TLk6lZslQ', ), 'fallback' => false, 'defaults' => @@ -2982,7 +2982,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::q0ucPBmJRhhJdWJu' => + 'generated::aaWpPcmhf1lZCeN3' => array ( 'methods' => array ( @@ -3004,7 +3004,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::q0ucPBmJRhhJdWJu', + 'as' => 'generated::aaWpPcmhf1lZCeN3', ), 'fallback' => false, 'defaults' => @@ -3020,7 +3020,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::W3VAdnMOWclqaIzO' => + 'generated::t6dwgim0taNT4YdB' => array ( 'methods' => array ( @@ -3042,7 +3042,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::W3VAdnMOWclqaIzO', + 'as' => 'generated::t6dwgim0taNT4YdB', ), 'fallback' => false, 'defaults' => @@ -3058,7 +3058,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::MSyQneC8KkRUCozm' => + 'generated::1kMCzd5dwnR5hqVH' => array ( 'methods' => array ( @@ -3080,7 +3080,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::MSyQneC8KkRUCozm', + 'as' => 'generated::1kMCzd5dwnR5hqVH', ), 'fallback' => false, 'defaults' => @@ -3220,7 +3220,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, @@ -3253,7 +3253,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:325:"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:325:"function (\\Illuminate\\Http\\Request $request, string $path) use ($disk, $config, $isProduction) { return (new \\Illuminate\\Filesystem\\ReceiveFile( $disk, $config, diff --git a/composer.lock b/composer.lock index b735693..66e27fb 100644 --- a/composer.lock +++ b/composer.lock @@ -11554,16 +11554,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "12.5.5", + "version": "12.5.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "a25bde1f8f83849f441ef5713c6466e470872a71" + "reference": "876099a072646c7745f673d7aeab5382c4439691" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/a25bde1f8f83849f441ef5713c6466e470872a71", - "reference": "a25bde1f8f83849f441ef5713c6466e470872a71", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/876099a072646c7745f673d7aeab5382c4439691", + "reference": "876099a072646c7745f673d7aeab5382c4439691", "shasum": "" }, "require": { @@ -11618,7 +11618,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.5" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.6" }, "funding": [ { @@ -11638,7 +11638,7 @@ "type": "tidelift" } ], - "time": "2026-04-13T04:53:32+00:00" + "time": "2026-04-15T08:23:17+00:00" }, { "name": "phpunit/php-file-iterator", @@ -13186,12 +13186,12 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": true, "prefer-lowest": false, "platform": { "php": "^8.3" }, - "platform-dev": [], - "plugin-api-version": "2.6.0" + "platform-dev": {}, + "plugin-api-version": "2.9.0" }