This commit is contained in:
salam committed 2025-11-16 13:08:51 +01:00
1 parent 17ed7b7f8f
commit c9cac0903a
23 files changed
+120 -4429

No files matched your search

+9 -9
View File
@@ -2,7 +2,7 @@
namespace App\Actions\Generate\Pdf; namespace App\Actions\Generate\Pdf;
use App\Actions\Generate\Pdf; use App\Actions\Generate\PdfGenerator;
use App\Actions\Generate\Utilities\Format; use App\Actions\Generate\Utilities\Format;
use Filament\Forms\Components\RichEditor\RichContentRenderer; use Filament\Forms\Components\RichEditor\RichContentRenderer;
@@ -12,11 +12,11 @@ class Deckblatt
{ {
// GUTACHTER // GUTACHTER
$html = '<div id="deckblatt-gutachter">'; $html = '<div id="deckblatt-gutachter">';
if (Pdf::$gutachter->logo && Pdf::$gutachter->logo_anzeigen) { if (PdfGenerator::$gutachter->logo && PdfGenerator::$gutachter->logo_anzeigen) {
$html .= '<div id="deckblatt-logo-gutachter" style="width:190mm; height: '.Pdf::$gutachter->logo_height.'mm; background-position: center '.Pdf::$gutachter->logo_align.'; background-image: url(\''.public_path().'/storage/'.Pdf::$gutachter->logo.'\');"></div>'; $html .= '<div id="deckblatt-logo-gutachter" style="width:190mm; height: '.PdfGenerator::$gutachter->logo_height.'mm; background-position: center '.PdfGenerator::$gutachter->logo_align.'; background-image: url(\''.public_path().'/storage/'.PdfGenerator::$gutachter->logo.'\');"></div>';
} }
if (Pdf::$gutachter->referenz_formatting && Pdf::$gutachter->text_anzeigen) { if (PdfGenerator::$gutachter->referenz_formatting && PdfGenerator::$gutachter->text_anzeigen) {
$str = RichContentRenderer::make(Pdf::$gutachter->referenz_formatting)->toHtml(); $str = RichContentRenderer::make(PdfGenerator::$gutachter->referenz_formatting)->toHtml();
$html .= Format::fix_str($str); $html .= Format::fix_str($str);
} }
$html .= '</div>'; $html .= '</div>';
@@ -34,12 +34,12 @@ class Deckblatt
// AUFTRAGGEBER // AUFTRAGGEBER
$html .= '<div id="deckblatt-auftraggeber">'; $html .= '<div id="deckblatt-auftraggeber">';
if (Pdf::$auftraggeber->logo && Pdf::$auftraggeber->logo_anzeigen) { if (PdfGenerator::$auftraggeber->logo && PdfGenerator::$auftraggeber->logo_anzeigen) {
$html .= '<div id="deckblatt-logo-auftraggeber" style="background-image: url(\''.public_path().'/storage/'.Pdf::$auftraggeber->logo.'\');"></div>'; $html .= '<div id="deckblatt-logo-auftraggeber" style="background-image: url(\''.public_path().'/storage/'.PdfGenerator::$auftraggeber->logo.'\');"></div>';
} }
if (Pdf::$auftraggeber->referenz_formatting && Pdf::$auftraggeber->text_anzeigen) { if (PdfGenerator::$auftraggeber->referenz_formatting && PdfGenerator::$auftraggeber->text_anzeigen) {
$str = RichContentRenderer::make(Pdf::$auftraggeber->referenz_formatting)->toHtml(); $str = RichContentRenderer::make(PdfGenerator::$auftraggeber->referenz_formatting)->toHtml();
$html .= Format::fix_str($str); $html .= Format::fix_str($str);
} }
$html .= '</div>'; $html .= '</div>';
@@ -2,12 +2,12 @@
namespace App\Actions\Generate\Pdf; namespace App\Actions\Generate\Pdf;
use App\Actions\Generate\Pdf; use App\Actions\Generate\PdfGenerator;
class DigitaleSignatur class DigitaleSignatur
{ {
public static function load($projekte_id) public static function load($projekte_id)
{ {
return '<div style="margin-right:2cm; height:4cm; background-repeat: no-repeat; background-position: right; background-size: contain; background-image: url(\''.public_path().'/storage/'.Pdf::$gutachter->digitale_signatur_stempel.'\');"></div>'; return '<div style="margin-right:2cm; height:4cm; background-repeat: no-repeat; background-position: right; background-size: contain; background-image: url(\''.public_path().'/storage/'.PdfGenerator::$gutachter->digitale_signatur_stempel.'\');"></div>';
} }
} }
+3 -1
View File
@@ -11,7 +11,9 @@ class Inhalt
public static function load($projekte_id) public static function load($projekte_id)
{ {
$html = '<table class="inhalt">'; $html = '<table class="inhalt">';
$inhalte = ProjektInhaltsverzeichnis::where('projekte_id', $projekte_id)->orderBy('sort')->get(); $inhalte = ProjektInhaltsverzeichnis::where('projekte_id', $projekte_id)
->whereIn('part', ['standard', 'nutzwerte'])
->orderBy('sort')->get();
foreach ($inhalte as $inhalt) { foreach ($inhalte as $inhalt) {
if ($inhalt->name != 'INHALTSVERZEICHNIS' && $inhalt->ueberschrift_verbergen) { if ($inhalt->name != 'INHALTSVERZEICHNIS' && $inhalt->ueberschrift_verbergen) {
$html .= '<tr>'; $html .= '<tr>';
+6 -6
View File
@@ -2,7 +2,7 @@
namespace App\Actions\Generate\Pdf; namespace App\Actions\Generate\Pdf;
use App\Actions\Generate\Pdf; use App\Actions\Generate\PdfGenerator;
use App\Models\ProjektPlatzhalter; use App\Models\ProjektPlatzhalter;
use Carbon\Carbon; use Carbon\Carbon;
@@ -16,12 +16,12 @@ class Platzhalter
public static function load($projekte_id) public static function load($projekte_id)
{ {
$platzhalter = ProjektPlatzhalter::where('projekte_id', $projekte_id)->pluck('platzhaltertext', 'platzhalter')->toArray(); $platzhalter = ProjektPlatzhalter::where('projekte_id', $projekte_id)->pluck('platzhaltertext', 'platzhalter')->toArray();
$platzhalter['###INTERNER_NAME###'] = Pdf::$projekt->interner_name; $platzhalter['###INTERNER_NAME###'] = PdfGenerator::$projekt->interner_name;
$platzhalter['###OFFIZIELLER_NAME###'] = Pdf::$projekt->offizieller_name; $platzhalter['###OFFIZIELLER_NAME###'] = PdfGenerator::$projekt->offizieller_name;
$platzhalter['###ORT###'] = Pdf::$projekt->ort; $platzhalter['###ORT###'] = PdfGenerator::$projekt->ort;
$platzhalter['###FIRMA###'] = Pdf::$gutachter->company; $platzhalter['###FIRMA###'] = PdfGenerator::$gutachter->company;
$dt = Carbon::create(Pdf::$projekt->erstellung); $dt = Carbon::create(PdfGenerator::$projekt->erstellung);
$platzhalter['###DATUM###'] = $dt->isoFormat('D. MMMM YYYY'); $platzhalter['###DATUM###'] = $dt->isoFormat('D. MMMM YYYY');
return $platzhalter; return $platzhalter;
@@ -24,7 +24,7 @@ use Illuminate\Support\Facades\Storage;
use Mpdf\HTMLParserMode; use Mpdf\HTMLParserMode;
use Mpdf\Mpdf; use Mpdf\Mpdf;
class Pdf class PdfGenerator
{ {
public static $projekt; public static $projekt;
@@ -34,9 +34,8 @@ class Pdf
public static $zusammenstellung = []; public static $zusammenstellung = [];
public static function make($projekte_id, $type, $mode) public static function make($projekte_id, $part)
{ {
self::$projekt = Projekte::where('id', $projekte_id)->first(); self::$projekt = Projekte::where('id', $projekte_id)->first();
self::$gutachter = Gutachter::where('id', self::$projekt->gutachter_id)->first(); self::$gutachter = Gutachter::where('id', self::$projekt->gutachter_id)->first();
@@ -51,19 +50,12 @@ class Pdf
]; ];
$filepath = Storage::disk('public')->path("/download/$projekte_id/"); $filepath = Storage::disk('public')->path("/download/$projekte_id/");
$filename = \ucfirst($type).' '.preg_replace("'[^0-9a-zA-Z]'", '', self::$projekt->interner_name).'.pdf'; $filename = \ucfirst($part).' '.preg_replace("'[^0-9a-zA-Z]'", '', self::$projekt->interner_name).'.pdf';
// if ($type == 'nutzwerte') {
// if ($mode == 'new') {
// Projekte::where('id', $projekte_id)->update(['pdf_nutzwerte_name' => '', 'pdf_nutzwerte_status' => 1]);
// } else {
// return Response::download($file, $filename, $headers);
// }
// }
if (! File::isDirectory($filepath)) { if (! File::isDirectory($filepath)) {
File::makeDirectory($filepath, 0777, true, true); File::makeDirectory($filepath, 0777, true, true);
} }
$file = $filepath.$filename; $file = $filepath.$filename;
ob_start(); ob_start();
@@ -81,21 +73,28 @@ class Pdf
'margin_footer' => 0, 'margin_footer' => 0,
] ]
); );
$stylesheet = file_get_contents(__DIR__.'/../../../resources/css/pdf-download.css'); $stylesheet = file_get_contents(__DIR__.'/../../../resources/css/pdf-download.css');
$mpdf->WriteHTML($stylesheet, HTMLParserMode::HEADER_CSS); $mpdf->WriteHTML($stylesheet, HTMLParserMode::HEADER_CSS);
$mpdf->SetTitle($filename); $mpdf->SetTitle($filename);
$mpdf->SetCreator('nutzwerte.at'); $mpdf->SetCreator('nutzwerte.at');
$mpdf->SetAuthor(self::$gutachter->title.' '.self::$gutachter->gender.' '.self::$gutachter->name); $mpdf->SetAuthor(self::$gutachter->title.' '.self::$gutachter->gender.' '.self::$gutachter->name);
$inhaltesverzeichnis = ProjektInhaltsverzeichnis::where('projekte_id', $projekte_id)->where('part', $type)->orderBy('sort')->get(); $inhaltesverzeichnis = ProjektInhaltsverzeichnis::where('projekte_id', $projekte_id)->where('part', $part)->orderBy('sort')->get();
// dd($inhaltesverzeichnis);
$platzhalter = Platzhalter::load($projekte_id); $platzhalter = Platzhalter::load($projekte_id);
foreach ($inhaltesverzeichnis as $inhalt) { foreach ($inhaltesverzeichnis as $inhalt) {
if ($inhalt->neue_seite) { if ($inhalt->neue_seite) {
if ($part == 'nutzwerte') {
$mpdf->AddPage('P', '', self::$projekt->nutzwerte_startseite);
} else {
$mpdf->AddPage(); $mpdf->AddPage();
} }
}
$html = ''; $html = '';
$html = Ueberschrift::load($inhalt); $html = Ueberschrift::load($inhalt);
@@ -150,11 +149,18 @@ class Pdf
} }
if ($inhalt->seitenzahl_anzeige == 1) { if ($inhalt->seitenzahl_anzeige == 1) {
$mpdf->SetHTMLFooter('<div class="center">Seite {PAGENO}<br><br></div>'); $mpdf->SetHTMLFooter('<div class="center">Seite {PAGENO} <br><br></div>');
} }
if ($html) { if ($html) {
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
} }
ProjektInhaltsverzeichnis::where('id', $inhalt->id)->update(['seite' => $mpdf->page]);
}
if ($part == 'standard') {
Projekte::where('id', $projekte_id)->update(['nutzwerte_startseite' => $mpdf->page]);
} }
ob_clean(); ob_clean();
@@ -2,7 +2,7 @@
namespace App\Actions\Generate\Tabellen; namespace App\Actions\Generate\Tabellen;
use App\Actions\Generate\Pdf; use App\Actions\Generate\PdfGenerator;
use App\Actions\Generate\Utilities\Html; use App\Actions\Generate\Utilities\Html;
use App\Models\ProjektMethode; use App\Models\ProjektMethode;
use App\Models\ProjektObjekte; use App\Models\ProjektObjekte;
@@ -142,7 +142,7 @@ class Nutzwertberechnung
$html .= Html::table_footer($summe_nutzwert); $html .= Html::table_footer($summe_nutzwert);
$html .= '</table>'; $html .= '</table>';
Pdf::$zusammenstellung[$komponente['id']] = $summe_nutzwert; PdfGenerator::$zusammenstellung[$komponente['id']] = $summe_nutzwert;
} }
$objekte = self::laod_project(true); $objekte = self::laod_project(true);
@@ -175,7 +175,7 @@ class Nutzwertberechnung
$html .= Html::table_footer($nutzwert, 8); $html .= Html::table_footer($nutzwert, 8);
$html .= '</table>'; $html .= '</table>';
Pdf::$zusammenstellung[$komponente['id']] = $nutzwert; PdfGenerator::$zusammenstellung[$komponente['id']] = $nutzwert;
} }
return $html; return $html;
@@ -2,7 +2,7 @@
namespace App\Actions\Generate\Tabellen; namespace App\Actions\Generate\Tabellen;
use App\Actions\Generate\Pdf; use App\Actions\Generate\PdfGenerator;
use App\Actions\Generate\Utilities\Format; use App\Actions\Generate\Utilities\Format;
use App\Actions\Generate\Utilities\Html; use App\Actions\Generate\Utilities\Html;
use App\Models\ProjektObjekte; use App\Models\ProjektObjekte;
@@ -15,7 +15,7 @@ class Zusammenstellung
$summe_prozent = []; $summe_prozent = [];
$summe_nutzwert = []; $summe_nutzwert = [];
$nutzwert_gesammt = array_sum(Pdf::$zusammenstellung); $nutzwert_gesammt = array_sum(PdfGenerator::$zusammenstellung);
$html = Html::table_header(['Top', 'Geschoß', 'Orientierung', 'Typ', 'Nutzwert', 'x2 *', '%']); $html = Html::table_header(['Top', 'Geschoß', 'Orientierung', 'Typ', 'Nutzwert', 'x2 *', '%']);
@@ -35,7 +35,7 @@ class Zusammenstellung
$html .= Html::td($objekt->orientierung?->name, 'center br bb'); $html .= Html::td($objekt->orientierung?->name, 'center br bb');
$html .= Html::td($objekt?->type, 'center br bb'); $html .= Html::td($objekt?->type, 'center br bb');
$nutzwert = Pdf::$zusammenstellung[$objekt->id]; $nutzwert = PdfGenerator::$zusammenstellung[$objekt->id];
$summe_nutzwert[] = $nutzwert; $summe_nutzwert[] = $nutzwert;
$html .= Html::td(round($nutzwert), 'center bb br'); $html .= Html::td(round($nutzwert), 'center bb br');
@@ -2,7 +2,7 @@
namespace App\Actions\Generate\Utilities; namespace App\Actions\Generate\Utilities;
use App\Actions\Generate\Pdf; use App\Actions\Generate\PdfGenerator;
use App\Models\ProjektPlatzhalter; use App\Models\ProjektPlatzhalter;
class Platzhalter class Platzhalter
@@ -10,10 +10,10 @@ class Platzhalter
public static function load($projekte_id) public static function load($projekte_id)
{ {
$platzhalter = ProjektPlatzhalter::where('projekte_id', $projekte_id)->pluck('platzhaltertext', 'platzhalter')->toArray(); $platzhalter = ProjektPlatzhalter::where('projekte_id', $projekte_id)->pluck('platzhaltertext', 'platzhalter')->toArray();
$platzhalter['###INTERNER_NAME###'] = Pdf::$projekt->interner_name; $platzhalter['###INTERNER_NAME###'] = PdfGenerator::$projekt->interner_name;
$platzhalter['###OFFIZIELLER_NAME###'] = Pdf::$projekt->offizieller_name; $platzhalter['###OFFIZIELLER_NAME###'] = PdfGenerator::$projekt->offizieller_name;
$platzhalter['###ORT###'] = Pdf::$projekt->ort; $platzhalter['###ORT###'] = PdfGenerator::$projekt->ort;
$platzhalter['###DATUM###'] = Pdf::$projekt->erstellung; $platzhalter['###DATUM###'] = PdfGenerator::$projekt->erstellung;
return $platzhalter; return $platzhalter;
} }
@@ -163,22 +163,28 @@ class EditProjekte extends EditRecord
->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false) ->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false)
->label('Standard Texte') ->label('Standard Texte')
->icon('icon-pdf') ->icon('icon-pdf')
->url(fn ($record) => route('pdf', ['record' => $record, 'type' => 'standard', 'mode' => 'new'])) ->url(fn ($record) => route('pdf', ['record' => $record, 'part' => 'standard']))
->openUrlInNewTab(), ->openUrlInNewTab(),
/** /**
* NUTZWERTE * NUTZWERTE
*/ */
Action::make('make-nutzwerte') Action::make('make-nutzwerte-file')
->hidden(fn ($record): bool => (! $record->bezahlt_am || $record->pdf_nutzwerte_status || ! $record->evaluation_gutachten) ? true : false) ->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false)
->label('Nutzwerte Berechnen') ->label('Nutzwertberechnung')
->icon('phosphor-calculator')
->url(fn ($record) => route('pdf', ['record' => $record, 'type' => 'nutzwerte', 'mode' => 'new']))
->openUrlInNewTab(),
Action::make('make-nutzwerte')
->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->pdf_nutzwerte_status || ! $record->evaluation_gutachten) ? true : false)
->label('Nutzwerte')
->icon('icon-pdf') ->icon('icon-pdf')
->url(fn ($record) => route('pdf', ['record' => $record, 'type' => 'nutzwerte', 'mode' => 'file'])) ->action(function ($record) {
if (! $record->nutzwerte_startseite) {
Notification::make()
->title('Nutzwerte Download')
->info()
->icon('heroicon-o-exclamation-triangle')
->duration(10000)
->body('Um die aktuelle Seitenzahl zu generieren bitte zuerst "Standart Texte" laden.')
->send();
} else {
return redirect()->route('pdf', ['record' => $record, 'part' => 'nutzwerte']);
}
})
->openUrlInNewTab(), ->openUrlInNewTab(),
/** /**
* PARAGRAPH 6 * PARAGRAPH 6
@@ -187,7 +193,7 @@ class EditProjekte extends EditRecord
->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false) ->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false)
->label('Auszug gem. §6 ') ->label('Auszug gem. §6 ')
->icon('icon-pdf') ->icon('icon-pdf')
->url(fn ($record) => route('pdf', ['record' => $record, 'type' => 'paragraph', 'mode' => 'new'])) ->url(fn ($record) => route('pdf', ['record' => $record, 'part' => 'paragraph']))
->openUrlInNewTab(), ->openUrlInNewTab(),
])->label('Pdf') ])->label('Pdf')
->icon('phosphor-download') ->icon('phosphor-download')
@@ -201,13 +207,13 @@ class EditProjekte extends EditRecord
Action::make('excel-nutzwerte') Action::make('excel-nutzwerte')
->label('Nutzfläche & Nutzwerte') ->label('Nutzfläche & Nutzwerte')
->icon('icon-excel') ->icon('icon-excel')
->url(fn ($record) => route('excel', ['record' => $record, 'type' => 'excel-nutzwerte'])) ->url(fn ($record) => route('excel', ['record' => $record, 'part' => 'excel-nutzwerte']))
->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false) ->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false)
->openUrlInNewTab(), ->openUrlInNewTab(),
Action::make('excel-aufstellung') Action::make('excel-aufstellung')
->label('Nutzflächen Aufstellung') ->label('Nutzflächen Aufstellung')
->icon('icon-excel') ->icon('icon-excel')
->url(fn ($record) => route('excel', ['record' => $record, 'type' => 'excel-aufstellung'])) ->url(fn ($record) => route('excel', ['record' => $record, 'part' => 'excel-aufstellung']))
->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false) ->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false)
->openUrlInNewTab(), ->openUrlInNewTab(),
])->label('Excel') ])->label('Excel')
@@ -85,17 +85,11 @@ class ProjekteForm
RichEditor::make('beschreibung') RichEditor::make('beschreibung')
->extraInputAttributes(['style' => 'min-height: 20rem; max-height: 50vh; overflow-y: auto;']) ->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', 'textColor', 'clearFormatting'],
['alignStart', 'alignCenter', 'alignEnd', 'horizontalRule'], ['alignStart', 'alignCenter', 'alignEnd'],
['bulletList', 'orderedList', 'table'], ['bulletList', 'orderedList', 'table'],
['undo', 'redo'], ['undo', 'redo'],
])->floatingToolbars([ ])->floatingToolbars([
'paragraph' => [
'bold', 'italic', 'underline', 'strike', 'subscript', 'superscript',
],
'heading' => [
'h1', 'h2', 'h3',
],
'table' => [ 'table' => [
'tableAddColumnBefore', 'tableAddColumnAfter', 'tableDeleteColumn', 'tableAddColumnBefore', 'tableAddColumnAfter', 'tableDeleteColumn',
'tableAddRowBefore', 'tableAddRowAfter', 'tableDeleteRow', 'tableAddRowBefore', 'tableAddRowAfter', 'tableDeleteRow',
+1
View File
@@ -21,6 +21,7 @@ class ProjektAllgemeinflaechen extends Model
Projekte::where('id', $model['projekte_id'])->update([ Projekte::where('id', $model['projekte_id'])->update([
'evaluation_gutachten' => false, 'evaluation_gutachten' => false,
'pdf_nutzwerte_status' => false, 'pdf_nutzwerte_status' => false,
'nutzwerte_startseite' => false,
]); ]);
}); });
} }
+1
View File
@@ -22,6 +22,7 @@ class ProjektMethode extends Model
Projekte::where('id', $model['projekte_id'])->update([ Projekte::where('id', $model['projekte_id'])->update([
'evaluation_gutachten' => false, 'evaluation_gutachten' => false,
'pdf_nutzwerte_status' => false, 'pdf_nutzwerte_status' => false,
'nutzwerte_startseite' => false,
]); ]);
}); });
} }
+1
View File
@@ -36,6 +36,7 @@ class ProjektObjekte extends Model
Projekte::where('id', $model['projekte_id'])->update([ Projekte::where('id', $model['projekte_id'])->update([
'evaluation_gutachten' => false, 'evaluation_gutachten' => false,
'pdf_nutzwerte_status' => false, 'pdf_nutzwerte_status' => false,
'nutzwerte_startseite' => false,
]); ]);
}); });
} }
+1
View File
@@ -26,6 +26,7 @@ class ProjektObjekteImDetail extends Model
Projekte::where('id', $model['projekte_id'])->update([ Projekte::where('id', $model['projekte_id'])->update([
'evaluation_gutachten' => false, 'evaluation_gutachten' => false,
'pdf_nutzwerte_status' => false, 'pdf_nutzwerte_status' => false,
'nutzwerte_startseite' => false,
]); ]);
}); });
} }
+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',
-1161
View File
File diff suppressed because it is too large. Load diff
+22 -22
View File
@@ -70,9 +70,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 (
@@ -97,7 +97,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 (
@@ -105,14 +105,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 (
@@ -120,23 +120,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/Helps/HelpResource.php' => 'App\\Filament\\Resources\\Helps\\HelpResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Helps/HelpResource.php' => 'App\\Filament\\Resources\\Helps\\HelpResource',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Inhaltsverzeichnis/InhaltsverzeichnisResource.php' => 'App\\Filament\\Resources\\Inhaltsverzeichnis\\InhaltsverzeichnisResource', '/Users/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/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 (
@@ -149,7 +149,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 (
-3171
View File
File diff suppressed because it is too large. Load diff
@@ -22,6 +22,7 @@ return new class extends Migration
$table->text('beschreibung')->nullable(); $table->text('beschreibung')->nullable();
$table->string('erstellung')->nullable(); $table->string('erstellung')->nullable();
$table->string('status')->default('entwurf'); $table->string('status')->default('entwurf');
$table->integer('nutzwerte_startseite')->nullable()->default(0);
$table->string('pdf_nutzwerte_name')->nullable(); $table->string('pdf_nutzwerte_name')->nullable();
$table->boolean('pdf_nutzwerte_status')->default(0); $table->boolean('pdf_nutzwerte_status')->default(0);
$table->boolean('evaluation_gutachten')->default(0); $table->boolean('evaluation_gutachten')->default(0);
+2 -2
View File
@@ -12,9 +12,9 @@ class TestProjektSeeder extends Seeder
*/ */
public function run(): void public function run(): void
{ {
$sql = "INSERT INTO `projektes` (`id`, `konto_id`, `auftraggeber_id`, `gutachter_id`, `interner_name`, `offizieller_name`, `ort`, `beschreibung`, `erstellung`, `status`, `pdf_nutzwerte_name`, `pdf_nutzwerte_status`, `evaluation_gutachten`, `bezahlt_am`, `created_at`, `updated_at`, `deleted_at`) $sql = "INSERT INTO `projektes` (`id`, `konto_id`, `auftraggeber_id`, `gutachter_id`, `interner_name`, `offizieller_name`, `ort`, `beschreibung`, `erstellung`, `status`, `nutzwerte_startseite`, `pdf_nutzwerte_name`, `pdf_nutzwerte_status`, `evaluation_gutachten`, `bezahlt_am`, `created_at`, `updated_at`, `deleted_at`)
VALUES VALUES
('3', '1', '1', '1', 'P386 nht BH01', 'Wohnanlage Bad Häring', 'Innsbruck', '<p>Übermittlung pln von scharmer wurnig - zuständig klaus mayr am 12.9.2022 gibt einen Baubescheid vom 14.6.2022 wird aber eine Änderungseineichung geben.<br><u>Flächenwidmung </u><br>VW - Vorbehaltsfläche für geförderten Wohnbau §52a<br>geplante örtliche Strasse an der Nordwestlichen Grundstücksgrenze (lt Mayr - Rad-&amp;Gehweg)§53(1) UND nördlichen Grundstücksgrenze (Strassenverbreiterung zukünftig) <u>örtliches Raumordnungskonzept</u><br>Verkehrsweg -  Erforderlicher Neubau - an nordwestlicher Grundstücksgrenze</p>', '2025-07-15', 'entwurf', NULL, '0', '1', '2025-11-14 10:01:29', '2025-11-14 10:01:05', '2025-11-14 11:27:41', NULL); ('3', '1', '1', '1', 'P386 nht BH01', 'Wohnanlage Bad Häring', 'Innsbruck', '<p>Übermittlung pln von scharmer wurnig - zuständig klaus mayr am 12.9.2022 gibt einen Baubescheid vom 14.6.2022 wird aber eine Änderungseineichung geben.<br><u>Flächenwidmung </u><br>VW - Vorbehaltsfläche für geförderten Wohnbau §52a<br>geplante örtliche Strasse an der Nordwestlichen Grundstücksgrenze (lt Mayr - Rad-&amp;Gehweg)§53(1) UND nördlichen Grundstücksgrenze (Strassenverbreiterung zukünftig) <u>örtliches Raumordnungskonzept</u><br>Verkehrsweg -  Erforderlicher Neubau - an nordwestlicher Grundstücksgrenze</p>', '2025-07-15', 'entwurf', '0', NULL, '0', '1', '2025-11-14 10:01:29', '2025-11-14 10:01:05', '2025-11-14 11:27:41', NULL);
"; ";
DB::unprepared($sql); DB::unprepared($sql);
+8
View File
@@ -2265,6 +2265,14 @@
"dev": true, "dev": true,
"license": "0BSD" "license": "0BSD"
}, },
"node_modules/undici-types": {
"version": "7.16.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
"integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
"dev": true,
"license": "MIT",
"optional": true
},
"node_modules/vite": { "node_modules/vite": {
"version": "7.1.5", "version": "7.1.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-7.1.5.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.5.tgz",
+1 -1
View File
@@ -1 +1 @@
/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/public /Users/salam/Sites/nutzwerte_fi4/storage/app/public
+4 -2
View File
@@ -2,6 +2,7 @@
use App\Actions\Generate\Excel; use App\Actions\Generate\Excel;
use App\Actions\Generate\Pdf; use App\Actions\Generate\Pdf;
use App\Actions\Generate\PdfGenerator;
use Filament\Http\Middleware\Authenticate; use Filament\Http\Middleware\Authenticate;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
@@ -18,5 +19,6 @@ Route::get('/impressum', function () {
return view('pages.impressum'); return view('pages.impressum');
}); });
Route::middleware(Authenticate::class)->get('/app/pdf/{record}/{type}/{mode}', [Pdf::class, 'make'])->name('pdf'); // Route::middleware(Authenticate::class)->get('/app/pdf/{record}/{part}', [Pdf::class, 'make'])->name('pdf');
Route::middleware(Authenticate::class)->get('/app/excel/{record}/{type}', [Excel::class, 'make'])->name('excel'); Route::middleware(Authenticate::class)->get('/app/pdf/{record}/{part}', [PdfGenerator::class, 'make'])->name('pdf');
Route::middleware(Authenticate::class)->get('/app/excel/{record}/{part}', [Excel::class, 'make'])->name('excel');