diff --git a/app/Actions/Generate/Tabellen/Nutzwertberechnung.php b/app/Actions/Generate/Tabellen/Nutzwertberechnung.php index 9e2e5aa..e208ea9 100644 --- a/app/Actions/Generate/Tabellen/Nutzwertberechnung.php +++ b/app/Actions/Generate/Tabellen/Nutzwertberechnung.php @@ -15,12 +15,14 @@ class Nutzwertberechnung $objekte = LadeProjekt::project($projekte_id, false); - // dd($objekte); - $html = ''; foreach ($objekte as $topnr => $methoden) { - $html .= '
| Top Nr. | '; $html .= 'Geschoß | '; diff --git a/app/Filament/Imports/ImportObjekteDirect.php b/app/Filament/Imports/ImportObjekteDirect.php index 53d0dc2..465dc25 100644 --- a/app/Filament/Imports/ImportObjekteDirect.php +++ b/app/Filament/Imports/ImportObjekteDirect.php @@ -2,6 +2,7 @@ namespace App\Filament\Imports; +use App\Models\ProjektMethode; use App\Models\ProjektObjekte; use App\Models\ProjektObjekteImDetail; use App\Models\User; @@ -29,9 +30,15 @@ class ImportObjekteDirect $top_nummer = trim($cells[0]); $geschoss = trim($cells[1]); $raumart = trim($cells[2]); + + $projekt_methode = ProjektMethode::firstOrNew([ + 'projekte_id' => $projekte_id, + 'raumart' => $raumart, + ]); + $flaeche = (float) str_replace(',', '.', trim($cells[3])); - if (is_numeric($flaeche) && $flaeche > 0) { + if (is_numeric($flaeche) && $flaeche > 0 && $projekt_methode->id) { $objekt = ProjektObjekte::where('projekte_id', $projekte_id) ->where('top_nummer', $top_nummer) @@ -46,8 +53,8 @@ class ImportObjekteDirect $objektImDetail = ProjektObjekteImDetail::where('projekte_id', $projekte_id) ->where('projekt_objekte_id', $objekt->id) + ->where('projekt_methode_id', $projekt_methode->id) ->where('geschoss', $geschoss) - ->where('raumart', $raumart) ->first(); if ($objektImDetail === null) { @@ -56,6 +63,7 @@ class ImportObjekteDirect $objektImDetail = new ProjektObjekteImDetail([ 'projekte_id' => $projekte_id, 'projekt_objekte_id' => $objekt->id, + 'projekt_methode_id' => $projekt_methode->id, 'geschoss' => $geschoss, 'raumart' => $raumart, ]); diff --git a/app/Filament/Imports/ProjektObjekteImDetailImporter.php b/app/Filament/Imports/ProjektObjekteImDetailImporter.php index dfe2f75..157f44c 100644 --- a/app/Filament/Imports/ProjektObjekteImDetailImporter.php +++ b/app/Filament/Imports/ProjektObjekteImDetailImporter.php @@ -106,15 +106,15 @@ class ProjektObjekteImDetailImporter extends Importer return iconv(mb_detect_encoding($state, mb_detect_order(), true), 'UTF-8', $state); }), - ImportColumn::make('raumart') - ->validationAttribute('Raumart') - ->example('Stiegenhaus') - ->rules(['required', 'max:32']) - ->castStateUsing(function (string $state) { - $state = trim($state); + // ImportColumn::make('raumart') + // ->validationAttribute('Raumart') + // ->example('Stiegenhaus') + // ->rules(['required', 'max:32']) + // ->castStateUsing(function (string $state) { + // $state = trim($state); - return iconv(mb_detect_encoding($state, mb_detect_order(), true), 'UTF-8', $state); - }), + // return iconv(mb_detect_encoding($state, mb_detect_order(), true), 'UTF-8', $state); + // }), ImportColumn::make('flaeche') ->label('Fläche') ->validationAttribute('Fläche') @@ -137,7 +137,7 @@ class ProjektObjekteImDetailImporter extends Importer public static function getCompletedNotificationBody(Import $import): string { - $projektObjekteImDetailDeleted = ProjektObjekteImDetail::where('projekte_id', self::$projekte_id) + $projektMethodenDeleted = ProjektMethode::where('projekte_id', self::$projekte_id) ->whereNotIn('raumart', self::$raumarts) ->delete(); @@ -146,6 +146,9 @@ class ProjektObjekteImDetailImporter extends Importer ->whereNotIn('top_nummer', self::$top_nummers) ->delete(); + $methodenIds = ProjektMethode::where('projekte_id', self::$projekte_id)->pluck('id')->toArray(); + $projektObjekteImDetailDeleted = ProjektObjekteImDetail::where('projekte_id', self::$projekte_id)->whereNotIn('projekt_methode_id', $methodenIds)->delete(); + $body = ' Der Import der Objekte ist abgeschlossen. Es wurden '.Number::format($import->successful_rows).' Zeile(n) importiert.'; if ($failedRowsCount = $import->getFailedRowsCount()) { @@ -155,8 +158,9 @@ class ProjektObjekteImDetailImporter extends Importer $body .= '
|---|