This commit is contained in:
salam committed 2025-10-20 11:51:00 +02:00
1 parent 3a35ccd69d
commit 261fb0916d
38 files changed
+348 -258

No files matched your search

@@ -10,6 +10,8 @@ class CreateProjektInhaltsverzeichnis
{ {
public static function create($record) public static function create($record)
{ {
ProjektInhaltsverzeichnis::where('projekte_id', $record->id)->delete();
$inhaltsverzeichnis = Inhaltsverzeichnis::get(); $inhaltsverzeichnis = Inhaltsverzeichnis::get();
foreach ($inhaltsverzeichnis as $inhalt) { foreach ($inhaltsverzeichnis as $inhalt) {
@@ -28,9 +30,10 @@ class CreateProjektInhaltsverzeichnis
'ordnungszahl' => $inhalt->ordnungszahl, 'ordnungszahl' => $inhalt->ordnungszahl,
'name' => $inhalt->name, 'name' => $inhalt->name,
'ueberschrift_nicht_anzeigen' => $inhalt->ueberschrift_nicht_anzeigen, 'ueberschrift_nicht_anzeigen' => $inhalt->ueberschrift_nicht_anzeigen,
'seite' => $inhalt->seite,
'tabellen_id' => $inhalt->tabellen_id, 'tabellen_id' => $inhalt->tabellen_id,
'textblock_id' => $inhalt->textblock_id, 'textblock_id' => $inhalt->textblock_id,
'seite' => $inhalt->seite,
'ohne_seitenzahl_anzeige' => $inhalt->ohne_seitenzahl_anzeige,
'textblock' => $textblock, 'textblock' => $textblock,
]); ]);
} }
@@ -4,6 +4,7 @@ namespace App\Actions\Validation;
use App\Models\Allgemeinflaechen; use App\Models\Allgemeinflaechen;
use App\Models\OrientierungZuAbschlaege; use App\Models\OrientierungZuAbschlaege;
use App\Models\Projekte;
use App\Models\ProjektMethode; use App\Models\ProjektMethode;
use App\Models\ProjektPlatzhalter; use App\Models\ProjektPlatzhalter;
use App\Models\Raeumealle; use App\Models\Raeumealle;
@@ -230,5 +231,7 @@ class GutachtenValidation
->duration(10000) ->duration(10000)
->body('Die Evaluierung des Projektes war erfolgreich.') ->body('Die Evaluierung des Projektes war erfolgreich.')
->send(); ->send();
Projekte::where('id', $record->id)->update(['evaluation' => 1]);
} }
} }
@@ -18,7 +18,7 @@ class AuftraggebersTable
TextColumn::make('email')->copyable()->label('E-Mail')->searchable(), TextColumn::make('email')->copyable()->label('E-Mail')->searchable(),
]) ])
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
]); ]);
} }
} }
@@ -21,7 +21,7 @@ class GutachtersTable
TextColumn::make('email')->copyable()->label('E-Mail')->searchable(), TextColumn::make('email')->copyable()->label('E-Mail')->searchable(),
]) ])
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
]); ]);
} }
} }
@@ -8,7 +8,6 @@ use Filament\Forms\Components\Checkbox;
use Filament\Forms\Components\Select; use Filament\Forms\Components\Select;
use Filament\Forms\Components\Textarea; use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput; use Filament\Forms\Components\TextInput;
use Filament\Schemas\Components\Flex;
use Filament\Schemas\Components\Section; use Filament\Schemas\Components\Section;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
@@ -18,15 +17,15 @@ class InhaltsverzeichnisForm
{ {
return $schema return $schema
->components([ ->components([
Flex::make([ Section::make('Überschrift')
Section::make([ ->schema([
Textarea::make('name') Textarea::make('name')
->required() ->required()
->label('Kapitel Überschrift'), ->label('Kapitel / Absatz')
->columnSpan(2),
Checkbox::make('ueberschrift_nicht_anzeigen') Checkbox::make('ueberschrift_nicht_anzeigen')
->label('Überschrift nicht angezeigen'), ->label('Überschrift nicht angezeigen')
]), ->columnSpan(2),
Section::make([
TextInput::make('ordnungszahl') TextInput::make('ordnungszahl')
->label('Kapitel Index') ->label('Kapitel Index')
->placeholder('3.21') ->placeholder('3.21')
@@ -34,36 +33,44 @@ class InhaltsverzeichnisForm
->default(0) ->default(0)
->belowContent([ ->belowContent([
'Bei "0" wird der Index im PDF nicht angezeigt', 'Bei "0" wird der Index im PDF nicht angezeigt',
]), ])
->columnSpan(1),
TextInput::make('seite') TextInput::make('seite')
->label('Seitenzahl') ->label('Seitenzahl')
->numeric() ->numeric()
->default(0) ->default(0)
->belowContent([ ->belowContent([
'Bei "0" wird die Seitenzahl automatisch generiert', 'Bei "0" wird die Seitenzahl automatisch generiert',
])
->columnSpan(1),
])->columnSpanFull(),
Section::make('Tabelle & Textblöcke')
->hiddenLabel()
->schema([
Select::make('tabellen_id')->label('Tabelle')
->prefixIcon('phosphor-table')
->prefixIconColor(
fn ($record): string => $record->tabellen_id == 0 ? 'gray' : 'primary'
)
->default(0)
->options(function () {
return Tabellen::all()->pluck('name', 'id')->toArray();
})->belowContent([
'Kann auch frei bleiben',
]), ]),
]),
])->columnSpanFull(2),
Select::make('tabellen_id')->label('Tabelle') Select::make('textblock_id')->label('Textblock')
->prefixIcon('phosphor-table') ->prefixIcon('phosphor-article')
->default(0) ->prefixIconColor(
->options(function () { fn ($record): string => $record->textblock_id == 0 ? 'gray' : 'primary'
return Tabellen::all()->pluck('name', 'id')->toArray(); )
})->belowContent([ ->default(0)
'Kann auch frei bleiben', ->options(function () {
]), return Textblock::all()->pluck('name', 'id')->toArray();
})->belowContent([
Select::make('textblock_id')->label('Textblock') 'Kann auch frei bleiben',
->prefixIcon('phosphor-article') ]),
->default(0) ])->columnSpanFull(),
->options(function () {
return Textblock::all()->pluck('name', 'id')->toArray();
// return ['100' => 'Eigener Textblock'] + $relatedOptions;
})->belowContent([
'Kann auch frei bleiben',
]),
]); ]);
} }
} }
@@ -4,6 +4,7 @@ namespace App\Filament\Resources\Inhaltsverzeichnis\Tables;
use Filament\Actions\DeleteAction; use Filament\Actions\DeleteAction;
use Filament\Actions\EditAction; use Filament\Actions\EditAction;
use Filament\Support\Enums\FontWeight;
use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\ToggleColumn; use Filament\Tables\Columns\ToggleColumn;
use Filament\Tables\Table; use Filament\Tables\Table;
@@ -22,13 +23,12 @@ class InhaltsverzeichnisTable
TextColumn::make('name') TextColumn::make('name')
->label('Überschrift') ->label('Überschrift')
->wrap() ->wrap()
->description(fn ($record): string => $record->textblock_kennungs->name ?? '') ->weight(fn ($record): FontWeight => match ($record->ueberschrift_nicht_anzeigen) {
->color(fn ($record): string => match ($record->ueberschrift_nicht_anzeigen) { 1 => FontWeight::Thin,
1 => 'primary', default => FontWeight::SemiBold,
default => 'gray',
}), }),
// ToggleColumn::make('ueberschrift_anzeigen')->label('')->tooltip('Überschrift im PDF anzeigen'), // ToggleColumn::make('ueberschrift_anzeigen')->label('')->tooltip('Überschrift im PDF anzeigen'),
TextColumn::make('tabellen.name')->wrap(), TextColumn::make('tabellen.name')->wrap()->label('Tabelle'),
TextColumn::make('textblock.name')->wrap(), TextColumn::make('textblock.name')->wrap(),
TextColumn::make('seite') TextColumn::make('seite')
->alignCenter() ->alignCenter()
@@ -39,7 +39,7 @@ class InhaltsverzeichnisTable
->defaultSort('sort', direction: 'asc') ->defaultSort('sort', direction: 'asc')
->reorderable('sort') ->reorderable('sort')
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
DeleteAction::make()->iconButton(), DeleteAction::make()->iconButton(),
]); ]);
} }
@@ -17,6 +17,7 @@ class KontoTextblockForm
->required(), ->required(),
Textarea::make('beschreibung'), Textarea::make('beschreibung'),
RichEditor::make('textblock') RichEditor::make('textblock')
->extraInputAttributes(['style' => 'min-height: 20rem; max-height: 50vh; overflow-y: auto;'])
->toolbarButtons([ ->toolbarButtons([
['bold', 'italic', 'underline', 'strike', 'subscript', 'superscript'], ['bold', 'italic', 'underline', 'strike', 'subscript', 'superscript'],
]), ]),
@@ -26,7 +26,7 @@ class KontoTextblocksTable
->html(), ->html(),
]) ])
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
DeleteAction::make()->iconButton(), DeleteAction::make()->iconButton(),
]); ]);
} }
@@ -41,6 +41,7 @@ class KontoForm
RichEditor::make('address')->toolbarButtons([ RichEditor::make('address')->toolbarButtons([
['bold', 'italic', 'underline', 'subscript', 'superscript'], ['bold', 'italic', 'underline', 'subscript', 'superscript'],
]) ])
->extraInputAttributes(['style' => 'min-height: 20rem; max-height: 50vh; overflow-y: auto;'])
->label('Adresse') ->label('Adresse')
->required(), ->required(),
])->columnSpanFull(), ])->columnSpanFull(),
@@ -37,7 +37,7 @@ class KontosTable
]) ])
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
Action::make('Guthaben laden') Action::make('Guthaben laden')
->iconButton() ->iconButton()
->color('gray') ->color('gray')
@@ -15,6 +15,7 @@ class MethodeForm
TextInput::make('name')->required(), TextInput::make('name')->required(),
RichEditor::make('description') RichEditor::make('description')
->label('Beschreibung') ->label('Beschreibung')
->extraInputAttributes(['style' => 'min-height: 20rem; max-height: 50vh; overflow-y: auto;'])
->toolbarButtons([ ->toolbarButtons([
['bold', 'italic', 'underline', 'strike', 'subscript', 'superscript'], ['bold', 'italic', 'underline', 'strike', 'subscript', 'superscript'],
]), ]),
@@ -23,7 +23,7 @@ class MethodesTable
->html(), ->html(),
]) ])
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
]); ]);
} }
} }
@@ -31,7 +31,7 @@ class OrientierungsTable
]), ]),
]) ])
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
]); ]);
} }
} }
@@ -28,7 +28,7 @@ class PlansTable
TextColumn::make('preis')->money('EUR'), TextColumn::make('preis')->money('EUR'),
]) ])
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
]); ]);
} }
} }
@@ -67,7 +67,7 @@ class EditProjekte extends EditRecord
1 => 'info', 1 => 'info',
default => 'gray', default => 'gray',
}) })
->label('Herunterladen') ->label('3) Herunterladen')
->icon('phosphor-file-pdf') ->icon('phosphor-file-pdf')
->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'file'])) ->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'file']))
->openUrlInNewTab(), ->openUrlInNewTab(),
@@ -78,20 +78,24 @@ class EditProjekte extends EditRecord
default => 'gray', default => 'gray',
}) })
->disabled(fn ($record): bool => $record->evaluation ? false : true) ->disabled(fn ($record): bool => $record->evaluation ? false : true)
->label('Neu Berechnen') ->label('2) Generieren')
->icon('phosphor-calculator') ->icon('phosphor-math-operations')
->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'new'])) ->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'new']))
->openUrlInNewTab(), ->openUrlInNewTab(),
Action::make('evaluate_gutachten') Action::make('evaluate_gutachten')
->hidden(fn ($record): bool => $record->bezahlt_am ? false : true) ->hidden(fn ($record): bool => $record->bezahlt_am ? false : true)
->color(fn ($record): string => match ($record->evaluation) { ->color(fn ($record): string => match ($record->evaluation) {
1 => 'gray', 1 => 'success',
default => 'info', default => 'primary',
})
->label('1) Evaluieren')
->icon(fn ($record): string => match ($record->evaluation) {
1 => 'phosphor-check',
default => 'phosphor-eye',
}) })
->label('Daten Evaluieren')
->icon('phosphor-seal-check')
->action(function ($record): void { ->action(function ($record): void {
GutachtenValidation::controll($record); GutachtenValidation::controll($record);
$this->record->refresh();
}), }),
])->label('Gutachten') ])->label('Gutachten')
->icon('heroicon-m-ellipsis-vertical') ->icon('heroicon-m-ellipsis-vertical')
@@ -92,7 +92,7 @@ class AllgemeinflaechensRelationManager extends RelationManager
]), ]),
]) ])
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
DeleteAction::make()->iconButton(), DeleteAction::make()->iconButton(),
]) ])
->toolbarActions([ ->toolbarActions([
@@ -2,6 +2,7 @@
namespace App\Filament\Resources\Projektes\RelationManagers; namespace App\Filament\Resources\Projektes\RelationManagers;
use App\Actions\Create\CreateProjektInhaltsverzeichnis;
use App\Models\KontoTextblock; use App\Models\KontoTextblock;
use Filament\Actions\Action; use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup; use Filament\Actions\BulkActionGroup;
@@ -9,18 +10,21 @@ use Filament\Actions\CreateAction;
use Filament\Actions\DeleteAction; use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction; use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction; use Filament\Actions\EditAction;
use Filament\Forms\Components\Checkbox;
use Filament\Forms\Components\Hidden; use Filament\Forms\Components\Hidden;
use Filament\Forms\Components\RichEditor; use Filament\Forms\Components\RichEditor;
use Filament\Forms\Components\RichEditor\RichContentRenderer; use Filament\Forms\Components\RichEditor\RichContentRenderer;
use Filament\Forms\Components\Select; use Filament\Forms\Components\Select;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput; use Filament\Forms\Components\TextInput;
use Filament\Resources\RelationManagers\RelationManager; use Filament\Resources\RelationManagers\RelationManager;
use Filament\Schemas\Components\Actions; use Filament\Schemas\Components\Fieldset;
use Filament\Schemas\Components\Flex; use Filament\Schemas\Components\Grid;
use Filament\Schemas\Components\Section; use Filament\Schemas\Components\Tabs;
use Filament\Schemas\Components\Utilities\Get; use Filament\Schemas\Components\Tabs\Tab;
use Filament\Schemas\Components\Utilities\Set; use Filament\Schemas\Components\Utilities\Set;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
use Filament\Support\Enums\FontWeight;
use Filament\Tables\Columns\IconColumn; use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table; use Filament\Tables\Table;
@@ -41,83 +45,104 @@ class ProjektInhaltsverzeichnisRelationManager extends RelationManager
{ {
return $schema return $schema
->components([ ->components([
Tabs::make('Tabs')
TextInput::make('ordnungszahl')->numeric(), ->tabs([
TextInput::make('name'), Tab::make('Überschrift')
Flex::make([
Section::make([
RichEditor::make('textblock')
->hidden(fn (Get $get): bool => ! $get('textblock_kennung_id'))
->toolbarButtons([
['bold', 'italic', 'underline', 'strike', 'subscript', 'superscript'],
]),
]),
Section::make([
Action::make('textblock_sichern')
->schema([ ->schema([
Hidden::make('konto_id')->default(auth()->user()->konto_id), Textarea::make('name')
Hidden::make('namecheck')->default(function ($record) { ->required()
return $record['name']; ->label('Kapitel / Absatz')
}), ->columnSpan(2),
Hidden::make('textblock_kennung_id')->default(function ($record) { Checkbox::make('ueberschrift_nicht_anzeigen')
return $record['textblock_kennung_id']; ->label('Überschrift nicht angezeigen')
}), ->columnSpan(2),
RichEditor::make('textblock') TextInput::make('ordnungszahl')
->hidden() ->label('Kapitel Index')
->default(function ($record) { ->placeholder('3.21')
return $record['textblock']; ->numeric()
}), ->default(0)
TextInput::make('name')->required() ->belowContent([
->label('Geben sie dem Textblock einen eindeutigen Namen') 'Bei "0" wird der Index im PDF nicht angezeigt',
->validationMessages([
'different' => 'Name ist schon in Verwendung bitte verwenden Sie einen eindeutig Namen.',
]) ])
->different('namecheck') ->columnSpan(1),
->default(function ($record) { TextInput::make('seite')
return $record['name']; ->label('Seitenzahl')
}), ->numeric()
]) ->default(0)
->modalSubmitActionLabel('Sichern') ->belowContent([
->iconButton() 'Bei "0" wird die Seitenzahl automatisch generiert',
->icon('phosphor-floppy-disk') ])
->tooltip('Ein veränderter Textblock kann als persönliche Vorlage gespeichert werden.') ->columnSpan(1),
->action(function (array $mountedActions, $data) { ]),
Tab::make('Textblock')
->schema([
Grid::make()
->columns(6)
->schema([
RichEditor::make('textblock')
->extraInputAttributes(['style' => 'min-height: 20rem; max-height: 50vh; overflow-y: auto;'])
->columnSpan(5)
->toolbarButtons([
['bold', 'italic', 'underline', 'strike', 'subscript', 'superscript'],
]),
$record = $mountedActions[0]->getRawData(); Fieldset::make('')
->contained(false)
->schema([
Action::make('textblock_sichern')
->schema([
Hidden::make('konto_id')->default(auth()->user()->konto_id),
RichEditor::make('textblock')
->extraInputAttributes(['style' => 'min-height: 20rem; max-height: 50vh; overflow-y: auto;'])
->hidden()
->default(function ($record) {
return $record['textblock'];
}),
TextInput::make('name')->required()
->label('Geben sie der Vorlage einen eindeutigen Namen')
->default(function ($record) {
return $record['name'];
}),
])
->modalSubmitActionLabel('Sichern')
->iconButton()
->icon('phosphor-floppy-disk')
->tooltip('Als persönliche Vorlage speichern')
->action(function (array $mountedActions, $data) {
KontoTextblock::updateOrCreate( $record = $mountedActions[0]->getRawData();
[
'konto_id' => auth()->user()->konto_id,
'name' => $data['name'],
'textblock_kennung_id' => $record['textblock_kennung_id'],
], [
'textblock' => RichContentRenderer::make($record['textblock'])->toHtml(),
]);
}),
Actions::make([
Action::make('textblock_laden')
->schema([
Select::make('konto_textblock_id')
->hiddenLabel()
->searchable()
->options(function ($record) {
return KontoTextblock::where('textblock_kennung_id', $record['textblock_kennung_id'])->where('konto_id', auth()->user()->konto_id)->pluck('name', 'id')->toArray();
})->belowLabel([
'Bitte eine Vorlage auswählen',
]),
])
->icon('phosphor-article')
->iconButton()
->modalSubmitActionLabel('Einsetzen')
->tooltip('Personaliserten Textblock laden.')
->action(function (Set $set, array $data) {
$set('textblock', KontoTextblock::query()->where('id', $data['konto_textblock_id'])->pluck('textblock')->first());
}),
]),
])->grow(false),
])->columnSpanFull(),
KontoTextblock::updateOrCreate(
[
'konto_id' => auth()->user()->konto_id,
'name' => $data['name'],
], [
'textblock' => RichContentRenderer::make($record['textblock'])->toHtml(),
]);
}),
Action::make('textblock_laden')
->schema([
Select::make('konto_textblock_id')
->hiddenLabel()
->searchable()
->options(function ($record) {
return KontoTextblock::where('konto_id', auth()->user()->konto_id)->pluck('name', 'id')->toArray();
})->belowLabel([
'Bitte eine Vorlage auswählen',
]),
])
->icon('phosphor-article')
->iconButton()
->modalSubmitActionLabel('Einsetzen')
->tooltip('Persönliche Vorlage laden.')
->action(function (Set $set, array $data) {
$set('textblock', KontoTextblock::query()->pluck('textblock')->first());
}),
])
->columns(1),
]),
]),
])->columnSpanFull(),
]); ]);
} }
@@ -126,36 +151,61 @@ class ProjektInhaltsverzeichnisRelationManager extends RelationManager
return $table return $table
->recordTitleAttribute('text') ->recordTitleAttribute('text')
->columns([ ->columns([
// TextColumn::make('sort'),
TextColumn::make('ordnungszahl') TextColumn::make('ordnungszahl')
->width('2rem')
->label('Index')
->getStateUsing(fn ($record): string => $record->ordnungszahl == '0' ? '' : number_format($record->ordnungszahl, 2)), ->getStateUsing(fn ($record): string => $record->ordnungszahl == '0' ? '' : number_format($record->ordnungszahl, 2)),
IconColumn::make('textblock_kennung_id') TextColumn::make('name')
->label('Text') ->wrap()
->weight(fn ($record): FontWeight => match ($record->ueberschrift_nicht_anzeigen) {
1 => FontWeight::Thin,
default => FontWeight::SemiBold,
})
->description(fn ($record): string => $record->textblock_kennung->name ?? ''),
TextColumn::make('tabellen.name')->wrap()->label('Tabelle'),
TextColumn::make('textblock.name')->wrap(),
IconColumn::make('textblock')
->alignCenter() ->alignCenter()
->icon('phosphor-article') ->icon('phosphor-article')
->color(fn (string $state): string => match ($state) { ->color(fn (string $state): string => match ($state) {
'0' => 'gray', '0' => 'gray',
default => 'info', default => 'info',
}), }),
TextColumn::make('name')
->description(fn ($record): string => $record->textblock_kennung->name ?? ''),
TextColumn::make('seite') TextColumn::make('seite')
->alignCenter() ->alignCenter()
->badge() ->badge()
->color('info') ->color('info')
->getStateUsing(fn ($record): string => $record->seite == '0' ? '...' : $record->seite), ->getStateUsing(function ($record) {
if ($record->ohne_seitenzahl_anzeige) {
return null;
} elseif ($record->seite > 0) {
return (string) $record->seite;
} else {
return (string) 'auto';
}
}),
]) ])
->defaultSort('sort', direction: 'asc')
->reorderable('sort') ->reorderable('sort')
->filters([ ->filters([
// //
]) ])
->headerActions([ ->headerActions([
Action::make('generate')
->action(fn (CreateProjektInhaltsverzeichnis $createInhaltsverzeichnis) => $createInhaltsverzeichnis->create($this->ownerRecord))
->requiresConfirmation()
->modalHeading('Inhaltsverzeichnis neu generieren')
->modalDescription('Bestehende Daten werden gelöscht.')
->modalSubmitActionLabel('Ja, neu generieren')
->label('Generieren')
->tooltip('Inhaltsverzeichnis wird neu erstellt.')
->icon('phosphor-gear'),
CreateAction::make() CreateAction::make()
->icon('phosphor-file-plus') ->icon('phosphor-file-plus')
->createAnother(false), ->createAnother(false),
]) ])
->recordActions([ ->recordActions([
EditAction::make('edit')->iconButton()->color('gray'), EditAction::make()->iconButton(),
DeleteAction::make()->iconButton(), DeleteAction::make()->iconButton(),
]) ])
->toolbarActions([ ->toolbarActions([
@@ -60,7 +60,7 @@ class ProjektPlatzhalterRelationManager extends RelationManager
->icon('heroicon-o-cog-8-tooth'), ->icon('heroicon-o-cog-8-tooth'),
]) ])
->recordActions([ ->recordActions([
// EditAction::make()->iconButton()->color('gray'), // EditAction::make()->iconButton(),
]); ]);
} }
} }
@@ -115,7 +115,7 @@ class RaeumeallesRelationManager extends RelationManager
]), ]),
]) ])
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
DeleteAction::make()->iconButton(), DeleteAction::make()->iconButton(),
]) ])
->toolbarActions([ ->toolbarActions([
@@ -38,12 +38,17 @@ class ProjekteForm
Tab::make('Zuordnung') Tab::make('Zuordnung')
->schema([ ->schema([
Select::make('gutachter_id')->relationship(name: 'gutachter', titleAttribute: 'company')->required(), Select::make('gutachter_id')->relationship(name: 'gutachter', titleAttribute: 'company')->required(),
Select::make('auftraggeber_id')->relationship(name: 'auftraggeber', titleAttribute: 'company')->required(), Select::make('auftraggeber_id')
->searchable()
->loadingMessage('Lade Auftraggeber...')
->relationship(name: 'auftraggeber', titleAttribute: 'company')
->required(),
Radio::make('status')->options(ProjektStatus::class)->required(), Radio::make('status')->options(ProjektStatus::class)->required(),
]), ]),
Tab::make('Beschreibung') Tab::make('Beschreibung')
->schema([ ->schema([
RichEditor::make('beschreibung') RichEditor::make('beschreibung')
->extraInputAttributes(['style' => 'min-height: 20rem; max-height: 50vh; overflow-y: auto;'])
->toolbarButtons([ ->toolbarButtons([
['bold', 'italic', 'underline', 'strike', 'subscript', 'superscript', 'link'], ['bold', 'italic', 'underline', 'strike', 'subscript', 'superscript', 'link'],
['alignStart', 'alignCenter', 'alignEnd', 'horizontalRule'], ['alignStart', 'alignCenter', 'alignEnd', 'horizontalRule'],
@@ -42,7 +42,7 @@ class ProjektesTable
->relationship('auftraggeber', 'company'), ->relationship('auftraggeber', 'company'),
]) ])
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
]); ]);
} }
} }
@@ -19,6 +19,7 @@ class TextblockForm
->afterLabel('Bei gleichen Textblockarten kann hier der Unterschied kurz angerissen werden.'), ->afterLabel('Bei gleichen Textblockarten kann hier der Unterschied kurz angerissen werden.'),
RichEditor::make('textblock') RichEditor::make('textblock')
->extraInputAttributes(['style' => 'min-height: 20rem; max-height: 50vh; overflow-y: auto;'])
->toolbarButtons([ ->toolbarButtons([
['bold', 'italic', 'underline', 'strike', 'subscript', 'superscript'], ['bold', 'italic', 'underline', 'strike', 'subscript', 'superscript'],
]), ]),
@@ -25,7 +25,7 @@ class TextblocksTable
->html(), ->html(),
]) ])
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
DeleteAction::make()->iconButton(), DeleteAction::make()->iconButton(),
]); ]);
} }
@@ -23,7 +23,7 @@ class TextblockResource extends Resource
protected static string|BackedEnum|null $navigationIcon = 'phosphor-article'; protected static string|BackedEnum|null $navigationIcon = 'phosphor-article';
protected static ?string $navigationLabel = 'Textblock'; protected static ?string $navigationLabel = 'Textblöcke';
protected static ?string $modelLabel = 'Textblock'; protected static ?string $modelLabel = 'Textblock';
@@ -30,7 +30,7 @@ class UsersTable
TrashedFilter::make()->visible(fn () => auth()->user()->hasRole('super_admin')), TrashedFilter::make()->visible(fn () => auth()->user()->hasRole('super_admin')),
]) ])
->recordActions([ ->recordActions([
EditAction::make()->iconButton()->color('gray'), EditAction::make()->iconButton(),
]); ]);
} }
} }
+1
View File
@@ -14,6 +14,7 @@ class Inhaltsverzeichnis extends Model
'sort', 'sort',
'ordnungszahl', 'ordnungszahl',
'seite', 'seite',
'ohne_seitenzahl_anzeige',
]; ];
public function textblock() public function textblock()
-1
View File
@@ -10,7 +10,6 @@ class KontoTextblock extends Model
protected $fillable = [ protected $fillable = [
'konto_id', 'konto_id',
'name', 'name',
'textblock_kennung_id',
'textblock', 'textblock',
]; ];
+15 -2
View File
@@ -9,10 +9,23 @@ class ProjektInhaltsverzeichnis extends Model
protected $fillable = [ protected $fillable = [
'projekte_id', 'projekte_id',
'name', 'name',
'textblock', 'ueberschrift_nicht_anzeigen',
'tabellen_id',
'textblock_id',
'sort', 'sort',
'ordnungszahl', 'ordnungszahl',
'textblock_kennung_id',
'seite', 'seite',
'ohne_seitenzahl_anzeige',
'textblock',
]; ];
public function textblock()
{
return $this->hasMany(Textblock::class, 'id', 'textblock_id');
}
public function tabellen()
{
return $this->hasMany(Tabellen::class, 'id', 'tabellen_id');
}
} }
+2 -2
View File
@@ -26,9 +26,9 @@ class AppServiceProvider extends ServiceProvider
{ {
FilamentColor::register([ FilamentColor::register([
'danger' => Color::Red, 'danger' => Color::Red,
'gray' => Color::Zinc, 'gray' => Color::Slate,
'info' => Color::Blue, 'info' => Color::Blue,
'primary' => Color::Gray, 'primary' => Color::Blue,
'success' => Color::Green, 'success' => Color::Green,
'warning' => Color::Amber, 'warning' => Color::Amber,
]); ]);
+5 -5
View File
@@ -1,7 +1,7 @@
<?php return array ( <?php return array (
'default' => 'default' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/resources/svg' => '/Users/salam/Sites/nutzwerte_fi4/resources/svg' =>
array ( array (
0 => 'excel', 0 => 'excel',
1 => 'logo', 1 => 'logo',
@@ -11,7 +11,7 @@
), ),
'heroicons' => 'heroicons' =>
array ( 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 ( array (
0 => 'c-academic-cap', 0 => 'c-academic-cap',
1 => 'c-adjustments-horizontal', 1 => 'c-adjustments-horizontal',
@@ -1305,7 +1305,7 @@
), ),
'phosphor-icons' => 'phosphor-icons' =>
array ( 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 ( array (
0 => 'acorn-bold', 0 => 'acorn-bold',
1 => 'acorn-duotone', 1 => 'acorn-duotone',
@@ -10383,7 +10383,7 @@
), ),
'filament' => 'filament' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/filament/support/src/../resources/svg' => '/Users/salam/Sites/nutzwerte_fi4/vendor/filament/support/src/../resources/svg' =>
array ( array (
0 => 'o-align-center', 0 => 'o-align-center',
1 => 'o-align-end', 1 => 'o-align-end',
@@ -10420,7 +10420,7 @@
), ),
'lucide' => 'lucide' =>
array ( 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 ( array (
0 => 'a-arrow-down', 0 => 'a-arrow-down',
1 => 'a-arrow-up', 1 => 'a-arrow-up',
+18 -18
View File
@@ -81,9 +81,9 @@
array ( array (
'paths' => 'paths' =>
array ( 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' => 'cors' =>
array ( array (
@@ -124,9 +124,9 @@
'timezone' => 'UTC', 'timezone' => 'UTC',
'locale' => 'de', 'locale' => 'de',
'fallback_locale' => 'en', 'fallback_locale' => 'en',
'faker_locale' => 'at_AT', 'faker_locale' => 'de_AT',
'cipher' => 'AES-256-CBC', 'cipher' => 'AES-256-CBC',
'key' => 'base64:yRi9h21i7xAkGpeF7JoArovQJU1w6xwczQ6ijpYpJrs=', 'key' => 'base64:zrVnUcBmUGjEV/EoAKnZCm/1FWplKu79kYBvevE2/ek=',
'previous_keys' => 'previous_keys' =>
array ( array (
), ),
@@ -301,8 +301,8 @@
'file' => 'file' =>
array ( array (
'driver' => 'file', 'driver' => 'file',
'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/framework/cache/data', 'path' => '/Users/salam/Sites/nutzwerte_fi4/storage/framework/cache/data',
'lock_path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/framework/cache/data', 'lock_path' => '/Users/salam/Sites/nutzwerte_fi4/storage/framework/cache/data',
), ),
'memcached' => 'memcached' =>
array ( array (
@@ -513,7 +513,7 @@
), ),
'policies' => 'policies' =>
array ( array (
'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Policies', 'path' => '/Users/salam/Sites/nutzwerte_fi4/app/Policies',
'merge' => true, 'merge' => true,
'generate' => true, 'generate' => true,
'methods' => 'methods' =>
@@ -601,7 +601,7 @@
'local' => 'local' =>
array ( array (
'driver' => 'local', 'driver' => 'local',
'root' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/private', 'root' => '/Users/salam/Sites/nutzwerte_fi4/storage/app/private',
'serve' => true, 'serve' => true,
'throw' => false, 'throw' => false,
'report' => false, 'report' => false,
@@ -609,7 +609,7 @@
'public' => 'public' =>
array ( array (
'driver' => 'local', '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', 'url' => 'http://nutzwerte_fi4.test/storage',
'visibility' => 'public', 'visibility' => 'public',
'throw' => false, 'throw' => false,
@@ -631,7 +631,7 @@
'promotion' => 'promotion' =>
array ( array (
'driver' => 'local', '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', 'url' => 'http://nutzwerte_fi4.test/storage/promotion',
'visibility' => 'public', 'visibility' => 'public',
'throw' => false, 'throw' => false,
@@ -639,7 +639,7 @@
), ),
'links' => 'links' =>
array ( 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' => 'logging' =>
@@ -664,14 +664,14 @@
'single' => 'single' =>
array ( array (
'driver' => 'single', 'driver' => 'single',
'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/logs/laravel.log', 'path' => '/Users/salam/Sites/nutzwerte_fi4/storage/logs/laravel.log',
'level' => 'debug', 'level' => 'debug',
'replace_placeholders' => true, 'replace_placeholders' => true,
), ),
'daily' => 'daily' =>
array ( array (
'driver' => 'daily', 'driver' => 'daily',
'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/logs/laravel.log', 'path' => '/Users/salam/Sites/nutzwerte_fi4/storage/logs/laravel.log',
'level' => 'debug', 'level' => 'debug',
'days' => 14, 'days' => 14,
'replace_placeholders' => true, 'replace_placeholders' => true,
@@ -736,7 +736,7 @@
), ),
'emergency' => 'emergency' =>
array ( 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', 'theme' => 'default',
'paths' => 'paths' =>
array ( 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, 'lifetime' => 120,
'expire_on_close' => false, 'expire_on_close' => false,
'encrypt' => false, 'encrypt' => false,
'files' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/framework/sessions', 'files' => '/Users/salam/Sites/nutzwerte_fi4/storage/framework/sessions',
'connection' => NULL, 'connection' => NULL,
'table' => 'sessions', 'table' => 'sessions',
'store' => NULL, 'store' => NULL,
@@ -1059,7 +1059,7 @@
), ),
'default_filesystem_disk' => 'local', 'default_filesystem_disk' => 'local',
'assets_path' => NULL, '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', 'livewire_loading_delay' => 'default',
'file_generation' => 'file_generation' =>
array ( array (
@@ -1072,7 +1072,7 @@
'livewire' => 'livewire' =>
array ( array (
'class_namespace' => 'App\\Livewire', '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', 'layout' => 'components.layouts.app',
'lazy_placeholder' => NULL, 'lazy_placeholder' => NULL,
'temporary_file_upload' => 'temporary_file_upload' =>
+22 -22
View File
@@ -69,9 +69,9 @@
), ),
'clusters' => 'clusters' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster', '/Users/salam/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/salam/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/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster',
), ),
'clusteredComponents' => 'clusteredComponents' =>
array ( array (
@@ -96,7 +96,7 @@
), ),
'clusterDirectories' => 'clusterDirectories' =>
array ( array (
0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters', 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters',
), ),
'clusterNamespaces' => 'clusterNamespaces' =>
array ( array (
@@ -104,14 +104,14 @@
), ),
'pages' => 'pages' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster', '/Users/salam/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/salam/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/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster',
0 => 'Filament\\Pages\\Dashboard', 0 => 'Filament\\Pages\\Dashboard',
), ),
'pageDirectories' => 'pageDirectories' =>
array ( array (
0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Pages', 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Pages',
), ),
'pageNamespaces' => 'pageNamespaces' =>
array ( array (
@@ -119,23 +119,23 @@
), ),
'resources' => 'resources' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Auftraggebers/AuftraggeberResource.php' => 'App\\Filament\\Resources\\Auftraggebers\\AuftraggeberResource', '/Users/salam/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/salam/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/salam/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/salam/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/salam/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/salam/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/salam/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/salam/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/salam/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/salam/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/salam/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/Users/UserResource.php' => 'App\\Filament\\Resources\\Users\\UserResource',
0 => 'BezhanSalleh\\FilamentShield\\Resources\\Roles\\RoleResource', 0 => 'BezhanSalleh\\FilamentShield\\Resources\\Roles\\RoleResource',
), ),
'resourceDirectories' => 'resourceDirectories' =>
array ( array (
0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources', 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources',
), ),
'resourceNamespaces' => 'resourceNamespaces' =>
array ( array (
@@ -148,7 +148,7 @@
), ),
'widgetDirectories' => 'widgetDirectories' =>
array ( array (
0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Widgets', 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Widgets',
), ),
'widgetNamespaces' => 'widgetNamespaces' =>
array ( array (
+24 -24
View File
@@ -531,7 +531,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::miopsq0K1HrZfTFf', '_route' => 'generated::FNViXOj8tK9BsYcj',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -551,7 +551,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::TFjsvS4T7LX9C5Bj', '_route' => 'generated::E5wF2GohJ64RTpWy',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -609,7 +609,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::BmV7ODeKY8KcqAM5', '_route' => 'generated::0ytmXxv3zAuLbMMD',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -629,7 +629,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::ixhBlM4fTcynFByI', '_route' => 'generated::UJPLbfU8hmQnzL5A',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -649,7 +649,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::RWJiH3xHLvAfuWDx', '_route' => 'generated::bHCf3cuphnpBFB0f',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -669,7 +669,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::fW0j8lWigChGVWrL', '_route' => 'generated::eV9qtym8FEl7D4Za',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -689,7 +689,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::fQMNejQQ6d7WKdHV', '_route' => 'generated::Vz1H49CoVMQHz2u8',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -2740,7 +2740,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::miopsq0K1HrZfTFf' => 'generated::FNViXOj8tK9BsYcj' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2752,7 +2752,7 @@ app('router')->setCompiledRoutes(
array ( array (
'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile',
'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile',
'as' => 'generated::miopsq0K1HrZfTFf', 'as' => 'generated::FNViXOj8tK9BsYcj',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2768,7 +2768,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::TFjsvS4T7LX9C5Bj' => 'generated::E5wF2GohJ64RTpWy' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2780,7 +2780,7 @@ app('router')->setCompiledRoutes(
array ( array (
'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps',
'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps',
'as' => 'generated::TFjsvS4T7LX9C5Bj', 'as' => 'generated::E5wF2GohJ64RTpWy',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2882,7 +2882,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::BmV7ODeKY8KcqAM5' => 'generated::0ytmXxv3zAuLbMMD' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2892,7 +2892,7 @@ app('router')->setCompiledRoutes(
'uri' => 'up', 'uri' => 'up',
'action' => 'action' =>
array ( 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; $exception = null;
try { try {
@@ -2907,11 +2907,11 @@ app('router')->setCompiledRoutes(
$exception = $e->getMessage(); $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, \'exception\' => $exception,
]), status: $exception ? 500 : 200); ]), status: $exception ? 500 : 200);
}";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000f3b0000000000000000";}}', }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000f3b0000000000000000";}}',
'as' => 'generated::BmV7ODeKY8KcqAM5', 'as' => 'generated::0ytmXxv3zAuLbMMD',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2927,7 +2927,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::ixhBlM4fTcynFByI' => 'generated::UJPLbfU8hmQnzL5A' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2949,7 +2949,7 @@ app('router')->setCompiledRoutes(
'where' => 'where' =>
array ( array (
), ),
'as' => 'generated::ixhBlM4fTcynFByI', 'as' => 'generated::UJPLbfU8hmQnzL5A',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2965,7 +2965,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::RWJiH3xHLvAfuWDx' => 'generated::bHCf3cuphnpBFB0f' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2987,7 +2987,7 @@ app('router')->setCompiledRoutes(
'where' => 'where' =>
array ( array (
), ),
'as' => 'generated::RWJiH3xHLvAfuWDx', 'as' => 'generated::bHCf3cuphnpBFB0f',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -3003,7 +3003,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::fW0j8lWigChGVWrL' => 'generated::eV9qtym8FEl7D4Za' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -3025,7 +3025,7 @@ app('router')->setCompiledRoutes(
'where' => 'where' =>
array ( array (
), ),
'as' => 'generated::fW0j8lWigChGVWrL', 'as' => 'generated::eV9qtym8FEl7D4Za',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -3041,7 +3041,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::fQMNejQQ6d7WKdHV' => 'generated::Vz1H49CoVMQHz2u8' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -3063,7 +3063,7 @@ app('router')->setCompiledRoutes(
'where' => 'where' =>
array ( array (
), ),
'as' => 'generated::fQMNejQQ6d7WKdHV', 'as' => 'generated::Vz1H49CoVMQHz2u8',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -3203,7 +3203,7 @@ app('router')->setCompiledRoutes(
'uri' => 'storage/{path}', 'uri' => 'storage/{path}',
'action' => 'action' =>
array ( 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( return (new \\Illuminate\\Filesystem\\ServeFile(
$disk, $disk,
$config, $config,
Generated
+12 -12
View File
@@ -4716,31 +4716,31 @@
}, },
{ {
"name": "nunomaduro/termwind", "name": "nunomaduro/termwind",
"version": "v2.3.1", "version": "v2.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nunomaduro/termwind.git", "url": "https://github.com/nunomaduro/termwind.git",
"reference": "dfa08f390e509967a15c22493dc0bac5733d9123" "reference": "eb61920a53057a7debd718a5b89c2178032b52c0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nunomaduro/termwind/zipball/dfa08f390e509967a15c22493dc0bac5733d9123", "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/eb61920a53057a7debd718a5b89c2178032b52c0",
"reference": "dfa08f390e509967a15c22493dc0bac5733d9123", "reference": "eb61920a53057a7debd718a5b89c2178032b52c0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-mbstring": "*", "ext-mbstring": "*",
"php": "^8.2", "php": "^8.2",
"symfony/console": "^7.2.6" "symfony/console": "^7.3.4"
}, },
"require-dev": { "require-dev": {
"illuminate/console": "^11.44.7", "illuminate/console": "^11.46.1",
"laravel/pint": "^1.22.0", "laravel/pint": "^1.25.1",
"mockery/mockery": "^1.6.12", "mockery/mockery": "^1.6.12",
"pestphp/pest": "^2.36.0 || ^3.8.2", "pestphp/pest": "^2.36.0 || ^3.8.4",
"phpstan/phpstan": "^1.12.25", "phpstan/phpstan": "^1.12.32",
"phpstan/phpstan-strict-rules": "^1.6.2", "phpstan/phpstan-strict-rules": "^1.6.2",
"symfony/var-dumper": "^7.2.6", "symfony/var-dumper": "^7.3.4",
"thecodingmachine/phpstan-strict-rules": "^1.0.0" "thecodingmachine/phpstan-strict-rules": "^1.0.0"
}, },
"type": "library", "type": "library",
@@ -4783,7 +4783,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/nunomaduro/termwind/issues", "issues": "https://github.com/nunomaduro/termwind/issues",
"source": "https://github.com/nunomaduro/termwind/tree/v2.3.1" "source": "https://github.com/nunomaduro/termwind/tree/v2.3.2"
}, },
"funding": [ "funding": [
{ {
@@ -4799,7 +4799,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-05-08T08:14:37+00:00" "time": "2025-10-18T11:10:27+00:00"
}, },
{ {
"name": "openspout/openspout", "name": "openspout/openspout",
@@ -20,6 +20,7 @@ return new class extends Migration
$table->integer('sort')->default(0); $table->integer('sort')->default(0);
$table->double('ordnungszahl')->default(0); $table->double('ordnungszahl')->default(0);
$table->integer('seite')->default(0); $table->integer('seite')->default(0);
$table->integer('ohne_seitenzahl_anzeige')->default(0);
$table->timestamps(); $table->timestamps();
}); });
} }
@@ -21,6 +21,7 @@ return new class extends Migration
$table->integer('sort')->default(0); $table->integer('sort')->default(0);
$table->double('ordnungszahl')->default(0); $table->double('ordnungszahl')->default(0);
$table->integer('seite')->default(0); $table->integer('seite')->default(0);
$table->integer('ohne_seitenzahl_anzeige')->default(0);
$table->text('textblock')->nullable(); $table->text('textblock')->nullable();
$table->timestamps(); $table->timestamps();
}); });
@@ -16,7 +16,6 @@ return new class extends Migration
$table->foreignId('konto_id')->constrained(); $table->foreignId('konto_id')->constrained();
$table->string('name'); $table->string('name');
$table->string('beschreibung')->nullable(); $table->string('beschreibung')->nullable();
$table->integer('textblock_kennung_id')->default(0)->nullable();
$table->text('textblock'); $table->text('textblock');
$table->timestamps(); $table->timestamps();
}); });
+30 -30
View File
@@ -12,37 +12,37 @@ class InhaltsverzeichnisSeeder extends Seeder
*/ */
public function run(): void public function run(): void
{ {
$sql = "INSERT INTO `inhaltsverzeichnis` (`id`, `sort`, `ordnungszahl`, `name`, `ueberschrift_nicht_anzeigen`, `tabellen_id`, `textblock_id`, `seite`, `created_at`, `updated_at`) $sql = "INSERT INTO `inhaltsverzeichnis` (`id`, `name`, `ueberschrift_nicht_anzeigen`, `tabellen_id`, `textblock_id`, `sort`, `ordnungszahl`, `seite`, `ohne_seitenzahl_anzeige`, `created_at`, `updated_at`)
VALUES VALUES
('1', '1', '0', 'DECKBLATT', '1', '0', '11', '0', NULL, '2025-10-19 08:13:53'), ('1', 'DECKBLATT', '1', '0', '11', '1', '0', '0', '1', NULL, '2025-10-19 08:13:53'),
('2', '3', '0', 'INHALTSVERZEICHNIS', '1', '1', '0', '0', NULL, '2025-10-19 08:13:53'), ('2', 'INHALTSVERZEICHNIS', '1', '1', '0', '3', '0', '0', '1', NULL, '2025-10-19 08:13:53'),
('3', '4', '1', 'ALLGEMEINE ANGABEN', '0', '0', '0', '3', NULL, '2025-10-19 08:13:53'), ('3', 'ALLGEMEINE ANGABEN', '0', '0', '0', '4', '1', '3', '0', NULL, '2025-10-19 08:13:53'),
('4', '5', '1.1', 'AUFTRAGGEBER', '0', '0', '0', '3', NULL, '2025-10-19 08:13:53'), ('4', 'AUFTRAGGEBER', '0', '0', '0', '5', '1.1', '3', '0', NULL, '2025-10-19 08:13:53'),
('5', '6', '1.2', 'ZWECK UND GEGENSTAND DES GUTACHTENS', '0', '0', '1', '3', NULL, '2025-10-19 08:13:53'), ('5', 'ZWECK UND GEGENSTAND DES GUTACHTENS', '0', '0', '1', '6', '1.2', '3', '0', NULL, '2025-10-19 08:13:53'),
('6', '7', '1.3', 'ORTSBESICHTIGUNG', '0', '0', '2', '3', NULL, '2025-10-19 08:13:53'), ('6', 'ORTSBESICHTIGUNG', '0', '0', '2', '7', '1.3', '3', '0', NULL, '2025-10-19 08:13:53'),
('7', '8', '1.4', 'UNTERLAGEN', '0', '0', '3', '3', NULL, '2025-10-19 08:13:53'), ('7', 'UNTERLAGEN', '0', '0', '3', '8', '1.4', '3', '0', NULL, '2025-10-19 08:13:53'),
('8', '9', '2', 'BEFUND', '0', '0', '0', '4', NULL, '2025-10-19 08:13:53'), ('8', 'BEFUND', '0', '0', '0', '9', '2', '4', '0', NULL, '2025-10-19 08:13:53'),
('9', '10', '2.1', 'GRUNDBUCHSTAND', '0', '0', '4', '4', NULL, '2025-10-19 08:13:53'), ('9', 'GRUNDBUCHSTAND', '0', '0', '4', '10', '2.1', '4', '0', NULL, '2025-10-19 08:13:53'),
('10', '11', '2.2', 'BESCHREIBUNG DER LIEGENSCHAFT', '0', '0', '5', '4', NULL, '2025-10-19 08:13:53'), ('10', 'BESCHREIBUNG DER LIEGENSCHAFT', '0', '0', '5', '11', '2.2', '4', '0', NULL, '2025-10-19 08:13:53'),
('11', '12', '2.3', 'ANZAHL DER SELBSTÄNDIGEN EINHEITEN § 6 WEG 2002', '0', '0', '6', '5', NULL, '2025-10-19 08:13:53'), ('11', 'ANZAHL DER SELBSTÄNDIGEN EINHEITEN § 6 WEG 2002', '0', '0', '6', '12', '2.3', '5', '0', NULL, '2025-10-19 08:13:53'),
('12', '13', '0', 'Tabelle § 6', '1', '3', '0', '5', NULL, '2025-10-19 08:13:53'), ('12', 'Tabelle § 6', '1', '3', '0', '13', '0', '5', '0', NULL, '2025-10-19 08:13:53'),
('13', '14', '2.3', '§ 6 Teil 2', '0', '0', '7', '5', NULL, '2025-10-19 08:13:53'), ('13', '§ 6 Teil 2', '0', '0', '7', '14', '2.3', '5', '0', NULL, '2025-10-19 08:13:53'),
('14', '15', '0', 'ALLGEMEINFLÄCHEN', '0', '4', '0', '0', NULL, '2025-10-19 08:13:53'), ('14', 'ALLGEMEINFLÄCHEN', '0', '4', '0', '15', '0', '0', '0', NULL, '2025-10-19 08:13:53'),
('15', '16', '3', 'GUTACHTEN', '0', '0', '0', '0', NULL, '2025-10-19 08:13:53'), ('15', 'GUTACHTEN', '0', '0', '0', '16', '3', '0', '0', NULL, '2025-10-19 08:13:53'),
('16', '17', '3.1', 'ALLGEMEINE GRUNDSÄTZE', '0', '0', '8', '0', NULL, '2025-10-19 08:13:53'), ('16', 'ALLGEMEINE GRUNDSÄTZE', '0', '0', '8', '17', '3.1', '0', '0', NULL, '2025-10-19 08:13:53'),
('17', '18', '3.2', 'ERMITTLUNG DER NUTZWERTE – ZUBEHÖRBEWERTUNG', '0', '0', '9', '0', NULL, '2025-10-19 08:13:53'), ('17', 'ERMITTLUNG DER NUTZWERTE – ZUBEHÖRBEWERTUNG', '0', '0', '9', '18', '3.2', '0', '0', NULL, '2025-10-19 08:13:53'),
('18', '19', '0', 'ZUBEHÖR', '0', '0', '10', '0', NULL, '2025-10-19 08:13:53'), ('18', 'ZUBEHÖR', '0', '0', '10', '19', '0', '0', '0', NULL, '2025-10-19 08:13:53'),
('19', '20', '3.21', 'TABELLE ZU + ABSCHLÄGE', '1', '5', '0', '0', NULL, '2025-10-19 08:13:53'), ('19', 'TABELLE ZU + ABSCHLÄGE', '1', '5', '0', '20', '3.21', '0', '0', NULL, '2025-10-19 08:13:53'),
('20', '21', '3.3', 'NUTZWERTBERECHNUNG', '0', '6', '0', '0', NULL, '2025-10-19 08:13:53'), ('20', 'NUTZWERTBERECHNUNG', '0', '6', '0', '21', '3.3', '0', '0', NULL, '2025-10-19 08:13:53'),
('21', '22', '3.4', 'ZUSAMMENSTELLUNG', '0', '7', '0', '0', NULL, '2025-10-19 08:13:53'), ('21', 'ZUSAMMENSTELLUNG', '0', '7', '0', '22', '3.4', '0', '0', NULL, '2025-10-19 08:13:53'),
('22', '23', '3.41', 'DIGITALE SIGNATUR', '0', '0', '0', '0', NULL, '2025-10-19 08:13:53'), ('22', 'DIGITALE SIGNATUR', '0', '0', '0', '23', '3.41', '0', '0', NULL, '2025-10-19 08:13:53'),
('23', '24', '3.5', 'ALLGEMEINFLÄCHEN', '0', '0', '0', '0', NULL, '2025-10-19 08:13:53'), ('23', 'ALLGEMEINFLÄCHEN', '0', '0', '0', '24', '3.5', '0', '0', NULL, '2025-10-19 08:13:53'),
('24', '25', '4', 'PARIFIZIERUNGSPLÄNE ', '0', '0', '0', '0', NULL, '2025-10-19 08:13:53'), ('24', 'PARIFIZIERUNGSPLÄNE ', '0', '0', '0', '25', '4', '0', '0', NULL, '2025-10-19 08:13:53'),
('25', '26', '5', 'ANHANG', '0', '0', '0', '0', NULL, '2025-10-19 08:13:53'), ('25', 'ANHANG', '0', '0', '0', '26', '5', '0', '0', NULL, '2025-10-19 08:13:53'),
('26', '27', '0', 'GRUNDBUCHAUSZUG ', '0', '0', '0', '0', NULL, '2025-10-19 08:13:53'), ('26', 'GRUNDBUCHAUSZUG ', '0', '0', '0', '27', '0', '0', '0', NULL, '2025-10-19 08:13:53'),
('27', '28', '0', 'BAUBESCHEID', '0', '0', '0', '0', NULL, '2025-10-19 08:13:53'), ('27', 'BAUBESCHEID', '0', '0', '0', '28', '0', '0', '0', NULL, '2025-10-19 08:13:53'),
('28', '29', '0', 'HAUSTECHNISCHE BESCHREIBUNG', '0', '0', '0', '0', NULL, '2025-10-19 08:13:53'), ('28', 'HAUSTECHNISCHE BESCHREIBUNG', '0', '0', '0', '29', '0', '0', '0', NULL, '2025-10-19 08:13:53'),
('29', '30', '0', 'NUTZFLÄCHENERMITTLUNGEN', '0', '0', '0', '0', NULL, '2025-10-19 08:13:53'); ('29', 'NUTZFLÄCHENERMITTLUNGEN', '0', '0', '0', '30', '0', '0', '0', NULL, '2025-10-19 08:13:53');
"; ";
DB::unprepared($sql); DB::unprepared($sql);
} }