'; $html .= Html::td($komponente['top_nummer'], 'bold bl bb'); $html .= Html::td($komponente['geschoss'], 'bl bb'); $html .= Html::td($komponente['orientierung'], 'bl bb'); $html .= Html::td($komponente['type'], 'bl bb'); $html .= Html::td($komponente['raumart'], 'bl bb'); $html .= Html::td(number_format($komponente['flaeche'], 2, ',', '.').' m²', 'right bl bb'); $html .= Html::td('', 'bl bb br', 5); $flaeche += $komponente['flaeche']; $html .= ''; } $faktor = (100 + $komponente['objekt_nutzwert']) / 100; $html .= ''; $html .= Html::td('', 'bl bb', 5); $html .= Html::td(number_format($flaeche, 2, ',', '.').' m²', 'right bl bb'); $html .= Html::td('x', 'center bl bb'); $html .= Html::td(number_format($faktor, 3, ',', '.'), 'center bl bb'); $html .= Html::td('=', 'center bl bb'); $html .= Html::td(number_format($flaeche * $faktor, 3, ',', '.'), 'right bl bb'); $summe_nutzwert = $flaeche * $faktor; $html .= Html::td(round($summe_nutzwert), 'center bl bb br'); $html .= ''; } /** * Wintergarten, Loggien, unter Stiegen */ if (isset($methoden[2])) { foreach ($methoden[2] as $komponente) { $html .= ''; $html .= Html::td('', 'bl bb'); $html .= Html::td($komponente['geschoss'], 'bl bb'); $html .= Html::td('', 'bl bb'); $html .= Html::td('', 'bl bb'); $html .= Html::td($komponente['raumart'], 'bl bb'); $html .= Html::td(number_format($komponente['flaeche'], 2, ',', '.').' m²', 'right bl bb'); $html .= Html::td('x', 'center bl bb'); $html .= Html::td(number_format($komponente['faktor'], 3), 'center bl bb'); $html .= Html::td('=', 'center bl bb'); $nutzwert = $komponente['flaeche'] * $komponente['faktor']; $html .= Html::td(number_format($nutzwert, 3, ',', '.'), 'right bl bb'); $html .= Html::td('', 'center bl bb br'); $html .= ''; } $html .= ''; $html .= Html::td('', 'bl bb', 9); $html .= Html::td(number_format($summe_nutzwert + $nutzwert, 3, ',', '.'), 'right bl bb'); $html .= Html::td(round($summe_nutzwert + $nutzwert), 'center bl bb'); $html .= ''; $summe_nutzwert += $nutzwert; } $summe_nutzwert = round($summe_nutzwert); /** * Terasse, Balkon */ if (isset($methoden[3])) { foreach ($methoden[3] as $komponente) { $html .= ''; $html .= Html::td('', 'bl bb'); $html .= Html::td($komponente['geschoss'], 'bl bb'); $html .= Html::td('', 'bl bb'); $html .= Html::td('', 'bl bb'); $html .= Html::td($komponente['raumart'], 'bl bb'); $html .= Html::td(number_format($komponente['flaeche'], 2, ',', '.').' m²', 'right bl bb'); $html .= Html::td('x', 'center bl bb'); $html .= Html::td(number_format($komponente['faktor'], 3), 'center bl bb'); $html .= Html::td('=', 'center bl bb'); $nutzwert = $komponente['flaeche'] * $komponente['faktor']; $html .= Html::td(number_format($nutzwert, 3, ',', '.'), 'right bl bb'); $nutzwert = round($nutzwert) < 1 ? 1 : round($nutzwert); $html .= Html::td($nutzwert, 'center bl bb br'); $html .= ''; $summe_nutzwert += $nutzwert; } } /** * Keller, Garten */ if (isset($methoden[4])) { foreach ($methoden[4] as $komponente) { $html .= ''; $html .= Html::td('', 'bl bb'); $html .= Html::td($komponente['geschoss'], 'bl bb'); $html .= Html::td('', 'bl bb'); $html .= Html::td('Zubehör', 'bl bb'); $html .= Html::td($komponente['raumart'], 'bl bb'); $html .= Html::td(number_format($komponente['flaeche'], 2, ',', '.').' m²', 'right bl bb'); $html .= Html::td('x', 'center bl bb'); $html .= Html::td(number_format($komponente['faktor'], 3), 'center bl bb'); $html .= Html::td('=', 'center bl bb'); $nutzwert = $komponente['flaeche'] * $komponente['faktor']; $html .= Html::td(number_format($nutzwert, 3, ',', '.'), 'right bl bb'); $nutzwert = round($nutzwert) < 1 ? 1 : round($nutzwert); $html .= Html::td($nutzwert, 'center bl bb br'); $html .= ''; $summe_nutzwert += $nutzwert; } } $html .= Html::table_footer($summe_nutzwert); $html .= ''; Pdf::$zusammenstellung[$komponente['id']] = $summe_nutzwert; } $objekte = self::laod_project(true); foreach ($objekte as $methoden) { /** * Stellplätze */ $html .= Html::table_header(['Top Nummer', 'Geschoß', '', 'Fläche', '', 'Faktor', '', '', 'Nutzwert'], 'page-break-inside:avoid'); $nutzwert = 0; if (isset($methoden[5])) { foreach ($methoden[5] as $komponente) { $html .= ''; $html .= Html::td($komponente['top_nummer'], 'bl bb'); $html .= Html::td($komponente['geschoss'], 'bl bb'); $html .= Html::td($komponente['raumart'], 'bl bb'); $html .= Html::td(number_format($komponente['flaeche'], 2, ',', '.').' m²', 'right bl bb'); $html .= Html::td('x', 'center bl bb'); $html .= Html::td(number_format($komponente['faktor'], 3), 'center bl bb'); $html .= Html::td('=', 'center bl bb'); $nutzwert = $komponente['flaeche'] * $komponente['faktor']; $html .= Html::td(number_format($nutzwert, 3, ',', '.'), 'right bl bb'); $nutzwert = round($nutzwert) < 1 ? 1 : round($nutzwert); $html .= Html::td($nutzwert, 'center bl bb br'); $html .= ''; } } $html .= Html::table_footer($nutzwert, 8); $html .= ''; Pdf::$zusammenstellung[$komponente['id']] = $nutzwert; } return $html; } public static function laod_project($nicht_in_orientierung) { $objekte = ProjektObjekte::with('orientierung') ->where('projekte_id', self::$projekte_id) ->where('nicht_in_orientierung', $nicht_in_orientierung) ->orderBy('top_nummer') ->get(); $tmp = []; foreach ($objekte as $objekt) { $elemente = ProjektObjekteImDetail::where('projekt_objekte_id', $objekt->id)->get(); foreach ($elemente as $key => $element) { $methode = self::laod_methode($element['raumart']); $methode_id = $methode['methode_id']; $methode_faktor = $methode['faktor']; $orientierung = $objekt['orientierung']['name'] ?? ''; if ($key > 0 && $methode_id == 1) { $orientierung = ''; } $geschoss = $element['geschoss'] ?? ''; if ($key > 0 && $methode_id <= 1) { $geschoss = ''; } $t = []; $t['id'] = $objekt->id; $t['type'] = ! $key ? $objekt->type : ''; $t['geschoss'] = $geschoss; $t['orientierung'] = $orientierung; $t['raumart'] = $element['raumart']; $t['flaeche'] = $element['flaeche']; $t['nutzwert'] = $element['nutzwert']; $t['top_nummer'] = ! $key ? $objekt->top_nummer : ''; $t['objekt_nutzwert'] = $objekt->nutzwert; $t['faktor'] = $methode_faktor; $tmp[$objekt->top_nummer][$methode_id][] = $t; } } return $tmp; } public static function laod_methode($raumart) { if (! count(self::$methoden)) { self::$methoden = ProjektMethode::where('projekte_id', self::$projekte_id)->get(); } foreach (self::$methoden as $methode) { if ($methode->raumart == $raumart) { return $methode; } } dd('Model ProjektMethode "raumart" '.$raumart.' missing'.__FILE__); } }