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

65 lines
2.6 KiB
PHP

<?php
namespace App\Actions\Generate\Nutzwerte;
use App\Models\Merkmale;
use App\Models\Raumalles;
use App\Models\Raumorientierung;
use App\Utilities\Format;
use App\Utilities\Html;
class ZuUndAbschlaege
{
public static function load(int $projekts_id)
{
Raumorientierung::where('projekts_id', $projekts_id)->where('top_nr', '')->delete();
Raumorientierung::where('projekts_id', $projekts_id)->where('top_nr', 'like', '%---%')->delete();
// 3.21 Zu und Abschläge
$header_row = ['Top', 'Geschoß', 'Typ', 'Nutzfläche', 'Loggia / sonst. Zusatzflächen', 'Gesamtnutzfläche'];
$merkmale = Merkmale::merkmale($projekts_id);
$markmale_col = [];
foreach ($merkmale as $value) {
$markmale_col[] = $value['col'];
$header_row[] = $value['name'];
}
$header_row[] = 'Summe Merkmale';
$header_row[] = 'Wohnungsbewertung';
$html = Html::table_header_90($header_row);
$res = Raumalles::select('raumorientierung_id', 'geschoss')->where('projekts_id', $projekts_id)->where('methodes_id', 1)->get();
$geschoss = [];
foreach ($res as $value) {
$id = $value->raumorientierung_id;
$geschoss[$id] = $value['geschoss'];
}
$res = Raumorientierung::select()->where('projekts_id', $projekts_id)->where('nicht_in_orientierung', 0)->whereNotNull('top_nr')->orderBy('top_nr')->get();
foreach ($res as $value) {
$id = $value->id;
$html .= '<tr>';
$html .= Html::td($value->top_nr, 'left bl br bb');
$html .= Html::td($geschoss[$value['id']], 'center br bb');
$html .= Html::td($value->type, 'wp20 br bb');
// Nutzfläache
$html .= Html::td(Format::numeric($value->qm_m1, 2), 'right br bb');
// Loggia
$loggia = Raumalles::loggia($id);
$gesnutzfl = $loggia + $value->qm_m1;
$loggia = $loggia != 0 ? $loggia : '';
$html .= Html::td($loggia, 'right br bb');
// Gesammtnutzfläche = Nutzfläache + Loggia
$html .= Html::td(Format::numeric($gesnutzfl, 2), 'right br bb');
foreach ($markmale_col as $col) {
$tmp = (float) $value[$col] != 0 ? $value[$col] : '';
$html .= Html::td(Format::numeric($tmp, 2), 'right br bb');
}
$html .= Html::td(Format::numeric($value->summe_az, 2), 'right br bb');
$html .= Html::td(Format::numeric($value->bewertung, 2), 'right br bb');
$html .= '</tr>';
}
return $html;
}
}