pdf wip
This commit is contained in:
1 parent
c64634b3a1
commit
523e395064
36 files changed
+431
-635
No files matched your search
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Actions\Create;
|
namespace App\Actions\Create;
|
||||||
|
|
||||||
|
use App\Models\Projekte;
|
||||||
use App\Models\ProjektInhaltsverzeichnis;
|
use App\Models\ProjektInhaltsverzeichnis;
|
||||||
use App\Models\ProjektPlatzhalter;
|
use App\Models\ProjektPlatzhalter;
|
||||||
|
|
||||||
@@ -22,15 +23,16 @@ class CreatePlatzhalter
|
|||||||
ProjektPlatzhalter::where('projekte_id', $record->id)->update(['controll' => true]);
|
ProjektPlatzhalter::where('projekte_id', $record->id)->update(['controll' => true]);
|
||||||
|
|
||||||
foreach ($_platzhalter as $platzhalter) {
|
foreach ($_platzhalter as $platzhalter) {
|
||||||
$result = ProjektPlatzhalter::where('projekte_id', $record->id)->where('platzhalter', $platzhalter)->get();
|
ProjektPlatzhalter::updateOrCreate(
|
||||||
if ($result->count() == 0) {
|
['projekte_id' => $record->id, 'platzhalter' => $platzhalter],
|
||||||
$tmp = new ProjektPlatzhalter;
|
['controll' => false]
|
||||||
$tmp->projekte_id = $record->id;
|
);
|
||||||
$tmp->platzhalter = $platzhalter;
|
|
||||||
$tmp->controll = false;
|
|
||||||
$tmp->save();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
ProjektPlatzhalter::where('projekte_id', $record->id)->where('controll', true)->delete();
|
ProjektPlatzhalter::where('projekte_id', $record->id)->where('controll', true)->delete();
|
||||||
|
|
||||||
|
Projekte::where('id', $record->id)->update([
|
||||||
|
'evaluation_gutachten' => false,
|
||||||
|
'pdf_nutzwerte_status' => false,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -12,39 +12,34 @@ class CreateProjektInhaltsverzeichnis
|
|||||||
{
|
{
|
||||||
ProjektInhaltsverzeichnis::where('projekte_id', $record->id)->delete();
|
ProjektInhaltsverzeichnis::where('projekte_id', $record->id)->delete();
|
||||||
|
|
||||||
$inhaltsverzeichnis = Inhaltsverzeichnis::get();
|
$inhaltsverzeichnis = Inhaltsverzeichnis::orderBy('sort')->get();
|
||||||
$part = 1;
|
|
||||||
foreach ($inhaltsverzeichnis as $inhalt) {
|
foreach ($inhaltsverzeichnis as $key => $value) {
|
||||||
|
|
||||||
|
$key++;
|
||||||
|
|
||||||
$textblock = '';
|
$textblock = '';
|
||||||
if ($inhalt->textblock_id > 0) {
|
if ($value->textblock_id > 0) {
|
||||||
$textblock = Textblock::where('id', $inhalt->textblock_id)->pluck('textblock')->first();
|
$textblock = Textblock::where('id', $value->textblock_id)->pluck('textblock')->first();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($inhalt->tabellen_id == 5) {
|
$inhalt = new ProjektInhaltsverzeichnis;
|
||||||
$part = 2;
|
$inhalt->projekte_id = $record->id;
|
||||||
}
|
$inhalt->sort = $key;
|
||||||
|
$inhalt->ordnungszahl = $value->ordnungszahl;
|
||||||
|
$inhalt->name = $value->name;
|
||||||
|
$inhalt->name2 = $value->name2;
|
||||||
|
$inhalt->ueberschrift_anzeigen = $value->ueberschrift_anzeigen;
|
||||||
|
$inhalt->tabellen_id = $value->tabellen_id;
|
||||||
|
$inhalt->textblock_id = $value->textblock_id;
|
||||||
|
$inhalt->part = $value->part;
|
||||||
|
$inhalt->seite = $value->seite;
|
||||||
|
$inhalt->neue_seite = $value->neue_seite;
|
||||||
|
$inhalt->seitenzahl_anzeige = $value->seitenzahl_anzeige;
|
||||||
|
$inhalt->no_edit = $value->no_edit;
|
||||||
|
$inhalt->textblock = $textblock;
|
||||||
|
$inhalt->save();
|
||||||
|
|
||||||
ProjektInhaltsverzeichnis::updateOrCreate(
|
|
||||||
[
|
|
||||||
'projekte_id' => $record->id,
|
|
||||||
'name' => $inhalt->name,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'sort' => $inhalt->sort,
|
|
||||||
'ordnungszahl' => $inhalt->ordnungszahl,
|
|
||||||
'name' => $inhalt->name,
|
|
||||||
'name2' => $inhalt->name2,
|
|
||||||
'ueberschrift_anzeigen' => $inhalt->ueberschrift_anzeigen,
|
|
||||||
'tabellen_id' => $inhalt->tabellen_id,
|
|
||||||
'textblock_id' => $inhalt->textblock_id,
|
|
||||||
'part' => $part,
|
|
||||||
'seite' => $inhalt->seite,
|
|
||||||
'neue_seite' => $inhalt->neue_seite,
|
|
||||||
'seitenzahl_anzeige' => $inhalt->seitenzahl_anzeige,
|
|
||||||
'no_edit' => $inhalt->no_edit,
|
|
||||||
'textblock' => $textblock,
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Actions\Download;
|
|
||||||
|
|
||||||
use App\Actions\Generate\GenerateExcel;
|
|
||||||
use App\Models\Projekt;
|
|
||||||
use Illuminate\Support\Facades\File;
|
|
||||||
use Illuminate\Support\Facades\Response;
|
|
||||||
use Illuminate\Support\Facades\Storage;
|
|
||||||
|
|
||||||
class Excel
|
|
||||||
{
|
|
||||||
public function download($projekts_id, $mode)
|
|
||||||
{
|
|
||||||
if ($mode == 'new') {
|
|
||||||
Projekt::where('id', $projekts_id)->update(['excel_nutzwerte' => '', 'excel_nutzwerte_ok' => '0']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$projekt = Projekt::where('id', $projekts_id)->first()->toArray();
|
|
||||||
$filepath = Storage::disk('public')->path("/download/$projekts_id/excel/");
|
|
||||||
|
|
||||||
if ($projekt['excel_nutzwerte_ok'] == 0) {
|
|
||||||
|
|
||||||
$filename = preg_replace("'[^0-9a-zA-Z]'", '', $projekt['intname']).'.xlsx';
|
|
||||||
|
|
||||||
if (! File::isDirectory($filepath)) {
|
|
||||||
File::makeDirectory($filepath, 0777, true, true);
|
|
||||||
}
|
|
||||||
$file = $filepath.$filename;
|
|
||||||
|
|
||||||
GenerateExcel::generate($file, $projekts_id);
|
|
||||||
|
|
||||||
Projekt::where('id', $projekts_id)->update(['excel_nutzwerte' => $filename, 'excel_nutzwerte_ok' => '1']);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
$filename = $projekt['excel_nutzwerte'];
|
|
||||||
$file = $filepath.$filename;
|
|
||||||
}
|
|
||||||
|
|
||||||
$headers = [
|
|
||||||
'Content-Type: application/vnd.ms-excel',
|
|
||||||
'Content-Disposition: attachment;filename="'.$filename.'"',
|
|
||||||
'Cache-Control: max-age=0',
|
|
||||||
'Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT',
|
|
||||||
'Cache-Control: cache, must-revalidate',
|
|
||||||
'Pragma: public',
|
|
||||||
];
|
|
||||||
|
|
||||||
return Response::download($file, $projekt['name'], $headers);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Actions\Download;
|
|
||||||
|
|
||||||
use App\Actions\Generate\MakeGutachten;
|
|
||||||
use App\Models\Projekte;
|
|
||||||
use Illuminate\Support\Facades\File;
|
|
||||||
use Illuminate\Support\Facades\Response;
|
|
||||||
use Illuminate\Support\Facades\Storage;
|
|
||||||
|
|
||||||
class Gutachten
|
|
||||||
{
|
|
||||||
public function download($projekte_id, $mode)
|
|
||||||
{
|
|
||||||
if ($mode == 'new') {
|
|
||||||
Projekte::where('id', $projekte_id)->update(['pdf_gutachten_name' => '', 'pdf_gutachten_status' => '0']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$headers = [
|
|
||||||
'Content-Type: application/pdf',
|
|
||||||
'Cache-Control: max-age=0',
|
|
||||||
'Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT',
|
|
||||||
'Cache-Control: cache, must-revalidate',
|
|
||||||
];
|
|
||||||
|
|
||||||
$projekt = Projekte::where('id', $projekte_id)->first()->toArray();
|
|
||||||
|
|
||||||
$filepath = Storage::disk('public')->path("/download/$projekte_id/");
|
|
||||||
|
|
||||||
$filename = 'Gutachten '.preg_replace("'[^0-9a-zA-Z]'", '', $projekt['interner_name']).'.pdf';
|
|
||||||
|
|
||||||
if (! File::isDirectory($filepath)) {
|
|
||||||
File::makeDirectory($filepath, 0777, true, true);
|
|
||||||
}
|
|
||||||
$file = $filepath.$filename;
|
|
||||||
|
|
||||||
MakeGutachten::generate($file, $projekte_id);
|
|
||||||
|
|
||||||
return Response::download($file, 'Gutachten '.$projekt['offizieller_name'], $headers);
|
|
||||||
|
|
||||||
// if ($projekt['pdf_standardtexte_ok'] == 0) {
|
|
||||||
|
|
||||||
// $filename = preg_replace("'[^0-9a-zA-Z]'", '', $projekt['interner_name']).'.pdf';
|
|
||||||
|
|
||||||
// if (! File::isDirectory($filepath)) {
|
|
||||||
// File::makeDirectory($filepath, 0777, true, true);
|
|
||||||
// }
|
|
||||||
// $file = $filepath.$filename;
|
|
||||||
|
|
||||||
// MakeGutachten::generate($file, $projekte_id);
|
|
||||||
|
|
||||||
// Projekt::where('id', $projekte_id)->update(['pdf_standardtexte' => $filename, 'pdf_standardtexte_ok' => 1]);
|
|
||||||
|
|
||||||
// return Response::download($file, $projekt['name'], $headers);
|
|
||||||
// } else {
|
|
||||||
|
|
||||||
// $filename = $projekt['pdf_standardtexte'];
|
|
||||||
|
|
||||||
// $file = $filepath.$filename;
|
|
||||||
|
|
||||||
// return Response::download($file, $projekt['name'], $headers);
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Actions\Download;
|
|
||||||
|
|
||||||
use App\Actions\Generate\MakeNutzwerte;
|
|
||||||
use App\Models\Projekte;
|
|
||||||
use Illuminate\Support\Facades\File;
|
|
||||||
use Illuminate\Support\Facades\Response;
|
|
||||||
use Illuminate\Support\Facades\Storage;
|
|
||||||
|
|
||||||
class Nutzwerte
|
|
||||||
{
|
|
||||||
public function download($projekte_id, $mode)
|
|
||||||
{
|
|
||||||
|
|
||||||
if ($mode == 'new') {
|
|
||||||
Projekte::where('id', $projekte_id)->update(['pdf_nutzwerte_name' => '', 'pdf_nutzwerte_status' => '0']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$headers = [
|
|
||||||
'Content-Type: application/pdf',
|
|
||||||
'Cache-Control: max-age=0',
|
|
||||||
'Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT',
|
|
||||||
'Cache-Control: cache, must-revalidate',
|
|
||||||
];
|
|
||||||
|
|
||||||
$projekt = Projekte::where('id', $projekte_id)->first()->toArray();
|
|
||||||
|
|
||||||
$filepath = Storage::disk('public')->path("/download/$projekte_id/");
|
|
||||||
|
|
||||||
$filename = 'Gutachten '.preg_replace("'[^0-9a-zA-Z]'", '', $projekt['interner_name']).'.pdf';
|
|
||||||
|
|
||||||
if (! File::isDirectory($filepath)) {
|
|
||||||
File::makeDirectory($filepath, 0777, true, true);
|
|
||||||
}
|
|
||||||
$file = $filepath.$filename;
|
|
||||||
|
|
||||||
MakeNutzwerte::generate($file, $projekte_id);
|
|
||||||
|
|
||||||
return Response::download($file, 'Nutzwert '.$projekt['offizieller_name'], $headers);
|
|
||||||
|
|
||||||
// if ($projekt['pdf_nutzwerte_status'] == 0) {
|
|
||||||
|
|
||||||
// $filename = preg_replace("'[^0-9a-zA-Z]'", '', $projekt['intname']).'.pdf';
|
|
||||||
|
|
||||||
// if (! File::isDirectory($filepath)) {
|
|
||||||
// File::makeDirectory($filepath, 0777, true, true);
|
|
||||||
// }
|
|
||||||
// $file = $filepath.$filename;
|
|
||||||
|
|
||||||
// GenerateNutzwerte::generate($file, $projekte_id);
|
|
||||||
|
|
||||||
// Projekte::where('id', $projekte_id)->update(['pdf_nutzwerte' => $filename, 'pdf_nutzwerte_ok' => '1']);
|
|
||||||
|
|
||||||
// return Response::download($file, $projekt['name'], $headers);
|
|
||||||
|
|
||||||
// } else {
|
|
||||||
|
|
||||||
// $filename = $projekt['pdf_nutzwerte_name'];
|
|
||||||
|
|
||||||
// $file = $filepath.$filename;
|
|
||||||
|
|
||||||
// return Response::download($file, $projekt['name'], $headers);
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Actions\Generate;
|
||||||
|
|
||||||
|
class Excel
|
||||||
|
{
|
||||||
|
public static function make($projekte_id, $type)
|
||||||
|
{
|
||||||
|
echo 'Excel'.PHP_EOL;
|
||||||
|
dd($type);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Actions\Generate\Gutachten;
|
|
||||||
|
|
||||||
use App\Actions\Generate\MakeGutachten;
|
|
||||||
use App\Actions\Generate\Utilities\Format;
|
|
||||||
use Filament\Forms\Components\RichEditor\RichContentRenderer;
|
|
||||||
|
|
||||||
class Deckblatt
|
|
||||||
{
|
|
||||||
public static function create($textblock)
|
|
||||||
{
|
|
||||||
// $table->boolean('logo_anzeigen')->default(0);
|
|
||||||
// $table->boolean('text_anzeigen')->default(0);
|
|
||||||
|
|
||||||
// GUTACHTER
|
|
||||||
$html = '<div id="deckblatt-gutachter">';
|
|
||||||
if (MakeGutachten::$gutachter->logo && MakeGutachten::$gutachter->logo_anzeigen) {
|
|
||||||
$html .= '<div id="deckblatt-logo-gutachter" style="background-position: center '.MakeGutachten::$gutachter->logo_align.'; background-image: url(\''.public_path().'/storage/'.MakeGutachten::$gutachter->logo.'\');"></div>';
|
|
||||||
}
|
|
||||||
if (MakeGutachten::$gutachter->referenz_formatting && MakeGutachten::$gutachter->text_anzeigen) {
|
|
||||||
$str = RichContentRenderer::make(MakeGutachten::$gutachter->referenz_formatting)->toHtml();
|
|
||||||
$html .= Format::fix_str($str);
|
|
||||||
}
|
|
||||||
$html .= '</div>';
|
|
||||||
|
|
||||||
// PROJEKT
|
|
||||||
$html .= '<div id="deckblatt-gutachten">';
|
|
||||||
$html .= '<h1 style="font-size:28px;">Gutachten</h1>';
|
|
||||||
$html .= '<div class="base ml-1">'.trim(MakeGutachten::$projekt->interner_name).'</div>';
|
|
||||||
$html .= '</div>';
|
|
||||||
|
|
||||||
$html .= '<div id="deckblatt-festsetzung">';
|
|
||||||
$html .= '<h2>ZUR FESTSETZUNG DER NUTZWERTE</h2>';
|
|
||||||
$html .= '<div class="base">'.trim(MakeGutachten::$projekt->offizieller_name).'</div>';
|
|
||||||
$html .= '<div class="base">'.trim($textblock).'</div>';
|
|
||||||
$html .= '</div>';
|
|
||||||
|
|
||||||
// AUFTRAGGEBER
|
|
||||||
$html .= '<div id="deckblatt-auftraggeber">';
|
|
||||||
if (MakeGutachten::$auftraggeber->logo && MakeGutachten::$auftraggeber->logo_anzeigen) {
|
|
||||||
$html .= '<div id="deckblatt-logo-auftraggeber" style="background-image: url(\''.public_path().'/storage/'.MakeGutachten::$auftraggeber->logo.'\');"></div>';
|
|
||||||
}
|
|
||||||
if (MakeGutachten::$auftraggeber->referenz_formatting && MakeGutachten::$auftraggeber->text_anzeigen) {
|
|
||||||
$str = RichContentRenderer::make(MakeGutachten::$auftraggeber->referenz_formatting)->toHtml();
|
|
||||||
$html .= Format::fix_str($str);
|
|
||||||
}
|
|
||||||
$html .= '</div>';
|
|
||||||
|
|
||||||
return $html;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -60,7 +60,7 @@ class MakeNutzwerte
|
|||||||
$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', 2)->orderBy('sort')->get();
|
$inhaltesverzeichnis = ProjektInhaltsverzeichnis::where('projekte_id', $projekte_id)->where('part', 'nutzwerte')->orderBy('sort')->get();
|
||||||
|
|
||||||
$platzhalter = ProjektPlatzhalter::where('projekte_id', $projekte_id)->pluck('platzhaltertext', 'platzhalter')->toArray();
|
$platzhalter = ProjektPlatzhalter::where('projekte_id', $projekte_id)->pluck('platzhaltertext', 'platzhalter')->toArray();
|
||||||
|
|
||||||
|
|||||||
@@ -2,23 +2,21 @@
|
|||||||
|
|
||||||
namespace App\Actions\Generate;
|
namespace App\Actions\Generate;
|
||||||
|
|
||||||
use App\Actions\Generate\Gutachten\AllgemeinTabelle;
|
|
||||||
use App\Actions\Generate\Gutachten\Deckblatt;
|
use App\Actions\Generate\Gutachten\Deckblatt;
|
||||||
use App\Actions\Generate\Gutachten\Inhalt;
|
|
||||||
use App\Actions\Generate\Gutachten\Paragraph6Tabelle;
|
|
||||||
use App\Actions\Generate\Gutachten\Platzhalter;
|
use App\Actions\Generate\Gutachten\Platzhalter;
|
||||||
use App\Actions\Generate\Gutachten\Ueberschrift;
|
use App\Actions\Generate\Gutachten\Ueberschrift;
|
||||||
|
use App\Actions\Generate\Nutzwerte\BerechnungNutzwerte;
|
||||||
use App\Actions\Generate\Utilities\Format;
|
use App\Actions\Generate\Utilities\Format;
|
||||||
|
use App\Actions\ProcessData\ProcessRaumorientierung;
|
||||||
use App\Models\Auftraggeber;
|
use App\Models\Auftraggeber;
|
||||||
use App\Models\Gutachter;
|
use App\Models\Gutachter;
|
||||||
use App\Models\Projekte;
|
use App\Models\Projekte;
|
||||||
use App\Models\ProjektInhaltsverzeichnis;
|
use App\Models\ProjektInhaltsverzeichnis;
|
||||||
use App\Models\ProjektPlatzhalter;
|
use App\Models\ProjektPlatzhalter;
|
||||||
use Filament\Forms\Components\RichEditor\RichContentRenderer;
|
|
||||||
use Mpdf\HTMLParserMode;
|
use Mpdf\HTMLParserMode;
|
||||||
use Mpdf\Mpdf;
|
use Mpdf\Mpdf;
|
||||||
|
|
||||||
class MakeGutachten
|
class MakeParagraph6
|
||||||
{
|
{
|
||||||
public static $projekt;
|
public static $projekt;
|
||||||
|
|
||||||
@@ -28,6 +26,10 @@ class MakeGutachten
|
|||||||
|
|
||||||
public static function generate($filepath, $projekte_id)
|
public static function generate($filepath, $projekte_id)
|
||||||
{
|
{
|
||||||
|
// ProcessRaumorientierung::berechnen($projekte_id);
|
||||||
|
// BerechnungNutzwerte::berechnen($projekte_id);
|
||||||
|
|
||||||
|
// PDF START
|
||||||
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();
|
||||||
@@ -41,22 +43,21 @@ class MakeGutachten
|
|||||||
'debug' => true,
|
'debug' => true,
|
||||||
'mode' => 'utf-8',
|
'mode' => 'utf-8',
|
||||||
'format' => 'A4-P',
|
'format' => 'A4-P',
|
||||||
'margin_left' => 15,
|
'margin_left' => 10,
|
||||||
'margin_right' => 10,
|
'margin_right' => 10,
|
||||||
'margin_top' => 10,
|
'margin_top' => 12,
|
||||||
'margin_bottom' => 10,
|
'margin_bottom' => 20,
|
||||||
'margin_header' => 0,
|
'margin_header' => 0,
|
||||||
'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('Gutachten '.self::$projekt->offizieller_name);
|
$mpdf->SetTitle('Nutzwerte '.self::$projekt->offizieller_name);
|
||||||
$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', 1)->orderBy('sort')->get();
|
$inhaltesverzeichnis = ProjektInhaltsverzeichnis::where('projekte_id', $projekte_id)->where('part', 'paragraph')->orderBy('sort')->get();
|
||||||
|
|
||||||
$platzhalter = ProjektPlatzhalter::where('projekte_id', $projekte_id)->pluck('platzhaltertext', 'platzhalter')->toArray();
|
$platzhalter = ProjektPlatzhalter::where('projekte_id', $projekte_id)->pluck('platzhaltertext', 'platzhalter')->toArray();
|
||||||
|
|
||||||
@@ -91,7 +92,7 @@ class MakeGutachten
|
|||||||
$html .= AllgemeinTabelle::load($projekte_id);
|
$html .= AllgemeinTabelle::load($projekte_id);
|
||||||
break;
|
break;
|
||||||
case '8':
|
case '8':
|
||||||
$str = RichContentRenderer::make(MakeGutachten::$auftraggeber->referenz_formatting)->toHtml();
|
$str = RichContentRenderer::make(MakeStandardTexte::$auftraggeber->referenz_formatting)->toHtml();
|
||||||
$html .= Format::fix_str($str);
|
$html .= Format::fix_str($str);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Actions\Generate\Nutzwerte;
|
|
||||||
|
|
||||||
use App\Models\ProjektAllgemeinflaechen;
|
|
||||||
use App\Utilities\Format;
|
|
||||||
use App\Utilities\Html;
|
|
||||||
|
|
||||||
class ProjektAllgemeinflaechens
|
|
||||||
{
|
|
||||||
public static function load(int $projekts_id)
|
|
||||||
{
|
|
||||||
|
|
||||||
$html = '<table>';
|
|
||||||
$html .= '<thead><tr class="head">';
|
|
||||||
$html .= Html::td('Top', 'head bl bt bb');
|
|
||||||
$html .= Html::td('Raumart', 'head bl bt bb');
|
|
||||||
$html .= Html::td('Fläche', 'head center bl bt bb');
|
|
||||||
$html .= Html::td('', 'bl');
|
|
||||||
$html .= Html::td('Top', 'head bb bt bl');
|
|
||||||
$html .= Html::td('Type', 'head bt bl bb');
|
|
||||||
$html .= Html::td('Fläche', 'head center bl bt bb br');
|
|
||||||
$html .= '</tr></thead>';
|
|
||||||
|
|
||||||
$res = ProjektAllgemeinflaechen::select('geschoss', 'raumart', 'qm')->where('projekts_id', $projekts_id)->orderBy('geschoss')->orderBy('raumart')->get();
|
|
||||||
|
|
||||||
foreach ($res as $key => $allg) {
|
|
||||||
$bg = ($key % 4 == 2 || $key % 4 == 3) ? 'hellgrau' : '';
|
|
||||||
if ($key % 2 == 0) {
|
|
||||||
$html .= '<tr>';
|
|
||||||
$html .= Html::td($allg->geschoss, "bl bb br $bg");
|
|
||||||
$html .= Html::td($allg->raumart, "bb br $bg");
|
|
||||||
$html .= Html::td(Format::numeric($allg->qm, 2), "center bb br $bg");
|
|
||||||
$html .= Html::td('');
|
|
||||||
} else {
|
|
||||||
$html .= Html::td($allg->geschoss, "bl bb br $bg");
|
|
||||||
$html .= Html::td($allg->raumart, "bb br $bg");
|
|
||||||
$html .= Html::td(Format::numeric($allg->qm, 2), "center bb br $bg");
|
|
||||||
$html .= '</tr>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$html .= '</table>';
|
|
||||||
|
|
||||||
return $html;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
namespace App\Actions\Generate\Nutzwerte;
|
namespace App\Actions\Generate\Nutzwerte;
|
||||||
|
|
||||||
|
use App\Actions\Generate\Utilities\Format;
|
||||||
|
use App\Actions\Generate\Utilities\Html;
|
||||||
use App\Models\Merkmale;
|
use App\Models\Merkmale;
|
||||||
use App\Models\ProjektMethode;
|
use App\Models\ProjektMethode;
|
||||||
use App\Models\ProjektObjekte;
|
use App\Models\ProjektObjekte;
|
||||||
use App\Actions\Generate\Utilities\Html;
|
|
||||||
use App\Actions\Generate\Utilities\Format;
|
|
||||||
|
|
||||||
class ZuUndAbschlaege
|
class ZuUndAbschlaege
|
||||||
{
|
{
|
||||||
@@ -21,16 +21,13 @@ class ZuUndAbschlaege
|
|||||||
->get()
|
->get()
|
||||||
->toArray();
|
->toArray();
|
||||||
|
|
||||||
|
|
||||||
$has_loggien = ProjektMethode::where('projekte_id', $projekte_id)->where('methode_id', 2)->count();
|
$has_loggien = ProjektMethode::where('projekte_id', $projekte_id)->where('methode_id', 2)->count();
|
||||||
|
|
||||||
if($has_loggien){
|
if ($has_loggien) {
|
||||||
$header_row = ['Top Nummer', 'Geschoß', 'Typ', 'Nutzfläche', 'Loggia / Zusatzflächen', 'Gesamtnutzfläche'];
|
$header_row = ['Top Nummer', 'Geschoß', 'Typ', 'Nutzfläche', 'Loggia / Zusatzflächen', 'Gesamtnutzfläche'];
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
$header_row = ['Top Nummer', 'Geschoß', 'Typ', 'Nutzfläche'];
|
$header_row = ['Top Nummer', 'Geschoß', 'Typ', 'Nutzfläche'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$merkmale = Merkmale::where('projekte_id', $projekte_id)->pluck('name', 'code');
|
$merkmale = Merkmale::where('projekte_id', $projekte_id)->pluck('name', 'code');
|
||||||
|
|
||||||
@@ -74,7 +71,7 @@ class ZuUndAbschlaege
|
|||||||
foreach ($markmale_codes as $code) {
|
foreach ($markmale_codes as $code) {
|
||||||
$html .= Html::td($objekt[$code], 'center br bb');
|
$html .= Html::td($objekt[$code], 'center br bb');
|
||||||
}
|
}
|
||||||
$html .= Html::td(Format::dezimal($objekt['nutzwert'],2), 'center br bb');
|
$html .= Html::td(Format::dezimal($objekt['nutzwert'], 2), 'center br bb');
|
||||||
$html .= Html::td(Format::dezimal(100 + $objekt['nutzwert'], 2), 'right br bb');
|
$html .= Html::td(Format::dezimal(100 + $objekt['nutzwert'], 2), 'right br bb');
|
||||||
$html .= '</tr>';
|
$html .= '</tr>';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,144 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Actions\Generate;
|
||||||
|
|
||||||
|
use App\Actions\Generate\Pdf\Deckblatt;
|
||||||
|
use App\Actions\Generate\Pdf\DigitaleSignatur;
|
||||||
|
use App\Actions\Generate\Pdf\Inhalt;
|
||||||
|
use App\Actions\Generate\Pdf\Platzhalter;
|
||||||
|
use App\Actions\Generate\Pdf\Ueberschrift;
|
||||||
|
use App\Actions\Generate\Tabellen\Allgemeinflaechen;
|
||||||
|
use App\Actions\Generate\Tabellen\Paragraph6;
|
||||||
|
use App\Actions\Generate\Utilities\Format;
|
||||||
|
use App\Models\Auftraggeber;
|
||||||
|
use App\Models\Gutachter;
|
||||||
|
use App\Models\Projekte;
|
||||||
|
use App\Models\ProjektInhaltsverzeichnis;
|
||||||
|
use App\Models\ProjektPlatzhalter;
|
||||||
|
use Filament\Forms\Components\RichEditor\RichContentRenderer;
|
||||||
|
use Illuminate\Support\Facades\File;
|
||||||
|
use Illuminate\Support\Facades\Response;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Mpdf\HTMLParserMode;
|
||||||
|
use Mpdf\Mpdf;
|
||||||
|
|
||||||
|
class Pdf
|
||||||
|
{
|
||||||
|
public static $projekt;
|
||||||
|
|
||||||
|
public static $gutachter;
|
||||||
|
|
||||||
|
public static $auftraggeber;
|
||||||
|
|
||||||
|
public static function make($projekte_id, $type, $mode)
|
||||||
|
{
|
||||||
|
|
||||||
|
self::$projekt = Projekte::where('id', $projekte_id)->first();
|
||||||
|
|
||||||
|
self::$gutachter = Gutachter::where('id', self::$projekt->gutachter_id)->first();
|
||||||
|
|
||||||
|
self::$auftraggeber = Auftraggeber::where('id', self::$projekt->auftraggeber_id)->first();
|
||||||
|
|
||||||
|
$headers = [
|
||||||
|
'Content-Type: application/pdf',
|
||||||
|
'Cache-Control: max-age=0',
|
||||||
|
'Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT',
|
||||||
|
'Cache-Control: cache, must-revalidate',
|
||||||
|
];
|
||||||
|
|
||||||
|
$filepath = Storage::disk('public')->path("/download/$projekte_id/");
|
||||||
|
$filename = \ucfirst($type).' '.preg_replace("'[^0-9a-zA-Z]'", '', self::$projekt->interner_name).'.pdf';
|
||||||
|
|
||||||
|
if ($type == 'nutzwerte') {
|
||||||
|
if ($mode == 'new') {
|
||||||
|
Projekte::where('id', $projekte_id)->update(['pdf_gutachten_name' => '', 'pdf_nutzwerte_status' => 1]);
|
||||||
|
} else {
|
||||||
|
return Response::download($file, $filename, $headers);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! File::isDirectory($filepath)) {
|
||||||
|
File::makeDirectory($filepath, 0777, true, true);
|
||||||
|
}
|
||||||
|
$file = $filepath.$filename;
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
|
||||||
|
$mpdf = new Mpdf(
|
||||||
|
[
|
||||||
|
'debug' => true,
|
||||||
|
'mode' => 'utf-8',
|
||||||
|
'format' => 'A4-P',
|
||||||
|
'margin_left' => 10,
|
||||||
|
'margin_right' => 10,
|
||||||
|
'margin_top' => 12,
|
||||||
|
'margin_bottom' => 20,
|
||||||
|
'margin_header' => 0,
|
||||||
|
'margin_footer' => 0,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$stylesheet = file_get_contents(__DIR__.'/../../../resources/css/pdf-download.css');
|
||||||
|
$mpdf->WriteHTML($stylesheet, HTMLParserMode::HEADER_CSS);
|
||||||
|
$mpdf->SetTitle($filename);
|
||||||
|
$mpdf->SetCreator('nutzwerte.at');
|
||||||
|
$mpdf->SetAuthor(self::$gutachter->title.' '.self::$gutachter->gender.' '.self::$gutachter->name);
|
||||||
|
|
||||||
|
$inhaltesverzeichnis = ProjektInhaltsverzeichnis::where('projekte_id', $projekte_id)->where('part', $type)->orderBy('sort')->get();
|
||||||
|
|
||||||
|
$platzhalter = ProjektPlatzhalter::where('projekte_id', $projekte_id)->pluck('platzhaltertext', 'platzhalter')->toArray();
|
||||||
|
|
||||||
|
foreach ($inhaltesverzeichnis as $inhalt) {
|
||||||
|
|
||||||
|
if ($inhalt->neue_seite) {
|
||||||
|
$mpdf->AddPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($inhalt->textblock) {
|
||||||
|
$textblock = Platzhalter::replace($platzhalter, $inhalt->textblock);
|
||||||
|
$textblock = Format::fix_str($textblock);
|
||||||
|
}
|
||||||
|
|
||||||
|
$html = Ueberschrift::create($inhalt);
|
||||||
|
|
||||||
|
if ($inhalt->name == 'DECKBLATT') {
|
||||||
|
$html .= Deckblatt::create($textblock);
|
||||||
|
} elseif ($inhalt->name == 'INHALTSVERZEICHNIS') {
|
||||||
|
$html .= Inhalt::create($projekte_id);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if ($inhalt->textblock) {
|
||||||
|
$html .= $textblock;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($inhalt->tabellen_id) {
|
||||||
|
case '3':
|
||||||
|
$html .= Paragraph6::load($projekte_id);
|
||||||
|
break;
|
||||||
|
case '4':
|
||||||
|
$html .= Allgemeinflaechen::load($projekte_id);
|
||||||
|
break;
|
||||||
|
case '8':
|
||||||
|
$str = RichContentRenderer::make(self::$auftraggeber->referenz_formatting)->toHtml();
|
||||||
|
$html .= Format::fix_str($str);
|
||||||
|
break;
|
||||||
|
case '11':
|
||||||
|
$html .= DigitaleSignatur::load($projekte_id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($inhalt->seitenzahl_anzeige == 1) {
|
||||||
|
$mpdf->SetHTMLFooter('<div class="center">Seite {PAGENO}<br><br></div>');
|
||||||
|
}
|
||||||
|
if ($html) {
|
||||||
|
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ob_clean();
|
||||||
|
|
||||||
|
$mpdf->Output($file, 'F');
|
||||||
|
|
||||||
|
return Response::download($file, $filename, $headers);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Actions\Generate\Pdf;
|
||||||
|
|
||||||
|
use App\Actions\Generate\Pdf;
|
||||||
|
use App\Actions\Generate\Utilities\Format;
|
||||||
|
use Filament\Forms\Components\RichEditor\RichContentRenderer;
|
||||||
|
|
||||||
|
class Deckblatt
|
||||||
|
{
|
||||||
|
public static function create($textblock)
|
||||||
|
{
|
||||||
|
// GUTACHTER
|
||||||
|
$html = '<div id="deckblatt-gutachter">';
|
||||||
|
if (Pdf::$gutachter->logo && Pdf::$gutachter->logo_anzeigen) {
|
||||||
|
$html .= '<div id="deckblatt-logo-gutachter" style="background-position: center '.Pdf::$gutachter->logo_align.'; background-image: url(\''.public_path().'/storage/'.Pdf::$gutachter->logo.'\');"></div>';
|
||||||
|
}
|
||||||
|
if (Pdf::$gutachter->referenz_formatting && Pdf::$gutachter->text_anzeigen) {
|
||||||
|
$str = RichContentRenderer::make(Pdf::$gutachter->referenz_formatting)->toHtml();
|
||||||
|
$html .= Format::fix_str($str);
|
||||||
|
}
|
||||||
|
$html .= '</div>';
|
||||||
|
|
||||||
|
// PROJEKT
|
||||||
|
$html .= '<div id="deckblatt-gutachten">';
|
||||||
|
$html .= '<h1 style="font-size:28px;">Gutachten</h1>';
|
||||||
|
$html .= '<div class="base ml-1">'.trim(Pdf::$projekt->interner_name).'</div>';
|
||||||
|
$html .= '</div>';
|
||||||
|
|
||||||
|
$html .= '<div id="deckblatt-festsetzung">';
|
||||||
|
$html .= '<h2>ZUR FESTSETZUNG DER NUTZWERTE</h2>';
|
||||||
|
$html .= '<div class="base">'.trim(Pdf::$projekt->offizieller_name).'</div>';
|
||||||
|
$html .= '<div class="base">'.trim($textblock).'</div>';
|
||||||
|
$html .= '</div>';
|
||||||
|
|
||||||
|
// AUFTRAGGEBER
|
||||||
|
$html .= '<div id="deckblatt-auftraggeber">';
|
||||||
|
if (Pdf::$auftraggeber->logo && Pdf::$auftraggeber->logo_anzeigen) {
|
||||||
|
$html .= '<div id="deckblatt-logo-auftraggeber" style="background-image: url(\''.public_path().'/storage/'.Pdf::$auftraggeber->logo.'\');"></div>';
|
||||||
|
}
|
||||||
|
if (Pdf::$auftraggeber->referenz_formatting && Pdf::$auftraggeber->text_anzeigen) {
|
||||||
|
$str = RichContentRenderer::make(Pdf::$auftraggeber->referenz_formatting)->toHtml();
|
||||||
|
$html .= Format::fix_str($str);
|
||||||
|
}
|
||||||
|
$html .= '</div>';
|
||||||
|
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Actions\Generate\Pdf;
|
||||||
|
|
||||||
|
use App\Actions\Generate\Pdf;
|
||||||
|
|
||||||
|
class DigitaleSignatur
|
||||||
|
{
|
||||||
|
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>';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions\Generate\Gutachten;
|
namespace App\Actions\Generate\Pdf;
|
||||||
|
|
||||||
use App\Actions\Generate\Utilities\Format;
|
use App\Actions\Generate\Utilities\Format;
|
||||||
use App\Actions\Generate\Utilities\Html;
|
use App\Actions\Generate\Utilities\Html;
|
||||||
@@ -13,7 +13,7 @@ class Inhalt
|
|||||||
$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)->orderBy('sort')->get();
|
||||||
foreach ($inhalte as $inhalt) {
|
foreach ($inhalte as $inhalt) {
|
||||||
if ($inhalt->ueberschrift_anzeigen) {
|
if ($inhalt->name != 'INHALTSVERZEICHNIS' && $inhalt->ueberschrift_anzeigen) {
|
||||||
$html .= '<tr>';
|
$html .= '<tr>';
|
||||||
$html .= Html::td(Format::index($inhalt->ordnungszahl));
|
$html .= Html::td(Format::index($inhalt->ordnungszahl));
|
||||||
$html .= Html::td($inhalt->name);
|
$html .= Html::td($inhalt->name);
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions\Generate\Gutachten;
|
namespace App\Actions\Generate\Pdf;
|
||||||
|
|
||||||
class Platzhalter
|
class Platzhalter
|
||||||
{
|
{
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions\Generate\Gutachten;
|
namespace App\Actions\Generate\Pdf;
|
||||||
|
|
||||||
use App\Actions\Generate\Utilities\Format;
|
use App\Actions\Generate\Utilities\Format;
|
||||||
|
|
||||||
+3
-3
@@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions\Generate\Gutachten;
|
namespace App\Actions\Generate\Tabellen;
|
||||||
|
|
||||||
use App\Actions\Generate\Utilities\Html;
|
use App\Actions\Generate\Utilities\Html;
|
||||||
use App\Models\ProjektAllgemeinflaechen;
|
use App\Models\ProjektAllgemeinflaechen;
|
||||||
|
|
||||||
class AllgemeinTabelle
|
class Allgemeinflaechen
|
||||||
{
|
{
|
||||||
public static function load($projekte_id)
|
public static function load($projekte_id)
|
||||||
{
|
{
|
||||||
@@ -17,7 +17,7 @@ class AllgemeinTabelle
|
|||||||
|
|
||||||
$_data = array_chunk($_allgemeine, 2);
|
$_data = array_chunk($_allgemeine, 2);
|
||||||
|
|
||||||
$html = '<table class="table-striped">';
|
$html = '<table class="table-striped bl bt">';
|
||||||
$html .= '<tr>';
|
$html .= '<tr>';
|
||||||
$html .= '<thead>';
|
$html .= '<thead>';
|
||||||
$html .= Html::td('Geschoß', 'head bl bt wp10');
|
$html .= Html::td('Geschoß', 'head bl bt wp10');
|
||||||
+5
-4
@@ -1,16 +1,17 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Actions\Generate\Gutachten;
|
namespace App\Actions\Generate\Tabellen;
|
||||||
|
|
||||||
use App\Actions\Generate\Utilities\Html;
|
use App\Actions\Generate\Utilities\Html;
|
||||||
use App\Models\ProjektObjekte;
|
use App\Models\ProjektObjekte;
|
||||||
|
|
||||||
class Paragraph6Tabelle
|
class Paragraph6
|
||||||
{
|
{
|
||||||
public static function load($projekte_id)
|
public static function load($projekte_id)
|
||||||
{
|
{
|
||||||
|
|
||||||
$data = ProjektObjekte::with('orientierung')
|
$data = ProjektObjekte::with('orientierung')
|
||||||
|
->with('projektobjekteimdetail')
|
||||||
->where('projekte_id', $projekte_id)
|
->where('projekte_id', $projekte_id)
|
||||||
->orderBy('nicht_in_orientierung')
|
->orderBy('nicht_in_orientierung')
|
||||||
->orderBy('top_nummer')
|
->orderBy('top_nummer')
|
||||||
@@ -30,8 +31,8 @@ class Paragraph6Tabelle
|
|||||||
|
|
||||||
$html .= '<tr>';
|
$html .= '<tr>';
|
||||||
$html .= Html::td($value->top_nummer, 'center br bb');
|
$html .= Html::td($value->top_nummer, 'center br bb');
|
||||||
$html .= Html::td($value->geschoss, 'center br bb');
|
$html .= Html::td($value->projektobjekteimdetail?->geschoss, 'center br bb');
|
||||||
$html .= Html::td($value->orientierung->name ?? '', 'center br bb');
|
$html .= Html::td($value->orientierung?->name, 'center br bb');
|
||||||
$html .= Html::td($value->type, 'center br bb');
|
$html .= Html::td($value->type, 'center br bb');
|
||||||
$html .= '</tr>';
|
$html .= '</tr>';
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Actions\Validation;
|
namespace App\Actions\Validation;
|
||||||
|
|
||||||
|
use App\Models\Gutachter;
|
||||||
use App\Models\ProjektAllgemeinflaechen;
|
use App\Models\ProjektAllgemeinflaechen;
|
||||||
use App\Models\Projekte;
|
use App\Models\Projekte;
|
||||||
use App\Models\ProjektInhaltsverzeichnis;
|
use App\Models\ProjektInhaltsverzeichnis;
|
||||||
@@ -15,6 +16,27 @@ class GutachtenValidation
|
|||||||
{
|
{
|
||||||
public static function controll($record)
|
public static function controll($record)
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Projekt
|
||||||
|
*/
|
||||||
|
$pro = Projekte::where('id', $record->id)->first();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gutachter
|
||||||
|
*/
|
||||||
|
$res = Gutachter::where('konto_id', auth()->user()->konto_id)->where('id', $pro->gutachter_id)->first();
|
||||||
|
if (! $res->digitale_signatur_stempel) {
|
||||||
|
Notification::make()
|
||||||
|
->title('Gutacher')
|
||||||
|
->info()
|
||||||
|
->icon('heroicon-o-exclamation-triangle')
|
||||||
|
->duration(10000)
|
||||||
|
->body('Es fehlt der Stempel für die <b>Digitale Signatur</b>.')
|
||||||
|
->send();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ProjektAllgemeinflaechen
|
* ProjektAllgemeinflaechen
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -18,6 +18,10 @@ class GutachtersTable
|
|||||||
// TextColumn::make('gender')->label('Geschlecht'),
|
// TextColumn::make('gender')->label('Geschlecht'),
|
||||||
// TextColumn::make('title')->label('Title'),
|
// TextColumn::make('title')->label('Title'),
|
||||||
// TextColumn::make('name')->searchable(),
|
// TextColumn::make('name')->searchable(),
|
||||||
|
ImageColumn::make('digitale_signatur_stempel')
|
||||||
|
->alignCenter()
|
||||||
|
->label('Digitale Signatur')
|
||||||
|
->disk('public'),
|
||||||
TextColumn::make('email')->copyable()->label('E-Mail')->searchable(),
|
TextColumn::make('email')->copyable()->label('E-Mail')->searchable(),
|
||||||
])
|
])
|
||||||
->recordActions([
|
->recordActions([
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ class EditProjekte extends EditRecord
|
|||||||
->fileRules([
|
->fileRules([
|
||||||
File::types(['csv', 'txt'])->max(1024),
|
File::types(['csv', 'txt'])->max(1024),
|
||||||
]),
|
]),
|
||||||
])->label('Importieren')
|
])->label('Import')
|
||||||
->icon('phosphor-upload')
|
->icon('phosphor-upload')
|
||||||
->color('info')
|
->color('info')
|
||||||
->button(),
|
->button(),
|
||||||
@@ -141,7 +141,6 @@ class EditProjekte extends EditRecord
|
|||||||
*/
|
*/
|
||||||
Action::make('evaluate_gutachten')
|
Action::make('evaluate_gutachten')
|
||||||
->hidden(fn ($record): bool => $record->bezahlt_am && ! $record->evaluation_gutachten ? false : true)
|
->hidden(fn ($record): bool => $record->bezahlt_am && ! $record->evaluation_gutachten ? false : true)
|
||||||
->color('success')
|
|
||||||
->label('Evaluieren')
|
->label('Evaluieren')
|
||||||
->icon('phosphor-eye')
|
->icon('phosphor-eye')
|
||||||
->action(function ($record): void {
|
->action(function ($record): void {
|
||||||
@@ -150,69 +149,64 @@ class EditProjekte extends EditRecord
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BERECHNEN
|
* PDF
|
||||||
*/
|
*/
|
||||||
ActionGroup::make([
|
ActionGroup::make([
|
||||||
Action::make('make_gutachten')
|
/**
|
||||||
->hidden(fn ($record): bool => (! $record->bezahlt_am || $record->pdf_gutachten_status || ! $record->evaluation_gutachten) ? true : false)
|
* STANDART TEXT
|
||||||
|
*/
|
||||||
|
Action::make('make-standard')
|
||||||
|
->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false)
|
||||||
->label('Standard Texte')
|
->label('Standard Texte')
|
||||||
->icon('phosphor-calculator')
|
->icon('icon-pdf')
|
||||||
->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'new']))
|
->url(fn ($record) => route('pdf', ['record' => $record, 'type' => 'standard', 'mode' => 'new']))
|
||||||
->openUrlInNewTab(),
|
->openUrlInNewTab(),
|
||||||
/**
|
/**
|
||||||
* NUTZWERTE
|
* NUTZWERTE
|
||||||
*/
|
*/
|
||||||
Action::make('make_nutzwerte')
|
Action::make('make-nutzwerte')
|
||||||
->hidden(fn ($record): bool => (! $record->bezahlt_am || $record->pdf_nutzwerte_status || ! $record->evaluation_gutachten) ? true : false)
|
->hidden(fn ($record): bool => (! $record->bezahlt_am || $record->pdf_nutzwerte_status || ! $record->evaluation_gutachten) ? true : false)
|
||||||
->label('Nutzwerte')
|
->label('Nutzwerte Berechnen')
|
||||||
->icon('phosphor-calculator')
|
->icon('phosphor-calculator')
|
||||||
->url(fn ($record) => route('nutzwerte.download', ['record' => $record, 'mode' => 'new']))
|
->url(fn ($record) => route('pdf', ['record' => $record, 'type' => 'nutzwerte', 'mode' => 'new']))
|
||||||
->openUrlInNewTab(),
|
->openUrlInNewTab(),
|
||||||
])->label('Berechnen')
|
Action::make('make-nutzwerte')
|
||||||
->icon('phosphor-calculator')
|
->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->pdf_nutzwerte_status || ! $record->evaluation_gutachten) ? true : false)
|
||||||
|
->label('Nutzwerte')
|
||||||
|
->icon('icon-pdf')
|
||||||
|
->url(fn ($record) => route('pdf', ['record' => $record, 'type' => 'nutzwerte', 'mode' => 'file']))
|
||||||
|
->openUrlInNewTab(),
|
||||||
|
/**
|
||||||
|
* PARAGRAPH 6
|
||||||
|
*/
|
||||||
|
Action::make('make-paragraph')
|
||||||
|
->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false)
|
||||||
|
->label('Auszug gem. §6 ')
|
||||||
|
->icon('icon-pdf')
|
||||||
|
->url(fn ($record) => route('pdf', ['record' => $record, 'type' => 'paragraph', 'mode' => 'new']))
|
||||||
|
->openUrlInNewTab(),
|
||||||
|
])->label('Pdf')
|
||||||
|
->icon('phosphor-download')
|
||||||
->color('info')
|
->color('info')
|
||||||
->button(),
|
->button(),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DOWNLOAD
|
* EXCEL
|
||||||
*/
|
*/
|
||||||
ActionGroup::make([
|
ActionGroup::make([
|
||||||
/**
|
Action::make('excel-nutzwerte')
|
||||||
* GUTACHTEN
|
|
||||||
*/
|
|
||||||
Action::make('download-gutachten')
|
|
||||||
->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->pdf_gutachten_status) ? true : false)
|
|
||||||
->color('success')
|
|
||||||
->label('Download Gutachten')
|
|
||||||
->icon('icon-pdf')
|
|
||||||
->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'file']))
|
|
||||||
->openUrlInNewTab(),
|
|
||||||
/**
|
|
||||||
* NUTZWERTE
|
|
||||||
*/
|
|
||||||
Action::make('download-nutzwerte')
|
|
||||||
->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->pdf_nutzwerte_status) ? true : false)
|
|
||||||
->color('success')
|
|
||||||
->label('Download Nutzwerte')
|
|
||||||
->icon('icon-pdf')
|
|
||||||
->url(fn ($record) => route('nutzwerte.download', ['record' => $record, 'mode' => 'file']))
|
|
||||||
->openUrlInNewTab(),
|
|
||||||
/**
|
|
||||||
* EXCEL
|
|
||||||
*/
|
|
||||||
Action::make('excel-nutzflaeche-nutzwerte')
|
|
||||||
->label('Nutzfläche & Nutzwerte')
|
->label('Nutzfläche & Nutzwerte')
|
||||||
->icon('icon-excel')
|
->icon('icon-excel')
|
||||||
->url(fn ($record) => route('excel.download', ['record' => $record, 'mode' => 'file']))
|
->url(fn ($record) => route('excel', ['record' => $record, 'type' => '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-nutzflaechen-aufstellung')
|
Action::make('excel-aufstellung')
|
||||||
->label('Nutzflächen Aufstellung')
|
->label('Nutzflächen Aufstellung')
|
||||||
->icon('icon-excel')
|
->icon('icon-excel')
|
||||||
->url(fn ($record) => route('excel.download', ['record' => $record, 'mode' => 'file']))
|
->url(fn ($record) => route('excel', ['record' => $record, 'type' => '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('Export')
|
])->label('Excel')
|
||||||
->icon('phosphor-download')
|
->icon('phosphor-download')
|
||||||
->color('info')
|
->color('info')
|
||||||
->button(),
|
->button(),
|
||||||
|
|||||||
@@ -21,8 +21,6 @@ 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,
|
||||||
'pdf_gutachten_status' => false,
|
|
||||||
'excel_nutzwerte_status' => false,
|
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ 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,
|
||||||
'pdf_gutachten_status' => false,
|
|
||||||
'excel_nutzwerte_status' => false,
|
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
||||||
use Illuminate\Database\Eloquent\Relations\HasOne;
|
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||||
|
|
||||||
class ProjektObjekte extends Model
|
class ProjektObjekte extends Model
|
||||||
@@ -36,8 +35,6 @@ 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,
|
||||||
'pdf_gutachten_status' => false,
|
|
||||||
'excel_nutzwerte_status' => false,
|
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -59,8 +56,8 @@ class ProjektObjekte extends Model
|
|||||||
return $this->hasOne(Orientierung::class, 'id', 'orientierung_id');
|
return $this->hasOne(Orientierung::class, 'id', 'orientierung_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function projektobjekteimdetail(): HasMany
|
public function projektobjekteimdetail(): HasOne
|
||||||
{
|
{
|
||||||
return $this->hasMany(ProjektObjekteImDetail::class, 'projekt_objekte_id', 'id');
|
return $this->hasOne(ProjektObjekteImDetail::class, 'projekt_objekte_id', 'id');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -26,8 +26,6 @@ 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,
|
||||||
'pdf_gutachten_status' => false,
|
|
||||||
'excel_nutzwerte_status' => false,
|
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,8 +33,6 @@ class Projekte extends Model
|
|||||||
return [
|
return [
|
||||||
'bezahlt_am' => 'datetime',
|
'bezahlt_am' => 'datetime',
|
||||||
'pdf_nutzwerte_status' => 'boolean',
|
'pdf_nutzwerte_status' => 'boolean',
|
||||||
'pdf_gutachten_status' => 'boolean',
|
|
||||||
'excel_nutzwerte_status' => 'boolean',
|
|
||||||
'evaluation_gutachten' => 'boolean',
|
'evaluation_gutachten' => 'boolean',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+72
-133
@@ -531,7 +531,7 @@ app('router')->setCompiledRoutes(
|
|||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
'_route' => 'generated::PwdMlIbAzySZ2HRI',
|
'_route' => 'generated::tiUv4rvgBcNvkvtY',
|
||||||
),
|
),
|
||||||
1 => NULL,
|
1 => NULL,
|
||||||
2 =>
|
2 =>
|
||||||
@@ -551,7 +551,7 @@ app('router')->setCompiledRoutes(
|
|||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
'_route' => 'generated::N8CSCM7r6TovEThh',
|
'_route' => 'generated::8p53Iz2lUpOvF7no',
|
||||||
),
|
),
|
||||||
1 => NULL,
|
1 => NULL,
|
||||||
2 =>
|
2 =>
|
||||||
@@ -609,7 +609,7 @@ app('router')->setCompiledRoutes(
|
|||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
'_route' => 'generated::DvHblY3D9jC5CBEr',
|
'_route' => 'generated::lz7Zg8blMDT4P8Jk',
|
||||||
),
|
),
|
||||||
1 => NULL,
|
1 => NULL,
|
||||||
2 =>
|
2 =>
|
||||||
@@ -629,7 +629,7 @@ app('router')->setCompiledRoutes(
|
|||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
'_route' => 'generated::tuYe8VlROb72rAJE',
|
'_route' => 'generated::8d1F1ZEUsjVSMeYc',
|
||||||
),
|
),
|
||||||
1 => NULL,
|
1 => NULL,
|
||||||
2 =>
|
2 =>
|
||||||
@@ -649,7 +649,7 @@ app('router')->setCompiledRoutes(
|
|||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
'_route' => 'generated::bwcBReHemyUQXHvS',
|
'_route' => 'generated::m4g7KkpOJaRLv9Qh',
|
||||||
),
|
),
|
||||||
1 => NULL,
|
1 => NULL,
|
||||||
2 =>
|
2 =>
|
||||||
@@ -669,7 +669,7 @@ app('router')->setCompiledRoutes(
|
|||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
'_route' => 'generated::5RQqVjnY9GRCSgNQ',
|
'_route' => 'generated::DPRLZjl4pLkhWpMc',
|
||||||
),
|
),
|
||||||
1 => NULL,
|
1 => NULL,
|
||||||
2 =>
|
2 =>
|
||||||
@@ -689,7 +689,7 @@ app('router')->setCompiledRoutes(
|
|||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
'_route' => 'generated::Qc3TrVdDmpobltpq',
|
'_route' => 'generated::MOt3vLAjE2hdhyas',
|
||||||
),
|
),
|
||||||
1 => NULL,
|
1 => NULL,
|
||||||
2 =>
|
2 =>
|
||||||
@@ -706,7 +706,7 @@ app('router')->setCompiledRoutes(
|
|||||||
),
|
),
|
||||||
2 =>
|
2 =>
|
||||||
array (
|
array (
|
||||||
0 => '{^(?|/filament/(?|exports/([^/]++)/download(*:45)|imports/([^/]++)/failed\\-rows/download(*:90))|/app/(?|e(?|mail\\-(?|verification/verify/([^/]++)/([^/]++)(*:156)|change\\-verification/verify/([^/]++)/([^/]++)(?|(*:212)|/block(*:226)))|xcel/([^/]++)/([^/]++)/download(*:267))|projektes/([^/]++)/edit(*:299)|administration/shield/roles/([^/]++)(?|(*:346)|/edit(*:359))|nutzwerte/([^/]++)/([^/]++)/download(*:404)|standard/([^/]++)/([^/]++)/download(*:447))|/livewire/preview\\-file/([^/]++)(*:488)|/storage/(.*)(*:509))/?$}sDu',
|
0 => '{^(?|/filament/(?|exports/([^/]++)/download(*:45)|imports/([^/]++)/failed\\-rows/download(*:90))|/app/(?|e(?|mail\\-(?|verification/verify/([^/]++)/([^/]++)(*:156)|change\\-verification/verify/([^/]++)/([^/]++)(?|(*:212)|/block(*:226)))|xcel/([^/]++)/([^/]++)(*:258))|p(?|rojektes/([^/]++)/edit(*:293)|df/([^/]++)/([^/]++)/([^/]++)(*:330))|administration/shield/roles/([^/]++)(?|(*:378)|/edit(*:391)))|/livewire/preview\\-file/([^/]++)(*:433)|/storage/(.*)(*:454))/?$}sDu',
|
||||||
),
|
),
|
||||||
3 =>
|
3 =>
|
||||||
array (
|
array (
|
||||||
@@ -828,18 +828,18 @@ app('router')->setCompiledRoutes(
|
|||||||
6 => NULL,
|
6 => NULL,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
267 =>
|
258 =>
|
||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
'_route' => 'excel.download',
|
'_route' => 'excel',
|
||||||
),
|
),
|
||||||
1 =>
|
1 =>
|
||||||
array (
|
array (
|
||||||
0 => 'record',
|
0 => 'record',
|
||||||
1 => 'mode',
|
1 => 'type',
|
||||||
),
|
),
|
||||||
2 =>
|
2 =>
|
||||||
array (
|
array (
|
||||||
@@ -848,11 +848,11 @@ app('router')->setCompiledRoutes(
|
|||||||
),
|
),
|
||||||
3 => NULL,
|
3 => NULL,
|
||||||
4 => false,
|
4 => false,
|
||||||
5 => false,
|
5 => true,
|
||||||
6 => NULL,
|
6 => NULL,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
299 =>
|
293 =>
|
||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
@@ -875,7 +875,32 @@ app('router')->setCompiledRoutes(
|
|||||||
6 => NULL,
|
6 => NULL,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
346 =>
|
330 =>
|
||||||
|
array (
|
||||||
|
0 =>
|
||||||
|
array (
|
||||||
|
0 =>
|
||||||
|
array (
|
||||||
|
'_route' => 'pdf',
|
||||||
|
),
|
||||||
|
1 =>
|
||||||
|
array (
|
||||||
|
0 => 'record',
|
||||||
|
1 => 'type',
|
||||||
|
2 => 'mode',
|
||||||
|
),
|
||||||
|
2 =>
|
||||||
|
array (
|
||||||
|
'GET' => 0,
|
||||||
|
'HEAD' => 1,
|
||||||
|
),
|
||||||
|
3 => NULL,
|
||||||
|
4 => false,
|
||||||
|
5 => true,
|
||||||
|
6 => NULL,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
378 =>
|
||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
@@ -898,7 +923,7 @@ app('router')->setCompiledRoutes(
|
|||||||
6 => NULL,
|
6 => NULL,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
359 =>
|
391 =>
|
||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
@@ -921,55 +946,7 @@ app('router')->setCompiledRoutes(
|
|||||||
6 => NULL,
|
6 => NULL,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
404 =>
|
433 =>
|
||||||
array (
|
|
||||||
0 =>
|
|
||||||
array (
|
|
||||||
0 =>
|
|
||||||
array (
|
|
||||||
'_route' => 'nutzwerte.download',
|
|
||||||
),
|
|
||||||
1 =>
|
|
||||||
array (
|
|
||||||
0 => 'record',
|
|
||||||
1 => 'mode',
|
|
||||||
),
|
|
||||||
2 =>
|
|
||||||
array (
|
|
||||||
'GET' => 0,
|
|
||||||
'HEAD' => 1,
|
|
||||||
),
|
|
||||||
3 => NULL,
|
|
||||||
4 => false,
|
|
||||||
5 => false,
|
|
||||||
6 => NULL,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
447 =>
|
|
||||||
array (
|
|
||||||
0 =>
|
|
||||||
array (
|
|
||||||
0 =>
|
|
||||||
array (
|
|
||||||
'_route' => 'standard.download',
|
|
||||||
),
|
|
||||||
1 =>
|
|
||||||
array (
|
|
||||||
0 => 'record',
|
|
||||||
1 => 'mode',
|
|
||||||
),
|
|
||||||
2 =>
|
|
||||||
array (
|
|
||||||
'GET' => 0,
|
|
||||||
'HEAD' => 1,
|
|
||||||
),
|
|
||||||
3 => NULL,
|
|
||||||
4 => false,
|
|
||||||
5 => false,
|
|
||||||
6 => NULL,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
488 =>
|
|
||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
@@ -992,7 +969,7 @@ app('router')->setCompiledRoutes(
|
|||||||
6 => NULL,
|
6 => NULL,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
509 =>
|
454 =>
|
||||||
array (
|
array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
@@ -2740,7 +2717,7 @@ app('router')->setCompiledRoutes(
|
|||||||
'waitSeconds' => NULL,
|
'waitSeconds' => NULL,
|
||||||
'withTrashed' => false,
|
'withTrashed' => false,
|
||||||
),
|
),
|
||||||
'generated::PwdMlIbAzySZ2HRI' =>
|
'generated::tiUv4rvgBcNvkvtY' =>
|
||||||
array (
|
array (
|
||||||
'methods' =>
|
'methods' =>
|
||||||
array (
|
array (
|
||||||
@@ -2752,7 +2729,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::PwdMlIbAzySZ2HRI',
|
'as' => 'generated::tiUv4rvgBcNvkvtY',
|
||||||
),
|
),
|
||||||
'fallback' => false,
|
'fallback' => false,
|
||||||
'defaults' =>
|
'defaults' =>
|
||||||
@@ -2768,7 +2745,7 @@ app('router')->setCompiledRoutes(
|
|||||||
'waitSeconds' => NULL,
|
'waitSeconds' => NULL,
|
||||||
'withTrashed' => false,
|
'withTrashed' => false,
|
||||||
),
|
),
|
||||||
'generated::N8CSCM7r6TovEThh' =>
|
'generated::8p53Iz2lUpOvF7no' =>
|
||||||
array (
|
array (
|
||||||
'methods' =>
|
'methods' =>
|
||||||
array (
|
array (
|
||||||
@@ -2780,7 +2757,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::N8CSCM7r6TovEThh',
|
'as' => 'generated::8p53Iz2lUpOvF7no',
|
||||||
),
|
),
|
||||||
'fallback' => false,
|
'fallback' => false,
|
||||||
'defaults' =>
|
'defaults' =>
|
||||||
@@ -2882,7 +2859,7 @@ app('router')->setCompiledRoutes(
|
|||||||
'waitSeconds' => NULL,
|
'waitSeconds' => NULL,
|
||||||
'withTrashed' => false,
|
'withTrashed' => false,
|
||||||
),
|
),
|
||||||
'generated::DvHblY3D9jC5CBEr' =>
|
'generated::lz7Zg8blMDT4P8Jk' =>
|
||||||
array (
|
array (
|
||||||
'methods' =>
|
'methods' =>
|
||||||
array (
|
array (
|
||||||
@@ -2910,8 +2887,8 @@ app('router')->setCompiledRoutes(
|
|||||||
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/hermanntelser/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:"0000000000000f420000000000000000";}}',
|
}";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000f400000000000000000";}}',
|
||||||
'as' => 'generated::DvHblY3D9jC5CBEr',
|
'as' => 'generated::lz7Zg8blMDT4P8Jk',
|
||||||
),
|
),
|
||||||
'fallback' => false,
|
'fallback' => false,
|
||||||
'defaults' =>
|
'defaults' =>
|
||||||
@@ -2927,7 +2904,7 @@ app('router')->setCompiledRoutes(
|
|||||||
'waitSeconds' => NULL,
|
'waitSeconds' => NULL,
|
||||||
'withTrashed' => false,
|
'withTrashed' => false,
|
||||||
),
|
),
|
||||||
'generated::tuYe8VlROb72rAJE' =>
|
'generated::8d1F1ZEUsjVSMeYc' =>
|
||||||
array (
|
array (
|
||||||
'methods' =>
|
'methods' =>
|
||||||
array (
|
array (
|
||||||
@@ -2943,13 +2920,13 @@ app('router')->setCompiledRoutes(
|
|||||||
),
|
),
|
||||||
'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:50:"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:50:"function () {
|
||||||
return \\view(\'pages.welcome\');
|
return \\view(\'pages.welcome\');
|
||||||
}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f490000000000000000";}}',
|
}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f470000000000000000";}}',
|
||||||
'namespace' => NULL,
|
'namespace' => NULL,
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
'where' =>
|
'where' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'as' => 'generated::tuYe8VlROb72rAJE',
|
'as' => 'generated::8d1F1ZEUsjVSMeYc',
|
||||||
),
|
),
|
||||||
'fallback' => false,
|
'fallback' => false,
|
||||||
'defaults' =>
|
'defaults' =>
|
||||||
@@ -2965,7 +2942,7 @@ app('router')->setCompiledRoutes(
|
|||||||
'waitSeconds' => NULL,
|
'waitSeconds' => NULL,
|
||||||
'withTrashed' => false,
|
'withTrashed' => false,
|
||||||
),
|
),
|
||||||
'generated::bwcBReHemyUQXHvS' =>
|
'generated::m4g7KkpOJaRLv9Qh' =>
|
||||||
array (
|
array (
|
||||||
'methods' =>
|
'methods' =>
|
||||||
array (
|
array (
|
||||||
@@ -2981,13 +2958,13 @@ app('router')->setCompiledRoutes(
|
|||||||
),
|
),
|
||||||
'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:52:"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:52:"function () {
|
||||||
return \\view(\'pages.nutzwerte\');
|
return \\view(\'pages.nutzwerte\');
|
||||||
}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f4b0000000000000000";}}',
|
}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f490000000000000000";}}',
|
||||||
'namespace' => NULL,
|
'namespace' => NULL,
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
'where' =>
|
'where' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'as' => 'generated::bwcBReHemyUQXHvS',
|
'as' => 'generated::m4g7KkpOJaRLv9Qh',
|
||||||
),
|
),
|
||||||
'fallback' => false,
|
'fallback' => false,
|
||||||
'defaults' =>
|
'defaults' =>
|
||||||
@@ -3003,7 +2980,7 @@ app('router')->setCompiledRoutes(
|
|||||||
'waitSeconds' => NULL,
|
'waitSeconds' => NULL,
|
||||||
'withTrashed' => false,
|
'withTrashed' => false,
|
||||||
),
|
),
|
||||||
'generated::5RQqVjnY9GRCSgNQ' =>
|
'generated::DPRLZjl4pLkhWpMc' =>
|
||||||
array (
|
array (
|
||||||
'methods' =>
|
'methods' =>
|
||||||
array (
|
array (
|
||||||
@@ -3019,13 +2996,13 @@ app('router')->setCompiledRoutes(
|
|||||||
),
|
),
|
||||||
'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:51:"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:51:"function () {
|
||||||
return \\view(\'pages.programm\');
|
return \\view(\'pages.programm\');
|
||||||
}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f4d0000000000000000";}}',
|
}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f4b0000000000000000";}}',
|
||||||
'namespace' => NULL,
|
'namespace' => NULL,
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
'where' =>
|
'where' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'as' => 'generated::5RQqVjnY9GRCSgNQ',
|
'as' => 'generated::DPRLZjl4pLkhWpMc',
|
||||||
),
|
),
|
||||||
'fallback' => false,
|
'fallback' => false,
|
||||||
'defaults' =>
|
'defaults' =>
|
||||||
@@ -3041,7 +3018,7 @@ app('router')->setCompiledRoutes(
|
|||||||
'waitSeconds' => NULL,
|
'waitSeconds' => NULL,
|
||||||
'withTrashed' => false,
|
'withTrashed' => false,
|
||||||
),
|
),
|
||||||
'generated::Qc3TrVdDmpobltpq' =>
|
'generated::MOt3vLAjE2hdhyas' =>
|
||||||
array (
|
array (
|
||||||
'methods' =>
|
'methods' =>
|
||||||
array (
|
array (
|
||||||
@@ -3057,13 +3034,13 @@ app('router')->setCompiledRoutes(
|
|||||||
),
|
),
|
||||||
'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:52:"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:52:"function () {
|
||||||
return \\view(\'pages.impressum\');
|
return \\view(\'pages.impressum\');
|
||||||
}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f4f0000000000000000";}}',
|
}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f4d0000000000000000";}}',
|
||||||
'namespace' => NULL,
|
'namespace' => NULL,
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
'where' =>
|
'where' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'as' => 'generated::Qc3TrVdDmpobltpq',
|
'as' => 'generated::MOt3vLAjE2hdhyas',
|
||||||
),
|
),
|
||||||
'fallback' => false,
|
'fallback' => false,
|
||||||
'defaults' =>
|
'defaults' =>
|
||||||
@@ -3079,14 +3056,14 @@ app('router')->setCompiledRoutes(
|
|||||||
'waitSeconds' => NULL,
|
'waitSeconds' => NULL,
|
||||||
'withTrashed' => false,
|
'withTrashed' => false,
|
||||||
),
|
),
|
||||||
'nutzwerte.download' =>
|
'pdf' =>
|
||||||
array (
|
array (
|
||||||
'methods' =>
|
'methods' =>
|
||||||
array (
|
array (
|
||||||
0 => 'GET',
|
0 => 'GET',
|
||||||
1 => 'HEAD',
|
1 => 'HEAD',
|
||||||
),
|
),
|
||||||
'uri' => 'app/nutzwerte/{record}/{mode}/download',
|
'uri' => 'app/pdf/{record}/{type}/{mode}',
|
||||||
'action' =>
|
'action' =>
|
||||||
array (
|
array (
|
||||||
'middleware' =>
|
'middleware' =>
|
||||||
@@ -3094,14 +3071,14 @@ app('router')->setCompiledRoutes(
|
|||||||
0 => 'web',
|
0 => 'web',
|
||||||
1 => 'Filament\\Http\\Middleware\\Authenticate',
|
1 => 'Filament\\Http\\Middleware\\Authenticate',
|
||||||
),
|
),
|
||||||
'uses' => '\\App\\Actions\\Download\\Nutzwerte@download',
|
'uses' => '\\App\\Actions\\Generate\\Pdf@make',
|
||||||
'controller' => '\\App\\Actions\\Download\\Nutzwerte@download',
|
'controller' => '\\App\\Actions\\Generate\\Pdf@make',
|
||||||
'namespace' => NULL,
|
'namespace' => NULL,
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
'where' =>
|
'where' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'as' => 'nutzwerte.download',
|
'as' => 'pdf',
|
||||||
),
|
),
|
||||||
'fallback' => false,
|
'fallback' => false,
|
||||||
'defaults' =>
|
'defaults' =>
|
||||||
@@ -3117,14 +3094,14 @@ app('router')->setCompiledRoutes(
|
|||||||
'waitSeconds' => NULL,
|
'waitSeconds' => NULL,
|
||||||
'withTrashed' => false,
|
'withTrashed' => false,
|
||||||
),
|
),
|
||||||
'standard.download' =>
|
'excel' =>
|
||||||
array (
|
array (
|
||||||
'methods' =>
|
'methods' =>
|
||||||
array (
|
array (
|
||||||
0 => 'GET',
|
0 => 'GET',
|
||||||
1 => 'HEAD',
|
1 => 'HEAD',
|
||||||
),
|
),
|
||||||
'uri' => 'app/standard/{record}/{mode}/download',
|
'uri' => 'app/excel/{record}/{type}',
|
||||||
'action' =>
|
'action' =>
|
||||||
array (
|
array (
|
||||||
'middleware' =>
|
'middleware' =>
|
||||||
@@ -3132,52 +3109,14 @@ app('router')->setCompiledRoutes(
|
|||||||
0 => 'web',
|
0 => 'web',
|
||||||
1 => 'Filament\\Http\\Middleware\\Authenticate',
|
1 => 'Filament\\Http\\Middleware\\Authenticate',
|
||||||
),
|
),
|
||||||
'uses' => '\\App\\Actions\\Download\\Gutachten@download',
|
'uses' => '\\App\\Actions\\Generate\\Excel@make',
|
||||||
'controller' => '\\App\\Actions\\Download\\Gutachten@download',
|
'controller' => '\\App\\Actions\\Generate\\Excel@make',
|
||||||
'namespace' => NULL,
|
'namespace' => NULL,
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
'where' =>
|
'where' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'as' => 'standard.download',
|
'as' => 'excel',
|
||||||
),
|
|
||||||
'fallback' => false,
|
|
||||||
'defaults' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'wheres' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'bindingFields' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'lockSeconds' => NULL,
|
|
||||||
'waitSeconds' => NULL,
|
|
||||||
'withTrashed' => false,
|
|
||||||
),
|
|
||||||
'excel.download' =>
|
|
||||||
array (
|
|
||||||
'methods' =>
|
|
||||||
array (
|
|
||||||
0 => 'GET',
|
|
||||||
1 => 'HEAD',
|
|
||||||
),
|
|
||||||
'uri' => 'app/excel/{record}/{mode}/download',
|
|
||||||
'action' =>
|
|
||||||
array (
|
|
||||||
'middleware' =>
|
|
||||||
array (
|
|
||||||
0 => 'web',
|
|
||||||
1 => 'Filament\\Http\\Middleware\\Authenticate',
|
|
||||||
),
|
|
||||||
'uses' => '\\App\\Actions\\Download\\Excel@download',
|
|
||||||
'controller' => '\\App\\Actions\\Download\\Excel@download',
|
|
||||||
'namespace' => NULL,
|
|
||||||
'prefix' => '',
|
|
||||||
'where' =>
|
|
||||||
array (
|
|
||||||
),
|
|
||||||
'as' => 'excel.download',
|
|
||||||
),
|
),
|
||||||
'fallback' => false,
|
'fallback' => false,
|
||||||
'defaults' =>
|
'defaults' =>
|
||||||
@@ -3209,7 +3148,7 @@ app('router')->setCompiledRoutes(
|
|||||||
$config,
|
$config,
|
||||||
$isProduction
|
$isProduction
|
||||||
))($request, $path);
|
))($request, $path);
|
||||||
}";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000f550000000000000000";}}',
|
}";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000f520000000000000000";}}',
|
||||||
'as' => 'storage.local',
|
'as' => 'storage.local',
|
||||||
),
|
),
|
||||||
'fallback' => false,
|
'fallback' => false,
|
||||||
|
|||||||
@@ -22,12 +22,8 @@ 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->string('pdf_gutachten_name')->nullable();
|
|
||||||
$table->string('pdf_nutzwerte_name')->nullable();
|
$table->string('pdf_nutzwerte_name')->nullable();
|
||||||
$table->string('excel_nutzwerte_name')->nullable();
|
|
||||||
$table->boolean('pdf_nutzwerte_status')->default(0);
|
$table->boolean('pdf_nutzwerte_status')->default(0);
|
||||||
$table->boolean('pdf_gutachten_status')->default(0);
|
|
||||||
$table->boolean('excel_nutzwerte_status')->default(0);
|
|
||||||
$table->boolean('evaluation_gutachten')->default(0);
|
$table->boolean('evaluation_gutachten')->default(0);
|
||||||
$table->timestamp('bezahlt_am')->nullable();
|
$table->timestamp('bezahlt_am')->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|||||||
@@ -13,14 +13,14 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
Schema::create('inhaltsverzeichnis', function (Blueprint $table) {
|
Schema::create('inhaltsverzeichnis', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
|
$table->integer('sort')->default(0);
|
||||||
|
$table->double('ordnungszahl')->default(0);
|
||||||
$table->string('name')->nullable();
|
$table->string('name')->nullable();
|
||||||
$table->string('name2')->nullable();
|
$table->string('name2')->nullable();
|
||||||
$table->string('part')->nullable();
|
$table->string('part')->nullable();
|
||||||
$table->boolean('ueberschrift_anzeigen')->default(0)->nullable();
|
$table->boolean('ueberschrift_anzeigen')->default(0)->nullable();
|
||||||
$table->integer('tabellen_id')->default(0)->nullable();
|
$table->integer('tabellen_id')->default(0)->nullable();
|
||||||
$table->integer('textblock_id')->default(0)->nullable();
|
$table->integer('textblock_id')->default(0)->nullable();
|
||||||
$table->integer('sort')->default(0);
|
|
||||||
$table->double('ordnungszahl')->default(0);
|
|
||||||
$table->integer('seite')->default(0);
|
$table->integer('seite')->default(0);
|
||||||
$table->integer('neue_seite')->default(0);
|
$table->integer('neue_seite')->default(0);
|
||||||
$table->integer('seitenzahl_anzeige')->default(0);
|
$table->integer('seitenzahl_anzeige')->default(0);
|
||||||
|
|||||||
@@ -14,14 +14,14 @@ return new class extends Migration
|
|||||||
Schema::create('projekt_inhaltsverzeichnis', function (Blueprint $table) {
|
Schema::create('projekt_inhaltsverzeichnis', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->foreignId('projekte_id')->constrained()->cascadeOnDelete();
|
$table->foreignId('projekte_id')->constrained()->cascadeOnDelete();
|
||||||
|
$table->integer('sort')->default(0);
|
||||||
|
$table->double('ordnungszahl')->default(0);
|
||||||
$table->string('name')->nullable();
|
$table->string('name')->nullable();
|
||||||
$table->string('name2')->nullable();
|
$table->string('name2')->nullable();
|
||||||
$table->boolean('ueberschrift_anzeigen')->default(0)->nullable();
|
$table->boolean('ueberschrift_anzeigen')->default(0)->nullable();
|
||||||
$table->integer('tabellen_id')->default(0)->nullable();
|
$table->integer('tabellen_id')->default(0)->nullable();
|
||||||
$table->integer('textblock_id')->default(0)->nullable();
|
$table->integer('textblock_id')->default(0)->nullable();
|
||||||
$table->integer('konto_textblock_id')->default(0)->nullable();
|
$table->integer('konto_textblock_id')->default(0)->nullable();
|
||||||
$table->integer('sort')->default(0);
|
|
||||||
$table->double('ordnungszahl')->default(0);
|
|
||||||
$table->integer('part')->default(0);
|
$table->integer('part')->default(0);
|
||||||
$table->integer('seite')->default(0);
|
$table->integer('seite')->default(0);
|
||||||
$table->integer('neue_seite')->default(0);
|
$table->integer('neue_seite')->default(0);
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class InhaltsverzeichnisSeeder extends Seeder
|
|||||||
$sql = "INSERT INTO `inhaltsverzeichnis` (`id`, `name`, `name2`, `part`, `ueberschrift_anzeigen`, `tabellen_id`, `textblock_id`, `sort`, `ordnungszahl`, `seite`, `neue_seite`, `seitenzahl_anzeige`, `no_edit`, `created_at`, `updated_at`)
|
$sql = "INSERT INTO `inhaltsverzeichnis` (`id`, `name`, `name2`, `part`, `ueberschrift_anzeigen`, `tabellen_id`, `textblock_id`, `sort`, `ordnungszahl`, `seite`, `neue_seite`, `seitenzahl_anzeige`, `no_edit`, `created_at`, `updated_at`)
|
||||||
VALUES
|
VALUES
|
||||||
('1', 'DECKBLATT', NULL, 'standard', '0', '0', '11', '1', '0', '0', '1', '0', '0', NULL, '2025-10-19 08:13:53'),
|
('1', 'DECKBLATT', NULL, 'standard', '0', '0', '11', '1', '0', '0', '1', '0', '0', NULL, '2025-10-19 08:13:53'),
|
||||||
('2', 'INHALTSVERZEICHNIS', NULL, 'standard', '0', '1', '0', '3', '0', '0', '1', '0', '0', NULL, '2025-10-19 08:13:53'),
|
('2', 'INHALTSVERZEICHNIS', NULL, 'standard', '1', '1', '0', '3', '0', '0', '1', '0', '0', NULL, '2025-10-19 08:13:53'),
|
||||||
('3', 'ALLGEMEINE ANGABEN', NULL, 'standard', '1', '0', '0', '4', '1', '3', '1', '1', '0', NULL, '2025-10-19 08:13:53'),
|
('3', 'ALLGEMEINE ANGABEN', NULL, 'standard', '1', '0', '0', '4', '1', '3', '1', '1', '0', NULL, '2025-10-19 08:13:53'),
|
||||||
('4', 'AUFTRAGGEBER', NULL, 'standard', '1', '8', '0', '5', '1.1', '3', '0', '1', '0', NULL, '2025-10-19 08:13:53'),
|
('4', 'AUFTRAGGEBER', NULL, 'standard', '1', '8', '0', '5', '1.1', '3', '0', '1', '0', NULL, '2025-10-19 08:13:53'),
|
||||||
('5', 'ZWECK UND GEGENSTAND DES GUTACHTENS', NULL, 'standard', '1', '0', '1', '6', '1.2', '3', '0', '1', '0', NULL, '2025-10-19 08:13:53'),
|
('5', 'ZWECK UND GEGENSTAND DES GUTACHTENS', NULL, 'standard', '1', '0', '1', '6', '1.2', '3', '0', '1', '0', NULL, '2025-10-19 08:13:53'),
|
||||||
|
|||||||
@@ -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_gutachten_name`, `pdf_nutzwerte_name`, `excel_nutzwerte_name`, `pdf_nutzwerte_status`, `pdf_gutachten_status`, `excel_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`, `pdf_nutzwerte_name`, `pdf_nutzwerte_status`, `evaluation_gutachten`, `bezahlt_am`, `created_at`, `updated_at`, `deleted_at`)
|
||||||
VALUES
|
VALUES
|
||||||
('1', '1', '1', '1', 'P310 nht GE03 08 EF PLUS', 'P310 nht Gerlos Haus 2', 'Innsbruck', '<p>KOPIE! KOPIE! K4: lt. Änderungseinreichung<br>keine gravierenden unterschiede zu k2+<br>KOPIE VON EF!!<br>ÄNDERUNG - TAUSCH TOP 1+2 !!!<br><br><strong>ACHTUNG FÜR ENDFASSUNG </strong><br>gibt <strong>Änderung DER GARTENFLÄCHE bei Gartenwohnung W04 </strong>wegen neuem Weg über die Böschung zwichen Haus 2 und 3, ist <strong>noch nicht eingearbeitet</strong>, warten auf OK von nht - sh mail vom 19.09.2025 von studio 23<br>ansich würde sich an den Nutzwerten nichts verändern! 2NW für Garten G04<br><br><strong>GARTENÄNDERUNG AM 24.09.25 ERLEDIGT! EF SEPTEMBER 2025</strong></p>', '2025-10-22', 'entwurf', NULL, NULL, NULL, '0', '0', '0', '0', NULL, '2025-10-21 04:03:25', '2025-10-21 04:03:25', NULL);
|
('1', '1', '1', '1', 'P310 nht GE03 08 EF PLUS', 'P310 nht Gerlos Haus 2', 'Innsbruck', '<p>KOPIE! KOPIE! K4: lt. Änderungseinreichung<br>keine gravierenden unterschiede zu k2+<br>KOPIE VON EF!!<br>ÄNDERUNG - TAUSCH TOP 1+2 !!!<br><br><strong>ACHTUNG FÜR ENDFASSUNG </strong><br>gibt <strong>Änderung DER GARTENFLÄCHE bei Gartenwohnung W04 </strong>wegen neuem Weg über die Böschung zwichen Haus 2 und 3, ist <strong>noch nicht eingearbeitet</strong>, warten auf OK von nht - sh mail vom 19.09.2025 von studio 23<br>ansich würde sich an den Nutzwerten nichts verändern! 2NW für Garten G04<br><br><strong>GARTENÄNDERUNG AM 24.09.25 ERLEDIGT! EF SEPTEMBER 2025</strong></p>', '2025-10-22', 'entwurf', '', '0', '1', '2025-10-29 11:24:24', '2025-10-21 04:03:25', '2025-10-31 10:43:08', NULL);
|
||||||
";
|
";
|
||||||
|
|
||||||
DB::unprepared($sql);
|
DB::unprepared($sql);
|
||||||
|
|||||||
@@ -169,7 +169,8 @@ table {
|
|||||||
empty-cells: show;
|
empty-cells: show;
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
margin-top: 20mm;
|
margin-top: 10mm;
|
||||||
|
margin-bottom: 10mm;
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-striped tr:nth-child(2n-1) td {
|
.table-striped tr:nth-child(2n-1) td {
|
||||||
|
|||||||
@@ -1,80 +0,0 @@
|
|||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Invoice</title>
|
|
||||||
<script src="https://cdn.tailwindcss.com"></script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div class="px-2 py-8 max-w-xl mx-auto">
|
|
||||||
<div class="flex items-center justify-between mb-8">
|
|
||||||
<div class="flex items-center">
|
|
||||||
<div class="text-gray-700 font-semibold text-lg">Your Company Name</div>
|
|
||||||
</div>
|
|
||||||
<div class="text-gray-700">
|
|
||||||
<div class="font-bold text-xl mb-2 uppercase">Invoice</div>
|
|
||||||
<div class="text-sm">Date: 01/05/2023</div>
|
|
||||||
<div class="text-sm">Invoice #: {{ $invoiceNumber }}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="border-b-2 border-gray-300 pb-8 mb-8">
|
|
||||||
<h2 class="text-2xl font-bold mb-4">Bill To:</h2>
|
|
||||||
<div class="text-gray-700 mb-2">{{ $customerName }}</div>
|
|
||||||
<div class="text-gray-700 mb-2">123 Main St.</div>
|
|
||||||
<div class="text-gray-700 mb-2">Anytown, USA 12345</div>
|
|
||||||
<div class="text-gray-700">johndoe@example.com</div>
|
|
||||||
</div>
|
|
||||||
<table class="w-full text-left mb-8">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="text-gray-700 font-bold uppercase py-2">Description</th>
|
|
||||||
<th class="text-gray-700 font-bold uppercase py-2">Quantity</th>
|
|
||||||
<th class="text-gray-700 font-bold uppercase py-2">Price</th>
|
|
||||||
<th class="text-gray-700 font-bold uppercase py-2">Total</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td class="py-4 text-gray-700">Product 1</td>
|
|
||||||
<td class="py-4 text-gray-700">1</td>
|
|
||||||
<td class="py-4 text-gray-700">$100.00</td>
|
|
||||||
<td class="py-4 text-gray-700">$100.00</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="py-4 text-gray-700">Product 2</td>
|
|
||||||
<td class="py-4 text-gray-700">2</td>
|
|
||||||
<td class="py-4 text-gray-700">$50.00</td>
|
|
||||||
<td class="py-4 text-gray-700">$100.00</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="py-4 text-gray-700">Product 3</td>
|
|
||||||
<td class="py-4 text-gray-700">3</td>
|
|
||||||
<td class="py-4 text-gray-700">$75.00</td>
|
|
||||||
<td class="py-4 text-gray-700">$225.00</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<div class="flex justify-end mb-8">
|
|
||||||
<div class="text-gray-700 mr-2">Subtotal:</div>
|
|
||||||
<div class="text-gray-700">$425.00</div>
|
|
||||||
</div>
|
|
||||||
<div class="text-right mb-8">
|
|
||||||
<div class="text-gray-700 mr-2">Tax:</div>
|
|
||||||
<div class="text-gray-700">$25.50</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="flex justify-end mb-8">
|
|
||||||
<div class="text-gray-700 mr-2">Total:</div>
|
|
||||||
<div class="text-gray-700 font-bold text-xl">$450.50</div>
|
|
||||||
</div>
|
|
||||||
<div class="border-t-2 border-gray-300 pt-8 mb-8">
|
|
||||||
<div class="text-gray-700 mb-2">Payment is due within 30 days. Late payments are subject to fees.</div>
|
|
||||||
<div class="text-gray-700 mb-2">Please make checks payable to Your Company Name and mail to:</div>
|
|
||||||
<div class="text-gray-700">123 Main St., Anytown, USA 12345</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
+4
-6
@@ -1,8 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Actions\Download\Excel;
|
use App\Actions\Generate\Excel;
|
||||||
use App\Actions\Download\Gutachten;
|
use App\Actions\Generate\Pdf;
|
||||||
use App\Actions\Download\Nutzwerte;
|
|
||||||
use Filament\Http\Middleware\Authenticate;
|
use Filament\Http\Middleware\Authenticate;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
@@ -19,6 +18,5 @@ Route::get('/impressum', function () {
|
|||||||
return view('pages.impressum');
|
return view('pages.impressum');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::middleware(Authenticate::class)->get('/app/nutzwerte/{record}/{mode}/download', [Nutzwerte::class, 'download'])->name('nutzwerte.download');
|
Route::middleware(Authenticate::class)->get('/app/pdf/{record}/{type}/{mode}', [Pdf::class, 'make'])->name('pdf');
|
||||||
Route::middleware(Authenticate::class)->get('/app/standard/{record}/{mode}/download', [Gutachten::class, 'download'])->name('standard.download');
|
Route::middleware(Authenticate::class)->get('/app/excel/{record}/{type}', [Excel::class, 'make'])->name('excel');
|
||||||
Route::middleware(Authenticate::class)->get('/app/excel/{record}/{mode}/download', [Excel::class, 'download'])->name('excel.download');
|
|
||||||
Reference in new issue
Block a user