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\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];