92 lines
3.2 KiB
PHP
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;
|
|
}
|
|
}
|