From 8971b8b9489f13e56c099d423fa2df29199084ec Mon Sep 17 00:00:00 2001 From: salam Date: Mon, 13 Oct 2025 07:35:09 +0200 Subject: [PATCH] dowload wip --- app/Actions/Download/DownloadExcel.php | 53 +++ app/Actions/Download/DownloadNutzwerte.php | 55 +++ .../Download/DownloadStandardTexte.php | 54 +++ app/Actions/Generate/GenerateExcel.php | 369 ++++++++++++++++++ app/Actions/Generate/GenerateNutzwerte.php | 126 ++++++ .../Generate/GenerateStandardTexte.php | 250 ++++++++++++ .../Generate/Nutzwerte/Allgemeinflaechens.php | 47 +++ .../Generate/Nutzwerte/BerechnungM1M4.php | 262 +++++++++++++ .../Generate/Nutzwerte/BerechnungM5.php | 91 +++++ .../Nutzwerte/BerechnungNutzwerte.php | 141 +++++++ .../Generate/Nutzwerte/ZuUndAbschlaege.php | 64 +++ .../Generate/Nutzwerte/Zusammenstellung.php | 91 +++++ .../Nutzwerte/Zusammenstellung_Methode1.php | 43 ++ .../Nutzwerte/Zusammenstellung_Methode5.php | 65 +++ .../StandardTexte/AllgemeinTabelle.php | 46 +++ .../Generate/StandardTexte/Deckblatt.php | 39 ++ app/Actions/Generate/StandardTexte/Inhalt.php | 45 +++ .../StandardTexte/Paragraph6Tabelle.php | 44 +++ .../Generate/StandardTexte/Standardtext.php | 13 + .../Generate/StandardTexte/Tabelle.php | 39 ++ .../Auftraggebers/Pages/ListAuftraggebers.php | 4 +- .../Gutachters/Pages/ListGutachters.php | 4 +- .../Pages/ListInhaltsverzeichnis.php | 4 +- .../Pages/ListKontoTextblocks.php | 4 +- .../Resources/Methodes/Pages/ListMethodes.php | 4 +- .../Orientierungs/Pages/ListOrientierungs.php | 4 +- .../Permissions/Pages/ListPermissions.php | 4 +- .../Resources/Plans/Pages/ListPlans.php | 4 +- .../Projektes/Pages/EditProjekte.php | 42 +- .../Projektes/Pages/ListProjektes.php | 1 + .../AllgemeinflaechensRelationManager.php | 3 +- ...ojektInhaltsverzeichnisRelationManager.php | 4 +- .../RaeumeallesRelationManager.php | 3 +- .../Textblocks/Pages/ListTextblocks.php | 4 +- .../Resources/Users/Pages/ListUsers.php | 2 + bootstrap/cache/blade-icons.php | 8 +- bootstrap/cache/config.php | 36 +- bootstrap/cache/filament/panels/admin.php | 44 +-- bootstrap/cache/routes-v7.php | 221 ++--------- .../views/livewire/konto-switch.blade.php | 2 +- routes/web.php | 7 + 41 files changed, 2103 insertions(+), 243 deletions(-) create mode 100644 app/Actions/Download/DownloadExcel.php create mode 100644 app/Actions/Download/DownloadNutzwerte.php create mode 100644 app/Actions/Download/DownloadStandardTexte.php create mode 100644 app/Actions/Generate/GenerateExcel.php create mode 100644 app/Actions/Generate/GenerateNutzwerte.php create mode 100644 app/Actions/Generate/GenerateStandardTexte.php create mode 100644 app/Actions/Generate/Nutzwerte/Allgemeinflaechens.php create mode 100644 app/Actions/Generate/Nutzwerte/BerechnungM1M4.php create mode 100644 app/Actions/Generate/Nutzwerte/BerechnungM5.php create mode 100644 app/Actions/Generate/Nutzwerte/BerechnungNutzwerte.php create mode 100644 app/Actions/Generate/Nutzwerte/ZuUndAbschlaege.php create mode 100644 app/Actions/Generate/Nutzwerte/Zusammenstellung.php create mode 100644 app/Actions/Generate/Nutzwerte/Zusammenstellung_Methode1.php create mode 100644 app/Actions/Generate/Nutzwerte/Zusammenstellung_Methode5.php create mode 100644 app/Actions/Generate/StandardTexte/AllgemeinTabelle.php create mode 100644 app/Actions/Generate/StandardTexte/Deckblatt.php create mode 100644 app/Actions/Generate/StandardTexte/Inhalt.php create mode 100644 app/Actions/Generate/StandardTexte/Paragraph6Tabelle.php create mode 100644 app/Actions/Generate/StandardTexte/Standardtext.php create mode 100644 app/Actions/Generate/StandardTexte/Tabelle.php diff --git a/app/Actions/Download/DownloadExcel.php b/app/Actions/Download/DownloadExcel.php new file mode 100644 index 0000000..d44b0b4 --- /dev/null +++ b/app/Actions/Download/DownloadExcel.php @@ -0,0 +1,53 @@ +update(['excel_nutzwerte' => '', 'excel_nutzwerte_ok' => '0']); + } + + $projekt = Projekt::where('id', $projekts_id)->first()->toArray(); + $filepath = Storage::disk('public')->path("/download/$projekts_id/excel/"); + + if ($projekt['excel_nutzwerte_ok'] == 0) { + + $filename = preg_replace("'[^0-9a-zA-Z]'", '', $projekt['intname']).'.xlsx'; + + if (! File::isDirectory($filepath)) { + File::makeDirectory($filepath, 0777, true, true); + } + $file = $filepath.$filename; + + GenerateExcel::generate($file, $projekts_id); + + Projekt::where('id', $projekts_id)->update(['excel_nutzwerte' => $filename, 'excel_nutzwerte_ok' => '1']); + + } else { + + $filename = $projekt['excel_nutzwerte']; + $file = $filepath.$filename; + } + + $headers = [ + 'Content-Type: application/vnd.ms-excel', + 'Content-Disposition: attachment;filename="'.$filename.'"', + 'Cache-Control: max-age=0', + 'Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT', + 'Cache-Control: cache, must-revalidate', + 'Pragma: public', + ]; + + return Response::download($file, $projekt['name'], $headers); + + } +} diff --git a/app/Actions/Download/DownloadNutzwerte.php b/app/Actions/Download/DownloadNutzwerte.php new file mode 100644 index 0000000..b0c9307 --- /dev/null +++ b/app/Actions/Download/DownloadNutzwerte.php @@ -0,0 +1,55 @@ +update(['pdf_nutzwerte' => '', 'pdf_nutzwerte_ok' => '0']); + } + + $headers = [ + 'Content-Type: application/pdf', + 'Cache-Control: max-age=0', + 'Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT', + 'Cache-Control: cache, must-revalidate', + ]; + + $projekt = Projekt::where('id', $projekts_id)->first()->toArray(); + + $filepath = Storage::disk('public')->path("/download/$projekts_id/nutzwerte/"); + + if ($projekt['pdf_nutzwerte_ok'] == 0) { + + $filename = preg_replace("'[^0-9a-zA-Z]'", '', $projekt['intname']).'.pdf'; + + if (! File::isDirectory($filepath)) { + File::makeDirectory($filepath, 0777, true, true); + } + $file = $filepath.$filename; + + GenerateNutzwerte::generate($file, $projekts_id); + + Projekt::where('id', $projekts_id)->update(['pdf_nutzwerte' => $filename, 'pdf_nutzwerte_ok' => '1']); + + return Response::download($file, $projekt['name'], $headers); + + } else { + + $filename = $projekt['pdf_nutzwerte']; + + $file = $filepath.$filename; + + return Response::download($file, $projekt['name'], $headers); + } + } +} diff --git a/app/Actions/Download/DownloadStandardTexte.php b/app/Actions/Download/DownloadStandardTexte.php new file mode 100644 index 0000000..caa157a --- /dev/null +++ b/app/Actions/Download/DownloadStandardTexte.php @@ -0,0 +1,54 @@ +update(['pdf_standardtexte' => '', 'pdf_standardtexte_ok' => '0']); + } + + $headers = [ + 'Content-Type: application/pdf', + 'Cache-Control: max-age=0', + 'Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT', + 'Cache-Control: cache, must-revalidate', + ]; + + $projekt = Projekt::where('id', $projekts_id)->first()->toArray(); + + $filepath = Storage::disk('public')->path("/download/$projekts_id/standards/"); + + if ($projekt['pdf_standardtexte_ok'] == 0) { + + $filename = preg_replace("'[^0-9a-zA-Z]'", '', $projekt['intname']).'.pdf'; + + if (! File::isDirectory($filepath)) { + File::makeDirectory($filepath, 0777, true, true); + } + $file = $filepath.$filename; + + GenerateStandardTexte::generate($file, $projekts_id); + + Projekt::where('id', $projekts_id)->update(['pdf_standardtexte' => $filename, 'pdf_standardtexte_ok' => 1]); + + return Response::download($file, $projekt['name'], $headers); + } else { + + $filename = $projekt['pdf_standardtexte']; + + $file = $filepath.$filename; + + return Response::download($file, $projekt['name'], $headers); + } + } +} diff --git a/app/Actions/Generate/GenerateExcel.php b/app/Actions/Generate/GenerateExcel.php new file mode 100644 index 0000000..159844b --- /dev/null +++ b/app/Actions/Generate/GenerateExcel.php @@ -0,0 +1,369 @@ +get()->first(); + $gutachter = Gutachter::where('id', $projekt->gutachters_id)->get()->first(); + // $auftraggeber = Auftraggeber::where('id', $projekt->auftraggebers_id)->get()->first(); + + $projektname = str_replace(',', '', $projekt->name); + $projektname = preg_replace("'\W, '", '', $projektname); + $_headers = self::header(); + + // SPREADSHEET start + + $spreadsheet = new Spreadsheet; + + $spreadsheet->getProperties()->setCreator('Hermann Telser Nutzwertberechnung') + ->setLastModifiedBy('Hermann Telser Nutzwertberechnung') + ->setTitle('Nutzwertberechnung') + ->setDescription('Nutzwertberechnung v5.0.1, © Hermann Telser 2007 - '.date('Y')); + + $_rot = [2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 53, 54, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 91, 92, 93, 94]; + $_gelb = [8, 19, 29]; + + $row = '1'; + $coll = 'A'; + + $spreadsheet->setActiveSheetIndex(0); + foreach ($_headers as $key => $value) { + $cell = $coll.$row; + $sheet = $spreadsheet->getActiveSheet(); + $sheet->setCellValue($cell, $value); + + if (\in_array($key, $_rot)) { + $spreadsheet->getActiveSheet()->getStyle($cell)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('FDE8E8'); + } elseif (\in_array($key, $_gelb)) { + $spreadsheet->getActiveSheet()->getStyle($cell)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('FDF6B2'); + } + $sheet->getStyle($cell) + ->getBorders() + ->getOutline() + ->setBorderStyle(Border::BORDER_THIN); + + $coll++; + } + + $sheet = $spreadsheet->getActiveSheet(); + foreach ($sheet->getColumnIterator() as $column) { + $sheet->getColumnDimension($column->getColumnIndex())->setAutoSize(true); + } + + $_raumorientierung = DB::table('raumorientierung') + ->join('orientierungs', 'raumorientierung.orientierungs_id', '=', 'orientierungs.id') + ->select( + 'raumorientierung.id', + 'raumorientierung.top_nr', + 'raumorientierung.qm_m1', + 'raumorientierung.qm_m1', + 'raumorientierung.factor', + 'raumorientierung.nicht_in_orientierung', + 'raumorientierung.nutzwert_summe', + 'orientierungs.name as orientierung', + ) + ->where('raumorientierung.projekts_id', $projekts_id) + ->groupBy('raumorientierung.id') + ->orderBy('raumorientierung.top_nr', 'ASC') + ->get(); + + $spalten = []; + $letter = 'A'; + while ($letter !== 'HU') { + $key = $letter++; + $spalten[$key] = ''; + } + + $row = 2; + $_data = []; + foreach ($_raumorientierung as $key => $raumorientierung) { + + $_data[$key] = $spalten; + $_data[$key]['B'] = $raumorientierung->top_nr; + + if ($raumorientierung->nicht_in_orientierung == 0) { + + $_data[$key]['C'] = $raumorientierung->nutzwert_summe; + $_data[$key]['D'] = $raumorientierung->qm_m1; + + $zunutzwert = self::zunutzwert($raumorientierung->id); + if ($zunutzwert > 0) { + $_data[$key]['E'] = $zunutzwert; + } + + $_data[$key]['F'] = $raumorientierung->qm_m1 + $zunutzwert; + + } else { + $_data[$key]['I'] = $raumorientierung->nutzwert_summe; + + $res = self::raumalles($raumorientierung->id, [5]); + $qm = 0; + $raum = ''; + foreach ($res as $value) { + $qm += (float) $value->qm; + $raum = $value->raum; + } + + $_data[$key]['L'] = number_format($qm, 2, ',', ''); + $_data[$key]['AT'] = $raum; + } + + // Parifizierer + $_data[$key]['R'] = $gutachter->kennung; + // Lage + $_data[$key]['AQ'] = self::geschoss($raumorientierung->id); + // Orientierung + $raumorientierung->orientierung = $raumorientierung->orientierung == 'Ohne Zuordnung' ? '' : $raumorientierung->orientierung; + $_data[$key]['AR'] = $raumorientierung->orientierung; + + // WOHNUNG + if ($raumorientierung->nicht_in_orientierung == 0) { + $_data[$key]['AT'] = self::beschreibung($raumorientierung->id, [1, 2, 8]); + // M2 + $_data[$key]['AU'] = self::loggien_qm($raumorientierung->id, [2, 8]); + // M3 + $_data[$key]['AV'] = self::beschreibung_qm($raumorientierung->id, [3, 7]); + // M4 + $_data[$key]['AW'] = self::beschreibung_qm($raumorientierung->id, [3, 4]); + } else { + $_data[$key]['AT'] = self::beschreibung($raumorientierung->id, [6, 9]); + $_data[$key]['AV'] = self::beschreibung_qm($raumorientierung->id, [6, 9]); + } + $row++; + } + + $sheet = $spreadsheet->getActiveSheet(); + $sheet->fromArray($_data, null, 'A2'); + + // Set active sheet index to the first sheet, so Excel opens this as the first sheet + $spreadsheet->setActiveSheetIndex(0); + // Rename worksheet + $spreadsheet->getActiveSheet()->setTitle('Daten für den Kaufvertrag'); + // output + $writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); + // $writer->save('php://output'); + $writer->save($filepath); + } + + private static function raumalles($raumorientierung_id, $methoden) + { + return DB::table('raumalles') + ->select('*') + ->where('raumorientierung_id', $raumorientierung_id) + ->whereIn('methodes_id', $methoden) + ->get(); + } + + private static function zunutzwert($raumorientierung_id) + { + $zunutzwert = 0; + $res = DB::table('raumalles') + ->select('methodes_id', 'raum', 'factor', 'qm') + ->where('raumorientierung_id', $raumorientierung_id) + ->whereIn('methodes_id', [2, 8]) + ->get(); + foreach ($res as $value) { + $zunutzwert += $value->qm; + } + + return $zunutzwert; + } + + private static function beschreibung_qm($raumorientierung_id, $methoden) + { + $res = DB::table('raumalles') + ->select('*') + ->where('raumorientierung_id', $raumorientierung_id) + ->whereIn('methodes_id', $methoden) + ->get(); + $_tmp = []; + foreach ($res as $value) { + if (! in_array($value->raum, ['Loggia', 'Loggia 1', 'Loggia 2'])) { + $_tmp[] = $value->raum.': '.number_format($value->qm, 2, ',', '').' m²'; + } + } + + return implode(', ', $_tmp); + } + + private static function loggien_qm($raumorientierung_id, $methoden) + { + $res = DB::table('raumalles') + ->select('*') + ->where('raumorientierung_id', $raumorientierung_id) + ->whereIn('methodes_id', $methoden) + ->get(); + $_tmp = []; + foreach ($res as $value) { + if (in_array($value->raum, ['Loggia', 'Loggia 1', 'Loggia 2'])) { + $_tmp[] = $value->raum.': '.number_format($value->qm, 2, ',', '').' m²'; + } + } + + return implode(', ', $_tmp); + } + + private static function beschreibung($raumorientierung_id, $methoden) + { + $res = DB::table('raumalles') + ->select('*') + ->where('raumorientierung_id', $raumorientierung_id) + ->whereIn('methodes_id', $methoden) + ->get(); + $_tmp = []; + foreach ($res as $value) { + if (! in_array($value->raum, ['Loggia', 'Loggia 1', 'Loggia 2'])) { + $_tmp[] = $value->raum; + } + } + + return implode(', ', $_tmp); + } + + private static function geschoss($raumorientierung_id) + { + $res = DB::table('raumalles') + ->select('geschoss') + ->where('raumorientierung_id', $raumorientierung_id) + ->where('methodes_id', '=', 1) + ->get(); + foreach ($res as $key => $value) { + return $value->geschoss; + } + + return ''; + } + + private static function header() + { + return [ + 'Bautengruppe', + 'TopNr', + 'NWWhg', + 'Nutzfläche', + 'Loggia', + 'Ges.Nutzfläche', + 'AbstellplatzTop', + 'AbstellplatzTop2', + 'NWAbstellplatz', + 'NWAbstellplatz2', + 'Anzahl Pkw', + 'Stellplatzfläche', + 'Stellplatzfläche2', + 'NW-Whg+Pkw1', + 'NW-Whg+Pkw1+2', + 'Gesamtnutzwert', + 'Gesamtnutzwert2', + 'Parifizierer', + 'Datum_Parifi', + 'Anzahl Whg', + 'Anzahl AP', + 'Durchgang', + 'Anrede', + 'Titel', + 'Vorname', + 'Nachname', + 'Geburt', + 'Beruf', + 'PersonStraße', + 'PLZ', + 'Ort', + 'Partner ja=1', + 'Anrede_P', + 'Titel_P', + 'Vorname_P', + 'Nachname_P', + 'Geburt_P', + 'Beruf_P', + 'Straße_P', + 'Plz_P', + 'Ort_P', + 'Haus', + 'Lage', + 'Orientierung', + 'Orientierung PPL', + 'Beschreibung', + 'Loggien', + 'Balkone', + 'Zubehör', + 'Grundkosten', + 'Baukosten', + '15% Eigenmittel', + 'zusätz. Eigenmittel', + 'KP-Wohnung und AP', + 'KP-Wohnung', + 'KP-Stellplatz', + 'KP-Stellplatz2', + 'Kaufpreis', + 'UST ja=1', + 'KP WHG netto', + 'Ust WHG', + 'Brutto WHG', + 'KP TG netto', + 'Ust TG', + 'Brutto TG', + 'UST WHG+TG', + 'Netto WHG+TG', + 'Brutto WHG+TG', + 'Fälligk_KP_1', + 'Fälligk_KP_2', + 'Fälligk_KP_3', + 'KPTeil1', + 'KPTeil1 UST', + 'KPTeil2', + 'KPTeil2 UST', + 'KPTeil3', + 'KPTeil3 UST', + 'KPTeil4', + 'KPTeil4 UST', + 'Kontrolle_KP', + 'Kontrolle_KP UST', + 'pfand_ngs', + 'pfand_ngs UST', + 'VertrKo', + 'Bankgarantie', + 'Wohnung.WbfDarlehen', + 'Globaldarlehen', + 'Globaldarlehen abzügl.zusätzl.EM', + 'Globalbank', + 'GrundstückNummer', + 'GstGröße', + 'Einlagezahl', + 'Grundbuch', + 'Baubeginn', + 'Baufertigstellung', + 'Spät_Übergabe', + 'Bau-Ausstatt', + 'Architekt', + 'Baubescheid', + 'Zahl-Baubescheid', + 'Baubescheid2', + 'Zahl-Baubescheid2', + 'UnterschriftKaufvertragAm', + 'Beglaubigungsnummer', + 'UB1_Datum', + 'EFNR1', + 'STNR1', + 'UB2_Datum', + 'EFNR2', + 'STNR2', + 'GVKB_Datum', + 'GVKB_Zahl', + 'Fremdfinanzierung', + 'KPVertr', + 'TZl', + ]; + } +} diff --git a/app/Actions/Generate/GenerateNutzwerte.php b/app/Actions/Generate/GenerateNutzwerte.php new file mode 100644 index 0000000..cc0b84a --- /dev/null +++ b/app/Actions/Generate/GenerateNutzwerte.php @@ -0,0 +1,126 @@ +get()->first(); + self::$gutachter = Gutachter::where('id', self::$projekt->gutachters_id)->get()->first(); + self::$auftraggeber = Auftraggeber::where('id', self::$projekt->auftraggebers_id)->get()->first(); + + ob_start(); + + $mpdf = new Mpdf( + [ + 'debug' => true, + 'mode' => 'utf-8', + 'format' => 'A4-P', + 'margin_left' => 10, + 'margin_right' => 10, + 'margin_top' => 12, + 'margin_bottom' => 20, + 'margin_header' => 0, + 'margin_footer' => 0, + ] + ); + $stylesheet = file_get_contents(__DIR__.'/../../../resources/css/pdf-download.css'); + $mpdf->WriteHTML($stylesheet, HTMLParserMode::HEADER_CSS); + $mpdf->SetTitle('Nutzwertgutachen '.self::$projekt->name); + $mpdf->SetCreator('www.nutzwertgutachen.at'); + $mpdf->SetAuthor(self::$gutachter->adressenblock); + + $inhalte = Inhaltsverzeichnis::where('projekts_id', $projekts_id)->where('is_active', 1)->orderBy('pos')->get(); + if (count($inhalte) == 0) { + exit; + } + foreach ($inhalte as $inhalt) { + + switch ($inhalt['kennung']) { + + case 'tabelle_zu_abschlaege': + // Zu und Abschläge + if ($inhalt['neue_seite']) { + $mpdf->AddPage('', '', $inhalt->seite); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= ''; + $html .= ZuUndAbschlaege::load($projekts_id); + $html .= '
'; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'nutzwertberechnung': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= BerechnungM1M4::load($projekts_id); + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + + $html = BerechnungM5::load($projekts_id); + if ($html) { + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + } + break; + + case 'zusammenstellung': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= Zusammenstellung::load($projekts_id); + $html .= '






