where('projekte_id', $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($projekte_id, $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($projekte_id, $raumart) { if (! count(self::$methoden)) { self::$methoden = ProjektMethode::where('projekte_id', $projekte_id)->get(); } foreach (self::$methoden as $methode) { if ($methode->raumart == $raumart) { return $methode; } } dd('Model ProjektMethode "raumart" '.$raumart.' missing'.__FILE__); } }