70 lines
2.3 KiB
PHP
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;
|
|
}
|
|
}
|