'; + $html .= ''; + $html .= ''; + $html .= ''; + $html .= '
'.self::$projekt->erstellung.''.self::$gutachter->kennung.'
'; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'allgemeinflaechen': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= Allgemeinflaechens::load($projekts_id); + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + } + } + + ob_clean(); + + $mpdf->Output($filepath, 'F'); + } +} diff --git a/app/Actions/Generate/GenerateStandardTexte.php b/app/Actions/Generate/GenerateStandardTexte.php new file mode 100644 index 0000000..40e7d78 --- /dev/null +++ b/app/Actions/Generate/GenerateStandardTexte.php @@ -0,0 +1,250 @@ +get()->first(); + self::$gutachter = Gutachter::where('id', self::$projekt->gutachters_id)->get()->first(); + self::$auftraggeber = Auftraggeber::where('id', self::$projekt->auftraggebers_id)->get()->first(); + self::$platzhalter = Platzhalter::where('projekts_id', $projekts_id)->pluck('platzhaltertext', 'platzhalter')->toArray(); + + $mpdf = new Mpdf( + [ + 'debug' => true, + 'mode' => 'utf-8', + 'format' => 'A4-P', + 'margin_left' => 10, + 'margin_right' => 10, + 'margin_top' => 12, + 'margin_bottom' => 20, + 'margin_header' => 0, + 'margin_footer' => 0, + ] + ); + + $stylesheet = file_get_contents(__DIR__.'/../../../resources/css/pdf-download.css'); + $mpdf->WriteHTML($stylesheet, HTMLParserMode::HEADER_CSS); + $mpdf->SetTitle('Nutzwertgutachen '.self::$projekt->name); + + $mpdf->SetTitle('Standardtexte '.self::$projekt->name); + $mpdf->SetCreator('www.nutzwertgutachten.at'); + $mpdf->SetAuthor(self::$gutachter->adressenblock); + + $inhalte = Inhaltsverzeichnis::where('projekts_id', $projekts_id)->where('is_active', 1)->orderBy('pos')->get(); + if (count($inhalte) == 0) { + exit; + } + foreach ($inhalte as $inhalt) { + + $standardtext = Standardtext::replace($inhalt['standardtext']); + + switch ($inhalt['kennung']) { + + case 'deckblatt': + $html = Deckblatt::load($standardtext); + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'inhalt': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + } + $html = Inhalt::load($standardtext); + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + break; + + case 'allgemeineangaben': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'auftraggeber': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= trim(self::$auftraggeber->adressenblock); + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'zweck': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= $standardtext; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'ortsbesichtigung': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= $standardtext; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'unterlagen': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= $standardtext; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'befund': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'grundbuchstand': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= Tabelle::load($standardtext); + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'beschreibung': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= $standardtext; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'paragraph_6_teil_1': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= $standardtext; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'paragraph_6_tabelle': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + } + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html = Paragraph6Tabelle::load($projekts_id); + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'paragraph_6_teil_2': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= $standardtext; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'allgemeinflaechen_nach_p6': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
ALLGEMEINFLÄCHEN
'; + $html .= AllgemeinTabelle::load($projekts_id); + $html .= '






