dowload wip
This commit is contained in:
1 parent
b004542988
commit
8971b8b948
41 files changed
+2103
-243
No files matched your search
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Download;
|
||||
|
||||
use App\Actions\Generate\GenerateExcel;
|
||||
use App\Models\Projekt;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class DownloadExcel
|
||||
{
|
||||
public function download($projekts_id, $mode)
|
||||
{
|
||||
if ($mode == 'new') {
|
||||
Projekt::where('id', $projekts_id)->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);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Download;
|
||||
|
||||
use App\Actions\Generate\GenerateNutzwerte;
|
||||
use App\Models\Projekt;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class DownloadNutzwerte
|
||||
{
|
||||
public function download($projekts_id, $mode)
|
||||
{
|
||||
|
||||
if ($mode == 'new') {
|
||||
Projekt::where('id', $projekts_id)->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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Download;
|
||||
|
||||
use App\Actions\Generate\GenerateStandardTexte;
|
||||
use App\Models\Projekt;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class DownloadStandardTexte
|
||||
{
|
||||
public function download($projekts_id, $mode)
|
||||
{
|
||||
|
||||
if ($mode == 'new') {
|
||||
Projekt::where('id', $projekts_id)->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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,369 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate;
|
||||
|
||||
use App\Models\Gutachter;
|
||||
use App\Models\Projekt;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use PhpOffice\PhpSpreadsheet\IOFactory;
|
||||
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||
use PhpOffice\PhpSpreadsheet\Style\Border;
|
||||
use PhpOffice\PhpSpreadsheet\Style\Fill;
|
||||
|
||||
class GenerateExcel
|
||||
{
|
||||
public static function generate($filepath, $projekts_id)
|
||||
{
|
||||
|
||||
$projekt = Projekt::where('id', $projekts_id)->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',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate;
|
||||
|
||||
use App\Actions\Generate\Nutzwerte\Allgemeinflaechens;
|
||||
use App\Actions\Generate\Nutzwerte\BerechnungM1M4;
|
||||
use App\Actions\Generate\Nutzwerte\BerechnungM5;
|
||||
use App\Actions\Generate\Nutzwerte\BerechnungNutzwerte;
|
||||
use App\Actions\Generate\Nutzwerte\Zusammenstellung;
|
||||
use App\Actions\Generate\Nutzwerte\ZuUndAbschlaege;
|
||||
use App\Actions\ProcessData\ProcessRaumorientierung;
|
||||
use App\Models\Auftraggeber;
|
||||
use App\Models\Gutachter;
|
||||
use App\Models\Inhaltsverzeichnis;
|
||||
use App\Models\Projekt;
|
||||
use Mpdf\HTMLParserMode;
|
||||
use Mpdf\Mpdf;
|
||||
|
||||
class GenerateNutzwerte
|
||||
{
|
||||
public static $projekt;
|
||||
|
||||
public static $gutachter;
|
||||
|
||||
public static $auftraggeber;
|
||||
|
||||
public static function generate($filepath, $projekts_id)
|
||||
{
|
||||
ProcessRaumorientierung::berechnen($projekts_id);
|
||||
BerechnungNutzwerte::berechnen($projekts_id);
|
||||
|
||||
// PDF START
|
||||
self::$projekt = Projekt::where('id', $projekts_id)->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('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= '<table class="table-striped text-75">';
|
||||
$html .= ZuUndAbschlaege::load($projekts_id);
|
||||
$html .= '</table>';
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'nutzwertberechnung':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$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('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= Zusammenstellung::load($projekts_id);
|
||||
$html .= '<br><br><br><br><br><br><br>';
|
||||
$html .= '<table class="inhalt"><tr>';
|
||||
$html .= '<td>'.self::$projekt->erstellung.'</td>';
|
||||
$html .= '<td class="right">'.self::$gutachter->kennung.'</td>';
|
||||
$html .= '</tr></table>';
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'allgemeinflaechen':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= Allgemeinflaechens::load($projekts_id);
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ob_clean();
|
||||
|
||||
$mpdf->Output($filepath, 'F');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,250 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate;
|
||||
|
||||
use App\Actions\Generate\StandardTexte\AllgemeinTabelle;
|
||||
use App\Actions\Generate\StandardTexte\Deckblatt;
|
||||
use App\Actions\Generate\StandardTexte\Inhalt;
|
||||
use App\Actions\Generate\StandardTexte\Paragraph6Tabelle;
|
||||
use App\Actions\Generate\StandardTexte\Standardtext;
|
||||
use App\Actions\Generate\StandardTexte\Tabelle;
|
||||
use App\Models\Auftraggeber;
|
||||
use App\Models\Gutachter;
|
||||
use App\Models\Inhaltsverzeichnis;
|
||||
use App\Models\Platzhalter;
|
||||
use App\Models\Projekt;
|
||||
use Mpdf\HTMLParserMode;
|
||||
use Mpdf\Mpdf;
|
||||
|
||||
class GenerateStandardTexte
|
||||
{
|
||||
public static $projekt;
|
||||
|
||||
public static $gutachter;
|
||||
|
||||
public static $auftraggeber;
|
||||
|
||||
public static $platzhalter = [];
|
||||
|
||||
public static function generate($filepath, $projekts_id)
|
||||
{
|
||||
self::$projekt = Projekt::where('id', $projekts_id)->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('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
break;
|
||||
|
||||
case 'allgemeineangaben':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'auftraggeber':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= trim(self::$auftraggeber->adressenblock);
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'zweck':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= $standardtext;
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'ortsbesichtigung':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= $standardtext;
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'unterlagen':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= $standardtext;
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'befund':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'grundbuchstand':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= Tabelle::load($standardtext);
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'beschreibung':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= $standardtext;
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'paragraph_6_teil_1':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= $standardtext;
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'paragraph_6_tabelle':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
}
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$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('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= $standardtext;
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'allgemeinflaechen_nach_p6':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">ALLGEMEINFLÄCHEN</div>';
|
||||
$html .= AllgemeinTabelle::load($projekts_id);
|
||||
$html .= '<br><br><br><br><br><br><br>';
|
||||
$html .= '<table class="inhalt"><tr>';
|
||||
$html .= '<td>'.self::$projekt->erstellung.'</td>';
|
||||
$html .= '<td class="right">'.self::$gutachter->kennung.'</td>';
|
||||
$html .= '</tr></table>';
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'gutachten':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
}
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'allgemeine-grundsaetze':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= $standardtext;
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'allgemeine-bewertungen':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['index'].' - '.$inhalt['titel'].'</div>';
|
||||
$html .= $standardtext;
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
|
||||
case 'zubehoer':
|
||||
if ($inhalt['neue_seite']) {
|
||||
$mpdf->AddPage();
|
||||
$mpdf->SetHTMLFooter('<div class="size09 center">Seite {PAGENO}<br><br></div>');
|
||||
}
|
||||
$html = '<div class="header">'.$inhalt['titel'].'</div>';
|
||||
$html .= $standardtext;
|
||||
$mpdf->WriteHTML($html, HTMLParserMode::HTML_BODY);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ob_clean();
|
||||
|
||||
$mpdf->Output($filepath, 'F');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\Nutzwerte;
|
||||
|
||||
use App\Models\Allgemeinflaechen;
|
||||
use App\Utilities\Format;
|
||||
use App\Utilities\Html;
|
||||
|
||||
class Allgemeinflaechens
|
||||
{
|
||||
public static function load(int $projekts_id)
|
||||
{
|
||||
|
||||
$html = '<table>';
|
||||
$html .= '<thead><tr class="head">';
|
||||
$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 .= '</tr></thead>';
|
||||
|
||||
$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 .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
}
|
||||
}
|
||||
|
||||
$html .= '</table>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,262 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\Nutzwerte;
|
||||
|
||||
use App\Models\Orientierung;
|
||||
use App\Models\Raumalles;
|
||||
use App\Models\Raumorientierung;
|
||||
use App\Utilities\Format;
|
||||
use App\Utilities\Html;
|
||||
|
||||
class BerechnungM1M4
|
||||
{
|
||||
public static function load(int $projekts_id)
|
||||
{
|
||||
|
||||
$orientierung = Orientierung::map();
|
||||
$orientierung[1] = '';
|
||||
|
||||
$html = '';
|
||||
|
||||
$res = Raumorientierung::where('projekts_id', $projekts_id)
|
||||
->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 .= '<table class="text-75">';
|
||||
} else {
|
||||
$html .= '<table class="text-75" style="page-break-inside:avoid;">';
|
||||
}
|
||||
$html .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
|
||||
/********************************************************
|
||||
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 .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
}
|
||||
|
||||
$nutzwert_summe = 0;
|
||||
|
||||
/********************************************************
|
||||
METHODE 2 + 2b
|
||||
********************************************************/
|
||||
if (\count($_raume_m2) > 0) {
|
||||
$html .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
|
||||
$factor_summe = 0;
|
||||
// $zunutzwert = 0;
|
||||
foreach ($_raume_m2 as $key => $_raum) {
|
||||
$html .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
}
|
||||
$ungerundet = $nutzwert + $factor_summe;
|
||||
|
||||
$nutzwert_summe = round($ungerundet);
|
||||
|
||||
// if ($zunutzwert) {
|
||||
// $zunutzwert = $zunutzwert + $_objekte->qm_m1;
|
||||
$html .= '<tr>';
|
||||
$html .= Html::td('', 'head bl br');
|
||||
$html .= Html::td('', 'br');
|
||||
$html .= Html::td('', 'br');
|
||||
$html .= Html::td('', 'br');
|
||||
// $html .= '<td>Gesamtnutzfläche</td>';
|
||||
// $html .= '<td class="right">'.Format::numeric($zunutzwert, 2).'</td>';
|
||||
$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 .= '</tr>';
|
||||
} else {
|
||||
|
||||
$ungerundet = $_objekte->qm_m1 * $_objekte->factor;
|
||||
$nutzwert_summe = round($ungerundet);
|
||||
|
||||
$html .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
}
|
||||
|
||||
/********************************************************
|
||||
METHODE 3 + 3b (3b wie Methode 3 aber ohne Wohnungsfactor)
|
||||
********************************************************/
|
||||
if (\count($_raume_m3) > 0) {
|
||||
foreach ($_raume_m3 as $key => $_raum) {
|
||||
$html .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
$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 .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
}
|
||||
}
|
||||
|
||||
// Fuß Zeile
|
||||
$html .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
|
||||
// dd($raumorientierung_id, $nutzwert_summe);
|
||||
Raumorientierung::where('id', $raumorientierung_id)->update(['nutzwert_summe' => $nutzwert_summe]);
|
||||
|
||||
$html .= '</table>';
|
||||
}
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\Nutzwerte;
|
||||
|
||||
use App\Models\Raumalles;
|
||||
use App\Models\Raumorientierung;
|
||||
use App\Utilities\Format;
|
||||
use App\Utilities\Html;
|
||||
|
||||
class BerechnungM5
|
||||
{
|
||||
public static function load(int $projekts_id)
|
||||
{
|
||||
|
||||
$html = '';
|
||||
|
||||
$result = Raumorientierung::where('projekts_id', $projekts_id)
|
||||
->where('nicht_in_orientierung', 1)
|
||||
->orderBy('top_nr')
|
||||
->get();
|
||||
|
||||
if ($result->isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($result as $key => $_objekte) {
|
||||
$raumorientierung_id = $_objekte->id;
|
||||
|
||||
$_raume_m5 = Raumalles::where('projekts_id', $projekts_id)->where('raumorientierung_id', $raumorientierung_id)->whereIn('methodes_id', [5, 6, 9])->get();
|
||||
|
||||
$summe_nutzwert = 0;
|
||||
|
||||
if (\count($_raume_m5) > 0) {
|
||||
$html .= '<table class="text-75" style="page-break-inside:avoid;">';
|
||||
$html .= '<tr>';
|
||||
$html .= Html::td('Top', 'head bl bt w10p');
|
||||
$html .= Html::td('Geschoß', 'head bt bb');
|
||||
$html .= Html::td('Type', 'head bt bb');
|
||||
$html .= Html::td('qm', 'head center bt bb');
|
||||
$html .= Html::td('', 'head bt bb');
|
||||
$html .= Html::td('Faktor', 'head center bt bb');
|
||||
$html .= Html::td('', 'head bt bb');
|
||||
$html .= Html::td('', 'head bt bb');
|
||||
$html .= Html::td('Nw', 'center head bt bb br');
|
||||
$html .= '</tr>';
|
||||
|
||||
// Methode 5
|
||||
foreach ($_raume_m5 as $key => $_raum) {
|
||||
|
||||
if ($key > 0) {
|
||||
$_objekte->top_nr = '';
|
||||
$_raum->geschoss = '';
|
||||
$_objekte->typ = '';
|
||||
}
|
||||
|
||||
$html .= '<tr>';
|
||||
$html .= Html::td($_objekte->top_nr, 'head center bl br');
|
||||
$html .= Html::td($_raum->geschoss, 'br');
|
||||
$html .= Html::td($_raum->raum, 'br');
|
||||
$html .= Html::td(Format::numeric($_raum->qm, 2), 'center br');
|
||||
$html .= Html::td('x', 'center br');
|
||||
$html .= Html::td(Format::numeric($_raum->factor, 3), 'center br');
|
||||
$html .= Html::td('=', 'center br');
|
||||
|
||||
$nutzwert = $_raum->qm * $_raum->factor;
|
||||
$html .= Html::td(Format::numeric($nutzwert, 3), 'center br');
|
||||
|
||||
if ($_raum->methodes_id != 9) {
|
||||
$html .= Html::td($nutzwert, 'center br');
|
||||
} else {
|
||||
$html .= Html::td('', 'br');
|
||||
}
|
||||
$html .= '</tr>';
|
||||
|
||||
$summe_nutzwert += $nutzwert;
|
||||
}
|
||||
|
||||
$summe_nutzwert = $summe_nutzwert < 1 ? 1 : round($summe_nutzwert);
|
||||
$html .= '<tr>';
|
||||
$html .= Html::td('', 'head bl bb');
|
||||
$html .= Html::td('Nutzwert gerundet', 'head right bt bb', 7);
|
||||
$html .= Html::td($summe_nutzwert, 'head right grau bt br bb');
|
||||
$html .= '</tr>';
|
||||
|
||||
$html .= '</table>';
|
||||
}
|
||||
}
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\Nutzwerte;
|
||||
|
||||
use App\Models\Raumalles;
|
||||
use App\Models\Raumorientierung;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class BerechnungNutzwerte
|
||||
{
|
||||
public static function berechnen($projekts_id)
|
||||
{
|
||||
// 5
|
||||
// Stellplätze berechnet nur mit Absolutem Faktor multipliziert,
|
||||
// wird aber nicht in Orientierung aufgeführt und im PDF als eigenes Objekt ausgegeben.
|
||||
|
||||
// 6
|
||||
// Zubehör zu Objekt der Methode 5
|
||||
// (z.b ein Kellerabteil, das zu einem Stellplatz gehört, aber räumlich getrennt ist)
|
||||
// Wird wie bei Methode 4 im PDF einzeln aufgelistet und
|
||||
// nur mit Absolutem Faktor multipliziert, dann gerundet und der Nutzwert als ganze Zahl angeführt.
|
||||
// Vor dem Objekt steht "Zubehör"
|
||||
|
||||
// 9
|
||||
// Zubehör zu Objekt der Methode 5
|
||||
// (ist direkt verbunden mit dem Objekt, zB. das Kellerabteil hinter dem Stellplatz,
|
||||
// oder eine eigene Zufahrt nur zu einem Stellplatz).
|
||||
// Wird mit Absolutem Faktor multipliziert und ungerundet zum Objekt der Methode 5 dazugezählt,
|
||||
// dann erst die Summe des NW gerundet
|
||||
|
||||
// METHODEN 5, 6 ,9
|
||||
// METHODEN 4
|
||||
// METHODE 3 & 3b
|
||||
|
||||
$_raumorientierung = Raumorientierung::where('projekts_id', $projekts_id)
|
||||
// ->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]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\Nutzwerte;
|
||||
|
||||
use App\Models\Merkmale;
|
||||
use App\Models\Raumalles;
|
||||
use App\Models\Raumorientierung;
|
||||
use App\Utilities\Format;
|
||||
use App\Utilities\Html;
|
||||
|
||||
class ZuUndAbschlaege
|
||||
{
|
||||
public static function load(int $projekts_id)
|
||||
{
|
||||
Raumorientierung::where('projekts_id', $projekts_id)->where('top_nr', '')->delete();
|
||||
Raumorientierung::where('projekts_id', $projekts_id)->where('top_nr', 'like', '%---%')->delete();
|
||||
|
||||
// 3.21 Zu und Abschläge
|
||||
$header_row = ['Top', 'Geschoß', 'Typ', 'Nutzfläche', 'Loggia / sonst. Zusatzflächen', 'Gesamtnutzfläche'];
|
||||
$merkmale = Merkmale::merkmale($projekts_id);
|
||||
$markmale_col = [];
|
||||
foreach ($merkmale as $value) {
|
||||
$markmale_col[] = $value['col'];
|
||||
$header_row[] = $value['name'];
|
||||
}
|
||||
$header_row[] = 'Summe Merkmale';
|
||||
$header_row[] = 'Wohnungsbewertung';
|
||||
$html = Html::table_header_90($header_row);
|
||||
|
||||
$res = Raumalles::select('raumorientierung_id', 'geschoss')->where('projekts_id', $projekts_id)->where('methodes_id', 1)->get();
|
||||
$geschoss = [];
|
||||
foreach ($res as $value) {
|
||||
$id = $value->raumorientierung_id;
|
||||
$geschoss[$id] = $value['geschoss'];
|
||||
}
|
||||
|
||||
$res = Raumorientierung::select()->where('projekts_id', $projekts_id)->where('nicht_in_orientierung', 0)->whereNotNull('top_nr')->orderBy('top_nr')->get();
|
||||
foreach ($res as $value) {
|
||||
$id = $value->id;
|
||||
$html .= '<tr>';
|
||||
$html .= Html::td($value->top_nr, 'left bl br bb');
|
||||
$html .= Html::td($geschoss[$value['id']], 'center br bb');
|
||||
$html .= Html::td($value->type, 'wp20 br bb');
|
||||
// Nutzfläache
|
||||
$html .= Html::td(Format::numeric($value->qm_m1, 2), 'right br bb');
|
||||
// Loggia
|
||||
$loggia = Raumalles::loggia($id);
|
||||
$gesnutzfl = $loggia + $value->qm_m1;
|
||||
$loggia = $loggia != 0 ? $loggia : '';
|
||||
$html .= Html::td($loggia, 'right br bb');
|
||||
// Gesammtnutzfläche = Nutzfläache + Loggia
|
||||
$html .= Html::td(Format::numeric($gesnutzfl, 2), 'right br bb');
|
||||
foreach ($markmale_col as $col) {
|
||||
$tmp = (float) $value[$col] != 0 ? $value[$col] : '';
|
||||
$html .= Html::td(Format::numeric($tmp, 2), 'right br bb');
|
||||
}
|
||||
$html .= Html::td(Format::numeric($value->summe_az, 2), 'right br bb');
|
||||
$html .= Html::td(Format::numeric($value->bewertung, 2), 'right br bb');
|
||||
$html .= '</tr>';
|
||||
}
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\Nutzwerte;
|
||||
|
||||
use App\Models\Raumorientierung;
|
||||
use App\Utilities\Format;
|
||||
use App\Utilities\Html;
|
||||
|
||||
class Zusammenstellung
|
||||
{
|
||||
public static function load(int $projekts_id)
|
||||
{
|
||||
|
||||
$html = '';
|
||||
|
||||
$res = Raumorientierung::select('nutzwert_summe')->where('projekts_id', $projekts_id);
|
||||
$nutzwert_summe = $res->sum('nutzwert_summe');
|
||||
|
||||
$summe_prozent = [];
|
||||
$summe_nutzwert = [];
|
||||
|
||||
$html .= '<table class="text-75 table-striped">';
|
||||
$html .= '<thead><tr>';
|
||||
$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 .= '</tr></thead>';
|
||||
|
||||
$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 .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
}
|
||||
|
||||
$_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 .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
}
|
||||
|
||||
$html .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
$html .= '</table>';
|
||||
$html .= '<p class="text-small">* Die Anteile wurden verdoppelt, sodaß die Mindestanteile jederzeit durch zwei geteilt werden können.';
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\Nutzwerte;
|
||||
|
||||
use App\Models\Orientierung;
|
||||
use App\Models\Raumalles;
|
||||
use App\Models\Raumorientierung;
|
||||
|
||||
class Zusammenstellung_Methode1
|
||||
{
|
||||
public static function load($projekts_id)
|
||||
{
|
||||
$res = Raumalles::select('raumorientierung_id', 'geschoss')->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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\Nutzwerte;
|
||||
|
||||
use App\Models\Raumalles;
|
||||
use App\Models\Raumorientierung;
|
||||
|
||||
class Zusammenstellung_Methode5
|
||||
{
|
||||
public static function load($projekts_id)
|
||||
{
|
||||
// 5
|
||||
// Stellplätze berechnet nur mit Absolutem Faktor multipliziert,
|
||||
// wird aber nicht in Orientierung aufgeführt und im PDF als eigenes Objekt ausgegeben.
|
||||
|
||||
// 6
|
||||
// Zubehör zu Objekt der Methode 5
|
||||
// (z.b ein Kellerabteil, das zu einem Stellplatz gehört, aber räumlich getrennt ist)
|
||||
// Wird wie bei Methode 4 im PDF einzeln aufgelistet und
|
||||
// nur mit Absolutem Faktor multipliziert, dann gerundet und der Nutzwert als ganze Zahl angeführt.
|
||||
// Vor dem Objekt steht "Zubehör"
|
||||
|
||||
// 9
|
||||
// Zubehör zu Objekt der Methode 5
|
||||
// (ist direkt verbunden mit dem Objekt, zB. das Kellerabteil hinter dem Stellplatz,
|
||||
// oder eine eigene Zufahrt nur zu einem Stellplatz).
|
||||
// Wird mit Absolutem Faktor multipliziert und ungerundet zum Objekt der Methode 5 dazugezählt,
|
||||
// dann erst die Summe des NW gerundet
|
||||
|
||||
$res = Raumalles::select('raumorientierung_id', 'geschoss')->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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\StandardTexte;
|
||||
|
||||
use App\Models\Allgemeinflaechen;
|
||||
use App\Utilities\Html;
|
||||
|
||||
class AllgemeinTabelle
|
||||
{
|
||||
public static function load($projekts_id)
|
||||
{
|
||||
$_allgemeine = Allgemeinflaechen::select('geschoss', 'raumart', 'qm')->where('projekts_id', $projekts_id)->get()->toArray();
|
||||
|
||||
$_data = array_chunk($_allgemeine, 2);
|
||||
|
||||
$html = '<table class="table-striped m10">';
|
||||
$html .= '<tr>';
|
||||
$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 .= '<td style="background:white"></td>';
|
||||
$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 .= '</tr>';
|
||||
|
||||
foreach ($_data as $value) { //
|
||||
$html .= '<tr>';
|
||||
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 .= '<td style="background:white"></td>';
|
||||
}
|
||||
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 .= '</tr>';
|
||||
}
|
||||
$html .= '</table>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\StandardTexte;
|
||||
|
||||
use App\Actions\Generate\GenerateStandardTexte;
|
||||
|
||||
class Deckblatt
|
||||
{
|
||||
public static function load($standardtext)
|
||||
{
|
||||
// GUTACHTER
|
||||
$html = '<div class="deckblatt">';
|
||||
if (GenerateStandardTexte::$gutachter->kopf == 'adressenblock') {
|
||||
$html .= '<div class="right">'.GenerateStandardTexte::$gutachter->adressenblock.'</div>';
|
||||
} elseif (GenerateStandardTexte::$gutachter->kopf == 'logo') {
|
||||
$html .= '<div class="right">';
|
||||
$html .= '<img src="'.public_path().'/storage/'.GenerateStandardTexte::$gutachter->clientlogo.'" style="width:'.GenerateStandardTexte::$gutachter->breite.'mm; height: auto;">';
|
||||
$html .= '</div>';
|
||||
}
|
||||
$html .= '</div>';
|
||||
|
||||
// TITEL
|
||||
$html .= '<div class="title">Gutachten';
|
||||
$html .= '<div class="basetext">'.trim(GenerateStandardTexte::$projekt->name).'</div>';
|
||||
$html .= '</div>';
|
||||
|
||||
// PROJEKT
|
||||
$html .= '<div class="festsetzung">Zur Festsetzung der Nutzwerte';
|
||||
$html .= '<div class="basetext">'.trim($standardtext).'</div>';
|
||||
$html .= '</div>';
|
||||
|
||||
// AUFTRAGGEBER
|
||||
$html .= '<div class="auftraggeber">';
|
||||
$html .= GenerateStandardTexte::$auftraggeber->adressenblock;
|
||||
$html .= '</div>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\StandardTexte;
|
||||
|
||||
use App\Utilities\Html;
|
||||
|
||||
class Inhalt
|
||||
{
|
||||
public static function load($standardtext)
|
||||
{
|
||||
$html = '<div class="header">INHALTSVERZEICHNIS</div>';
|
||||
|
||||
$standardtext = strip_tags($standardtext, '<br>');
|
||||
|
||||
$standardtext = str_replace('<br>', '§§', $standardtext);
|
||||
$standardtext = str_replace('<br/>', '§§', $standardtext);
|
||||
$standardtext = str_replace('<br />', '§§', $standardtext);
|
||||
|
||||
$arr = explode('§§', $standardtext);
|
||||
|
||||
$html .= '<table class="inhalt">';
|
||||
|
||||
foreach ($arr as $value) {
|
||||
|
||||
$tmp = explode('|', $value);
|
||||
|
||||
$tmp[0] = $tmp[0] ?? '';
|
||||
$tmp[1] = $tmp[1] ?? '';
|
||||
$tmp[2] = $tmp[2] ?? '';
|
||||
$tmp[3] = $tmp[3] ?? '';
|
||||
|
||||
$html .= '<tr>';
|
||||
$html .= Html::td($tmp[0]);
|
||||
$html .= Html::td($tmp[1]);
|
||||
$html .= Html::td($tmp[2]);
|
||||
$html .= Html::td($tmp[3]);
|
||||
$html .= '</tr>';
|
||||
|
||||
}
|
||||
|
||||
$html .= '</table>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\StandardTexte;
|
||||
|
||||
use App\Utilities\Html;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class Paragraph6Tabelle
|
||||
{
|
||||
public static function load($projekts_id)
|
||||
{
|
||||
$data = DB::table('raumorientierung')
|
||||
->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 = '<table class="table-striped bl bt m20">';
|
||||
|
||||
$html .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
foreach ($data as $value) {
|
||||
|
||||
$html .= '<tr>';
|
||||
$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 .= '</tr>';
|
||||
}
|
||||
$html .= '</table>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\StandardTexte;
|
||||
|
||||
use App\Actions\Generate\GenerateStandardTexte;
|
||||
|
||||
class Standardtext
|
||||
{
|
||||
public static function replace($standardtext)
|
||||
{
|
||||
return str_replace(array_keys(GenerateStandardTexte::$platzhalter), array_values(GenerateStandardTexte::$platzhalter), $standardtext);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\StandardTexte;
|
||||
|
||||
use App\Utilities\Html;
|
||||
|
||||
class Tabelle
|
||||
{
|
||||
public static function load($standardtext)
|
||||
{
|
||||
$standardtext = strip_tags($standardtext, '<br>');
|
||||
|
||||
$standardtext = str_replace('<br>', '§§', $standardtext);
|
||||
$standardtext = str_replace('<br/>', '§§', $standardtext);
|
||||
$standardtext = str_replace('<br />', '§§', $standardtext);
|
||||
|
||||
$arr = explode('§§', $standardtext);
|
||||
|
||||
$html = '<table class="table-striped bl bt m10">';
|
||||
|
||||
foreach ($arr as $value) {
|
||||
|
||||
$tmp = explode('|', $value);
|
||||
|
||||
$tmp[0] = $tmp[0] ?? '';
|
||||
$tmp[1] = $tmp[1] ?? '';
|
||||
|
||||
$html .= '<tr>';
|
||||
$html .= Html::td($tmp[0], 'br bb');
|
||||
$html .= Html::td($tmp[1], 'br bb');
|
||||
$html .= '</tr>';
|
||||
|
||||
}
|
||||
|
||||
$html .= '</table>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
@@ -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),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -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),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -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),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,9 @@ class ListKontoTextblocks extends ListRecords
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
CreateAction::make(),
|
||||
CreateAction::make()
|
||||
->icon('phosphor-file-plus')
|
||||
->createAnother(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,9 @@ class ListMethodes extends ListRecords
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
// CreateAction::make(),
|
||||
// CreateAction::make()
|
||||
// ->icon('phosphor-file-plus')
|
||||
// ->createAnother(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -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),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,9 @@ class ListPermissions extends ListRecords
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
// CreateAction::make(),
|
||||
// CreateAction::make()
|
||||
// ->icon('phosphor-file-plus')
|
||||
// ->createAnother(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,9 @@ class ListPlans extends ListRecords
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
// CreateAction::make(),
|
||||
// CreateAction::make()
|
||||
// ->icon('phosphor-file-plus')
|
||||
// ->createAnother(false),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -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 [
|
||||
|
||||
@@ -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;
|
||||
|
||||
+2
-1
@@ -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')
|
||||
|
||||
+3
-1
@@ -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'),
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in new issue
Block a user