Files
nutzwerte_fi4/app/Actions/Generate/Tabellen/Nutzwertberechnung.php
T
2025-11-12 19:44:44 +01:00

70 lines
2.3 KiB
PHP

<?php
namespace App\Actions\Generate\Tabellen;
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();
$html = '';
foreach ($objekte as $objekt) {
$html .= Html::table_header(['Top Nr.', 'Geschoß', 'Orientierung', 'Typ', 'Objekt', 'Fläche', '', '', '', '', '', '', 'Nutzwert']);
$elemente = ProjektObjekteImDetail::where('projekt_objekte_id', $objekt->id)
->with('methode')
->get();
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) {
$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 .= '</tr>';
}
$html .= '</table>';
}
return $html;
}
}