'; + $html .= ''; + $html .= ''; + $html .= ''; + $html .= '
'.self::$projekt->erstellung.''.self::$gutachter->kennung.'
'; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'gutachten': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + } + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'allgemeine-grundsaetze': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= $standardtext; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'allgemeine-bewertungen': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['index'].' - '.$inhalt['titel'].'
'; + $html .= $standardtext; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + + case 'zubehoer': + if ($inhalt['neue_seite']) { + $mpdf->AddPage(); + $mpdf->SetHTMLFooter('
Seite {PAGENO}

'); + } + $html = '
'.$inhalt['titel'].'
'; + $html .= $standardtext; + $mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY); + break; + } + } + + ob_clean(); + + $mpdf->Output($filepath, 'F'); + } +} diff --git a/app/Actions/Generate/Nutzwerte/Allgemeinflaechens.php b/app/Actions/Generate/Nutzwerte/Allgemeinflaechens.php new file mode 100644 index 0000000..f238d1c --- /dev/null +++ b/app/Actions/Generate/Nutzwerte/Allgemeinflaechens.php @@ -0,0 +1,47 @@ +'; + $html .= ''; + $html .= Html::td('Top', 'head bl bt bb'); + $html .= Html::td('Raumart', 'head bl bt bb'); + $html .= Html::td('Fläche', 'head center bl bt bb'); + $html .= Html::td('', 'bl'); + $html .= Html::td('Top', 'head bb bt bl'); + $html .= Html::td('Type', 'head bt bl bb'); + $html .= Html::td('Fläche', 'head center bl bt bb br'); + $html .= ''; + + $res = Allgemeinflaechen::select('geschoss', 'raumart', 'qm')->where('projekts_id', $projekts_id)->orderBy('geschoss')->orderBy('raumart')->get(); + + foreach ($res as $key => $allg) { + $bg = ($key % 4 == 2 || $key % 4 == 3) ? 'hellgrau' : ''; + if ($key % 2 == 0) { + $html .= ''; + $html .= Html::td($allg->geschoss, "bl bb br $bg"); + $html .= Html::td($allg->raumart, "bb br $bg"); + $html .= Html::td(Format::numeric($allg->qm, 2), "center bb br $bg"); + $html .= Html::td(''); + } else { + $html .= Html::td($allg->geschoss, "bl bb br $bg"); + $html .= Html::td($allg->raumart, "bb br $bg"); + $html .= Html::td(Format::numeric($allg->qm, 2), "center bb br $bg"); + $html .= ''; + } + } + + $html .= ''; + + return $html; + } +} diff --git a/app/Actions/Generate/Nutzwerte/BerechnungM1M4.php b/app/Actions/Generate/Nutzwerte/BerechnungM1M4.php new file mode 100644 index 0000000..5b42f3d --- /dev/null +++ b/app/Actions/Generate/Nutzwerte/BerechnungM1M4.php @@ -0,0 +1,262 @@ +where('nicht_in_orientierung', 0) + ->orderBy('top_nr') + ->get(); + + foreach ($res as $key => $_objekte) { + $raumorientierung_id = $_objekte->id; + + $_raume_m1 = Raumalles::where('projekts_id', $projekts_id)->where('raumorientierung_id', $raumorientierung_id)->where('methodes_id', 1)->orderBy('raum')->get(); + $_raume_m2 = Raumalles::where('projekts_id', $projekts_id)->where('raumorientierung_id', $raumorientierung_id)->whereIn('methodes_id', [2, 8])->get(); + $_raume_m3 = Raumalles::where('projekts_id', $projekts_id)->where('raumorientierung_id', $raumorientierung_id)->whereIn('methodes_id', [3, 7])->get(); + + $pagebrake = \count($_raume_m1) + \count($_raume_m2) + \count($_raume_m3); + if ($pagebrake > 45) { + $html .= ''; + } else { + $html .= '
'; + } + $html .= ''; + $html .= Html::td('Top Nr.', 'head center bl bt w10p'); + $html .= Html::td('Geschoß', 'head bt bb'); + $html .= Html::td('Orientierung', 'head bt bb'); + $html .= Html::td('Type', 'head bt bb'); + $html .= Html::td('Raum', 'head bt bb'); + $html .= Html::td('qm', 'head right bt bb'); + $html .= Html::td('', 'head bt bb'); + $html .= Html::td('Faktor', 'head bt bb'); + $html .= Html::td('', 'head bt bb'); + $html .= Html::td('Faktor', 'head bt bb'); + $html .= Html::td('', 'head bt bb'); + $html .= Html::td('Nw', 'head bt bb'); + $html .= Html::td('Nw', 'head bt bb br'); + $html .= ''; + + /******************************************************** + METHODE 1 + ********************************************************/ + foreach ($_raume_m1 as $key => $_raum) { + if ($key > 0) { + $_objekte['top_nr'] = ''; + $_raum['geschoss'] = ''; + $_objekte['orientierung'] = ''; + $_objekte['type'] = ''; + } else { + $oid = $_objekte['orientierungs_id']; + $_objekte['orientierung'] = $orientierung[$oid]; + } + + $html .= ''; + $html .= Html::td($_objekte['top_nr'], 'head center bl br'); + $html .= Html::td($_raum['geschoss'], 'br'); + $html .= Html::td($_objekte['orientierung'], 'br'); + $html .= Html::td($_objekte['type'], 'br'); + $html .= Html::td($_raum['raum'], 'br'); + $html .= Html::td(Format::numeric($_raum->qm, 2), 'right br'); + $html .= Html::td('', 'br', 7); + $html .= ''; + } + + $nutzwert_summe = 0; + + /******************************************************** + METHODE 2 + 2b + ********************************************************/ + if (\count($_raume_m2) > 0) { + $html .= ''; + $html .= Html::td('', 'head bl br'); + $html .= Html::td('', 'br'); + $html .= Html::td('', 'br'); + $html .= Html::td('', 'br'); + $html .= Html::td('', 'br'); + $html .= Html::td(Format::numeric($_objekte->qm_m1, 2), 'right bt br bb'); + $html .= Html::td('', 'bt br bb'); + $html .= Html::td('', 'bt br bb'); + $html .= Html::td('x', 'center bt br bb'); + $html .= Html::td(Format::numeric($_objekte->factor, 3), 'right bt br bb'); + $html .= Html::td('=', 'center bt br bb'); + + $nutzwert = $_objekte->qm_m1 * $_objekte->factor; + $html .= Html::td(Format::numeric($nutzwert, 3), 'right bt br bb'); + $html .= Html::td(round($nutzwert), 'right center bt br bb'); + $html .= ''; + + $factor_summe = 0; + // $zunutzwert = 0; + foreach ($_raume_m2 as $key => $_raum) { + $html .= ''; + $html .= Html::td('', 'head bl br'); + $html .= Html::td('', 'br'); + $html .= Html::td('', 'br'); + $html .= Html::td('', 'br'); + $html .= Html::td($_raum->raum, 'br'); + $html .= Html::td(Format::numeric($_raum->qm, 2), 'right br bb'); + $html .= Html::td('x', 'center br bb'); + $html .= Html::td(Format::numeric($_raum->factor, 3), 'right br bb'); + + if ($_raum['tt_raumart_id'] == 2) { + // Methode 2 (2) + $html .= Html::td('x', 'center br bb'); + $html .= Html::td(Format::numeric($_objekte->factor, 3), 'right br bb'); + $html .= Html::td('=', 'center br bb'); + $factor_summe += $_raum->qm * $_raum->factor * $_objekte->factor; + $html .= Html::td(Format::numeric($factor_summe, 3), 'right br bb'); + } else { + // Methode 2b (8) ) + $html .= Html::td('', 'br bb'); + $html .= Html::td('', 'br bb'); + $html .= Html::td('=', 'center br bb'); + $factor_summe += $_raum->qm * $_raum->factor; + $html .= Html::td(Format::numeric($factor_summe, 3), 'right br bb'); + } + $html .= Html::td('', 'br bb'); + $html .= ''; + } + $ungerundet = $nutzwert + $factor_summe; + + $nutzwert_summe = round($ungerundet); + + // if ($zunutzwert) { + // $zunutzwert = $zunutzwert + $_objekte->qm_m1; + $html .= ''; + $html .= Html::td('', 'head bl br'); + $html .= Html::td('', 'br'); + $html .= Html::td('', 'br'); + $html .= Html::td('', 'br'); + // $html .= ''; + // $html .= ''; + $html .= Html::td('', 'br'); + $html .= Html::td('', 'br bb'); + $html .= Html::td('', 'br bb'); + $html .= Html::td('', 'br bb'); + $html .= Html::td('', 'br bb'); + $html .= Html::td('', 'br bb'); + $html .= Html::td('', 'br bb'); + $html .= Html::td(Format::numeric($ungerundet, 3), 'right br bb'); + $html .= Html::td($nutzwert_summe, 'right br bb'); + $html .= ''; + } else { + + $ungerundet = $_objekte->qm_m1 * $_objekte->factor; + $nutzwert_summe = round($ungerundet); + + $html .= ''; + $html .= Html::td('', 'head bl br'); + $html .= Html::td('', 'br'); + $html .= Html::td('', 'br'); + $html .= Html::td('', 'br'); + $html .= Html::td('', 'br'); + $html .= Html::td(Format::numeric($_objekte->qm_m1, 2), 'right bt br bb'); + $html .= Html::td('x', 'center bt br'); + $html .= Html::td(Format::numeric($_objekte->factor, 3), 'right bt br'); + $html .= Html::td('', 'bt br'); + $html .= Html::td('', 'bt br'); + $html .= Html::td('=', 'center bt br'); + $html .= Html::td(Format::numeric($ungerundet, 3), 'right bt br'); + $html .= Html::td($nutzwert_summe, 'right bt br'); + $html .= ''; + } + + /******************************************************** + METHODE 3 + 3b (3b wie Methode 3 aber ohne Wohnungsfactor) + ********************************************************/ + if (\count($_raume_m3) > 0) { + foreach ($_raume_m3 as $key => $_raum) { + $html .= ''; + $html .= Html::td('', 'head bl br'); + $html .= Html::td($_raum->geschoss, 'br'); + $html .= Html::td('', 'br'); + $html .= Html::td('', 'br'); + $html .= Html::td($_raum->raum, 'br'); + $html .= Html::td(Format::numeric($_raum->qm, 2), 'right br'); + + // Methode 3 + if ($_raum->methodes_id == 3) { + $html .= Html::td('x', 'center bt br'); + $html .= Html::td(Format::numeric($_objekte->factor, 3), 'right bt br'); + $html .= Html::td('x', 'center bt br'); + $html .= Html::td(Format::numeric($_raum->factor, 3), 'right bt br'); + $html .= Html::td('=', 'center bt br'); + $nutzwert = $_raum->qm * $_raum->factor * $_objekte->factor; + $html .= Html::td(Format::numeric($nutzwert, 3), 'right bt br'); + } else { + $html .= Html::td('', 'bt br'); + $html .= Html::td('', 'bt br'); + $html .= Html::td('x', 'center bt br'); + $html .= Html::td(Format::numeric($_raum->factor, 3), 'right bt br'); + $html .= Html::td('=', 'center bt br'); + $nutzwert = $_raum->qm * $_raum->factor; + $html .= Html::td(Format::numeric($nutzwert, 3), 'right bt br'); + } + $nutzwert = round($nutzwert) < 1 ? 1 : round($nutzwert); + $html .= Html::td($nutzwert, 'right bt br'); + $html .= ''; + $nutzwert_summe += $nutzwert; + } + } + + /******************************************************** + METHODE 4 + ********************************************************/ + $_raume_m4 = Raumalles::where('projekts_id', $projekts_id)->where('raumorientierung_id', $raumorientierung_id)->where('methodes_id', 4)->get(); + if (\count($_raume_m4) > 0) { + + foreach ($_raume_m4 as $key => $_raum) { + $ungerunded = $_raum->qm * $_raum->factor; + $nutzwert = round($nutzwert) < 1 ? 1 : round($nutzwert); + $nutzwert_summe += $nutzwert; + + $html .= ''; + $html .= Html::td('', 'head bl bl br'); + $html .= Html::td($_raum->geschoss, 'br'); + $html .= Html::td('', 'br'); + $html .= Html::td('Zubehör', 'br'); + $html .= Html::td($_raum->raum, 'br'); + $html .= Html::td(Format::numeric($_raum->qm, 2), 'right br'); + $html .= Html::td('', 'bt br'); + $html .= Html::td('', 'bt br'); + $html .= Html::td('x', 'center bt br'); + $html .= Html::td(Format::numeric($_raum->factor, 3), 'right bt br'); + $html .= Html::td('=', 'center bt br'); + $html .= Html::td(Format::numeric($ungerunded, 3), 'right bt br'); + $html .= Html::td($nutzwert, 'right bt br'); + $html .= ''; + } + } + + // Fuß Zeile + $html .= ''; + $html .= Html::td('', 'head bl bb'); + $html .= Html::td('Nutzwert gerundet', 'head right bt bb', 11); + $html .= Html::td($nutzwert_summe, 'head right bt br bb'); + $html .= ''; + + // dd($raumorientierung_id, $nutzwert_summe); + Raumorientierung::where('id', $raumorientierung_id)->update(['nutzwert_summe' => $nutzwert_summe]); + + $html .= '
Gesamtnutzfläche'.Format::numeric($zunutzwert, 2).'
'; + } + + return $html; + } +} diff --git a/app/Actions/Generate/Nutzwerte/BerechnungM5.php b/app/Actions/Generate/Nutzwerte/BerechnungM5.php new file mode 100644 index 0000000..34822e4 --- /dev/null +++ b/app/Actions/Generate/Nutzwerte/BerechnungM5.php @@ -0,0 +1,91 @@ +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 .= ''; + $html .= ''; + $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 .= ''; + + // Methode 5 + foreach ($_raume_m5 as $key => $_raum) { + + if ($key > 0) { + $_objekte->top_nr = ''; + $_raum->geschoss = ''; + $_objekte->typ = ''; + } + + $html .= ''; + $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 .= ''; + + $summe_nutzwert += $nutzwert; + } + + $summe_nutzwert = $summe_nutzwert < 1 ? 1 : round($summe_nutzwert); + $html .= ''; + $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 .= ''; + + $html .= '
'; + } + } + + return $html; + } +} diff --git a/app/Actions/Generate/Nutzwerte/BerechnungNutzwerte.php b/app/Actions/Generate/Nutzwerte/BerechnungNutzwerte.php new file mode 100644 index 0000000..10dc498 --- /dev/null +++ b/app/Actions/Generate/Nutzwerte/BerechnungNutzwerte.php @@ -0,0 +1,141 @@ +where('nicht_in_orientierung', 0) + ->get(); + + foreach ($_raumorientierung as $raumorientierung) { + + $_raumalles = Raumalles::where('raumorientierung_id', $raumorientierung->id) + ->where('projekts_id', $projekts_id) + ->whereIn('methodes_id', [3, 4, 5, 6, 7, 9]) + ->get(); + + foreach ($_raumalles as $raumalle) { + + $nutzwert_ungerundet = $raumalle->qm * $raumalle->factor; + + switch ($raumalle->methodes_id) { + case '9': + Raumalles::where('id', $raumalle->id) + ->where('methodes_id', 9) + ->update(['nutzwert_ungerundet' => $nutzwert_ungerundet]); + break; + case '3': + $nutzwert_gerundet = round($raumalle->qm * $raumalle->factor * $raumorientierung->factor); + Raumalles::where('id', $raumalle->id) + ->where('methodes_id', 3) + ->update(['nutzwert_gerundet' => $nutzwert_ungerundet]); + break; + default: + $nutzwert_gerundet = round($raumalle->qm * $raumalle->factor); + Raumalles::where('id', $raumalle->id) + ->where('methodes_id', $raumalle->methodes_id) + ->update(['nutzwert_gerundet' => $nutzwert_gerundet]); + break; + } + + Raumorientierung::where('id', $raumorientierung->id) + ->where('nutzwert_summe', 0) + ->update(['nutzwert_summe' => 1]); + + $t1 = Raumalles::select('nutzwert_gerundet') + ->where('raumorientierung_id', $raumorientierung->id) + ->whereIn('methodes_id', [5, 6]) + ->get() + ->sum('nutzwert_gerundet'); + $t2 = Raumalles::select('nutzwert_ungerundet') + ->where('raumorientierung_id', $raumorientierung->id) + ->where('methodes_id', 9) + ->get() + ->sum('nutzwert_ungerundet'); + $nutzwert_summe = round($t1 + $t2); + + Raumorientierung::where('id', $raumorientierung->id) + ->update(['nutzwert_summe' => $nutzwert_summe]); + } + } + + // METHODEN 1, 2, 2b , 3, 3b, 4 + $_raumorientierung = Raumorientierung::where('projekts_id', $projekts_id) + ->where('nicht_in_orientierung', 0) + ->get(); + + foreach ($_raumorientierung as $raumorientierung) { + + // METHODE 1 + $qm_m1 = Raumalles::select('qm') + ->where('projekts_id', $projekts_id) + ->where('raumorientierung_id', $raumorientierung->id) + ->where('methodes_id', 1) + ->get() + ->sum('qm'); + + if ($qm_m1) { + Raumorientierung::where('id', $raumorientierung->id) + ->where('projekts_id', $projekts_id) + ->update(['qm_m1' => $qm_m1]); + } + + // METHODE 1 & METHODE 2 + $nw_m2 = Raumalles::select(DB::raw('sum(qm * factor) as total')) + ->where('projekts_id', $projekts_id) + ->where('raumorientierung_id', $raumorientierung->id) + ->where('methodes_id', 2) + ->get() + ->sum('total'); + + $nw_m8 = Raumalles::select(DB::raw('sum(qm * factor) as total')) + ->where('projekts_id', $projekts_id) + ->where('raumorientierung_id', $raumorientierung->id) + ->where('methodes_id', 8) + ->get() + ->sum('total'); + + $nw_m1_m2 = round((($qm_m1 + $nw_m2) * $raumorientierung->factor) + $nw_m8); + + $nw_m3_m4 = Raumalles::select('nutzwert_gerundet') + ->where('projekts_id', $projekts_id) + ->where('raumorientierung_id', $raumorientierung->id) + ->whereIn('methodes_id', [3, 4, 7]) + ->get() + ->sum('nutzwert_gerundet'); + + $nutzwert_summe = $nw_m1_m2 + $nw_m3_m4; + Raumorientierung::where('id', $raumorientierung->id) + ->update(['nutzwert_summe' => $nutzwert_summe]); + } + } +} diff --git a/app/Actions/Generate/Nutzwerte/ZuUndAbschlaege.php b/app/Actions/Generate/Nutzwerte/ZuUndAbschlaege.php new file mode 100644 index 0000000..a0f0ce6 --- /dev/null +++ b/app/Actions/Generate/Nutzwerte/ZuUndAbschlaege.php @@ -0,0 +1,64 @@ +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 .= ''; + $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 .= ''; + } + + return $html; + } +} diff --git a/app/Actions/Generate/Nutzwerte/Zusammenstellung.php b/app/Actions/Generate/Nutzwerte/Zusammenstellung.php new file mode 100644 index 0000000..8c5cabf --- /dev/null +++ b/app/Actions/Generate/Nutzwerte/Zusammenstellung.php @@ -0,0 +1,91 @@ +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/Nutzwerte/Zusammenstellung_Methode1.php b/app/Actions/Generate/Nutzwerte/Zusammenstellung_Methode1.php new file mode 100644 index 0000000..744bb7e --- /dev/null +++ b/app/Actions/Generate/Nutzwerte/Zusammenstellung_Methode1.php @@ -0,0 +1,43 @@ +where('projekts_id', $projekts_id)->where('methodes_id', '1')->groupBy('raumorientierung_id', 'geschoss')->get(); + $geschoss = []; + $raumorientierung_ids = []; + foreach ($res as $value) { + $geschoss[$value->raumorientierung_id][] = $value->geschoss; + $raumorientierung_ids[] = $value->raumorientierung_id; + } + + $orientierung = Orientierung::map(); + $orientierung[1] = ''; + + $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'] = $value->type; + $tmp['nutzwert_summe'] = $value->nutzwert_summe; + $tmp['orientierung'] = $orientierung[$value->orientierungs_id]; + $tmp['geschoss'] = ''; + if (isset($geschoss[$value['id']])) { + $tmp['geschoss'] = implode(',', $geschoss[$value->id]); + } + $return[] = $tmp; + } + + return $return; + } +} diff --git a/app/Actions/Generate/Nutzwerte/Zusammenstellung_Methode5.php b/app/Actions/Generate/Nutzwerte/Zusammenstellung_Methode5.php new file mode 100644 index 0000000..328c65d --- /dev/null +++ b/app/Actions/Generate/Nutzwerte/Zusammenstellung_Methode5.php @@ -0,0 +1,65 @@ +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; + } +} diff --git a/app/Actions/Generate/StandardTexte/AllgemeinTabelle.php b/app/Actions/Generate/StandardTexte/AllgemeinTabelle.php new file mode 100644 index 0000000..fc10716 --- /dev/null +++ b/app/Actions/Generate/StandardTexte/AllgemeinTabelle.php @@ -0,0 +1,46 @@ +where('projekts_id', $projekts_id)->get()->toArray(); + + $_data = array_chunk($_allgemeine, 2); + + $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 .= ''; + + foreach ($_data as $value) { // + $html .= ''; + if (isset($value[0])) { + $html .= Html::td($value[0]['geschoss'], 'bl bb'); + $html .= Html::td($value[0]['raumart'], 'bl bb'); + $html .= Html::td($value[0]['qm'], 'bl bb br'); + $html .= ''; + } + if (isset($value[1])) { + $html .= Html::td($value[1]['geschoss'], 'bl bb'); + $html .= Html::td($value[1]['raumart'], 'bl bb'); + $html .= Html::td($value[1]['qm'], 'bl bb br'); + } + $html .= ''; + } + $html .= '
'; + + return $html; + } +} diff --git a/app/Actions/Generate/StandardTexte/Deckblatt.php b/app/Actions/Generate/StandardTexte/Deckblatt.php new file mode 100644 index 0000000..a3b276a --- /dev/null +++ b/app/Actions/Generate/StandardTexte/Deckblatt.php @@ -0,0 +1,39 @@ +'; + if (GenerateStandardTexte::$gutachter->kopf == 'adressenblock') { + $html .= '

'.GenerateStandardTexte::$gutachter->adressenblock.'
'; + } elseif (GenerateStandardTexte::$gutachter->kopf == 'logo') { + $html .= '
'; + $html .= ''; + $html .= '
'; + } + $html .= ''; + + // TITEL + $html .= '
Gutachten'; + $html .= '
'.trim(GenerateStandardTexte::$projekt->name).'
'; + $html .= '
'; + + // PROJEKT + $html .= '
Zur Festsetzung der Nutzwerte'; + $html .= '
'.trim($standardtext).'
'; + $html .= '
'; + + // AUFTRAGGEBER + $html .= '
'; + $html .= GenerateStandardTexte::$auftraggeber->adressenblock; + $html .= '
'; + + return $html; + } +} diff --git a/app/Actions/Generate/StandardTexte/Inhalt.php b/app/Actions/Generate/StandardTexte/Inhalt.php new file mode 100644 index 0000000..cc8b47f --- /dev/null +++ b/app/Actions/Generate/StandardTexte/Inhalt.php @@ -0,0 +1,45 @@ +INHALTSVERZEICHNIS'; + + $standardtext = strip_tags($standardtext, '
'); + + $standardtext = str_replace('
', '§§', $standardtext); + $standardtext = str_replace('
', '§§', $standardtext); + $standardtext = str_replace('
', '§§', $standardtext); + + $arr = explode('§§', $standardtext); + + $html .= ''; + + foreach ($arr as $value) { + + $tmp = explode('|', $value); + + $tmp[0] = $tmp[0] ?? ''; + $tmp[1] = $tmp[1] ?? ''; + $tmp[2] = $tmp[2] ?? ''; + $tmp[3] = $tmp[3] ?? ''; + + $html .= ''; + $html .= Html::td($tmp[0]); + $html .= Html::td($tmp[1]); + $html .= Html::td($tmp[2]); + $html .= Html::td($tmp[3]); + $html .= ''; + + } + + $html .= '
'; + + return $html; + } +} diff --git a/app/Actions/Generate/StandardTexte/Paragraph6Tabelle.php b/app/Actions/Generate/StandardTexte/Paragraph6Tabelle.php new file mode 100644 index 0000000..5565891 --- /dev/null +++ b/app/Actions/Generate/StandardTexte/Paragraph6Tabelle.php @@ -0,0 +1,44 @@ +join('raumalles', 'raumorientierung.id', '=', 'raumalles.raumorientierung_id') + ->join('orientierungs', 'raumorientierung.orientierungs_id', '=', 'orientierungs.id') + ->select('raumorientierung.top_nr', 'raumorientierung.type', 'raumalles.geschoss', 'orientierungs.name') + ->where('raumorientierung.projekts_id', $projekts_id) + ->whereIn('raumalles.methodes_id', [1, 5, 6, 9]) + ->groupBy('raumorientierung.id') + ->orderBy('raumalles.methodes_id', 'ASC') + ->orderBy('raumorientierung.top_nr', 'ASC') + ->get(); + + $html = ''; + + $html .= ''; + $html .= Html::td('Top', 'head center br bb'); + $html .= Html::td('Geschoß', 'head center br bb'); + $html .= Html::td('Orientierung', 'head center br bb'); + $html .= Html::td('Typ', 'head center br bb'); + $html .= ''; + foreach ($data as $value) { + + $html .= ''; + $html .= Html::td($value->top_nr, 'center br bb'); + $html .= Html::td($value->geschoss, 'center br bb'); + $html .= Html::td(($value->name == 'Ohne Zuordnung') ? '' : $value->name, 'center br bb'); + $html .= Html::td($value->type, 'center br bb'); + $html .= ''; + } + $html .= '
'; + + return $html; + } +} diff --git a/app/Actions/Generate/StandardTexte/Standardtext.php b/app/Actions/Generate/StandardTexte/Standardtext.php new file mode 100644 index 0000000..91eb627 --- /dev/null +++ b/app/Actions/Generate/StandardTexte/Standardtext.php @@ -0,0 +1,13 @@ +'); + + $standardtext = str_replace('
', '§§', $standardtext); + $standardtext = str_replace('
', '§§', $standardtext); + $standardtext = str_replace('
', '§§', $standardtext); + + $arr = explode('§§', $standardtext); + + $html = ''; + + foreach ($arr as $value) { + + $tmp = explode('|', $value); + + $tmp[0] = $tmp[0] ?? ''; + $tmp[1] = $tmp[1] ?? ''; + + $html .= ''; + $html .= Html::td($tmp[0], 'br bb'); + $html .= Html::td($tmp[1], 'br bb'); + $html .= ''; + + } + + $html .= '
'; + + return $html; + } +} diff --git a/app/Filament/Resources/Auftraggebers/Pages/ListAuftraggebers.php b/app/Filament/Resources/Auftraggebers/Pages/ListAuftraggebers.php index 4d8c63b..e5b7d0e 100644 --- a/app/Filament/Resources/Auftraggebers/Pages/ListAuftraggebers.php +++ b/app/Filament/Resources/Auftraggebers/Pages/ListAuftraggebers.php @@ -13,7 +13,9 @@ class ListAuftraggebers extends ListRecords protected function getHeaderActions(): array { return [ - CreateAction::make()->createAnother(false), + CreateAction::make() + ->icon('phosphor-file-plus') + ->createAnother(false), ]; } } diff --git a/app/Filament/Resources/Gutachters/Pages/ListGutachters.php b/app/Filament/Resources/Gutachters/Pages/ListGutachters.php index 72de18c..e009e6b 100644 --- a/app/Filament/Resources/Gutachters/Pages/ListGutachters.php +++ b/app/Filament/Resources/Gutachters/Pages/ListGutachters.php @@ -13,7 +13,9 @@ class ListGutachters extends ListRecords protected function getHeaderActions(): array { return [ - CreateAction::make()->createAnother(false), + CreateAction::make() + ->icon('phosphor-file-plus') + ->createAnother(false), ]; } } diff --git a/app/Filament/Resources/Inhaltsverzeichnis/Pages/ListInhaltsverzeichnis.php b/app/Filament/Resources/Inhaltsverzeichnis/Pages/ListInhaltsverzeichnis.php index f326901..beb2ea8 100644 --- a/app/Filament/Resources/Inhaltsverzeichnis/Pages/ListInhaltsverzeichnis.php +++ b/app/Filament/Resources/Inhaltsverzeichnis/Pages/ListInhaltsverzeichnis.php @@ -13,7 +13,9 @@ class ListInhaltsverzeichnis extends ListRecords protected function getHeaderActions(): array { return [ - CreateAction::make()->createAnother(false), + CreateAction::make() + ->icon('phosphor-file-plus') + ->createAnother(false), ]; } } diff --git a/app/Filament/Resources/KontoTextblocks/Pages/ListKontoTextblocks.php b/app/Filament/Resources/KontoTextblocks/Pages/ListKontoTextblocks.php index d0160e0..ce9fba7 100644 --- a/app/Filament/Resources/KontoTextblocks/Pages/ListKontoTextblocks.php +++ b/app/Filament/Resources/KontoTextblocks/Pages/ListKontoTextblocks.php @@ -13,7 +13,9 @@ class ListKontoTextblocks extends ListRecords protected function getHeaderActions(): array { return [ - CreateAction::make(), + CreateAction::make() + ->icon('phosphor-file-plus') + ->createAnother(false), ]; } } diff --git a/app/Filament/Resources/Methodes/Pages/ListMethodes.php b/app/Filament/Resources/Methodes/Pages/ListMethodes.php index f191682..a0510cc 100644 --- a/app/Filament/Resources/Methodes/Pages/ListMethodes.php +++ b/app/Filament/Resources/Methodes/Pages/ListMethodes.php @@ -13,7 +13,9 @@ class ListMethodes extends ListRecords protected function getHeaderActions(): array { return [ - // CreateAction::make(), + // CreateAction::make() + // ->icon('phosphor-file-plus') + // ->createAnother(false), ]; } } diff --git a/app/Filament/Resources/Orientierungs/Pages/ListOrientierungs.php b/app/Filament/Resources/Orientierungs/Pages/ListOrientierungs.php index 5989829..ec9876a 100644 --- a/app/Filament/Resources/Orientierungs/Pages/ListOrientierungs.php +++ b/app/Filament/Resources/Orientierungs/Pages/ListOrientierungs.php @@ -13,7 +13,9 @@ class ListOrientierungs extends ListRecords protected function getHeaderActions(): array { return [ - CreateAction::make()->createAnother(false), + CreateAction::make() + ->icon('phosphor-file-plus') + ->createAnother(false), ]; } } diff --git a/app/Filament/Resources/Permissions/Pages/ListPermissions.php b/app/Filament/Resources/Permissions/Pages/ListPermissions.php index 4d05b04..26b59af 100644 --- a/app/Filament/Resources/Permissions/Pages/ListPermissions.php +++ b/app/Filament/Resources/Permissions/Pages/ListPermissions.php @@ -13,7 +13,9 @@ class ListPermissions extends ListRecords protected function getHeaderActions(): array { return [ - // CreateAction::make(), + // CreateAction::make() + // ->icon('phosphor-file-plus') + // ->createAnother(false), ]; } } diff --git a/app/Filament/Resources/Plans/Pages/ListPlans.php b/app/Filament/Resources/Plans/Pages/ListPlans.php index f879fdc..20c30c0 100644 --- a/app/Filament/Resources/Plans/Pages/ListPlans.php +++ b/app/Filament/Resources/Plans/Pages/ListPlans.php @@ -13,7 +13,9 @@ class ListPlans extends ListRecords protected function getHeaderActions(): array { return [ - // CreateAction::make(), + // CreateAction::make() + // ->icon('phosphor-file-plus') + // ->createAnother(false), ]; } } diff --git a/app/Filament/Resources/Projektes/Pages/EditProjekte.php b/app/Filament/Resources/Projektes/Pages/EditProjekte.php index 44da3c9..e79126e 100644 --- a/app/Filament/Resources/Projektes/Pages/EditProjekte.php +++ b/app/Filament/Resources/Projektes/Pages/EditProjekte.php @@ -3,6 +3,8 @@ namespace App\Filament\Resources\Projektes\Pages; use App\Filament\Resources\Projektes\ProjekteResource; +use Filament\Actions\Action; +use Filament\Actions\ActionGroup; use Filament\Actions\DeleteAction; use Filament\Resources\Pages\EditRecord; @@ -13,10 +15,48 @@ class EditProjekte extends EditRecord protected function getHeaderActions(): array { return [ - DeleteAction::make(), + Action::make('standardtexte') + ->label('Standard Texte') + ->icon('icon-pdf') + ->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'file'])) + ->openUrlInNewTab(), + Action::make('nutzwerte') + ->label('Nutzwerte') + ->icon('icon-pdf') + ->url(fn ($record) => route('nutzwerte.download', ['record' => $record, 'mode' => 'file'])) + ->openUrlInNewTab(), + Action::make('nutzwerte_excel') + ->label('Nutzdaten') + ->color('success') + ->icon('icon-excel') + ->url(fn ($record) => route('excel.download', ['record' => $record, 'mode' => 'file'])) + ->openUrlInNewTab(), + ActionGroup::make([ + Action::make('generator_standardtexte') + ->label('Standards Generieren') + ->icon('heroicon-o-cog-8-tooth') + ->url(fn ($record) => route('standard.download', ['record' => $record, 'mode' => 'new'])) + ->openUrlInNewTab(), + Action::make('generator_nutzwerte') + ->label('Nutzwerte Generieren') + ->icon('heroicon-o-cog-8-tooth') + ->url(fn ($record) => route('nutzwerte.download', ['record' => $record, 'mode' => 'new'])) + ->openUrlInNewTab(), + Action::make('nutzwerte_excel') + ->label('Excel Generieren') + ->icon('heroicon-o-cog-8-tooth') + ->url(fn ($record) => route('excel.download', ['record' => $record, 'mode' => 'new'])) + ->openUrlInNewTab(), + DeleteAction::make()->label('Projekt löschen'), + ]), ]; } + protected function getSavedNotificationTitle(): ?string + { + return 'Projekt Änderungen gespeichert'; + } + // protected function getFormActions(): array // { // return [ diff --git a/app/Filament/Resources/Projektes/Pages/ListProjektes.php b/app/Filament/Resources/Projektes/Pages/ListProjektes.php index 19287ca..95b94f2 100644 --- a/app/Filament/Resources/Projektes/Pages/ListProjektes.php +++ b/app/Filament/Resources/Projektes/Pages/ListProjektes.php @@ -15,6 +15,7 @@ class ListProjektes extends ListRecords { return [ CreateAction::make() + ->icon('phosphor-file-plus') ->createAnother(false) ->mutateDataUsing(function (array $data): array { $data['konto_id'] = auth()->user()->konto_id; diff --git a/app/Filament/Resources/Projektes/RelationManagers/AllgemeinflaechensRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/AllgemeinflaechensRelationManager.php index 9bc6d4e..16c4d6e 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/AllgemeinflaechensRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/AllgemeinflaechensRelationManager.php @@ -75,7 +75,8 @@ class AllgemeinflaechensRelationManager extends RelationManager ]) ->headerActions([ CreateAction::make() - ->icon('phosphor-file-plus'), + ->icon('phosphor-file-plus') + ->createAnother(false), ImportAction::make() ->importer(AllgemeinflaechenImporter::class) ->modalHeading('Allgemeinflächen Import') diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektInhaltsverzeichnisRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektInhaltsverzeichnisRelationManager.php index a881819..afce179 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektInhaltsverzeichnisRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektInhaltsverzeichnisRelationManager.php @@ -157,7 +157,9 @@ class ProjektInhaltsverzeichnisRelationManager extends RelationManager // ]) ->headerActions([ - CreateAction::make(), + CreateAction::make() + ->icon('phosphor-file-plus') + ->createAnother(false), ]) ->recordActions([ EditAction::make('edit')->iconButton()->color('gray'), diff --git a/app/Filament/Resources/Projektes/RelationManagers/RaeumeallesRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/RaeumeallesRelationManager.php index 7d57955..d78b6d9 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/RaeumeallesRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/RaeumeallesRelationManager.php @@ -97,7 +97,8 @@ class RaeumeallesRelationManager extends RelationManager // ], layout: FiltersLayout::AboveContentCollapsible) ->headerActions([ CreateAction::make() - ->icon('phosphor-file-plus'), + ->icon('phosphor-file-plus') + ->createAnother(false), ImportAction::make() ->importer(RaeumealleImporter::class) ->label('Hochladen') diff --git a/app/Filament/Resources/Textblocks/Pages/ListTextblocks.php b/app/Filament/Resources/Textblocks/Pages/ListTextblocks.php index 32efc43..9146c1a 100644 --- a/app/Filament/Resources/Textblocks/Pages/ListTextblocks.php +++ b/app/Filament/Resources/Textblocks/Pages/ListTextblocks.php @@ -13,7 +13,9 @@ class ListTextblocks extends ListRecords protected function getHeaderActions(): array { return [ - CreateAction::make()->createAnother(false), + CreateAction::make() + ->icon('phosphor-file-plus') + ->createAnother(false), ]; } } diff --git a/app/Filament/Resources/Users/Pages/ListUsers.php b/app/Filament/Resources/Users/Pages/ListUsers.php index ac30e03..df5d61b 100644 --- a/app/Filament/Resources/Users/Pages/ListUsers.php +++ b/app/Filament/Resources/Users/Pages/ListUsers.php @@ -14,6 +14,8 @@ class ListUsers extends ListRecords { return [ CreateAction::make() + ->icon('phosphor-file-plus') + ->createAnother(false) ->mutateDataUsing(function (array $data): array { $data['konto_id'] = auth()->user()->konto_id; diff --git a/bootstrap/cache/blade-icons.php b/bootstrap/cache/blade-icons.php index b21f1c7..3c5c682 100755 --- a/bootstrap/cache/blade-icons.php +++ b/bootstrap/cache/blade-icons.php @@ -1,7 +1,7 @@ array ( - '/Users/salam/Sites/nutzwerte_fi4/vendor/blade-ui-kit/blade-heroicons/src/../resources/svg' => + '/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/blade-ui-kit/blade-heroicons/src/../resources/svg' => array ( 0 => 'c-academic-cap', 1 => 'c-adjustments-horizontal', @@ -1295,7 +1295,7 @@ ), 'phosphor-icons' => array ( - '/Users/salam/Sites/nutzwerte_fi4/vendor/codeat3/blade-phosphor-icons/src/../resources/svg' => + '/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/codeat3/blade-phosphor-icons/src/../resources/svg' => array ( 0 => 'acorn-bold', 1 => 'acorn-duotone', @@ -10373,7 +10373,7 @@ ), 'filament' => array ( - '/Users/salam/Sites/nutzwerte_fi4/vendor/filament/support/src/../resources/svg' => + '/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/filament/support/src/../resources/svg' => array ( 0 => 'o-align-center', 1 => 'o-align-end', @@ -10410,7 +10410,7 @@ ), 'lucide' => array ( - '/Users/salam/Sites/nutzwerte_fi4/vendor/mallardduck/blade-lucide-icons/src/../resources/svg' => + '/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/mallardduck/blade-lucide-icons/src/../resources/svg' => array ( 0 => 'a-arrow-down', 1 => 'a-arrow-up', diff --git a/bootstrap/cache/config.php b/bootstrap/cache/config.php index bcff738..b970f2e 100644 --- a/bootstrap/cache/config.php +++ b/bootstrap/cache/config.php @@ -81,9 +81,9 @@ array ( 'paths' => array ( - 0 => '/Users/salam/Sites/nutzwerte_fi4/resources/views', + 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/resources/views', ), - 'compiled' => '/Users/salam/Sites/nutzwerte_fi4/storage/framework/views', + 'compiled' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/framework/views', ), 'cors' => array ( @@ -124,9 +124,9 @@ 'timezone' => 'UTC', 'locale' => 'de', 'fallback_locale' => 'en', - 'faker_locale' => 'de_AT', + 'faker_locale' => 'at_AT', 'cipher' => 'AES-256-CBC', - 'key' => 'base64:zrVnUcBmUGjEV/EoAKnZCm/1FWplKu79kYBvevE2/ek=', + 'key' => 'base64:yRi9h21i7xAkGpeF7JoArovQJU1w6xwczQ6ijpYpJrs=', 'previous_keys' => array ( ), @@ -274,8 +274,8 @@ 'file' => array ( 'driver' => 'file', - 'path' => '/Users/salam/Sites/nutzwerte_fi4/storage/framework/cache/data', - 'lock_path' => '/Users/salam/Sites/nutzwerte_fi4/storage/framework/cache/data', + 'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/framework/cache/data', + 'lock_path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/framework/cache/data', ), 'memcached' => array ( @@ -486,7 +486,7 @@ ), 'policies' => array ( - 'path' => '/Users/salam/Sites/nutzwerte_fi4/app/Policies', + 'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Policies', 'merge' => true, 'generate' => true, 'methods' => @@ -574,7 +574,7 @@ 'local' => array ( 'driver' => 'local', - 'root' => '/Users/salam/Sites/nutzwerte_fi4/storage/app/private', + 'root' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/private', 'serve' => true, 'throw' => false, 'report' => false, @@ -582,7 +582,7 @@ 'public' => array ( 'driver' => 'local', - 'root' => '/Users/salam/Sites/nutzwerte_fi4/storage/app/public', + 'root' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/public', 'url' => 'http://nutzwerte_fi4.test/storage', 'visibility' => 'public', 'throw' => false, @@ -604,7 +604,7 @@ 'promotion' => array ( 'driver' => 'local', - 'root' => '/Users/salam/Sites/nutzwerte_fi4/storage/app/public/promotion', + 'root' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/public/promotion', 'url' => 'http://nutzwerte_fi4.test/storage/promotion', 'visibility' => 'public', 'throw' => false, @@ -612,7 +612,7 @@ ), 'links' => array ( - '/Users/salam/Sites/nutzwerte_fi4/public/storage' => '/Users/salam/Sites/nutzwerte_fi4/storage/app/public', + '/Users/hermanntelser/Sites/nutzwerte_fi4/public/storage' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/public', ), ), 'logging' => @@ -637,14 +637,14 @@ 'single' => array ( 'driver' => 'single', - 'path' => '/Users/salam/Sites/nutzwerte_fi4/storage/logs/laravel.log', + 'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/logs/laravel.log', 'level' => 'debug', 'replace_placeholders' => true, ), 'daily' => array ( 'driver' => 'daily', - 'path' => '/Users/salam/Sites/nutzwerte_fi4/storage/logs/laravel.log', + 'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/logs/laravel.log', 'level' => 'debug', 'days' => 14, 'replace_placeholders' => true, @@ -709,7 +709,7 @@ ), 'emergency' => array ( - 'path' => '/Users/salam/Sites/nutzwerte_fi4/storage/logs/laravel.log', + 'path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/logs/laravel.log', ), ), ), @@ -808,7 +808,7 @@ 'theme' => 'default', 'paths' => array ( - 0 => '/Users/salam/Sites/nutzwerte_fi4/resources/views/vendor/mail', + 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/resources/views/vendor/mail', ), ), ), @@ -984,7 +984,7 @@ 'lifetime' => 120, 'expire_on_close' => false, 'encrypt' => false, - 'files' => '/Users/salam/Sites/nutzwerte_fi4/storage/framework/sessions', + 'files' => '/Users/hermanntelser/Sites/nutzwerte_fi4/storage/framework/sessions', 'connection' => NULL, 'table' => 'sessions', 'store' => NULL, @@ -1048,7 +1048,7 @@ ), 'default_filesystem_disk' => 'local', 'assets_path' => NULL, - 'cache_path' => '/Users/salam/Sites/nutzwerte_fi4/bootstrap/cache/filament', + 'cache_path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/bootstrap/cache/filament', 'livewire_loading_delay' => 'default', 'file_generation' => array ( @@ -1061,7 +1061,7 @@ 'livewire' => array ( 'class_namespace' => 'App\\Livewire', - 'view_path' => '/Users/salam/Sites/nutzwerte_fi4/resources/views/livewire', + 'view_path' => '/Users/hermanntelser/Sites/nutzwerte_fi4/resources/views/livewire', 'layout' => 'components.layouts.app', 'lazy_placeholder' => NULL, 'temporary_file_upload' => diff --git a/bootstrap/cache/filament/panels/admin.php b/bootstrap/cache/filament/panels/admin.php index d92af03..36ef307 100644 --- a/bootstrap/cache/filament/panels/admin.php +++ b/bootstrap/cache/filament/panels/admin.php @@ -68,9 +68,9 @@ ), 'clusters' => array ( - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Projekte/ProjekteCluster.php' => 'App\\Filament\\Clusters\\Projekte\\ProjekteCluster', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Projekte/ProjekteCluster.php' => 'App\\Filament\\Clusters\\Projekte\\ProjekteCluster', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster', ), 'clusteredComponents' => array ( @@ -95,7 +95,7 @@ ), 'clusterDirectories' => array ( - 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters', + 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters', ), 'clusterNamespaces' => array ( @@ -103,14 +103,14 @@ ), 'pages' => array ( - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Projekte/ProjekteCluster.php' => 'App\\Filament\\Clusters\\Projekte\\ProjekteCluster', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Projekte/ProjekteCluster.php' => 'App\\Filament\\Clusters\\Projekte\\ProjekteCluster', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster', 0 => 'Filament\\Pages\\Dashboard', ), 'pageDirectories' => array ( - 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Pages', + 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Pages', ), 'pageNamespaces' => array ( @@ -118,23 +118,23 @@ ), 'resources' => array ( - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Auftraggebers/AuftraggeberResource.php' => 'App\\Filament\\Resources\\Auftraggebers\\AuftraggeberResource', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Gutachters/GutachterResource.php' => 'App\\Filament\\Resources\\Gutachters\\GutachterResource', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Inhaltsverzeichnis/InhaltsverzeichnisResource.php' => 'App\\Filament\\Resources\\Inhaltsverzeichnis\\InhaltsverzeichnisResource', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/KontoTextblocks/KontoTextblockResource.php' => 'App\\Filament\\Resources\\KontoTextblocks\\KontoTextblockResource', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Kontos/KontoResource.php' => 'App\\Filament\\Resources\\Kontos\\KontoResource', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Methodes/MethodeResource.php' => 'App\\Filament\\Resources\\Methodes\\MethodeResource', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Orientierungs/OrientierungResource.php' => 'App\\Filament\\Resources\\Orientierungs\\OrientierungResource', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Permissions/PermissionResource.php' => 'App\\Filament\\Resources\\Permissions\\PermissionResource', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Plans/PlanResource.php' => 'App\\Filament\\Resources\\Plans\\PlanResource', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Projektes/ProjekteResource.php' => 'App\\Filament\\Resources\\Projektes\\ProjekteResource', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Textblocks/TextblockResource.php' => 'App\\Filament\\Resources\\Textblocks\\TextblockResource', - '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Users/UserResource.php' => 'App\\Filament\\Resources\\Users\\UserResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Auftraggebers/AuftraggeberResource.php' => 'App\\Filament\\Resources\\Auftraggebers\\AuftraggeberResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Gutachters/GutachterResource.php' => 'App\\Filament\\Resources\\Gutachters\\GutachterResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Inhaltsverzeichnis/InhaltsverzeichnisResource.php' => 'App\\Filament\\Resources\\Inhaltsverzeichnis\\InhaltsverzeichnisResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/KontoTextblocks/KontoTextblockResource.php' => 'App\\Filament\\Resources\\KontoTextblocks\\KontoTextblockResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Kontos/KontoResource.php' => 'App\\Filament\\Resources\\Kontos\\KontoResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Methodes/MethodeResource.php' => 'App\\Filament\\Resources\\Methodes\\MethodeResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Orientierungs/OrientierungResource.php' => 'App\\Filament\\Resources\\Orientierungs\\OrientierungResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Permissions/PermissionResource.php' => 'App\\Filament\\Resources\\Permissions\\PermissionResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Plans/PlanResource.php' => 'App\\Filament\\Resources\\Plans\\PlanResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Projektes/ProjekteResource.php' => 'App\\Filament\\Resources\\Projektes\\ProjekteResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Textblocks/TextblockResource.php' => 'App\\Filament\\Resources\\Textblocks\\TextblockResource', + '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Users/UserResource.php' => 'App\\Filament\\Resources\\Users\\UserResource', 0 => 'BezhanSalleh\\FilamentShield\\Resources\\Roles\\RoleResource', ), 'resourceDirectories' => array ( - 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources', + 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources', ), 'resourceNamespaces' => array ( @@ -147,7 +147,7 @@ ), 'widgetDirectories' => array ( - 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Widgets', + 0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Widgets', ), 'widgetNamespaces' => array ( diff --git a/bootstrap/cache/routes-v7.php b/bootstrap/cache/routes-v7.php index 03e4c7a..654c7cf 100644 --- a/bootstrap/cache/routes-v7.php +++ b/bootstrap/cache/routes-v7.php @@ -306,26 +306,6 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - '/app/verwaltung/konto-textblocks/create' => - array ( - 0 => - array ( - 0 => - array ( - '_route' => 'filament.admin.verwaltung.resources.konto-textblocks.create', - ), - 1 => NULL, - 2 => - array ( - 'GET' => 0, - 'HEAD' => 1, - ), - 3 => NULL, - 4 => false, - 5 => false, - 6 => NULL, - ), - ), '/app/verwaltung/kontos' => array ( 0 => @@ -551,7 +531,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::Ln7uDmO40XfEShda', + '_route' => 'generated::nhkspirB08wPcEqX', ), 1 => NULL, 2 => @@ -571,7 +551,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::iRuBL8OD6LJIP3HX', + '_route' => 'generated::0ZTEqfES7Kdi161v', ), 1 => NULL, 2 => @@ -629,7 +609,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::YjuqBvLenMm2yolY', + '_route' => 'generated::uvB5MUuG5RfsaOV2', ), 1 => NULL, 2 => @@ -649,7 +629,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::dUyL0yaZh39GvuXU', + '_route' => 'generated::AVv0QYbNzkUoiFdJ', ), 1 => NULL, 2 => @@ -669,7 +649,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::EImZQvugnpLvkIo8', + '_route' => 'generated::AuyL1OA8uHrzBpon', ), 1 => NULL, 2 => @@ -689,7 +669,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::nn1khffeyT9weHtd', + '_route' => 'generated::l6oTxL1NqW6yBegd', ), 1 => NULL, 2 => @@ -709,7 +689,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::S8cpPyu4We6KkbAI', + '_route' => 'generated::q9BkNRCuUHnyFeYH', ), 1 => NULL, 2 => @@ -726,7 +706,7 @@ app('router')->setCompiledRoutes( ), 2 => array ( - 0 => '{^(?|/filament/(?|exports/([^/]++)/download(*:45)|imports/([^/]++)/failed\\-rows/download(*:90))|/app/(?|email\\-(?|verification/verify/([^/]++)/([^/]++)(*:153)|change\\-verification/verify/([^/]++)/([^/]++)(?|(*:209)|/block(*:223)))|verwaltung/konto\\-textblocks/([^/]++)/edit(*:275)|projektes/([^/]++)/edit(*:306)|administration/shield/roles/([^/]++)(?|(*:353)|/edit(*:366)))|/livewire/preview\\-file/([^/]++)(*:408)|/storage/(.*)(*:429))/?$}sDu', + 0 => '{^(?|/filament/(?|exports/([^/]++)/download(*:45)|imports/([^/]++)/failed\\-rows/download(*:90))|/app/(?|email\\-(?|verification/verify/([^/]++)/([^/]++)(*:153)|change\\-verification/verify/([^/]++)/([^/]++)(?|(*:209)|/block(*:223)))|projektes/([^/]++)/edit(*:256)|administration/shield/roles/([^/]++)(?|(*:303)|/edit(*:316)))|/livewire/preview\\-file/([^/]++)(*:358)|/storage/(.*)(*:379))/?$}sDu', ), 3 => array ( @@ -848,30 +828,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 275 => - array ( - 0 => - array ( - 0 => - array ( - '_route' => 'filament.admin.verwaltung.resources.konto-textblocks.edit', - ), - 1 => - array ( - 0 => 'record', - ), - 2 => - array ( - 'GET' => 0, - 'HEAD' => 1, - ), - 3 => NULL, - 4 => false, - 5 => false, - 6 => NULL, - ), - ), - 306 => + 256 => array ( 0 => array ( @@ -894,7 +851,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 353 => + 303 => array ( 0 => array ( @@ -917,7 +874,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 366 => + 316 => array ( 0 => array ( @@ -940,7 +897,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 408 => + 358 => array ( 0 => array ( @@ -963,7 +920,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 429 => + 379 => array ( 0 => array ( @@ -1991,112 +1948,6 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'filament.admin.verwaltung.resources.konto-textblocks.create' => - array ( - 'methods' => - array ( - 0 => 'GET', - 1 => 'HEAD', - ), - 'uri' => 'app/verwaltung/konto-textblocks/create', - 'action' => - array ( - 'domain' => NULL, - 'middleware' => - array ( - 0 => 'panel:admin', - 1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies', - 2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse', - 3 => 'Illuminate\\Session\\Middleware\\StartSession', - 4 => 'Filament\\Http\\Middleware\\AuthenticateSession', - 5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession', - 6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken', - 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', - 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', - 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', - 11 => 'Filament\\Http\\Middleware\\Authenticate', - 12 => 'verified:filament.admin.auth.email-verification.prompt', - ), - 'excluded_middleware' => - array ( - ), - 'uses' => 'App\\Filament\\Resources\\KontoTextblocks\\Pages\\CreateKontoTextblock@__invoke', - 'controller' => 'App\\Filament\\Resources\\KontoTextblocks\\Pages\\CreateKontoTextblock', - 'as' => 'filament.admin.verwaltung.resources.konto-textblocks.create', - 'namespace' => NULL, - 'prefix' => 'app/verwaltung/konto-textblocks', - 'where' => - array ( - ), - ), - 'fallback' => false, - 'defaults' => - array ( - ), - 'wheres' => - array ( - ), - 'bindingFields' => - array ( - ), - 'lockSeconds' => NULL, - 'waitSeconds' => NULL, - 'withTrashed' => false, - ), - 'filament.admin.verwaltung.resources.konto-textblocks.edit' => - array ( - 'methods' => - array ( - 0 => 'GET', - 1 => 'HEAD', - ), - 'uri' => 'app/verwaltung/konto-textblocks/{record}/edit', - 'action' => - array ( - 'domain' => NULL, - 'middleware' => - array ( - 0 => 'panel:admin', - 1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies', - 2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse', - 3 => 'Illuminate\\Session\\Middleware\\StartSession', - 4 => 'Filament\\Http\\Middleware\\AuthenticateSession', - 5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession', - 6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken', - 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', - 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', - 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', - 11 => 'Filament\\Http\\Middleware\\Authenticate', - 12 => 'verified:filament.admin.auth.email-verification.prompt', - ), - 'excluded_middleware' => - array ( - ), - 'uses' => 'App\\Filament\\Resources\\KontoTextblocks\\Pages\\EditKontoTextblock@__invoke', - 'controller' => 'App\\Filament\\Resources\\KontoTextblocks\\Pages\\EditKontoTextblock', - 'as' => 'filament.admin.verwaltung.resources.konto-textblocks.edit', - 'namespace' => NULL, - 'prefix' => 'app/verwaltung/konto-textblocks', - 'where' => - array ( - ), - ), - 'fallback' => false, - 'defaults' => - array ( - ), - 'wheres' => - array ( - ), - 'bindingFields' => - array ( - ), - 'lockSeconds' => NULL, - 'waitSeconds' => NULL, - 'withTrashed' => false, - ), 'filament.admin.verwaltung.resources.kontos.index' => array ( 'methods' => @@ -2817,7 +2668,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::Ln7uDmO40XfEShda' => + 'generated::nhkspirB08wPcEqX' => array ( 'methods' => array ( @@ -2829,7 +2680,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', - 'as' => 'generated::Ln7uDmO40XfEShda', + 'as' => 'generated::nhkspirB08wPcEqX', ), 'fallback' => false, 'defaults' => @@ -2845,7 +2696,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::iRuBL8OD6LJIP3HX' => + 'generated::0ZTEqfES7Kdi161v' => array ( 'methods' => array ( @@ -2857,7 +2708,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', - 'as' => 'generated::iRuBL8OD6LJIP3HX', + 'as' => 'generated::0ZTEqfES7Kdi161v', ), 'fallback' => false, 'defaults' => @@ -2959,7 +2810,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::YjuqBvLenMm2yolY' => + 'generated::uvB5MUuG5RfsaOV2' => array ( 'methods' => array ( @@ -2969,7 +2820,7 @@ app('router')->setCompiledRoutes( 'uri' => 'up', 'action' => array ( - 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:826:"function () { + 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:834:"function () { $exception = null; try { @@ -2984,11 +2835,11 @@ app('router')->setCompiledRoutes( $exception = $e->getMessage(); } - return response(\\Illuminate\\Support\\Facades\\View::file(\'/Users/salam/Sites/nutzwerte_fi4/vendor/laravel/framework/src/Illuminate/Foundation/Configuration\'.\'/../resources/health-up.blade.php\', [ + return response(\\Illuminate\\Support\\Facades\\View::file(\'/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/laravel/framework/src/Illuminate/Foundation/Configuration\'.\'/../resources/health-up.blade.php\', [ \'exception\' => $exception, ]), status: $exception ? 500 : 200); - }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000f360000000000000000";}}', - 'as' => 'generated::YjuqBvLenMm2yolY', + }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000f300000000000000000";}}', + 'as' => 'generated::uvB5MUuG5RfsaOV2', ), 'fallback' => false, 'defaults' => @@ -3004,7 +2855,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::dUyL0yaZh39GvuXU' => + 'generated::AVv0QYbNzkUoiFdJ' => array ( 'methods' => array ( @@ -3020,13 +2871,13 @@ app('router')->setCompiledRoutes( ), 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:50:"function () { return \\view(\'pages.welcome\'); -}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f3d0000000000000000";}}', +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f370000000000000000";}}', 'namespace' => NULL, 'prefix' => '', 'where' => array ( ), - 'as' => 'generated::dUyL0yaZh39GvuXU', + 'as' => 'generated::AVv0QYbNzkUoiFdJ', ), 'fallback' => false, 'defaults' => @@ -3042,7 +2893,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::EImZQvugnpLvkIo8' => + 'generated::AuyL1OA8uHrzBpon' => array ( 'methods' => array ( @@ -3058,13 +2909,13 @@ app('router')->setCompiledRoutes( ), 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:52:"function () { return \\view(\'pages.nutzwerte\'); -}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f3f0000000000000000";}}', +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f390000000000000000";}}', 'namespace' => NULL, 'prefix' => '', 'where' => array ( ), - 'as' => 'generated::EImZQvugnpLvkIo8', + 'as' => 'generated::AuyL1OA8uHrzBpon', ), 'fallback' => false, 'defaults' => @@ -3080,7 +2931,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::nn1khffeyT9weHtd' => + 'generated::l6oTxL1NqW6yBegd' => array ( 'methods' => array ( @@ -3096,13 +2947,13 @@ app('router')->setCompiledRoutes( ), 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:51:"function () { return \\view(\'pages.programm\'); -}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f410000000000000000";}}', +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f3b0000000000000000";}}', 'namespace' => NULL, 'prefix' => '', 'where' => array ( ), - 'as' => 'generated::nn1khffeyT9weHtd', + 'as' => 'generated::l6oTxL1NqW6yBegd', ), 'fallback' => false, 'defaults' => @@ -3118,7 +2969,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::S8cpPyu4We6KkbAI' => + 'generated::q9BkNRCuUHnyFeYH' => array ( 'methods' => array ( @@ -3134,13 +2985,13 @@ app('router')->setCompiledRoutes( ), 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:52:"function () { return \\view(\'pages.impressum\'); -}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f430000000000000000";}}', +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f3d0000000000000000";}}', 'namespace' => NULL, 'prefix' => '', 'where' => array ( ), - 'as' => 'generated::S8cpPyu4We6KkbAI', + 'as' => 'generated::q9BkNRCuUHnyFeYH', ), 'fallback' => false, 'defaults' => @@ -3166,13 +3017,13 @@ app('router')->setCompiledRoutes( 'uri' => 'storage/{path}', 'action' => array ( - 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:3:{s:4:"disk";s:5:"local";s:6:"config";a:5:{s:6:"driver";s:5:"local";s:4:"root";s:52:"/Users/salam/Sites/nutzwerte_fi4/storage/app/private";s:5:"serve";b:1;s:5:"throw";b:0;s:6:"report";b:0;}s:12:"isProduction";b:0;}s:8:"function";s:323:"function (\\Illuminate\\Http\\Request $request, string $path) use ($disk, $config, $isProduction) { + 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:3:{s:4:"disk";s:5:"local";s:6:"config";a:5:{s:6:"driver";s:5:"local";s:4:"root";s:60:"/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/private";s:5:"serve";b:1;s:5:"throw";b:0;s:6:"report";b:0;}s:12:"isProduction";b:0;}s:8:"function";s:323:"function (\\Illuminate\\Http\\Request $request, string $path) use ($disk, $config, $isProduction) { return (new \\Illuminate\\Filesystem\\ServeFile( $disk, $config, $isProduction ))($request, $path); - }";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000f460000000000000000";}}', + }";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000f400000000000000000";}}', 'as' => 'storage.local', ), 'fallback' => false, diff --git a/resources/views/livewire/konto-switch.blade.php b/resources/views/livewire/konto-switch.blade.php index 301f958..a1ef363 100644 --- a/resources/views/livewire/konto-switch.blade.php +++ b/resources/views/livewire/konto-switch.blade.php @@ -1,6 +1,6 @@ - + Kontos diff --git a/routes/web.php b/routes/web.php index dc4422a..7ecf932 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,8 @@ name('nutzwerte.download'); +Route::get('/admin/standard/{record}/{mode}/download', [DownloadStandardTexte::class, 'download'])->name('standard.download'); +Route::get('/admin/excel/{record}/{mode}/download', [DownloadExcel::class, 'download'])->name('excel.download');