striped() ->query(fn (): Builder => ProjektMerkmale::where('projekte_id', $this->projekte_id)) ->defaultSort('code') ->columns([ TextColumn::make('name'), ]) ->paginated(false) ->recordActions([ EditAction::make() ->color('gray') ->iconButton() ->schema([ TextInput::make('name') ->required() ->maxLength(255), ]), DeleteAction::make() ->modalHeading('Merkmal löschen') ->color('gray') ->iconButton() ->after(function ($record) { ProjektObjekte::where('projekte_id', '=', $record->projekte_id) ->update( [$record->code => 0] ); $res = ProjektObjekte::where('projekte_id', '=', $record->projekte_id)->get(); foreach ($res as $value) { $nutzwert = round($value->a + $value->b + $value->c + $value->d + $value->e + $value->f + $value->g + $value->h + $value->i + $value->j); ProjektObjekte::where('id', '=', $value->id) ->update( ['nutzwert' => $nutzwert] ); } }), ]) ->headerActions([ Action::make('name') ->icon('phosphor-plus') ->label('Merkmal') ->schema([ TextInput::make('name') ->prefixIcon('phosphor-house-simple'), ]) ->action(function (array $data) { $code = ProjektMerkmale::getfreecode($this->projekte_id); if ($code) { $merkmal = new ProjektMerkmale; $merkmal->projekte_id = $this->projekte_id; $merkmal->code = $code; $merkmal->name = $data['name']; $merkmal->save(); } }), ]); } }