diff --git a/app/Actions/Generate/Nutzwerte/Zusammenstellung.php b/app/Actions/Generate/Nutzwerte/Zusammenstellung.php deleted file mode 100644 index 8c5cabf..0000000 --- a/app/Actions/Generate/Nutzwerte/Zusammenstellung.php +++ /dev/null @@ -1,91 +0,0 @@ -where('projekts_id', $projekts_id); - $nutzwert_summe = $res->sum('nutzwert_summe'); - - $summe_prozent = []; - $summe_nutzwert = []; - - $html .= ''; - $html .= ''; - $html .= Html::td('Top', 'head bl bt bb'); - $html .= Html::td('Geschoß', 'head bt bb'); - $html .= Html::td('Orientierung', 'head bt bb'); - $html .= Html::td('Type', 'head bt bb'); - $html .= Html::td('NW', 'head center bt bb'); - $html .= Html::td('x2 *', 'head center bt bb'); - $html .= Html::td('%', 'head center bt bb br'); - $html .= ''; - - $res = Zusammenstellung_Methode1::load($projekts_id); - - foreach ($res as $row) { - $str = ''; - $prozent = ''; - if ($nutzwert_summe > 0) { - - $str = $row['nutzwert_summe'] * 2 .' / '.$nutzwert_summe * 2 .' tel Anteil ='; - - $tmp = ($row['nutzwert_summe'] * 2) / ($nutzwert_summe * 2) * 100; - $prozent = Format::numeric($tmp, 3).'%'; - } - $summe_prozent[] = $tmp; - $summe_nutzwert[] = $row['nutzwert_summe']; - - $html .= ''; - $html .= Html::td($row['top_nr'], 'bl bb br'); - $html .= Html::td($row['geschoss'], 'bb br'); - $html .= Html::td($row['orientierung'], 'center bb br'); - $html .= Html::td($row['type'], 'bb br'); - $html .= Html::td(round($row['nutzwert_summe']), 'center bb br'); - $html .= Html::td($str, 'center bb br'); - $html .= Html::td($prozent, 'center bb br'); - $html .= ''; - } - - $_obj = Zusammenstellung_Methode5::load($projekts_id); - - foreach ($_obj as $row) { - $row['nutzwert_summe2'] = $row['nutzwert_summe'] * 2 .' / '.$nutzwert_summe * 2 .' tel Anteil ='; - $tmp = ($row['nutzwert_summe'] * 2) / ($nutzwert_summe * 2) * 100; - $row['prozent'] = Format::numeric($tmp, 3).'%'; - - $summe_prozent[] = $tmp; - $summe_nutzwert[] = $row['nutzwert_summe']; - - $html .= ''; - $html .= Html::td($row['top_nr'], 'bl bb br'); - $html .= Html::td($row['geschoss'], 'bb br'); - $html .= Html::td($row['orientierung'], 'center bb br'); - $html .= Html::td($row['type'], 'bb br'); - $html .= Html::td(round($row['nutzwert_summe']), 'center bb br'); - $html .= Html::td($row['nutzwert_summe2'], 'center bb br'); - $html .= Html::td($row['prozent'], 'center bb br'); - $html .= ''; - } - - $html .= ''; - $html .= Html::td('', 'head bl bb', 4); - $html .= Html::td(array_sum($summe_nutzwert), 'head center bb'); - $html .= Html::td(array_sum($summe_nutzwert) * 2 .'/'.round($nutzwert_summe) * 2 .' tel Anteil =', 'head center bb'); - $html .= Html::td(round(array_sum($summe_prozent)).'%', 'head center bb br'); - $html .= ''; - $html .= '
'; - $html .= '

