pdf wip
This commit is contained in:
1 parent
a20893d527
commit
4b79874100
31 files changed
+549
-1535
No files matched your search
@@ -2,21 +2,28 @@
|
||||
|
||||
namespace App\Actions\Generate\Tabellen;
|
||||
|
||||
use App\Actions\Generate\Tabellen\Nutzwerte\Projekt;
|
||||
use App\Actions\Generate\Pdf;
|
||||
use App\Actions\Generate\Utilities\Html;
|
||||
use App\Models\ProjektMethode;
|
||||
use App\Models\ProjektObjekte;
|
||||
use App\Models\ProjektObjekteImDetail;
|
||||
|
||||
class Nutzwertberechnung
|
||||
{
|
||||
public static $methoden = [];
|
||||
|
||||
public static $projekte_id = 0;
|
||||
|
||||
public static function load($projekte_id)
|
||||
{
|
||||
$objekte = Projekt::load($projekte_id);
|
||||
self::$projekte_id = $projekte_id;
|
||||
|
||||
// dd($objekte);
|
||||
$objekte = self::laod_project(false);
|
||||
|
||||
$html = '';
|
||||
foreach ($objekte as $methoden) {
|
||||
|
||||
$html .= Html::table_header(['Top Nr.', 'Geschoß', 'Orientierung', 'Typ', '', 'Fläche', '', 'Faktor', '', '', 'Nutzwert']);
|
||||
$html .= Html::table_header(['Top Nummer', 'Geschoß', 'Orientierung', 'Typ', '', 'Fläche', '', 'Faktor', '', '', 'Nutzwert'], 'page-break-inside:avoid');
|
||||
|
||||
$summe_nutzwert = 0;
|
||||
/**
|
||||
@@ -26,7 +33,7 @@ class Nutzwertberechnung
|
||||
$flaeche = 0;
|
||||
foreach ($methoden[1] as $komponente) {
|
||||
$html .= '<tr>';
|
||||
$html .= Html::td($komponente['top_nummer'], 'bl bb');
|
||||
$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');
|
||||
@@ -46,8 +53,8 @@ class Nutzwertberechnung
|
||||
$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 = round($flaeche * $faktor);
|
||||
$html .= Html::td($summe_nutzwert, 'center bl bb br');
|
||||
$summe_nutzwert = $flaeche * $faktor;
|
||||
$html .= Html::td(round($summe_nutzwert), 'center bl bb br');
|
||||
$html .= '</tr>';
|
||||
}
|
||||
|
||||
@@ -68,12 +75,19 @@ class Nutzwertberechnung
|
||||
$html .= Html::td('=', 'center bl bb');
|
||||
$nutzwert = $komponente['flaeche'] * $komponente['faktor'];
|
||||
$html .= Html::td(number_format($nutzwert, 3, ',', '.'), 'right bl bb');
|
||||
$nutzwert = round($nutzwert);
|
||||
$html .= Html::td($nutzwert, 'center bl bb br');
|
||||
$summe_nutzwert += $nutzwert;
|
||||
$html .= Html::td('', 'center bl bb br');
|
||||
$html .= '</tr>';
|
||||
}
|
||||
|
||||
$html .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
|
||||
$summe_nutzwert += $nutzwert;
|
||||
}
|
||||
$summe_nutzwert = round($summe_nutzwert);
|
||||
|
||||
/**
|
||||
* Terasse, Balkon
|
||||
@@ -92,10 +106,11 @@ class Nutzwertberechnung
|
||||
$html .= Html::td('=', 'center bl bb');
|
||||
$nutzwert = $komponente['flaeche'] * $komponente['faktor'];
|
||||
$html .= Html::td(number_format($nutzwert, 3, ',', '.'), 'right bl bb');
|
||||
$nutzwert = round($nutzwert);
|
||||
$nutzwert = round($nutzwert) < 1 ? 1 : round($nutzwert);
|
||||
$html .= Html::td($nutzwert, 'center bl bb br');
|
||||
$summe_nutzwert += $nutzwert;
|
||||
$html .= '</tr>';
|
||||
|
||||
$summe_nutzwert += $nutzwert;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,18 +131,113 @@ class Nutzwertberechnung
|
||||
$html .= Html::td('=', 'center bl bb');
|
||||
$nutzwert = $komponente['flaeche'] * $komponente['faktor'];
|
||||
$html .= Html::td(number_format($nutzwert, 3, ',', '.'), 'right bl bb');
|
||||
$nutzwert = round($nutzwert);
|
||||
$nutzwert = round($nutzwert) < 1 ? 1 : round($nutzwert);
|
||||
$html .= Html::td($nutzwert, 'center bl bb br');
|
||||
$summe_nutzwert += $nutzwert;
|
||||
$html .= '</tr>';
|
||||
|
||||
$summe_nutzwert += $nutzwert;
|
||||
}
|
||||
}
|
||||
|
||||
$html .= Html::table_footer($summe_nutzwert);
|
||||
$html .= '</table>';
|
||||
|
||||
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 .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
}
|
||||
}
|
||||
|
||||
$html .= Html::table_footer($nutzwert, 8);
|
||||
$html .= '</table>';
|
||||
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__);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user