Files
nutzwerte_fi4/app/Actions/Generate/Tabellen/Nutzwerte/Projekt.php
T
2025-11-13 12:01:02 +01:00

49 lines
1.6 KiB
PHP

<?php
namespace App\Actions\Generate\Tabellen\Nutzwerte;
use App\Models\ProjektMethode;
use App\Models\ProjektObjekte;
use App\Models\ProjektObjekteImDetail;
class Projekt
{
public static function load($projekte_id)
{
$methoden = ProjektMethode::where('projekte_id', $projekte_id)->pluck('methode_id', 'raumart')->toArray();
$objekte = ProjektObjekte::with('orientierung')
->where('projekte_id', $projekte_id)
->orderBy('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_id = $methoden[$element['raumart']];
$t = [];
$t['type'] = $objekt->type ?? '';
$t['geschoss'] = $element['geschoss'];
$t['raumart'] = $element['raumart'];
$t['faktor'] = $element['faktor'];
$t['flaeche'] = $element['flaeche'];
$t['nutzwert'] = $element['nutzwert'];
$t['top_nummer'] = ! $key ? $objekt->top_nummer : '';
$t['objekt_nutzwert'] = $objekt->nutzwert;
$t['faktor_methode'] = $element['methode']['faktor'];
$t['orientierung'] = isset($objekt['orientierung']['name']) ? $objekt['orientierung']['name'] : '';
$tmp[$objekt->top_nummer][$methode_id][] = $t;
}
}
// dd($tmp);
return $tmp;
}
}