* Die Anteile wurden verdoppelt, sodaß die Mindestanteile jederzeit durch zwei geteilt werden können.'; - - return $html; - } -} diff --git a/app/Actions/Generate/Pdf.php b/app/Actions/Generate/Pdf.php index a830a2a..656ac15 100644 --- a/app/Actions/Generate/Pdf.php +++ b/app/Actions/Generate/Pdf.php @@ -9,6 +9,7 @@ use App\Actions\Generate\Pdf\Platzhalter; use App\Actions\Generate\Pdf\Ueberschrift; use App\Actions\Generate\Tabellen\Allgemeinflaechen; use App\Actions\Generate\Tabellen\Paragraph6; +use App\Actions\Generate\Tabellen\Zusammenstellung; use App\Actions\Generate\Tabellen\ZuUndAbschlaege; use App\Actions\Generate\Utilities\Format; use App\Models\Auftraggeber; @@ -121,6 +122,9 @@ class Pdf case '5': $html .= ZuUndAbschlaege::load($projekte_id); break; + case '7': + $html .= Zusammenstellung::load($projekte_id); + break; case '8': $str = RichContentRenderer::make(self::$auftraggeber->referenz_formatting)->toHtml(); $html .= Format::fix_str($str); diff --git a/app/Actions/Generate/Tabellen/Allgemeinflaechen.php b/app/Actions/Generate/Tabellen/Allgemeinflaechen.php index 1fcdbc8..e6326ef 100644 --- a/app/Actions/Generate/Tabellen/Allgemeinflaechen.php +++ b/app/Actions/Generate/Tabellen/Allgemeinflaechen.php @@ -17,18 +17,7 @@ class Allgemeinflaechen $_data = array_chunk($_allgemeine, 2); - $html = ''; - $html .= ''; - $html .= ''; - $html .= Html::td('Geschoß', 'head bl bt wp10'); - $html .= Html::td('Typ', 'head bl bt wp25'); - $html .= Html::td('Fläche', 'head bl bt br wp10'); - $html .= ''; - $html .= Html::td('Geschoß', 'head bl bt wp10'); - $html .= Html::td('Typ', 'head bl bt wp25'); - $html .= Html::td('Fläche', 'head bl bt br wp10'); - $html .= ''; - $html .= ''; + $html = Html::table_2_columns(['Geschoß', 'Typ', 'Fläche']); foreach ($_data as $value) { // $html .= ''; diff --git a/app/Actions/Generate/Tabellen/ZuUndAbschlaege.php b/app/Actions/Generate/Tabellen/ZuUndAbschlaege.php index 74e9e67..c84d686 100644 --- a/app/Actions/Generate/Tabellen/ZuUndAbschlaege.php +++ b/app/Actions/Generate/Tabellen/ZuUndAbschlaege.php @@ -38,8 +38,7 @@ class ZuUndAbschlaege $header_row[] = 'Summe Merkmale'; $header_row[] = 'Wohnungsbewertung'; - $html = '
'; - $html .= Html::table_header_90($header_row); + $html = Html::table_header_90($header_row); foreach ($objekte as $objekt) { diff --git a/app/Actions/Generate/Tabellen/Zusammenstellung.php b/app/Actions/Generate/Tabellen/Zusammenstellung.php new file mode 100644 index 0000000..e053dff --- /dev/null +++ b/app/Actions/Generate/Tabellen/Zusammenstellung.php @@ -0,0 +1,104 @@ +sum('nutzwert'); + + $objekte = ProjektObjekte::select() + ->with('orientierung') + ->where('projekte_id', $projekte_id) + ->orderBy('nicht_in_orientierung', 'ASC') + ->orderBy('top_nummer', 'ASC') + ->get(); + + foreach ($objekte as $objekt) { + + $objektimdetail = ProjektObjekteImDetail::where('projekt_objekte_id', $objekt->id)->get(); + + $nutzwert = $objektimdetail->sum('nutzwert'); + + $tmp = ''; + $str = ''; + if ($nutzwert > 0) { + + $str = $nutzwert * 2 .' / '.$nutzwert_gesammt * 2 .' tel Anteil ='; + + $tmp = ($nutzwert * 2) / ($nutzwert_gesammt * 2) * 100; + $prozent = Format::dezimal($tmp, 3).'%'; + } + $summe_prozent[] = $tmp; + $summe_nutzwert[] = $nutzwert; + + $html .= ''; + $html .= Html::td($objekt->top_nummer, 'bl bb br'); + $html .= Html::td($objekt->projektobjekteimdetail?->geschoss, 'center br bb'); + $html .= Html::td($objekt->orientierung?->name, 'center br bb'); + $html .= Html::td($objekt?->type, 'center br bb'); + $html .= Html::td(round($nutzwert), 'center bb br'); + $html .= Html::td($str, 'center bb br'); + $html .= Html::td($prozent ?? '', 'center bb br'); + $html .= ''; + } + $html .= ''; + $html .= Html::td('', 'head bl bb', 4); + $html .= Html::td(array_sum($summe_nutzwert), 'head center bb'); + $html .= Html::td(array_sum($summe_nutzwert) * 2 .'/'.round($nutzwert_gesammt) * 2 .' tel Anteil =', 'head center bb'); + $html .= Html::td(round(array_sum($summe_prozent)).'%', 'head center bb br'); + $html .= ''; + $html .= ''; + $html .= Html::td('* Die Anteile wurden verdoppelt, sodaß die Mindestanteile jederzeit durch zwei geteilt werden können.', 'right small', 7, 'background-color: #fff !important;'); + $html .= ''; + + $html .= '
'; + // $html .= '

