eingabe nummer bei ProjektObjekteRelationManager mit strich oder punkt

This commit is contained in:
salam committed 2026-03-17 19:27:29 +01:00
1 parent abba76e56d
commit cb471509ba
1 file changed
+37 -13
@@ -16,7 +16,6 @@ use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput; use Filament\Forms\Components\TextInput;
use Filament\Resources\RelationManagers\RelationManager; use Filament\Resources\RelationManagers\RelationManager;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
use Filament\Support\Enums\Width;
use Filament\Tables\Columns\CheckboxColumn; use Filament\Tables\Columns\CheckboxColumn;
use Filament\Tables\Columns\SelectColumn; use Filament\Tables\Columns\SelectColumn;
use Filament\Tables\Columns\Summarizers\Sum; use Filament\Tables\Columns\Summarizers\Sum;
@@ -103,8 +102,10 @@ class ProjektObjekteRelationManager extends RelationManager
->extraInputAttributes(['onClick' => 'this.select()']) ->extraInputAttributes(['onClick' => 'this.select()'])
->hidden(isset($spalten['a']) ? false : true) ->hidden(isset($spalten['a']) ? false : true)
->toggleable() ->toggleable()
->rules(['numeric'])
->alignCenter() ->alignCenter()
->updateStateUsing(function ($record, $state) {
return $record->update(['a' => str_replace(',', '.', $state)]);
})
->beforeStateUpdated(function ($record, $state) { ->beforeStateUpdated(function ($record, $state) {
$record['nutzwert'] = $this->sum_nutzwerte('a', $state, $record); $record['nutzwert'] = $this->sum_nutzwerte('a', $state, $record);
}) })
@@ -115,8 +116,10 @@ class ProjektObjekteRelationManager extends RelationManager
->extraInputAttributes(['onClick' => 'this.select()']) ->extraInputAttributes(['onClick' => 'this.select()'])
->hidden(isset($spalten['b']) ? false : true) ->hidden(isset($spalten['b']) ? false : true)
->toggleable() ->toggleable()
->rules(['numeric'])
->alignCenter() ->alignCenter()
->updateStateUsing(function ($record, $state) {
return $record->update(['b' => str_replace(',', '.', $state)]);
})
->beforeStateUpdated(function ($record, $state) { ->beforeStateUpdated(function ($record, $state) {
$record['nutzwert'] = $this->sum_nutzwerte('b', $state, $record); $record['nutzwert'] = $this->sum_nutzwerte('b', $state, $record);
})->afterStateUpdated(function (Component $livewire) { })->afterStateUpdated(function (Component $livewire) {
@@ -126,8 +129,10 @@ class ProjektObjekteRelationManager extends RelationManager
->extraInputAttributes(['onClick' => 'this.select()']) ->extraInputAttributes(['onClick' => 'this.select()'])
->hidden(isset($spalten['c']) ? false : true) ->hidden(isset($spalten['c']) ? false : true)
->toggleable() ->toggleable()
->rules(['numeric'])
->alignCenter() ->alignCenter()
->updateStateUsing(function ($record, $state) {
return $record->update(['c' => str_replace(',', '.', $state)]);
})
->beforeStateUpdated(function ($record, $state) { ->beforeStateUpdated(function ($record, $state) {
$record['nutzwert'] = $this->sum_nutzwerte('c', $state, $record); $record['nutzwert'] = $this->sum_nutzwerte('c', $state, $record);
}) })
@@ -138,8 +143,10 @@ class ProjektObjekteRelationManager extends RelationManager
->extraInputAttributes(['onClick' => 'this.select()']) ->extraInputAttributes(['onClick' => 'this.select()'])
->hidden(isset($spalten['d']) ? false : true) ->hidden(isset($spalten['d']) ? false : true)
->toggleable() ->toggleable()
->rules(['numeric'])
->alignCenter() ->alignCenter()
->updateStateUsing(function ($record, $state) {
return $record->update(['d' => str_replace(',', '.', $state)]);
})
->beforeStateUpdated(function ($record, $state) { ->beforeStateUpdated(function ($record, $state) {
$record['nutzwert'] = $this->sum_nutzwerte('d', $state, $record); $record['nutzwert'] = $this->sum_nutzwerte('d', $state, $record);
}) })
@@ -150,8 +157,10 @@ class ProjektObjekteRelationManager extends RelationManager
->extraInputAttributes(['onClick' => 'this.select()']) ->extraInputAttributes(['onClick' => 'this.select()'])
->hidden(isset($spalten['e']) ? false : true) ->hidden(isset($spalten['e']) ? false : true)
->toggleable() ->toggleable()
->rules(['numeric'])
->alignCenter() ->alignCenter()
->updateStateUsing(function ($record, $state) {
return $record->update(['e' => str_replace(',', '.', $state)]);
})
->beforeStateUpdated(function ($record, $state) { ->beforeStateUpdated(function ($record, $state) {
$record['nutzwert'] = $this->sum_nutzwerte('e', $state, $record); $record['nutzwert'] = $this->sum_nutzwerte('e', $state, $record);
}) })
@@ -162,8 +171,10 @@ class ProjektObjekteRelationManager extends RelationManager
->extraInputAttributes(['onClick' => 'this.select()']) ->extraInputAttributes(['onClick' => 'this.select()'])
->hidden(isset($spalten['f']) ? false : true) ->hidden(isset($spalten['f']) ? false : true)
->toggleable() ->toggleable()
->rules(['numeric'])
->alignCenter() ->alignCenter()
->updateStateUsing(function ($record, $state) {
return $record->update(['f' => str_replace(',', '.', $state)]);
})
->beforeStateUpdated(function ($record, $state) { ->beforeStateUpdated(function ($record, $state) {
$record['nutzwert'] = $this->sum_nutzwerte('f', $state, $record); $record['nutzwert'] = $this->sum_nutzwerte('f', $state, $record);
}) })
@@ -174,8 +185,10 @@ class ProjektObjekteRelationManager extends RelationManager
->extraInputAttributes(['onClick' => 'this.select()']) ->extraInputAttributes(['onClick' => 'this.select()'])
->hidden(isset($spalten['g']) ? false : true) ->hidden(isset($spalten['g']) ? false : true)
->toggleable() ->toggleable()
->rules(['numeric'])
->alignCenter() ->alignCenter()
->updateStateUsing(function ($record, $state) {
return $record->update(['g' => str_replace(',', '.', $state)]);
})
->beforeStateUpdated(function ($record, $state) { ->beforeStateUpdated(function ($record, $state) {
$record['nutzwert'] = $this->sum_nutzwerte('g', $state, $record); $record['nutzwert'] = $this->sum_nutzwerte('g', $state, $record);
}) })
@@ -185,8 +198,11 @@ class ProjektObjekteRelationManager extends RelationManager
TextInputColumn::make('h')->label($spalten['h'] ?? '') TextInputColumn::make('h')->label($spalten['h'] ?? '')
->extraInputAttributes(['onClick' => 'this.select()']) ->extraInputAttributes(['onClick' => 'this.select()'])
->hidden(isset($spalten['h']) ? false : true) ->hidden(isset($spalten['h']) ? false : true)
->toggleable()->rules(['numeric']) ->toggleable()
->alignCenter() ->alignCenter()
->updateStateUsing(function ($record, $state) {
return $record->update(['h' => str_replace(',', '.', $state)]);
})
->beforeStateUpdated(function ($record, $state) { ->beforeStateUpdated(function ($record, $state) {
$record['nutzwert'] = $this->sum_nutzwerte('h', $state, $record); $record['nutzwert'] = $this->sum_nutzwerte('h', $state, $record);
}) })
@@ -196,8 +212,11 @@ class ProjektObjekteRelationManager extends RelationManager
TextInputColumn::make('i')->label($spalten['i'] ?? '') TextInputColumn::make('i')->label($spalten['i'] ?? '')
->extraInputAttributes(['onClick' => 'this.select()']) ->extraInputAttributes(['onClick' => 'this.select()'])
->hidden(isset($spalten['i']) ? false : true) ->hidden(isset($spalten['i']) ? false : true)
->toggleable()->rules(['numeric']) ->toggleable()
->alignCenter() ->alignCenter()
->updateStateUsing(function ($record, $state) {
return $record->update(['i' => str_replace(',', '.', $state)]);
})
->beforeStateUpdated(function ($record, $state) { ->beforeStateUpdated(function ($record, $state) {
$record['nutzwert'] = $this->sum_nutzwerte('i', $state, $record); $record['nutzwert'] = $this->sum_nutzwerte('i', $state, $record);
}) })
@@ -207,8 +226,11 @@ class ProjektObjekteRelationManager extends RelationManager
TextInputColumn::make('j')->label($spalten['j'] ?? '') TextInputColumn::make('j')->label($spalten['j'] ?? '')
->extraInputAttributes(['onClick' => 'this.select()']) ->extraInputAttributes(['onClick' => 'this.select()'])
->hidden(isset($spalten['j']) ? false : true) ->hidden(isset($spalten['j']) ? false : true)
->toggleable()->rules(['numeric']) ->toggleable()
->alignCenter() ->alignCenter()
->updateStateUsing(function ($record, $state) {
return $record->update(['j' => str_replace(',', '.', $state)]);
})
->beforeStateUpdated(function ($record, $state) { ->beforeStateUpdated(function ($record, $state) {
$record['nutzwert'] = $this->sum_nutzwerte('j', $state, $record); $record['nutzwert'] = $this->sum_nutzwerte('j', $state, $record);
}) })
@@ -216,7 +238,6 @@ class ProjektObjekteRelationManager extends RelationManager
$livewire->dispatch('refreshOrientierung'); $livewire->dispatch('refreshOrientierung');
}), }),
TextColumn::make('nutzwert') TextColumn::make('nutzwert')
->numeric(2, ',', '.')
->extraHeaderAttributes([ ->extraHeaderAttributes([
'style' => 'position: sticky; right: 0; z-index: 1;', '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', '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;', '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', '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(), ->alignCenter(),
]) ])
->filters([ ->filters([
@@ -588,6 +611,7 @@ class ProjektObjekteRelationManager extends RelationManager
$sum = 0; $sum = 0;
foreach ($range as $val) { foreach ($range as $val) {
if ($val == $char) { if ($val == $char) {
$state = (float) str_replace(',', '.', $state);
$sum += $state; $sum += $state;
} else { } else {
$sum += $record[$val]; $sum += $record[$val];