This commit is contained in:
salam committed 2026-02-26 17:23:51 +01:00
1 parent 2c5352882b
commit 79a235534e
8 files changed
+46 -31

No files matched your search

@@ -25,6 +25,17 @@ class ProjektObjekteImDetailImporter extends Importer
return $res; return $res;
} }
public function getCsvSettings(): array
{
return [
// Setzt das Anführungszeichen auf leer,
// um "text" als text zu lesen
'enclosure' => '',
'escape_character' => '\\',
'use_bom' => true,
];
}
public static function getColumns(): array public static function getColumns(): array
{ {
return [ return [
@@ -10,7 +10,6 @@ use App\Models\Konto;
use App\Models\ProjektAllgemeinflaechen; use App\Models\ProjektAllgemeinflaechen;
use App\Models\Projekte; use App\Models\Projekte;
use App\Models\ProjektObjekte; use App\Models\ProjektObjekte;
use App\Models\ProjektObjekteImDetail;
use App\Traits\HasBackUrl; use App\Traits\HasBackUrl;
use Filament\Actions\Action; use Filament\Actions\Action;
use Filament\Actions\ActionGroup; use Filament\Actions\ActionGroup;
@@ -43,6 +42,7 @@ class EditProjekte extends EditRecord
->csvDelimiter('|') ->csvDelimiter('|')
->modalHeading('Allgemeinflächen Import') ->modalHeading('Allgemeinflächen Import')
->modalContent(view('filament.pages.actions.import-allgemeinflaechen')) ->modalContent(view('filament.pages.actions.import-allgemeinflaechen'))
->modalContentFooter(view('filament.pages.actions.footer-allgemeinflaechen'))
->label('Allgemeinflächen') ->label('Allgemeinflächen')
->icon('phosphor-upload') ->icon('phosphor-upload')
->extraModalFooterActions([ ->extraModalFooterActions([
@@ -86,6 +86,7 @@ class EditProjekte extends EditRecord
->csvDelimiter('|') ->csvDelimiter('|')
->modalHeading('Objekte im Detail Import') ->modalHeading('Objekte im Detail Import')
->modalContent(view('filament.pages.actions.import-objektemitraeumen')) ->modalContent(view('filament.pages.actions.import-objektemitraeumen'))
->modalContentFooter(view('filament.pages.actions.footer-objektemitraeumen'))
->label('Objekte') ->label('Objekte')
->icon('phosphor-upload') ->icon('phosphor-upload')
->extraModalFooterActions([ ->extraModalFooterActions([
@@ -107,7 +108,6 @@ class EditProjekte extends EditRecord
->color('danger') ->color('danger')
->requiresConfirmation() ->requiresConfirmation()
->action(function ($record) { ->action(function ($record) {
ProjektObjekteImDetail::where('projekte_id', $record->id)->delete();
ProjektObjekte::where('projekte_id', $record->id)->delete(); ProjektObjekte::where('projekte_id', $record->id)->delete();
$this->record->refresh(); $this->record->refresh();
+21 -21
View File
@@ -531,7 +531,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::NzY5sMjy09l0PpmQ', '_route' => 'generated::k7ez31ysAW0Y58FL',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -551,7 +551,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::CtkC04utPkigoHQc', '_route' => 'generated::QNkpSrWwzTyohqAh',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -609,7 +609,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::c3MJA33OP0f9nHYt', '_route' => 'generated::o3mCMIIwcuvYJ9lu',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -629,7 +629,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::InLNAuxan0Pe9PL8', '_route' => 'generated::mw9F9pUrztfOIUSK',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -649,7 +649,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::mGACL7esvxMYVaYW', '_route' => 'generated::WzjR3sKEIDCDZqgi',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -669,7 +669,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::vY9YKsHcxDlb83Wz', '_route' => 'generated::fIhqFwmPowvinThV',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -689,7 +689,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::WCKAFEcrjt18mBnQ', '_route' => 'generated::ywtvB1jLVBLyrZqA',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -2757,7 +2757,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::NzY5sMjy09l0PpmQ' => 'generated::k7ez31ysAW0Y58FL' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2769,7 +2769,7 @@ app('router')->setCompiledRoutes(
array ( array (
'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile',
'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile',
'as' => 'generated::NzY5sMjy09l0PpmQ', 'as' => 'generated::k7ez31ysAW0Y58FL',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2785,7 +2785,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::CtkC04utPkigoHQc' => 'generated::QNkpSrWwzTyohqAh' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2797,7 +2797,7 @@ app('router')->setCompiledRoutes(
array ( array (
'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps',
'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps',
'as' => 'generated::CtkC04utPkigoHQc', 'as' => 'generated::QNkpSrWwzTyohqAh',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2899,7 +2899,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::c3MJA33OP0f9nHYt' => 'generated::o3mCMIIwcuvYJ9lu' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2928,7 +2928,7 @@ app('router')->setCompiledRoutes(
\'exception\' => $exception, \'exception\' => $exception,
]), status: $exception ? 500 : 200); ]), status: $exception ? 500 : 200);
}";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"00000000000009bd0000000000000000";}}', }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"00000000000009bd0000000000000000";}}',
'as' => 'generated::c3MJA33OP0f9nHYt', 'as' => 'generated::o3mCMIIwcuvYJ9lu',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2944,7 +2944,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::InLNAuxan0Pe9PL8' => 'generated::mw9F9pUrztfOIUSK' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2966,7 +2966,7 @@ app('router')->setCompiledRoutes(
'where' => 'where' =>
array ( array (
), ),
'as' => 'generated::InLNAuxan0Pe9PL8', 'as' => 'generated::mw9F9pUrztfOIUSK',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2982,7 +2982,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::mGACL7esvxMYVaYW' => 'generated::WzjR3sKEIDCDZqgi' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -3004,7 +3004,7 @@ app('router')->setCompiledRoutes(
'where' => 'where' =>
array ( array (
), ),
'as' => 'generated::mGACL7esvxMYVaYW', 'as' => 'generated::WzjR3sKEIDCDZqgi',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -3020,7 +3020,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::vY9YKsHcxDlb83Wz' => 'generated::fIhqFwmPowvinThV' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -3042,7 +3042,7 @@ app('router')->setCompiledRoutes(
'where' => 'where' =>
array ( array (
), ),
'as' => 'generated::vY9YKsHcxDlb83Wz', 'as' => 'generated::fIhqFwmPowvinThV',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -3058,7 +3058,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::WCKAFEcrjt18mBnQ' => 'generated::ywtvB1jLVBLyrZqA' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -3080,7 +3080,7 @@ app('router')->setCompiledRoutes(
'where' => 'where' =>
array ( array (
), ),
'as' => 'generated::WCKAFEcrjt18mBnQ', 'as' => 'generated::ywtvB1jLVBLyrZqA',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -15,7 +15,7 @@ return new class extends Migration
$table->id(); $table->id();
$table->string('queue')->index(); $table->string('queue')->index();
$table->longText('payload'); $table->longText('payload');
$table->unsignedTinyInteger('attempts'); $table->integer('attempts');
$table->unsignedInteger('reserved_at')->nullable(); $table->unsignedInteger('reserved_at')->nullable();
$table->unsignedInteger('available_at'); $table->unsignedInteger('available_at');
$table->unsignedInteger('created_at'); $table->unsignedInteger('created_at');
@@ -1,5 +1,6 @@
<div class="text-sm text-gray-400"> <div class="text-sm text-gray-400">
Datei: .csv, .txt Filament (und die meisten modernen PHP-Parsing-Bibliotheken) erwarten in der Regel Standard-Unix-Zeilenenden (LF,
<br><b>3</b> Spalten: "Geschoss","Raumart","Fläche" \n) oder Windows-Zeilenenden (CRLF, \r\n). Zeilenenden im alten Macintosh-Stil (CR, \r) werden in der Regel nicht
<br>Separator: ; erkannt, was dazu führt, dass die gesamte CSV-Datei als eine einzige lange Zeile behandelt wird.
<br>Bitte beim Export berücksichtigen!
</div> </div>
@@ -1,5 +1,6 @@
<div class="text-sm text-gray-400"> <div class="text-sm text-gray-500">
Datei: .csv, .txt Filament (und die meisten modernen PHP-Parsing-Bibliotheken) erwarten in der Regel Standard-Unix-Zeilenenden (LF,
<br><b>4</b> Spalten: "Top Nummer";"Geschoss";"Raumart","Fläche" \n) oder Windows-Zeilenenden (CRLF, \r\n). Zeilenenden im alten Macintosh-Stil (CR, \r) werden in der Regel nicht
<br>Separator: ; erkannt, was dazu führt, dass die gesamte CSV-Datei als eine einzige lange Zeile behandelt wird.
<br>Bitte beim Export berücksichtigen!
</div> </div>
@@ -3,6 +3,7 @@
<li>Neue Daten werden den Bestehenden <b>angehängt</b>. Änderungen können in der Tabelle direkt vorgenommen <li>Neue Daten werden den Bestehenden <b>angehängt</b>. Änderungen können in der Tabelle direkt vorgenommen
werden.</li> werden.</li>
<li>Spalten <b>Separator</b> ist die Pfeife (|).</li> <li>Spalten <b>Separator</b> ist die Pfeife (|).</li>
<li>Spalten Elemente werden ohne Aphostropen dargestellt.</li>
<li>Die Liste besteht aus 4 Spalten. (Geschoss|Raumart|Fläche)</li> <li>Die Liste besteht aus 4 Spalten. (Geschoss|Raumart|Fläche)</li>
<li>Die <span class="text-green-600">Spaltennamen</span> in der ersten Zeile sind <b>erforderlich</b>, bitte mit <li>Die <span class="text-green-600">Spaltennamen</span> in der ersten Zeile sind <b>erforderlich</b>, bitte mit
dem grünen Button <span class="text-green-600">kopieren und</span> am Anfang der CSV Liste <span dem grünen Button <span class="text-green-600">kopieren und</span> am Anfang der CSV Liste <span
@@ -3,6 +3,7 @@
<li>Neue Daten werden den Bestehenden <b>angehängt</b>. Änderungen können in der Tabelle direkt vorgenommen <li>Neue Daten werden den Bestehenden <b>angehängt</b>. Änderungen können in der Tabelle direkt vorgenommen
werden.</li> werden.</li>
<li>Spalten <b>Separator</b> ist die Pfeife (|).</li> <li>Spalten <b>Separator</b> ist die Pfeife (|).</li>
<li>Spalten Elemente werden ohne Aphostropen dargestellt.</li>
<li>Die Liste besteht aus 4 Spalten. (Top Nummer|Geschoss|Raumart|Fläche)</li> <li>Die Liste besteht aus 4 Spalten. (Top Nummer|Geschoss|Raumart|Fläche)</li>
<li>Die <span class="text-green-600">Spaltennamen</span> in der ersten Zeile sind <b>erforderlich</b>, bitte mit <li>Die <span class="text-green-600">Spaltennamen</span> in der ersten Zeile sind <b>erforderlich</b>, bitte mit
dem grünen Button <span class="text-green-600">kopieren und</span> am Anfang der CSV Liste <span dem grünen Button <span class="text-green-600">kopieren und</span> am Anfang der CSV Liste <span