* Die Anteile wurden verdoppelt, sodaß die Mindestanteile jederzeit durch zwei geteilt werden können.'; + + return $html; + + // $_obj = Zusammenstellung_Methode5::load($projekte_id); + + // foreach ($_obj as $row) { + // $row['nutzwert_summe2'] = $row['nutzwert_summe'] * 2 .' / '.$nutzwert_summe * 2 .' tel Anteil ='; + // $tmp = ($row['nutzwert_summe'] * 2) / ($nutzwert_summe * 2) * 100; + // $row['prozent'] = Format::numeric($tmp, 3).'%'; + + // $summe_prozent[] = $tmp; + // $summe_nutzwert[] = $row['nutzwert_summe']; + + // $html .= ''; + // $html .= Html::td($row['top_nr'], 'bl bb br'); + // $html .= Html::td($row['geschoss'], 'bb br'); + // $html .= Html::td($row['orientierung'], 'center bb br'); + // $html .= Html::td($row['type'], 'bb br'); + // $html .= Html::td(round($row['nutzwert_summe']), 'center bb br'); + // $html .= Html::td($row['nutzwert_summe2'], 'center bb br'); + // $html .= Html::td($row['prozent'], 'center bb br'); + // $html .= ''; + // } + + // $html .= ''; + // $html .= Html::td('', 'head bl bb', 4); + // $html .= Html::td(array_sum($summe_nutzwert), 'head center bb'); + // $html .= Html::td(array_sum($summe_nutzwert) * 2 .'/'.round($nutzwert_summe) * 2 .' tel Anteil =', 'head center bb'); + // $html .= Html::td(round(array_sum($summe_prozent)).'%', 'head center bb br'); + // $html .= ''; + // $html .= ''; + // $html .= '

* Die Anteile wurden verdoppelt, sodaß die Mindestanteile jederzeit durch zwei geteilt werden können.'; + + return $html; + } +} diff --git a/app/Actions/Generate/Utilities/Html.php b/app/Actions/Generate/Utilities/Html.php index a94a187..f155a01 100644 --- a/app/Actions/Generate/Utilities/Html.php +++ b/app/Actions/Generate/Utilities/Html.php @@ -4,23 +4,53 @@ namespace App\Actions\Generate\Utilities; class Html { - public static function table_header_90($header_row) + public static function table_header($header_row) { - $html = ''; - $mm = 190 / \count($header_row); + $html = ''; + $html .= ''; foreach ($header_row as $value) { - $html .= ''; + $html .= ''; } $html .= ''; return $html; } - public static function td($value = '', $classname = '', $colspan = 0) + public static function table_header_90($header_row) + { + $html = '
'.$value.''.$value.'
'; + $html .= ''; + $mm = 190 / \count($header_row); + foreach ($header_row as $value) { + $html .= ''; + } + $html .= ''; + + return $html; + } + + public static function table_2_columns($header_row) + { + + $html = '
'.$value.'
'; + foreach ($header_row as $value) { + $html .= ''; + } + $html .= ''; + foreach ($header_row as $value) { + $html .= ''; + } + $html .= ''; + + return $html; + } + + public static function td($value = '', $classname = '', $colspan = 0, $style = '') { $cls = $classname != '' ? ' class="'.$classname.'"' : ''; $spn = $colspan != '' ? ' colspan="'.$colspan.'"' : ''; + $style = $style != '' ? ' style="'.$style.'"' : ''; - return "'; + return "'; } } diff --git a/app/Actions/Validation/GutachtenValidation.php b/app/Actions/Validation/GutachtenValidation.php index 5f95194..7bd4c69 100644 --- a/app/Actions/Validation/GutachtenValidation.php +++ b/app/Actions/Validation/GutachtenValidation.php @@ -131,7 +131,7 @@ class GutachtenValidation /** * ProjektObjekte & ProjektObjekteImDetail */ - $res = ProjektObjekte::with('ProjektObjekteImDetail')->where('projekte_id', $record->id)->get(); + $res = ProjektObjekte::with('projektobjekteimdetail')->where('projekte_id', $record->id)->get(); if (! $res->count()) { Notification::make() ->title('Tabelle Objekte im Detail') @@ -146,8 +146,7 @@ class GutachtenValidation foreach ($res as $value) { - $raeume = $value->ProjektObjekteImDetail->toArray(); - $raeume = $raeume[0] ?? []; + $raeume = $value->projektobjekteimdetail->toArray(); if (! count($raeume)) { Notification::make() diff --git a/app/Models/ProjektObjekteImDetail.php b/app/Models/ProjektObjekteImDetail.php index 7fc09ac..6fb1a17 100644 --- a/app/Models/ProjektObjekteImDetail.php +++ b/app/Models/ProjektObjekteImDetail.php @@ -34,4 +34,9 @@ class ProjektObjekteImDetail extends Model { return $this->belongsTo(ProjektObjekte::class, 'projekt_objekte_id', 'id'); } + + public function merkmale() + { + return $this->hasOne(ProjektMerkmale::class, 'raumart', 'raumart'); + } } diff --git a/resources/css/pdf-download.css b/resources/css/pdf-download.css index c786f56..08fe779 100644 --- a/resources/css/pdf-download.css +++ b/resources/css/pdf-download.css @@ -112,12 +112,12 @@ a { color: #4a5565; } -.hellgrau { - background-color: #e5e7eb; +.bg-sky { + background-color: #eff6ff !important; } -.hellblau { - background-color: #eff6ff !important; +.bg-white { + background-color: #fff !important; } .green { @@ -135,11 +135,17 @@ p { margin: auto 5px; } + .py-1 { padding-top: 1mm; padding-bottom: 1mm; } +.py-2 { + padding-top: 2mm; + padding-bottom: 2mm; +} + .m10 { margin: 10px; }
'.$value.''.$value.'
".$value.'".$value.'