259 lines
12 KiB
PHP
259 lines
12 KiB
PHP
<?php
|
|
|
|
namespace App\Actions\Generate\Tabellen;
|
|
|
|
use App\Actions\Generate\PdfGenerator;
|
|
use App\Actions\Generate\Utilities\Html;
|
|
|
|
class Nutzwertberechnung
|
|
{
|
|
public static $projekte_id = 0;
|
|
|
|
public static function load(int $projekte_id)
|
|
{
|
|
self::$projekte_id = $projekte_id;
|
|
|
|
$objekte = LadeProjekt::project($projekte_id, false);
|
|
|
|
$html = '';
|
|
foreach ($objekte as $topnr => $methoden) {
|
|
|
|
// if ($topnr == 'W03')
|
|
// dd($methoden);
|
|
|
|
if (PdfGenerator::$projekt->pdf_nutzwerte_tabellen_umbruch) {
|
|
$html .= '<table autosize="1">';
|
|
} else {
|
|
$html .= '<table autosize="1" style="page-break-inside:avoid;">';
|
|
}
|
|
$html .= '<thead><tr>';
|
|
$html .= '<th class="bl bt bg-user-set">Top Nr.</th>';
|
|
$html .= '<th class="bt bb bg-user-set">Geschoß</th>';
|
|
$html .= '<th class="bt bb bg-user-set">Orientierung</th>';
|
|
$html .= '<th class="bt bb bg-user-set">Typ</th>';
|
|
$html .= '<th class="bt bb bg-user-set">Raumart</th>';
|
|
$html .= '<th class="bt bb bg-user-set">Fläche</th>';
|
|
$html .= '<th class="bt bb bg-user-set" colspan="6"></th>';
|
|
$html .= '<th class="bt br bb bg-user-set">Nutzwert</th>';
|
|
$html .= '</tr></thead>';
|
|
|
|
$summe_nutzwert = 0;
|
|
$faktor = 1;
|
|
/**
|
|
* Normale Wohnnutzflächen
|
|
*/
|
|
if (isset($methoden[1])) {
|
|
$flaeche = 0;
|
|
|
|
foreach ($methoden[1] as $komponente) {
|
|
$html .= '<tr>';
|
|
// $html .= Html::td($komponente['top_nummer'], 'bl bg-user-set');
|
|
$html .= Html::td($topnr, 'bl bg-user-set');
|
|
$html .= Html::td($komponente['geschoss'], 'bl');
|
|
$html .= Html::td($komponente['orientierung'], 'bl');
|
|
$html .= Html::td($komponente['type'], 'bl');
|
|
$html .= Html::td($komponente['raumart'], 'bl');
|
|
$html .= Html::td(number_format($komponente['flaeche'], 2, ',', '.').' m²', 'right bl nowrap');
|
|
$html .= Html::td('', 'bl br', 7);
|
|
$flaeche += $komponente['flaeche'];
|
|
$html .= '</tr>';
|
|
$topnr = '';
|
|
|
|
$faktor = (100 + $komponente['objekt_nutzwert']) / 100;
|
|
}
|
|
|
|
$html .= '<tr>';
|
|
$html .= Html::td('', 'bl bg-user-set');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td(number_format($flaeche, 2, ',', '.').' m²', 'right bl nowrap');
|
|
$html .= Html::td('x', 'center bl');
|
|
$html .= Html::td(number_format($faktor, 3, ',', '.'), 'center bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('=', 'center bl');
|
|
$html .= Html::td(number_format($flaeche * $faktor, 3, ',', '.'), 'right bl');
|
|
$summe_nutzwert = $flaeche * $faktor;
|
|
$html .= Html::td(round($summe_nutzwert), 'center bl br');
|
|
$html .= '</tr>';
|
|
}
|
|
|
|
/**
|
|
* METHODE 2b
|
|
* Wintergarten, Loggien, unter Stiegen
|
|
*/
|
|
if (isset($methoden[2]) || isset($methoden[8])) {
|
|
if (isset($methoden[2])) {
|
|
foreach ($methoden[2] as $komponente) {
|
|
$html .= '<tr>';
|
|
$html .= Html::td('', 'bl bg-user-set');
|
|
$html .= Html::td($komponente['geschoss'], 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td($komponente['raumart'], 'bl');
|
|
$html .= Html::td(number_format($komponente['flaeche'], 2, ',', '.').' m²', 'right bl');
|
|
$html .= Html::td('x', 'center bl');
|
|
$html .= Html::td(number_format($faktor, 3, ',', '.'), 'center bl');
|
|
$html .= Html::td('x', 'center bl');
|
|
$html .= Html::td(number_format($komponente['faktor'], 3), 'center bl');
|
|
$html .= Html::td('=', 'center bl');
|
|
$nutzwert = $komponente['flaeche'] * $komponente['faktor'] * $faktor;
|
|
$summe_nutzwert += $nutzwert;
|
|
$html .= Html::td(number_format($nutzwert, 3, ',', '.'), 'right bl');
|
|
$html .= Html::td('', 'center bl br');
|
|
$html .= '</tr>';
|
|
}
|
|
}
|
|
|
|
/**
|
|
* METHODE 2
|
|
* Loggien
|
|
*/
|
|
if (isset($methoden[8])) {
|
|
foreach ($methoden[8] as $komponente) {
|
|
$html .= '<tr>';
|
|
$html .= Html::td('', 'bl bg-user-set');
|
|
$html .= Html::td($komponente['geschoss'], 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td($komponente['raumart'], 'bl');
|
|
$html .= Html::td(number_format($komponente['flaeche'], 2, ',', '.').' m²', 'right bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('x', 'center bl');
|
|
$html .= Html::td(number_format($komponente['faktor'], 3), 'center bl');
|
|
$html .= Html::td('=', 'center bl');
|
|
$nutzwert = $komponente['flaeche'] * $komponente['faktor'];
|
|
$summe_nutzwert += $nutzwert;
|
|
$html .= Html::td(number_format($nutzwert, 3, ',', '.'), 'right bl');
|
|
$html .= Html::td('', 'center bl br');
|
|
$html .= '</tr>';
|
|
}
|
|
}
|
|
|
|
$html .= '<tr>';
|
|
$html .= Html::td('', 'bl bg-user-set');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td(number_format($summe_nutzwert, 3, ',', '.'), 'right bl');
|
|
$html .= Html::td(round($summe_nutzwert), 'center bl br');
|
|
$html .= '</tr>';
|
|
}
|
|
$summe_nutzwert = round($summe_nutzwert);
|
|
|
|
/**
|
|
* Terasse, Balkon
|
|
*/
|
|
if (isset($methoden[3])) {
|
|
foreach ($methoden[3] as $komponente) {
|
|
$html .= '<tr>';
|
|
$html .= Html::td('', 'bl bg-user-set');
|
|
$html .= Html::td($komponente['geschoss'], 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td($komponente['raumart'], 'bl');
|
|
$html .= Html::td(number_format($komponente['flaeche'], 2, ',', '.').' m²', 'right bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('x', 'center bl');
|
|
$html .= Html::td(number_format($komponente['faktor'], 3), 'center bl');
|
|
$html .= Html::td('=', 'center bl');
|
|
$nutzwert = $komponente['flaeche'] * $komponente['faktor'];
|
|
$html .= Html::td(number_format($nutzwert, 3, ',', '.'), 'right bl');
|
|
$nutzwert = round($nutzwert) < 1 ? 1 : round($nutzwert);
|
|
$html .= Html::td($nutzwert, 'center bl br');
|
|
$html .= '</tr>';
|
|
|
|
$summe_nutzwert += $nutzwert;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Keller, Garten
|
|
*/
|
|
if (isset($methoden[4])) {
|
|
foreach ($methoden[4] as $komponente) {
|
|
$html .= '<tr>';
|
|
$html .= Html::td('', 'bl bg-user-set');
|
|
$html .= Html::td($komponente['geschoss'], 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('Zubehör', 'bl');
|
|
$html .= Html::td($komponente['raumart'], 'bl');
|
|
$html .= Html::td(number_format($komponente['flaeche'], 2, ',', '.').' m²', 'right bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('', 'bl');
|
|
$html .= Html::td('x', 'center bl');
|
|
$html .= Html::td(number_format($komponente['faktor'], 3), 'center bl');
|
|
$html .= Html::td('=', 'center bl');
|
|
$nutzwert = $komponente['flaeche'] * $komponente['faktor'];
|
|
$html .= Html::td(number_format($nutzwert, 3, ',', '.'), 'right bl');
|
|
$nutzwert = round($nutzwert) < 1 ? 1 : round($nutzwert);
|
|
$html .= Html::td($nutzwert, 'center bl br');
|
|
$html .= '</tr>';
|
|
|
|
$summe_nutzwert += $nutzwert;
|
|
}
|
|
}
|
|
|
|
$html .= Html::table_footer($summe_nutzwert);
|
|
$html .= '</table>';
|
|
|
|
PdfGenerator::$zusammenstellung[$komponente['id']] = $summe_nutzwert;
|
|
}
|
|
|
|
$objekte = LadeProjekt::project($projekte_id, true);
|
|
|
|
foreach ($objekte as $methoden) {
|
|
/**
|
|
* Stellplätze
|
|
*/
|
|
$html .= '<table autosize="1" style="page-break-inside:avoid;">';
|
|
$html .= '<thead><tr>';
|
|
$html .= '<th class="bl bt bg-user-set">Top Nr.</th>';
|
|
$html .= '<th class="bt bb bg-user-set">Geschoß</th>';
|
|
$html .= '<th class="bt bb bg-user-set">Raumart</th>';
|
|
$html .= '<th class="bt bb bg-user-set">Fläche</th>';
|
|
$html .= '<th class="bt bb bg-user-set" colspan="4"></th>';
|
|
$html .= '<th class="bt bb br bg-user-set">Nutzwert</th>';
|
|
$html .= '</tr></thead>';
|
|
|
|
$nutzwert = 0;
|
|
|
|
if (isset($methoden[5])) {
|
|
foreach ($methoden[5] as $komponente) {
|
|
$html .= '<tr>';
|
|
$html .= Html::td($komponente['top_nummer'], 'bl bg-user-set');
|
|
$html .= Html::td($komponente['geschoss'], 'bl');
|
|
$html .= Html::td($komponente['raumart'], 'bl');
|
|
$html .= Html::td(number_format($komponente['flaeche'], 2, ',', '.').' m²', 'right bl');
|
|
$html .= Html::td('x', 'center bl');
|
|
$html .= Html::td(number_format($komponente['faktor'], 3), 'center bl');
|
|
$html .= Html::td('=', 'center bl');
|
|
$flaeche = $komponente['flaeche'] * $komponente['faktor'];
|
|
$html .= Html::td(number_format($flaeche, 3, ',', '.'), 'right bl');
|
|
$tmp = round($flaeche) < 1 ? 1 : round($flaeche);
|
|
$html .= Html::td($tmp, 'center bl br');
|
|
$nutzwert += $tmp;
|
|
$html .= '</tr>';
|
|
}
|
|
}
|
|
|
|
$html .= Html::table_footer($nutzwert, 8);
|
|
$html .= '</table>';
|
|
PdfGenerator::$zusammenstellung[$komponente['id']] = $nutzwert;
|
|
}
|
|
|
|
return $html;
|
|
}
|
|
}
|