From cb471509ba3cd5e2a3a10776d7ff1a9995cd47f9 Mon Sep 17 00:00:00 2001 From: salam Date: Tue, 17 Mar 2026 19:27:29 +0100 Subject: [PATCH] eingabe nummer bei ProjektObjekteRelationManager mit strich oder punkt --- .../ProjektObjekteRelationManager.php | 50 ++++++++++++++----- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php index 8ea23b6..a97fe96 100644 --- a/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php +++ b/app/Filament/Resources/Projektes/RelationManagers/ProjektObjekteRelationManager.php @@ -16,7 +16,6 @@ use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Resources\RelationManagers\RelationManager; use Filament\Schemas\Schema; -use Filament\Support\Enums\Width; use Filament\Tables\Columns\CheckboxColumn; use Filament\Tables\Columns\SelectColumn; use Filament\Tables\Columns\Summarizers\Sum; @@ -103,8 +102,10 @@ class ProjektObjekteRelationManager extends RelationManager ->extraInputAttributes(['onClick' => 'this.select()']) ->hidden(isset($spalten['a']) ? false : true) ->toggleable() - ->rules(['numeric']) ->alignCenter() + ->updateStateUsing(function ($record, $state) { + return $record->update(['a' => str_replace(',', '.', $state)]); + }) ->beforeStateUpdated(function ($record, $state) { $record['nutzwert'] = $this->sum_nutzwerte('a', $state, $record); }) @@ -115,8 +116,10 @@ class ProjektObjekteRelationManager extends RelationManager ->extraInputAttributes(['onClick' => 'this.select()']) ->hidden(isset($spalten['b']) ? false : true) ->toggleable() - ->rules(['numeric']) ->alignCenter() + ->updateStateUsing(function ($record, $state) { + return $record->update(['b' => str_replace(',', '.', $state)]); + }) ->beforeStateUpdated(function ($record, $state) { $record['nutzwert'] = $this->sum_nutzwerte('b', $state, $record); })->afterStateUpdated(function (Component $livewire) { @@ -126,8 +129,10 @@ class ProjektObjekteRelationManager extends RelationManager ->extraInputAttributes(['onClick' => 'this.select()']) ->hidden(isset($spalten['c']) ? false : true) ->toggleable() - ->rules(['numeric']) ->alignCenter() + ->updateStateUsing(function ($record, $state) { + return $record->update(['c' => str_replace(',', '.', $state)]); + }) ->beforeStateUpdated(function ($record, $state) { $record['nutzwert'] = $this->sum_nutzwerte('c', $state, $record); }) @@ -138,8 +143,10 @@ class ProjektObjekteRelationManager extends RelationManager ->extraInputAttributes(['onClick' => 'this.select()']) ->hidden(isset($spalten['d']) ? false : true) ->toggleable() - ->rules(['numeric']) ->alignCenter() + ->updateStateUsing(function ($record, $state) { + return $record->update(['d' => str_replace(',', '.', $state)]); + }) ->beforeStateUpdated(function ($record, $state) { $record['nutzwert'] = $this->sum_nutzwerte('d', $state, $record); }) @@ -150,8 +157,10 @@ class ProjektObjekteRelationManager extends RelationManager ->extraInputAttributes(['onClick' => 'this.select()']) ->hidden(isset($spalten['e']) ? false : true) ->toggleable() - ->rules(['numeric']) ->alignCenter() + ->updateStateUsing(function ($record, $state) { + return $record->update(['e' => str_replace(',', '.', $state)]); + }) ->beforeStateUpdated(function ($record, $state) { $record['nutzwert'] = $this->sum_nutzwerte('e', $state, $record); }) @@ -162,8 +171,10 @@ class ProjektObjekteRelationManager extends RelationManager ->extraInputAttributes(['onClick' => 'this.select()']) ->hidden(isset($spalten['f']) ? false : true) ->toggleable() - ->rules(['numeric']) ->alignCenter() + ->updateStateUsing(function ($record, $state) { + return $record->update(['f' => str_replace(',', '.', $state)]); + }) ->beforeStateUpdated(function ($record, $state) { $record['nutzwert'] = $this->sum_nutzwerte('f', $state, $record); }) @@ -174,8 +185,10 @@ class ProjektObjekteRelationManager extends RelationManager ->extraInputAttributes(['onClick' => 'this.select()']) ->hidden(isset($spalten['g']) ? false : true) ->toggleable() - ->rules(['numeric']) ->alignCenter() + ->updateStateUsing(function ($record, $state) { + return $record->update(['g' => str_replace(',', '.', $state)]); + }) ->beforeStateUpdated(function ($record, $state) { $record['nutzwert'] = $this->sum_nutzwerte('g', $state, $record); }) @@ -185,8 +198,11 @@ class ProjektObjekteRelationManager extends RelationManager TextInputColumn::make('h')->label($spalten['h'] ?? '') ->extraInputAttributes(['onClick' => 'this.select()']) ->hidden(isset($spalten['h']) ? false : true) - ->toggleable()->rules(['numeric']) + ->toggleable() ->alignCenter() + ->updateStateUsing(function ($record, $state) { + return $record->update(['h' => str_replace(',', '.', $state)]); + }) ->beforeStateUpdated(function ($record, $state) { $record['nutzwert'] = $this->sum_nutzwerte('h', $state, $record); }) @@ -196,8 +212,11 @@ class ProjektObjekteRelationManager extends RelationManager TextInputColumn::make('i')->label($spalten['i'] ?? '') ->extraInputAttributes(['onClick' => 'this.select()']) ->hidden(isset($spalten['i']) ? false : true) - ->toggleable()->rules(['numeric']) + ->toggleable() ->alignCenter() + ->updateStateUsing(function ($record, $state) { + return $record->update(['i' => str_replace(',', '.', $state)]); + }) ->beforeStateUpdated(function ($record, $state) { $record['nutzwert'] = $this->sum_nutzwerte('i', $state, $record); }) @@ -207,8 +226,11 @@ class ProjektObjekteRelationManager extends RelationManager TextInputColumn::make('j')->label($spalten['j'] ?? '') ->extraInputAttributes(['onClick' => 'this.select()']) ->hidden(isset($spalten['j']) ? false : true) - ->toggleable()->rules(['numeric']) + ->toggleable() ->alignCenter() + ->updateStateUsing(function ($record, $state) { + return $record->update(['j' => str_replace(',', '.', $state)]); + }) ->beforeStateUpdated(function ($record, $state) { $record['nutzwert'] = $this->sum_nutzwerte('j', $state, $record); }) @@ -216,7 +238,6 @@ class ProjektObjekteRelationManager extends RelationManager $livewire->dispatch('refreshOrientierung'); }), TextColumn::make('nutzwert') - ->numeric(2, ',', '.') ->extraHeaderAttributes([ 'style' => 'position: sticky; right: 0; z-index: 1;', 'class' => 'bg-gray-50 dark:bg-gray-900 border-x border-gray-200 dark:border-gray-800', @@ -225,7 +246,9 @@ class ProjektObjekteRelationManager extends RelationManager 'style' => 'position: sticky; right: 0; z-index: 1;', 'class' => 'bg-gray-50 dark:bg-gray-900 border-x border-gray-200 dark:border-gray-800', ]) - ->summarize(Sum::make()->label('Gesammt')) + ->summarize(Sum::make()->label('Gesammt')->numeric( + locale: 'en', + )) ->alignCenter(), ]) ->filters([ @@ -588,6 +611,7 @@ class ProjektObjekteRelationManager extends RelationManager $sum = 0; foreach ($range as $val) { if ($val == $char) { + $state = (float) str_replace(',', '.', $state); $sum += $state; } else { $sum += $record[$val];