290 lines
13 KiB
PHP
290 lines
13 KiB
PHP
<?php
|
|
|
|
namespace App\Actions\Generate;
|
|
|
|
use App\Actions\Generate\Gutachten\AllgemeinTabelle;
|
|
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\Standardtext;
|
|
use App\Actions\Generate\Gutachten\Tabelle;
|
|
use App\Actions\Generate\Utilities\Format;
|
|
use App\Actions\Generate\Utilities\Html;
|
|
use App\Models\Auftraggeber;
|
|
use App\Models\Gutachter;
|
|
use App\Models\Inhaltsverzeichnis;
|
|
use App\Models\Projekte;
|
|
use App\Models\ProjektInhaltsverzeichnis;
|
|
use App\Models\ProjektPlatzhalter;
|
|
use Mpdf\HTMLParserMode;
|
|
use Mpdf\Mpdf;
|
|
|
|
class MakeGutachten
|
|
{
|
|
public static $projekt;
|
|
|
|
public static $gutachter;
|
|
|
|
public static $auftraggeber;
|
|
|
|
public static $platzhalter = [];
|
|
|
|
public static function generate($filepath, $projekte_id)
|
|
{
|
|
|
|
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();
|
|
|
|
self::$platzhalter = ProjektPlatzhalter::where('projekte_id', $projekte_id)->pluck('platzhaltertext', 'platzhalter')->toArray();
|
|
|
|
$mpdf = new Mpdf(
|
|
[
|
|
'debug' => true,
|
|
'mode' => 'utf-8',
|
|
'format' => 'A4-P',
|
|
'margin_left' => 15,
|
|
'margin_right' => 10,
|
|
'margin_top' => 10,
|
|
'margin_bottom' => 10,
|
|
'margin_header' => 0,
|
|
'margin_footer' => 0,
|
|
]
|
|
);
|
|
|
|
$stylesheet = file_get_contents(__DIR__.'/../../../resources/css/pdf-download.css');
|
|
$mpdf->WriteHTML($stylesheet, HTMLParserMode::HEADER_CSS);
|
|
$mpdf->SetTitle('Nutzwertgutachen '.self::$projekt->offizieller_name);
|
|
|
|
$mpdf->SetTitle('Gutachten '.self::$projekt->offizieller_name);
|
|
$mpdf->SetCreator('nutzwerte.at');
|
|
$mpdf->SetAuthor(self::$gutachter->title.' '.self::$gutachter->gender.' '.self::$gutachter->name);
|
|
|
|
$inhalte = ProjektInhaltsverzeichnis::where('projekte_id', $projekte_id)->orderBy('sort')->get();
|
|
|
|
foreach ($inhalte as $inhalt) {
|
|
/**
|
|
* DECKBLATT
|
|
*/
|
|
if ($inhalt->name == 'DECKBLATT') {
|
|
$textblock = Platzhalter::replace($inhalt->textblock);
|
|
$html = Deckblatt::create($textblock);
|
|
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
}
|
|
/**
|
|
* INHALTSVERZEICHNIS
|
|
*/
|
|
if ($inhalt->name == 'INHALTSVERZEICHNIS') {
|
|
$mpdf->AddPage();
|
|
$html = '<div class="header">INHALTSVERZEICHNIS</div>';
|
|
$html .= '<table class="inhalt">';
|
|
foreach ($inhalte as $data) {
|
|
$html .= '<tr>';
|
|
$html .= Html::td(Format::numeric($data->ordnungszahl, 2));
|
|
$html .= Html::td($data->name);
|
|
$html .= Html::td(Format::numeric($data->seite, 0));
|
|
$html .= '</tr>';
|
|
}
|
|
$html .= '</table>';
|
|
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
}
|
|
}
|
|
|
|
// $inhalte = Inhaltsverzeichnis::where('projekte_id', $projekte_id)->where('is_active', 1)->orderBy('pos')->get();
|
|
// if (count($inhalte) == 0) {
|
|
// exit;
|
|
// }
|
|
// foreach ($inhalte as $inhalt) {
|
|
|
|
// $standardtext = Standardtext::replace($inhalt['standardtext']);
|
|
|
|
// switch ($inhalt['kennung']) {
|
|
|
|
// case 'deckblatt':
|
|
// $html = Deckblatt::load($standardtext);
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'inhalt':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// }
|
|
// $html = Inhalt::load($standardtext);
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// break;
|
|
|
|
// case 'allgemeineangaben':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'auftraggeber':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $html .= trim(self::self::$auftraggeber->adressenblock);
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'zweck':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $html .= $standardtext;
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'ortsbesichtigung':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $html .= $standardtext;
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'unterlagen':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $html .= $standardtext;
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'befund':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'grundbuchstand':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $html .= Tabelle::load($standardtext);
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'beschreibung':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $html .= $standardtext;
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'paragraph_6_teil_1':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $html .= $standardtext;
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'paragraph_6_tabelle':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// }
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $html = Paragraph6Tabelle::load($projekte_id);
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'paragraph_6_teil_2':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $html .= $standardtext;
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'allgemeinflaechen_nach_p6':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">ALLGEMEINFLÄCHEN</div>';
|
|
// $html .= AllgemeinTabelle::load($projekte_id);
|
|
// $html .= '<br><br><br><br><br><br><br>';
|
|
// $html .= '<table class="inhalt"><tr>';
|
|
// $html .= '<td>'.self::$projekt->erstellung.'</td>';
|
|
// $html .= '<td class="right">'.self::$gutachter->kennung.'</td>';
|
|
// $html .= '</tr></table>';
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'gutachten':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// }
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'allgemeine-grundsaetze':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $html .= $standardtext;
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'allgemeine-bewertungen':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
|
// $html .= $standardtext;
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
|
|
// case 'zubehoer':
|
|
// if ($inhalt['neue_seite']) {
|
|
// $mpdf->AddPage();
|
|
// $mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
|
// }
|
|
// $html = '<div class="header">'.$inhalt['titel'].'</div>';
|
|
// $html .= $standardtext;
|
|
// $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
|
// break;
|
|
// }
|
|
// }
|
|
|
|
ob_clean();
|
|
|
|
$mpdf->Output($filepath, 'F');
|
|
}
|
|
}
|