diff --git a/app/Filament/Resources/Kontos/Tables/KontosTable.php b/app/Filament/Resources/Kontos/Tables/KontosTable.php index 5edaef4..32dc0bb 100644 --- a/app/Filament/Resources/Kontos/Tables/KontosTable.php +++ b/app/Filament/Resources/Kontos/Tables/KontosTable.php @@ -35,14 +35,12 @@ class KontosTable TextColumn::make('guthaben') ->size(TextSize::Large) ->weight(FontWeight::Bold) - ->label('Erstellt') ->color('primary') ->description('Gutachten') ->alignCenter(), TextColumn::make('abgeschlossen') ->size(TextSize::Large) ->weight(FontWeight::Bold) - ->label('Kredit') ->color('success') ->description('Gutachten') ->alignCenter(), diff --git a/app/Filament/Resources/Projektes/Pages/EditProjekte.php b/app/Filament/Resources/Projektes/Pages/EditProjekte.php index 1b2e731..77b5bac 100644 --- a/app/Filament/Resources/Projektes/Pages/EditProjekte.php +++ b/app/Filament/Resources/Projektes/Pages/EditProjekte.php @@ -3,9 +3,12 @@ namespace App\Filament\Resources\Projektes\Pages; use App\Filament\Resources\Projektes\ProjekteResource; +use App\Models\Konto; +use App\Models\Projekte; use Filament\Actions\Action; use Filament\Actions\ActionGroup; use Filament\Actions\DeleteAction; +use Filament\Notifications\Notification; use Filament\Resources\Pages\EditRecord; class EditProjekte extends EditRecord @@ -15,48 +18,109 @@ class EditProjekte extends EditRecord protected function getHeaderActions(): array { return [ - Action::make('gutachten') - ->disabled(fn ($record): bool => ! $record->pdf_gutachten_status) - ->color(fn ($record): string => match ($record->pdf_gutachten_status) { - 1 => 'info', - default => 'gray', - }) - ->label('Gutachten') - ->icon('icon-pdf') - ->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'file'])) - ->openUrlInNewTab(), - Action::make('nutzwerte') - ->color('gray') - ->label('Nutzwerte') - ->icon('icon-pdf') - ->url(fn ($record) => route('nutzwerte.download', ['record' => $record, 'mode' => 'file'])) - ->openUrlInNewTab(), - Action::make('excel') - ->color('gray') - ->label('Nutzdaten') - ->icon('icon-excel') - ->url(fn ($record) => route('excel.download', ['record' => $record, 'mode' => 'file'])) - ->openUrlInNewTab(), + /** + * FREISCHALTEN + * auth()->user()->konto->guthaben + */ + Action::make('freischalten') + ->hidden(fn ($record): bool => $record->bezahlt_am ? true : false) + ->visible(fn (): bool => auth()->user()->konto->guthaben) + ->requiresConfirmation() + ->modalHeading('Gutachten freischalten?') + ->tooltip('Von Ihrem Guthaben wird ein Punkt abgezogen.') + ->modalIcon('phosphor-coins') + ->modalDescription('Von Ihrem Guthaben wird ein Punkt abgezogen.') + ->modalSubmitActionLabel('Bezahlen') + ->action(function ($record) { + if (Konto::where('id', $record['konto_id'])->where('guthaben', '>', 0)->get()) { + Konto::where('id', $record['konto_id'])->decrement('guthaben', 1); + Projekte::where('id', $record['id'])->update(['bezahlt_am' => \Carbon\Carbon::now()]); + + $this->record->refresh(); + + Notification::make() + ->title('Gutachten freischaltet') + ->success() + ->send(); + } + }), + Action::make('bezahlen') + ->color('danger') + ->hidden(fn ($record): bool => $record->bezahlt_am ? true : false) + ->visible(fn (): bool => ! auth()->user()->konto->guthaben) + ->label('Konto laden') + ->tooltip('Konto laden um Gutachten freizuschalten.') + ->requiresConfirmation() + ->modalHeading('Kein Guthaben') + ->modalIcon('heroicon-o-exclamation-triangle') + ->modalDescription('Bitte laden sie Ihr Konto auf') + ->modalSubmitActionLabel('Konto aufladen'), + /** + * GUTACHTEN + */ ActionGroup::make([ + Action::make('gutachten') + ->disabled(fn ($record): bool => ! $record->pdf_gutachten_status) + ->hidden(fn ($record): bool => $record->bezahlt_am ? false : true) + ->color(fn ($record): string => match ($record->pdf_gutachten_status) { + 1 => 'info', + default => 'gray', + }) + ->label('Herunterladen') + ->icon('icon-pdf') + ->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'file'])) + ->openUrlInNewTab(), Action::make('make_gutachten') - ->label('Gutachten Erstellen') - ->icon('heroicon-o-cog-8-tooth') - ->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'new'])) - ->openUrlInNewTab(), - Action::make('make_nutzwerte') - ->label('Nutzwerte Erstellen') - ->icon('heroicon-o-cog-8-tooth') - ->url(fn ($record) => route('nutzwerte.download', ['record' => $record, 'mode' => 'new'])) - ->openUrlInNewTab(), - Action::make('make_excel') - ->label('Datenblatt Erstellen') - ->icon('heroicon-o-cog-8-tooth') - ->url(fn ($record) => route('excel.download', ['record' => $record, 'mode' => 'new'])) - ->openUrlInNewTab(), - DeleteAction::make()->label('Projekt löschen'), - ])->label('Berechnen') + ->hidden(fn ($record): bool => $record->bezahlt_am ? false : true) + ->label('Neu Berechnen') + ->icon('phosphor-calculator') + ->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'new'])) + ->openUrlInNewTab(), + ])->label('Gutachten') ->icon('heroicon-m-ellipsis-vertical') + ->button() ->color('primary'), + /** + * NUTZWERTE + */ + ActionGroup::make([ + Action::make('nutzwerte') + ->disabled(fn ($record): bool => ! $record->pdf_nutzwerte_status) + ->hidden(fn ($record): bool => $record->bezahlt_am ? false : true) + ->color(fn ($record): string => match ($record->pdf_gutachten_status) { + 1 => 'info', + default => 'gray', + }) + ->label('Herunterladen') + ->icon('icon-pdf') + ->url(fn ($record) => route('nutzwerte.download', ['record' => $record, 'mode' => 'file'])) + ->openUrlInNewTab(), + Action::make('make_nutzwerte') + ->hidden(fn ($record): bool => $record->bezahlt_am ? false : true) + ->label('Neu Berechnen') + ->icon('phosphor-calculator') + ->url(fn ($record) => route('nutzwerte.download', ['record' => $record, 'mode' => 'new'])) + ->openUrlInNewTab(), + ])->label('Nutzwerte') + ->icon('heroicon-m-ellipsis-vertical') + ->button() + ->color('primary'), + /** + * EXCEL + */ + ActionGroup::make([ + Action::make('excel') + ->hidden(fn ($record): bool => $record->bezahlt_am ? false : true) + ->color('gray') + ->label('Excel Spreadsheet') + ->icon('icon-excel') + ->url(fn ($record) => route('excel.download', ['record' => $record, 'mode' => 'file'])) + ->openUrlInNewTab(), + ])->label('Nutzdaten') + ->icon('heroicon-m-ellipsis-vertical') + ->button() + ->color('primary'), + DeleteAction::make(), ]; } diff --git a/app/Models/Projekte.php b/app/Models/Projekte.php index 94b9111..92be290 100644 --- a/app/Models/Projekte.php +++ b/app/Models/Projekte.php @@ -17,8 +17,27 @@ class Projekte extends Model 'beschreibung', 'erstellung', 'status', + 'pdf_gutachten_name', + 'pdf_nutzwerte_name', + 'excel_nutzwerte_name', + 'bezahlt_am', ]; + /** + * Get the attributes that should be cast. + * + * @return array + */ + protected function casts(): array + { + return [ + 'bezahlt_am' => 'datetime', + 'pdf_nutzwerte_status' => 'boolean', + 'pdf_gutachten_status' => 'boolean', + 'excel_nutzwerte_status' => 'boolean', + ]; + } + protected static function booted(): void { static::addGlobalScope(new KontoScope); diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index b70fdf5..971fd5f 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -27,8 +27,8 @@ class AppServiceProvider extends ServiceProvider FilamentColor::register([ 'danger' => Color::Red, 'gray' => Color::Zinc, - 'info' => Color::Blue, - 'primary' => Color::Red, + 'info' => Color::Amber, + 'primary' => Color::Blue, 'success' => Color::Green, 'warning' => Color::Amber, ]); diff --git a/bootstrap/cache/blade-icons.php b/bootstrap/cache/blade-icons.php index 385d75b..d154e2d 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', @@ -10,7 +10,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', @@ -1304,7 +1304,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', @@ -10382,7 +10382,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', @@ -10419,7 +10419,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 ce7485b..38fdf7f 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 ( @@ -126,7 +126,7 @@ 'fallback_locale' => 'en', 'faker_locale' => 'de_AT', 'cipher' => 'AES-256-CBC', - 'key' => 'base64:3uv/ppXplpqmYtiZ5ZyILnoOTmKfZAz27bfsnR1qmaE=', + '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 ( @@ -513,7 +513,7 @@ ), 'policies' => array ( - 'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Policies', + 'path' => '/Users/salam/Sites/nutzwerte_fi4/app/Policies', 'merge' => true, 'generate' => true, 'methods' => @@ -601,7 +601,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, @@ -609,7 +609,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, @@ -631,7 +631,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, @@ -639,7 +639,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' => @@ -664,14 +664,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, @@ -736,7 +736,7 @@ ), 'emergency' => array ( - 'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/logs/laravel.log', + 'path' => '/Users/salam/Sites/nutzwerte_fi4/storage/logs/laravel.log', ), ), ), @@ -835,7 +835,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', ), ), ), @@ -1011,7 +1011,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, @@ -1059,7 +1059,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 ( @@ -1072,7 +1072,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 36ef307..d92af03 100644 --- a/bootstrap/cache/filament/panels/admin.php +++ b/bootstrap/cache/filament/panels/admin.php @@ -68,9 +68,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 ( @@ -95,7 +95,7 @@ ), 'clusterDirectories' => array ( - 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters', + 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters', ), 'clusterNamespaces' => array ( @@ -103,14 +103,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 ( @@ -118,23 +118,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 ( @@ -147,7 +147,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 2897468..c1a3e6b 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::veIjWBrdBWrIMC8t', + '_route' => 'generated::u4vcRtJ3hEj5hCNe', ), 1 => NULL, 2 => @@ -551,7 +551,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::muSK0SQhbdwIoCYo', + '_route' => 'generated::GfWZuZO5VJuCoiJ2', ), 1 => NULL, 2 => @@ -609,7 +609,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::0bUCD3kvi7kZPEzz', + '_route' => 'generated::h7pyq4odODYNGif1', ), 1 => NULL, 2 => @@ -629,7 +629,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::4mvgzXznCYOJRrHd', + '_route' => 'generated::tNw97Ap4bhdXBOxp', ), 1 => NULL, 2 => @@ -649,7 +649,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::vN8kq9ib2yxLbjiy', + '_route' => 'generated::zTr6dq0rMqI9FFnv', ), 1 => NULL, 2 => @@ -669,7 +669,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::TYNHx7Avrc44zPUT', + '_route' => 'generated::vcFb59BTWylMqK7r', ), 1 => NULL, 2 => @@ -689,7 +689,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::xtVGH3JdXqIkaMQk', + '_route' => 'generated::AK4j8I5fuvOGbvCw', ), 1 => NULL, 2 => @@ -2740,7 +2740,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::veIjWBrdBWrIMC8t' => + 'generated::u4vcRtJ3hEj5hCNe' => 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::veIjWBrdBWrIMC8t', + 'as' => 'generated::u4vcRtJ3hEj5hCNe', ), 'fallback' => false, 'defaults' => @@ -2768,7 +2768,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::muSK0SQhbdwIoCYo' => + 'generated::GfWZuZO5VJuCoiJ2' => 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::muSK0SQhbdwIoCYo', + 'as' => 'generated::GfWZuZO5VJuCoiJ2', ), 'fallback' => false, 'defaults' => @@ -2882,7 +2882,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::0bUCD3kvi7kZPEzz' => + 'generated::h7pyq4odODYNGif1' => 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:"0000000000000f360000000000000000";}}', - 'as' => 'generated::0bUCD3kvi7kZPEzz', + 'as' => 'generated::h7pyq4odODYNGif1', ), 'fallback' => false, 'defaults' => @@ -2927,7 +2927,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::4mvgzXznCYOJRrHd' => + 'generated::tNw97Ap4bhdXBOxp' => array ( 'methods' => array ( @@ -2949,7 +2949,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::4mvgzXznCYOJRrHd', + 'as' => 'generated::tNw97Ap4bhdXBOxp', ), 'fallback' => false, 'defaults' => @@ -2965,7 +2965,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::vN8kq9ib2yxLbjiy' => + 'generated::zTr6dq0rMqI9FFnv' => array ( 'methods' => array ( @@ -2987,7 +2987,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::vN8kq9ib2yxLbjiy', + 'as' => 'generated::zTr6dq0rMqI9FFnv', ), 'fallback' => false, 'defaults' => @@ -3003,7 +3003,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::TYNHx7Avrc44zPUT' => + 'generated::vcFb59BTWylMqK7r' => array ( 'methods' => array ( @@ -3025,7 +3025,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::TYNHx7Avrc44zPUT', + 'as' => 'generated::vcFb59BTWylMqK7r', ), 'fallback' => false, 'defaults' => @@ -3041,7 +3041,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::xtVGH3JdXqIkaMQk' => + 'generated::AK4j8I5fuvOGbvCw' => array ( 'methods' => array ( @@ -3063,7 +3063,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::xtVGH3JdXqIkaMQk', + 'as' => 'generated::AK4j8I5fuvOGbvCw', ), '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/database/migrations/2025_09_24_131440_create_projektes_table.php b/database/migrations/2025_09_24_131440_create_projektes_table.php index d905ba4..3548b1b 100644 --- a/database/migrations/2025_09_24_131440_create_projektes_table.php +++ b/database/migrations/2025_09_24_131440_create_projektes_table.php @@ -17,17 +17,18 @@ return new class extends Migration $table->foreignId('auftraggeber_id')->constrained(); $table->foreignId('gutachter_id')->constrained(); $table->string('interner_name'); - $table->string('offizieller_name'); - $table->string('ort'); + $table->string('offizieller_name')->nullable(); + $table->string('ort')->nullable(); $table->text('beschreibung')->nullable(); $table->string('erstellung')->nullable(); $table->string('status')->default('entwurf'); - $table->string('pdf_gutachten_name'); - $table->string('pdf_nutzwerte_name'); - $table->string('excel_nutzwerte_name'); + $table->string('pdf_gutachten_name')->nullable(); + $table->string('pdf_nutzwerte_name')->nullable(); + $table->string('excel_nutzwerte_name')->nullable(); $table->boolean('pdf_nutzwerte_status')->default(0); $table->boolean('pdf_gutachten_status')->default(0); $table->boolean('excel_nutzwerte_status')->default(0); + $table->timestamp('bezahlt_am')->nullable(); $table->timestamps(); $table->softDeletes(); });