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

92 lines
3.2 KiB
PHP

<?php
namespace App\Actions\Generate\Nutzwerte;
use App\Models\Raumalles;
use App\Models\Raumorientierung;
use App\Utilities\Format;
use App\Utilities\Html;
class BerechnungM5
{
public static function load(int $projekts_id)
{
$html = '';
$result = Raumorientierung::where('projekts_id', $projekts_id)
->where('nicht_in_orientierung', 1)
->orderBy('top_nr')
->get();
if ($result->isEmpty()) {
return;
}
foreach ($result as $key => $_objekte) {
$raumorientierung_id = $_objekte->id;
$_raume_m5 = Raumalles::where('projekts_id', $projekts_id)->where('raumorientierung_id', $raumorientierung_id)->whereIn('methodes_id', [5, 6, 9])->get();
$summe_nutzwert = 0;
if (\count($_raume_m5) > 0) {
$html .= '<table class="text-75" style="page-break-inside:avoid;">';
$html .= '<tr>';
$html .= Html::td('Top', 'head bl bt w10p');
$html .= Html::td('Geschoß', 'head bt bb');
$html .= Html::td('Type', 'head bt bb');
$html .= Html::td('qm', 'head center bt bb');
$html .= Html::td('', 'head bt bb');
$html .= Html::td('Faktor', 'head center bt bb');
$html .= Html::td('', 'head bt bb');
$html .= Html::td('', 'head bt bb');
$html .= Html::td('Nw', 'center head bt bb br');
$html .= '</tr>';
// Methode 5
foreach ($_raume_m5 as $key => $_raum) {
if ($key > 0) {
$_objekte->top_nr = '';
$_raum->geschoss = '';
$_objekte->typ = '';
}
$html .= '<tr>';
$html .= Html::td($_objekte->top_nr, 'head center bl br');
$html .= Html::td($_raum->geschoss, 'br');
$html .= Html::td($_raum->raum, 'br');
$html .= Html::td(Format::numeric($_raum->qm, 2), 'center br');
$html .= Html::td('x', 'center br');
$html .= Html::td(Format::numeric($_raum->factor, 3), 'center br');
$html .= Html::td('=', 'center br');
$nutzwert = $_raum->qm * $_raum->factor;
$html .= Html::td(Format::numeric($nutzwert, 3), 'center br');
if ($_raum->methodes_id != 9) {
$html .= Html::td($nutzwert, 'center br');
} else {
$html .= Html::td('', 'br');
}
$html .= '</tr>';
$summe_nutzwert += $nutzwert;
}
$summe_nutzwert = $summe_nutzwert < 1 ? 1 : round($summe_nutzwert);
$html .= '<tr>';
$html .= Html::td('', 'head bl bb');
$html .= Html::td('Nutzwert gerundet', 'head right bt bb', 7);
$html .= Html::td($summe_nutzwert, 'head right grau bt br bb');
$html .= '</tr>';
$html .= '</table>';
}
}
return $html;
}
}