nutzwerte wip
This commit is contained in:
1 parent
c04a856cee
commit
a20893d527
10 files changed
+2082
-1745
No files matched your search
@@ -2,66 +2,130 @@
|
||||
|
||||
namespace App\Actions\Generate\Tabellen;
|
||||
|
||||
use App\Actions\Generate\Tabellen\Nutzwerte\Projekt;
|
||||
use App\Actions\Generate\Utilities\Html;
|
||||
use App\Models\ProjektObjekte;
|
||||
use App\Models\ProjektObjekteImDetail;
|
||||
|
||||
class Nutzwertberechnung
|
||||
{
|
||||
public static function load($projekte_id)
|
||||
{
|
||||
$objekte = ProjektObjekte::with('orientierung')
|
||||
->where('projekte_id', $projekte_id)
|
||||
->orderBy('nicht_in_orientierung')
|
||||
->orderBy('top_nummer')
|
||||
->get();
|
||||
$objekte = Projekt::load($projekte_id);
|
||||
|
||||
// dd($objekte);
|
||||
|
||||
$html = '';
|
||||
foreach ($objekte as $objekt) {
|
||||
foreach ($objekte as $methoden) {
|
||||
|
||||
$html .= Html::table_header(['Top Nr.', 'Geschoß', 'Orientierung', 'Typ', 'Objekt', 'Fläche', '', '', '', '', '', '', 'Nutzwert']);
|
||||
$html .= Html::table_header(['Top Nr.', 'Geschoß', 'Orientierung', 'Typ', '', 'Fläche', '', 'Faktor', '', '', 'Nutzwert']);
|
||||
|
||||
$elemente = ProjektObjekteImDetail::where('projekt_objekte_id', $objekt->id)
|
||||
->with('methode')
|
||||
->get();
|
||||
$summe_nutzwert = 0;
|
||||
/**
|
||||
* Normale Wohnnutzflächen
|
||||
*/
|
||||
if (isset($methoden[1])) {
|
||||
$flaeche = 0;
|
||||
foreach ($methoden[1] as $komponente) {
|
||||
$html .= '<tr>';
|
||||
$html .= Html::td($komponente['top_nummer'], '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 .= '</tr>';
|
||||
}
|
||||
|
||||
dd($elemente);
|
||||
|
||||
$tmp = [];
|
||||
foreach ($elemente as $key => $element) {
|
||||
dd($element);
|
||||
$t = [];
|
||||
$t['top_nummer'] = $objekt->top_nummer;
|
||||
$objekt->top_nummer = '';
|
||||
$t['geschoss'] = (! $key || $element->methode->methode_id != 1) ? $element['geschoss'] : '';
|
||||
$t['raumart'] = $element['raumart'];
|
||||
$t['faktor'] = $element['faktor'];
|
||||
$t['flaeche'] = $element['flaeche'];
|
||||
$t['nutzwert'] = $element['nutzwert'];
|
||||
$t['methode_id'] = $element['methode']['methode_id'];
|
||||
$t['faktor_methode'] = $element['methode']['faktor'];
|
||||
$t['orientierung'] = $key == 0 && isset($objekt['orientierung']['name']) ? $objekt['orientierung']['name'] : '';
|
||||
$tmp[] = $t;
|
||||
}
|
||||
$order = array_column($tmp, 'methode_id');
|
||||
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $order);
|
||||
|
||||
foreach ($tmp as $element) {
|
||||
$faktor = (100 + $komponente['objekt_nutzwert']) / 100;
|
||||
|
||||
$html .= '<tr>';
|
||||
|
||||
// TOP NUMMER
|
||||
$html .= Html::td($element['top_nummer'], 'bl bb');
|
||||
|
||||
// GESCHOSS
|
||||
$html .= Html::td($element['geschoss'], 'bl bb');
|
||||
|
||||
// ORIENTIERUNG
|
||||
$html .= Html::td($element['orientierung'], 'bl bb');
|
||||
|
||||
$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 = round($flaeche * $faktor);
|
||||
$html .= Html::td($summe_nutzwert, 'center bl bb br');
|
||||
$html .= '</tr>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Wintergarten, Loggien, unter Stiegen
|
||||
*/
|
||||
if (isset($methoden[2])) {
|
||||
foreach ($methoden[2] as $komponente) {
|
||||
$html .= '<tr>';
|
||||
$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);
|
||||
$html .= Html::td($nutzwert, 'center bl bb br');
|
||||
$summe_nutzwert += $nutzwert;
|
||||
$html .= '</tr>';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Terasse, Balkon
|
||||
*/
|
||||
if (isset($methoden[3])) {
|
||||
foreach ($methoden[3] as $komponente) {
|
||||
$html .= '<tr>';
|
||||
$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);
|
||||
$html .= Html::td($nutzwert, 'center bl bb br');
|
||||
$summe_nutzwert += $nutzwert;
|
||||
$html .= '</tr>';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Keller, Garten
|
||||
*/
|
||||
if (isset($methoden[4])) {
|
||||
foreach ($methoden[4] as $komponente) {
|
||||
$html .= '<tr>';
|
||||
$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);
|
||||
$html .= Html::td($nutzwert, 'center bl bb br');
|
||||
$summe_nutzwert += $nutzwert;
|
||||
$html .= '</tr>';
|
||||
}
|
||||
}
|
||||
|
||||
$html .= Html::table_footer($summe_nutzwert);
|
||||
$html .= '</table>';
|
||||
|
||||
}
|
||||
|
||||
return $html;
|
||||
|
||||
Reference in new issue
Block a user