action evaluation

This commit is contained in:
salam committed 2025-10-20 16:57:50 +02:00
1 parent d473bdc2b3
commit 9eb19cf8fd
13 files changed
+297 -132

No files matched your search

@@ -140,7 +140,7 @@ class GutachtenValidation
}
/**
* Raeumealle
* Projekt Methode
*/
$res = ProjektMethode::where('projekte_id', $record->id)->get();
if (! $res->count()) {
@@ -232,6 +232,6 @@ class GutachtenValidation
->body('Die Evaluierung des Projektes war erfolgreich.')
->send();
Projekte::where('id', $record->id)->update(['evaluation' => 1]);
Projekte::where('id', $record->id)->update(['evaluation_gutachten' => 1]);
}
}
@@ -17,9 +17,12 @@ class EditProjekte extends EditRecord
{
protected static string $resource = ProjekteResource::class;
#[On('refreshAllgemeinflaechen')]
#[On('refreshAllgemeinflaechen'), On('refreshRaeumealle'), On('refreshMethods'), On('refreshOrientierung')]
public function refresh(): void {}
// #[On('refreshRaeumealle')]
// public function refresh(): void {}
protected function getHeaderActions(): array
{
return [
@@ -63,6 +66,15 @@ class EditProjekte extends EditRecord
/**
* GUTACHTEN
*/
Action::make('evaluate_gutachten')
->hidden(fn ($record): bool => $record->bezahlt_am && ! $record->evaluation_gutachten ? false : true)
->color('success')
->label('Evaluieren')
->icon('phosphor-eye')
->action(function ($record): void {
GutachtenValidation::controll($record);
$this->record->refresh();
}),
ActionGroup::make([
Action::make('gutachten')
->disabled(fn ($record): bool => ! $record->pdf_gutachten_status)
@@ -71,36 +83,21 @@ class EditProjekte extends EditRecord
1 => 'info',
default => 'gray',
})
->label('3) Herunterladen')
->icon('phosphor-file-pdf')
->label('Öffnen')
->icon('icon-pdf')
->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'file']))
->openUrlInNewTab(),
Action::make('make_gutachten')
->hidden(fn ($record): bool => $record->bezahlt_am ? false : true)
->color(fn ($record): string => match ($record->evaluation) {
->color(fn ($record): string => match ($record->evaluation_gutachten) {
1 => 'info',
default => 'gray',
})
->disabled(fn ($record): bool => $record->evaluation ? false : true)
->label('2) Generieren')
->icon('phosphor-math-operations')
->disabled(fn ($record): bool => $record->evaluation_gutachten ? false : true)
->label('Berechnen')
->icon('phosphor-calculator')
->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'new']))
->openUrlInNewTab(),
Action::make('evaluate_gutachten')
->hidden(fn ($record): bool => $record->bezahlt_am ? false : true)
->color(fn ($record): string => match ($record->evaluation) {
1 => 'success',
default => 'primary',
})
->label('1) Evaluieren')
->icon(fn ($record): string => match ($record->evaluation) {
1 => 'phosphor-check',
default => 'phosphor-eye',
})
->action(function ($record): void {
GutachtenValidation::controll($record);
$this->record->refresh();
}),
])->label('Gutachten')
->icon('heroicon-m-ellipsis-vertical')
->button()
@@ -116,13 +113,14 @@ class EditProjekte extends EditRecord
1 => 'info',
default => 'gray',
})
->label('Herunterladen')
->icon('phosphor-file-pdf')
->label('Öffnen')
->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')
->disabled(fn ($record): bool => $record->evaluation_gutachten ? false : true)
->label('Berechnen')
->icon('phosphor-calculator')
->url(fn ($record) => route('nutzwerte.download', ['record' => $record, 'mode' => 'new']))
->openUrlInNewTab(),
@@ -136,12 +134,14 @@ class EditProjekte extends EditRecord
ActionGroup::make([
Action::make('excel-nutzflaeche-nutzwerte')
->hidden(fn ($record): bool => $record->bezahlt_am ? false : true)
->disabled(fn ($record): bool => $record->evaluation_gutachten ? false : true)
->label('Nutzfläche & Nutzwerte')
->icon('icon-excel')
->url(fn ($record) => route('excel.download', ['record' => $record, 'mode' => 'file']))
->openUrlInNewTab(),
Action::make('excel-nutzflaechen-aufstellung')
->hidden(fn ($record): bool => $record->bezahlt_am ? false : true)
->disabled(fn ($record): bool => $record->evaluation_gutachten ? false : true)
->label('Nutzflächen Aufstellung')
->icon('icon-excel')
->url(fn ($record) => route('excel.download', ['record' => $record, 'mode' => 'file']))
@@ -22,6 +22,7 @@ use Filament\Tables\Columns\TextInputColumn;
use Filament\Tables\Filters\TernaryFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Collection;
use Livewire\Component;
class OrientierungZuAbschlaegesRelationManager extends RelationManager
{
@@ -58,7 +59,10 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
]),
CheckboxColumn::make('nicht_in_orientierung')
->label('Nicht in Orientierung')
->toggleable(),
->toggleable()
->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
TextColumn::make('raumart')
->toggleable()
->width('2rem')
@@ -71,17 +75,40 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
->selectablePlaceholder(true)
->options(Orientierung::pluck('name', 'id'))
->disableOptionWhen(fn (string $value): bool => in_array($value, [2, 11, 24, 33, 36]))
->preloadOptions(),
TextInputColumn::make('a')->label($spalten['a'] ?? '')->hidden(isset($spalten['a']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
TextInputColumn::make('b')->label($spalten['b'] ?? '')->hidden(isset($spalten['b']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
TextInputColumn::make('c')->label($spalten['c'] ?? '')->hidden(isset($spalten['c']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
TextInputColumn::make('d')->label($spalten['d'] ?? '')->hidden(isset($spalten['d']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
TextInputColumn::make('e')->label($spalten['e'] ?? '')->hidden(isset($spalten['e']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
TextInputColumn::make('f')->label($spalten['f'] ?? '')->hidden(isset($spalten['f']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
TextInputColumn::make('g')->label($spalten['g'] ?? '')->hidden(isset($spalten['g']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
TextInputColumn::make('h')->label($spalten['h'] ?? '')->hidden(isset($spalten['h']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
TextInputColumn::make('i')->label($spalten['i'] ?? '')->hidden(isset($spalten['i']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
TextInputColumn::make('j')->label($spalten['j'] ?? '')->hidden(isset($spalten['j']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
->preloadOptions()->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
TextInputColumn::make('a')->label($spalten['a'] ?? '')->hidden(isset($spalten['a']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter()
->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
TextInputColumn::make('b')->label($spalten['b'] ?? '')->hidden(isset($spalten['b']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter()->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
TextInputColumn::make('c')->label($spalten['c'] ?? '')->hidden(isset($spalten['c']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter()->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
TextInputColumn::make('d')->label($spalten['d'] ?? '')->hidden(isset($spalten['d']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter()->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
TextInputColumn::make('e')->label($spalten['e'] ?? '')->hidden(isset($spalten['e']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter()->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
TextInputColumn::make('f')->label($spalten['f'] ?? '')->hidden(isset($spalten['f']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter()->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
TextInputColumn::make('g')->label($spalten['g'] ?? '')->hidden(isset($spalten['g']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter()->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
TextInputColumn::make('h')->label($spalten['h'] ?? '')->hidden(isset($spalten['h']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter()->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
TextInputColumn::make('i')->label($spalten['i'] ?? '')->hidden(isset($spalten['i']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter()->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
TextInputColumn::make('j')->label($spalten['j'] ?? '')->hidden(isset($spalten['j']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter()->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
TextColumn::make('nutzwert')
->extraHeaderAttributes([
'style' => 'position: sticky; right: 0; z-index: 1;',
@@ -108,7 +135,10 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
->modalHeading('Merkmale')
->slideOver()
// ->modalWidth(Width::Medium)
->modalContent(view('filament.pages.actions.merkmale')),
->modalContent(view('filament.pages.actions.merkmale'))
->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
Action::make('erstellen')
->action(fn (CreateOrientierungZuAbschlaege $createOrientierungZuAbschlaege) => $createOrientierungZuAbschlaege->create($this->ownerRecord))
->requiresConfirmation()
@@ -117,7 +147,10 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
->modalSubmitActionLabel('Erstellen')
->label('Erstellen')
->tooltip('Daten werden aus "Orientierung Zu/Abschläge" Tabelle gefiltert.')
->icon('heroicon-o-cog-8-tooth'),
->icon('heroicon-o-cog-8-tooth')
->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
])
->toolbarActions([
BulkActionGroup::make([
@@ -136,6 +169,9 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['raumart' => $data['raumart']]
);
}
})
->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
BulkAction::make('methode')
->color('primary')
@@ -156,6 +192,9 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['orientierung_id' => $data['methode_id']]
);
}
})
->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
BulkAction::make('nicht_in_orientierung')
->color('primary')
@@ -177,6 +216,9 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['nicht_in_orientierung' => 1]
);
}
})
->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
BulkAction::make('a')
->label($spalten['a'] ?? '')
@@ -194,6 +236,8 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['a' => $data['a']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
BulkAction::make('b')
->label($spalten['b'] ?? '')
@@ -211,6 +255,8 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['b' => $data['b']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
BulkAction::make('c')
->label($spalten['c'] ?? '')
@@ -228,6 +274,8 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['c' => $data['c']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
BulkAction::make('d')
->label($spalten['d'] ?? '')
@@ -245,6 +293,8 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['d' => $data['d']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
BulkAction::make('e')
->label($spalten['e'] ?? '')
@@ -262,6 +312,8 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['e' => $data['e']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
BulkAction::make('f')
->label($spalten['f'] ?? '')
@@ -279,6 +331,8 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['f' => $data['f']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
BulkAction::make('g')
->label($spalten['g'] ?? '')
@@ -296,6 +350,8 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['g' => $data['g']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
BulkAction::make('h')
->label($spalten['h'] ?? '')
@@ -313,6 +369,8 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['h' => $data['h']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
BulkAction::make('i')
->label($spalten['i'] ?? '')
@@ -330,6 +388,8 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['i' => $data['i']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
BulkAction::make('j')
->label($spalten['j'] ?? '')
@@ -347,6 +407,8 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
['j' => $data['j']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshOrientierung');
}),
]),
]);
@@ -17,6 +17,7 @@ use Filament\Tables\Columns\TextInputColumn;
use Filament\Tables\Filters\TernaryFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Collection;
use Livewire\Component;
class ProjektMethodesRelationManager extends RelationManager
{
@@ -39,14 +40,26 @@ class ProjektMethodesRelationManager extends RelationManager
SelectColumn::make('methode_id')
->selectablePlaceholder(true)
->optionsRelationship('methode', 'name')
->preloadOptions(),
->preloadOptions()
->rules(['required'])
->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshMethods');
})->validationMessages([
'required' => 'Die Eingabe eines Faktors ist erforderlich.',
]),
TextColumn::make('raumart')
->searchable(),
TextInputColumn::make('faktor')
->suffixIcon('phosphor-function')
->width('1rem')
->rules(['required', 'faktor' => 'decimal:0,2'])
->searchable(),
->searchable()
->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshMethods');
})->validationMessages([
'required' => 'Die Eingabe eines Faktors ist erforderlich.',
'decimal' => 'Für den Faktors sind zwei Dezimalstellen erforderlich.',
]),
])
->filters([
TernaryFilter::make('methode_id')
@@ -61,47 +74,54 @@ class ProjektMethodesRelationManager extends RelationManager
->modalSubmitActionLabel('Erstellen')
->label('Erstellen')
->tooltip('Daten werden aus "Räume Alle" Tabelle gefiltert.')
->icon('heroicon-o-cog-8-tooth'),
->icon('heroicon-o-cog-8-tooth')
->after(function (Component $livewire) {
$livewire->dispatch('refreshMethods');
}),
])
->toolbarActions([
BulkActionGroup::make([
BulkAction::make('faktor')
->color('primary')
->label('Faktor zuweisen')
->schema([
TextInput::make('faktor')
->prefixIcon('phosphor-function')
->numeric()
->required(),
])
->icon('phosphor-function')
->action(function (Collection $records, array $data): void {
foreach ($records as $record) {
ProjektMethode::where('id', '=', $record->id)
->update(
['faktor' => $data['faktor']]
);
}
}),
->color('primary')
->label('Faktor zuweisen')
->schema([
TextInput::make('faktor')
->prefixIcon('phosphor-function')
->numeric()
->required(),
])
->icon('phosphor-function')
->action(function (Collection $records, array $data): void {
foreach ($records as $record) {
ProjektMethode::where('id', '=', $record->id)
->update(
['faktor' => $data['faktor']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshMethods');
}),
BulkAction::make('methode')
->color('primary')
->label('Methode zuweisen')
->schema([
Select::make('methode_id')
->label('Methode')
->prefixIcon('phosphor-calculator')
->options(Methode::pluck('name', 'id'))
->required(),
])
->icon('phosphor-calculator')
->action(function (Collection $records, array $data): void {
foreach ($records as $record) {
ProjektMethode::where('id', '=', $record->id)
->update(
['methode_id' => $data['methode_id']]
);
}
}),
->color('primary')
->label('Methode zuweisen')
->schema([
Select::make('methode_id')
->label('Methode')
->prefixIcon('phosphor-calculator')
->options(Methode::pluck('name', 'id'))
->required(),
])
->icon('phosphor-calculator')
->action(function (Collection $records, array $data): void {
foreach ($records as $record) {
ProjektMethode::where('id', '=', $record->id)
->update(
['methode_id' => $data['methode_id']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshMethods');
}),
]),
]);
}
@@ -24,6 +24,7 @@ use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\HtmlString;
use Illuminate\Validation\Rules\File;
use Livewire\Component;
class RaeumeallesRelationManager extends RelationManager
{
@@ -41,9 +42,35 @@ class RaeumeallesRelationManager extends RelationManager
{
return $schema
->components([
TextInput::make('top_nummer')
->required()
->maxLength(255),
TextInput::make('geschoss')
->required()
->maxLength(255),
TextInput::make('raumart')
->required()
->maxLength(255),
TextInput::make('flaeche')
->suffix(new HtmlString(' m²'))
->rules(['required', 'flaeche' => 'decimal:2'])
->label('Fläche')
->validationMessages([
'required' => 'Die Eingabe einer Fläche ist erforderlich.',
'decimal' => 'Für die Fläche sind zwei Dezimalstellen erforderlich.',
])
->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshAllgemeinflaechen');
}),
TextInput::make('faktor')
->suffixIcon('phosphor-function')
->rules(['required', 'faktor' => 'decimal:0,2'])
->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshRaeumealle');
})->validationMessages([
'required' => 'Die Eingabe eines Faktors ist erforderlich.',
'decimal' => 'Für den Faktors sind zwei Dezimalstellen erforderlich.',
]),
]);
}
@@ -63,7 +90,13 @@ class RaeumeallesRelationManager extends RelationManager
->suffixIcon('phosphor-function')
->width('1rem')
->rules(['required', 'faktor' => 'decimal:0,2'])
->searchable(),
->searchable()
->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshRaeumealle');
})->validationMessages([
'required' => 'Die Eingabe eines Faktors ist erforderlich.',
'decimal' => 'Für den Faktors sind zwei Dezimalstellen erforderlich.',
]),
TextInputColumn::make('flaeche')
->summarize(Sum::make()->label('Gesammt')->numeric(
decimalPlaces: 2,
@@ -73,7 +106,13 @@ class RaeumeallesRelationManager extends RelationManager
->alignment('right')
->rules(['required', 'flaeche' => 'decimal:2'])
->label('Fläche')
->searchable(),
->searchable()
->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshRaeumealle');
})->validationMessages([
'required' => 'Die Eingabe einer Fläche ist erforderlich.',
'decimal' => 'Für die Fläche sind zwei Dezimalstellen erforderlich.',
]),
TextColumn::make('nutzwert')
->alignCenter()
->default(fn ($record): ?int => round($record->faktor * $record->flaeche))
@@ -115,8 +154,12 @@ class RaeumeallesRelationManager extends RelationManager
]),
])
->recordActions([
EditAction::make()->iconButton(),
DeleteAction::make()->iconButton(),
EditAction::make()->iconButton()->after(function (Component $livewire) {
$livewire->dispatch('refreshRaeumealle');
}),
DeleteAction::make()->iconButton()->after(function (Component $livewire) {
$livewire->dispatch('refreshRaeumealle');
}),
])
->toolbarActions([
BulkActionGroup::make([
@@ -137,8 +180,12 @@ class RaeumeallesRelationManager extends RelationManager
['faktor' => $data['faktor']]
);
}
})->after(function (Component $livewire) {
$livewire->dispatch('refreshRaeumealle');
}),
DeleteBulkAction::make(),
DeleteBulkAction::make()->after(function (Component $livewire) {
$livewire->dispatch('refreshRaeumealle');
}),
]),
]);
}
+1 -1
View File
@@ -18,7 +18,7 @@ class Allgemeinflaechen extends Model
parent::boot();
self::updated(function ($model) {
Projekte::where('id', $model['projekte_id'])->update(['evaluation' => false]);
Projekte::where('id', $model['projekte_id'])->update(['evaluation_gutachten' => false]);
});
}
}
+9
View File
@@ -24,6 +24,15 @@ class OrientierungZuAbschlaege extends Model
'j',
];
public static function boot()
{
parent::boot();
self::updated(function ($model) {
Projekte::where('id', $model['projekte_id'])->update(['evaluation_gutachten' => false]);
});
}
public function orientierung()
{
return $this->hasOne(Orientierung::class, 'id', 'orientierung_id');
+9
View File
@@ -14,6 +14,15 @@ class ProjektMethode extends Model
'flaeche',
];
public static function boot()
{
parent::boot();
self::updated(function ($model) {
Projekte::where('id', $model['projekte_id'])->update(['evaluation_gutachten' => false]);
});
}
public function methode()
{
return $this->hasOne(Methode::class, 'id', 'methode_id');
+9
View File
@@ -15,4 +15,13 @@ class Raeumealle extends Model
'faktor',
'flaeche',
];
public static function boot()
{
parent::boot();
self::updated(function ($model) {
Projekte::where('id', $model['projekte_id'])->update(['evaluation_gutachten' => false]);
});
}
}
+21 -21
View File
@@ -531,7 +531,7 @@ app('router')->setCompiledRoutes(
array (
0 =>
array (
'_route' => 'generated::cMFYRNr1o1PRseSZ',
'_route' => 'generated::exIAp0EADn5yoY2H',
),
1 => NULL,
2 =>
@@ -551,7 +551,7 @@ app('router')->setCompiledRoutes(
array (
0 =>
array (
'_route' => 'generated::2x2QKQMIdsdiHpyb',
'_route' => 'generated::fzMVy1Jf9tAsto8V',
),
1 => NULL,
2 =>
@@ -609,7 +609,7 @@ app('router')->setCompiledRoutes(
array (
0 =>
array (
'_route' => 'generated::hszD9fZTxpanIoJv',
'_route' => 'generated::RbpkeOigW19C0cYF',
),
1 => NULL,
2 =>
@@ -629,7 +629,7 @@ app('router')->setCompiledRoutes(
array (
0 =>
array (
'_route' => 'generated::elk9I3a8y1xOVGye',
'_route' => 'generated::rS6V9GEwPgiewAuw',
),
1 => NULL,
2 =>
@@ -649,7 +649,7 @@ app('router')->setCompiledRoutes(
array (
0 =>
array (
'_route' => 'generated::9FyTMqQa1k6WGHuY',
'_route' => 'generated::w1rEzg4szFuoQGRb',
),
1 => NULL,
2 =>
@@ -669,7 +669,7 @@ app('router')->setCompiledRoutes(
array (
0 =>
array (
'_route' => 'generated::pR5eI8BwQCtOz6j1',
'_route' => 'generated::aBLuOJDcLU7fag3q',
),
1 => NULL,
2 =>
@@ -689,7 +689,7 @@ app('router')->setCompiledRoutes(
array (
0 =>
array (
'_route' => 'generated::9p3WHLQBm12TOrAJ',
'_route' => 'generated::AjOyKv2jzRor1QA5',
),
1 => NULL,
2 =>
@@ -2740,7 +2740,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL,
'withTrashed' => false,
),
'generated::cMFYRNr1o1PRseSZ' =>
'generated::exIAp0EADn5yoY2H' =>
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::cMFYRNr1o1PRseSZ',
'as' => 'generated::exIAp0EADn5yoY2H',
),
'fallback' => false,
'defaults' =>
@@ -2768,7 +2768,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL,
'withTrashed' => false,
),
'generated::2x2QKQMIdsdiHpyb' =>
'generated::fzMVy1Jf9tAsto8V' =>
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::2x2QKQMIdsdiHpyb',
'as' => 'generated::fzMVy1Jf9tAsto8V',
),
'fallback' => false,
'defaults' =>
@@ -2882,7 +2882,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL,
'withTrashed' => false,
),
'generated::hszD9fZTxpanIoJv' =>
'generated::RbpkeOigW19C0cYF' =>
array (
'methods' =>
array (
@@ -2911,7 +2911,7 @@ app('router')->setCompiledRoutes(
\'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::hszD9fZTxpanIoJv',
'as' => 'generated::RbpkeOigW19C0cYF',
),
'fallback' => false,
'defaults' =>
@@ -2927,7 +2927,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL,
'withTrashed' => false,
),
'generated::elk9I3a8y1xOVGye' =>
'generated::rS6V9GEwPgiewAuw' =>
array (
'methods' =>
array (
@@ -2949,7 +2949,7 @@ app('router')->setCompiledRoutes(
'where' =>
array (
),
'as' => 'generated::elk9I3a8y1xOVGye',
'as' => 'generated::rS6V9GEwPgiewAuw',
),
'fallback' => false,
'defaults' =>
@@ -2965,7 +2965,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL,
'withTrashed' => false,
),
'generated::9FyTMqQa1k6WGHuY' =>
'generated::w1rEzg4szFuoQGRb' =>
array (
'methods' =>
array (
@@ -2987,7 +2987,7 @@ app('router')->setCompiledRoutes(
'where' =>
array (
),
'as' => 'generated::9FyTMqQa1k6WGHuY',
'as' => 'generated::w1rEzg4szFuoQGRb',
),
'fallback' => false,
'defaults' =>
@@ -3003,7 +3003,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL,
'withTrashed' => false,
),
'generated::pR5eI8BwQCtOz6j1' =>
'generated::aBLuOJDcLU7fag3q' =>
array (
'methods' =>
array (
@@ -3025,7 +3025,7 @@ app('router')->setCompiledRoutes(
'where' =>
array (
),
'as' => 'generated::pR5eI8BwQCtOz6j1',
'as' => 'generated::aBLuOJDcLU7fag3q',
),
'fallback' => false,
'defaults' =>
@@ -3041,7 +3041,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL,
'withTrashed' => false,
),
'generated::9p3WHLQBm12TOrAJ' =>
'generated::AjOyKv2jzRor1QA5' =>
array (
'methods' =>
array (
@@ -3063,7 +3063,7 @@ app('router')->setCompiledRoutes(
'where' =>
array (
),
'as' => 'generated::9p3WHLQBm12TOrAJ',
'as' => 'generated::AjOyKv2jzRor1QA5',
),
'fallback' => false,
'defaults' =>
Generated
+12 -12
View File
@@ -9438,28 +9438,28 @@
},
{
"name": "webmozart/assert",
"version": "1.11.0",
"version": "1.12.0",
"source": {
"type": "git",
"url": "https://github.com/webmozarts/assert.git",
"reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
"reference": "541057574806f942c94662b817a50f63f7345360"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
"reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
"url": "https://api.github.com/repos/webmozarts/assert/zipball/541057574806f942c94662b817a50f63f7345360",
"reference": "541057574806f942c94662b817a50f63f7345360",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"ext-date": "*",
"ext-filter": "*",
"php": "^7.2 || ^8.0"
},
"conflict": {
"phpstan/phpstan": "<0.12.20",
"vimeo/psalm": "<4.6.1 || 4.6.2"
},
"require-dev": {
"phpunit/phpunit": "^8.5.13"
"suggest": {
"ext-intl": "",
"ext-simplexml": "",
"ext-spl": ""
},
"type": "library",
"extra": {
@@ -9490,9 +9490,9 @@
],
"support": {
"issues": "https://github.com/webmozarts/assert/issues",
"source": "https://github.com/webmozarts/assert/tree/1.11.0"
"source": "https://github.com/webmozarts/assert/tree/1.12.0"
},
"time": "2022-06-03T18:03:27+00:00"
"time": "2025-10-20T12:43:39+00:00"
},
{
"name": "ysfkaya/filament-phone-input",
@@ -28,7 +28,8 @@ return new class extends Migration
$table->boolean('pdf_nutzwerte_status')->default(0);
$table->boolean('pdf_gutachten_status')->default(0);
$table->boolean('excel_nutzwerte_status')->default(0);
$table->boolean('evaluation')->default(0);
$table->boolean('evaluation_gutachten')->default(0);
$table->boolean('evaluation_nutzwerte')->default(0);
$table->timestamp('bezahlt_am')->nullable();
$table->timestamps();
$table->softDeletes();
+21 -13
View File
@@ -1,14 +1,22 @@
<svg viewBox="0 0 512 512" version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" fill="currentColor">
<g id="SVGRepo_bgCarrier" stroke-width="0"></g>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>
<g id="SVGRepo_iconCarrier">
<title>pdf-document</title>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="add" fill="currentColor" transform="translate(85.333333, 42.666667)">
<path d="M75.9466667,285.653333 C63.8764997,278.292415 49.6246897,275.351565 35.6266667,277.333333 L1.42108547e-14,277.333333 L1.42108547e-14,405.333333 L28.3733333,405.333333 L28.3733333,356.48 L40.5333333,356.48 C53.1304778,357.774244 65.7885986,354.68506 76.3733333,347.733333 C85.3576891,340.027178 90.3112817,328.626053 89.8133333,316.8 C90.4784904,304.790173 85.3164923,293.195531 75.9466667,285.653333 L75.9466667,285.653333 Z M53.12,332.373333 C47.7608867,334.732281 41.8687051,335.616108 36.0533333,334.933333 L27.7333333,334.933333 L27.7333333,298.666667 L36.0533333,298.666667 C42.094796,298.02451 48.1897668,299.213772 53.5466667,302.08 C58.5355805,305.554646 61.3626692,311.370371 61.0133333,317.44 C61.6596233,323.558965 58.5400493,329.460862 53.12,332.373333 L53.12,332.373333 Z M150.826667,277.333333 L115.413333,277.333333 L115.413333,405.333333 L149.333333,405.333333 C166.620091,407.02483 184.027709,403.691457 199.466667,395.733333 C216.454713,383.072462 225.530463,362.408923 223.36,341.333333 C224.631644,323.277677 218.198313,305.527884 205.653333,292.48 C190.157107,280.265923 170.395302,274.806436 150.826667,277.333333 L150.826667,277.333333 Z M178.986667,376.32 C170.098963,381.315719 159.922142,383.54422 149.76,382.72 L144.213333,382.72 L144.213333,299.946667 L149.333333,299.946667 C167.253333,299.946667 174.293333,301.653333 181.333333,308.053333 C189.877212,316.948755 194.28973,329.025119 193.493333,341.333333 C194.590843,354.653818 189.18793,367.684372 178.986667,376.32 L178.986667,376.32 Z M254.506667,405.333333 L283.306667,405.333333 L283.306667,351.786667 L341.333333,351.786667 L341.333333,329.173333 L283.306667,329.173333 L283.306667,299.946667 L341.333333,299.946667 L341.333333,277.333333 L254.506667,277.333333 L254.506667,405.333333 L254.506667,405.333333 Z M234.666667,7.10542736e-15 L9.52127266e-13,7.10542736e-15 L9.52127266e-13,234.666667 L42.6666667,234.666667 L42.6666667,192 L42.6666667,169.6 L42.6666667,42.6666667 L216.96,42.6666667 L298.666667,124.373333 L298.666667,169.6 L298.666667,192 L298.666667,234.666667 L341.333333,234.666667 L341.333333,106.666667 L234.666667,7.10542736e-15 L234.666667,7.10542736e-15 Z" id="document-pdf"></path>
</g>
</g>
<?xml version="1.0" encoding="iso-8859-1"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="550.801px" height="550.801px" viewBox="0 0 550.801 550.801" fill="currentColor" xml:space="preserve">
<g>
<path d="M160.381,282.225c0-14.832-10.299-23.684-28.474-23.684c-7.414,0-12.437,0.715-15.071,1.432V307.6
c3.114,0.707,6.942,0.949,12.192,0.949C148.419,308.549,160.381,298.74,160.381,282.225z" />
<path d="M272.875,259.019c-8.145,0-13.397,0.717-16.519,1.435v105.523c3.116,0.729,8.142,0.729,12.69,0.729
c33.017,0.231,54.554-17.946,54.554-56.474C323.842,276.719,304.215,259.019,272.875,259.019z" />
<path d="M488.426,197.019H475.2v-63.816c0-0.398-0.063-0.799-0.116-1.202c-0.021-2.534-0.827-5.023-2.562-6.995L366.325,3.694
c-0.032-0.031-0.063-0.042-0.085-0.076c-0.633-0.707-1.371-1.295-2.151-1.804c-0.231-0.155-0.464-0.285-0.706-0.419
c-0.676-0.369-1.393-0.675-2.131-0.896c-0.2-0.056-0.38-0.138-0.58-0.19C359.87,0.119,359.037,0,358.193,0H97.2
c-11.918,0-21.6,9.693-21.6,21.601v175.413H62.377c-17.049,0-30.873,13.818-30.873,30.873v160.545
c0,17.043,13.824,30.87,30.873,30.87h13.224V529.2c0,11.907,9.682,21.601,21.6,21.601h356.4c11.907,0,21.6-9.693,21.6-21.601
V419.302h13.226c17.044,0,30.871-13.827,30.871-30.87v-160.54C519.297,210.838,505.47,197.019,488.426,197.019z M97.2,21.605
h250.193v110.513c0,5.967,4.841,10.8,10.8,10.8h95.407v54.108H97.2V21.605z M362.359,309.023c0,30.876-11.243,52.165-26.82,65.333
c-16.971,14.117-42.82,20.814-74.396,20.814c-18.9,0-32.297-1.197-41.401-2.389V234.365c13.399-2.149,30.878-3.346,49.304-3.346
c30.612,0,50.478,5.508,66.039,17.226C351.828,260.69,362.359,280.547,362.359,309.023z M80.7,393.499V234.365
c11.241-1.904,27.042-3.346,49.296-3.346c22.491,0,38.527,4.308,49.291,12.928c10.292,8.131,17.215,21.534,17.215,37.328
c0,15.799-5.25,29.198-14.829,38.285c-12.442,11.728-30.865,16.996-52.407,16.996c-4.778,0-9.1-0.243-12.435-0.723v57.67H80.7
V393.499z M453.601,523.353H97.2V419.302h356.4V523.353z M484.898,262.127h-61.989v36.851h57.913v29.674h-57.913v64.848h-36.593
V232.216h98.582V262.127z" />
</g>
</svg>
</svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB