Files
nutzwerte_fi4/app/Actions/Generate/Nutzwerte/Zusammenstellung_Methode5.php
T
2025-10-13 07:35:09 +02:00

66 lines
2.5 KiB
PHP

<?php
namespace App\Actions\Generate\Nutzwerte;
use App\Models\Raumalles;
use App\Models\Raumorientierung;
class Zusammenstellung_Methode5
{
public static function load($projekts_id)
{
// 5
// Stellplätze berechnet nur mit Absolutem Faktor multipliziert,
// wird aber nicht in Orientierung aufgeführt und im PDF als eigenes Objekt ausgegeben.
// 6
// Zubehör zu Objekt der Methode 5
// (z.b ein Kellerabteil, das zu einem Stellplatz gehört, aber räumlich getrennt ist)
// Wird wie bei Methode 4 im PDF einzeln aufgelistet und
// nur mit Absolutem Faktor multipliziert, dann gerundet und der Nutzwert als ganze Zahl angeführt.
// Vor dem Objekt steht "Zubehör"
// 9
// Zubehör zu Objekt der Methode 5
// (ist direkt verbunden mit dem Objekt, zB. das Kellerabteil hinter dem Stellplatz,
// oder eine eigene Zufahrt nur zu einem Stellplatz).
// Wird mit Absolutem Faktor multipliziert und ungerundet zum Objekt der Methode 5 dazugezählt,
// dann erst die Summe des NW gerundet
$res = Raumalles::select('raumorientierung_id', 'geschoss')->where('projekts_id', $projekts_id)->whereIn('methodes_id', [5, 9])->groupBy('raumorientierung_id', 'geschoss')->get();
$geschoss = [];
$raumorientierung_ids = [];
foreach ($res as $value) {
$geschoss[$value->raumorientierung_id][] = $value->geschoss;
$raumorientierung_ids[] = $value->raumorientierung_id;
}
$res = Raumalles::select('raumorientierung_id', 'raum')->where('projekts_id', $projekts_id)->whereIn('methodes_id', [5, 9])->get();
$type = [];
foreach ($res as $value) {
$type[$value->raumorientierung_id] = $value->raum;
}
$res = Raumorientierung::where('projekts_id', $projekts_id)->whereIn('id', $raumorientierung_ids)->orderBy('top_nr')->get();
$return = [];
foreach ($res as $value) {
$tmp = [];
$tmp['id'] = $value->id;
$tmp['top_nr'] = $value->top_nr;
$tmp['type'] = '';
if (isset($type[$value->id])) {
$tmp['type'] = $type[$value->id];
}
$tmp['nutzwert_summe'] = $value->nutzwert_summe;
$tmp['orientierung'] = '';
$tmp['geschoss'] = '';
if (isset($geschoss[$value['id']])) {
$tmp['geschoss'] = implode(',', $geschoss[$value->id]);
}
$return[] = $tmp;
}
return $return;
}
}