rename ProjektRaeumealle ro ProjektObjekte und ProjektObjekteImDetail
This commit is contained in:
1 parent
7746b426b3
commit
967d6e5157
30 files changed
+342
-292
No files matched your search
@@ -2,51 +2,47 @@
|
||||
|
||||
namespace App\Filament\Imports;
|
||||
|
||||
use App\Models\ProjektOrientierungZuAbschlaege;
|
||||
use App\Models\ProjektRaeumealle;
|
||||
use App\Models\ProjektObjekte;
|
||||
use App\Models\ProjektObjekteImDetail;
|
||||
use Filament\Actions\Imports\ImportColumn;
|
||||
use Filament\Actions\Imports\Importer;
|
||||
use Filament\Actions\Imports\Models\Import;
|
||||
use Illuminate\Support\Number;
|
||||
|
||||
class ProjektRaeumealleImporter extends Importer
|
||||
class ProjektObjekteImDetailImporter extends Importer
|
||||
{
|
||||
protected static ?string $model = ProjektRaeumealle::class;
|
||||
|
||||
protected function beforeValidate(): void
|
||||
protected static ?string $model = ProjektObjekteImDetail::class;
|
||||
|
||||
public static $projekte_id;
|
||||
|
||||
public function resolveRecord(): ProjektObjekteImDetail
|
||||
{
|
||||
dd($this->data);
|
||||
self::$projekte_id = $this->options['projekte_id'];
|
||||
|
||||
$res = ProjektOrientierungZuAbschlaege::firstOrCreate([
|
||||
'projekte_id' => $this->options['projekte_id'],
|
||||
'top_nummer' => trim($this->data['top_nummer']),
|
||||
]);
|
||||
$res = new ProjektObjekteImDetail;
|
||||
$res->projekte_id = self::$projekte_id;
|
||||
|
||||
dd($res);
|
||||
|
||||
$this->data['orientierung_zu_abschlaege_id'] = $res->id;
|
||||
}
|
||||
|
||||
|
||||
public function resolveRecord(): ProjektRaeumealle
|
||||
{
|
||||
return ProjektRaeumealle::firstOrNew([
|
||||
'projekt_orientierung_zu_abschlaege_id' => $this->data['orientierung_zu_abschlaege_id'],
|
||||
'projekte_id' => $this->options['projekte_id'],
|
||||
]);
|
||||
return $res;
|
||||
}
|
||||
|
||||
public static function getColumns(): array
|
||||
{
|
||||
return [
|
||||
// ImportColumn::make('top_nummer')
|
||||
// ->relationship('orientierung_zu_abschlaege'),
|
||||
ImportColumn::make('top_nummer')
|
||||
->label('Top Nummer')
|
||||
->validationAttribute('Top Nummer')
|
||||
->requiredMapping()
|
||||
->example('EG')
|
||||
->rules(['required', 'max:255'])
|
||||
->relationship(resolveUsing: function (string $state, $data): ?ProjektObjekte {
|
||||
return ProjektObjekte::query()
|
||||
->where('projekte_id', self::$projekte_id)
|
||||
->Where('top_nummer', $state)
|
||||
->firstOrCreate([
|
||||
'projekte_id' => self::$projekte_id,
|
||||
'top_nummer' => $state,
|
||||
]);
|
||||
})
|
||||
->castStateUsing(function (string $state) {
|
||||
$state = trim($state);
|
||||
|
||||
@@ -93,10 +89,10 @@ class ProjektRaeumealleImporter extends Importer
|
||||
|
||||
public static function getCompletedNotificationBody(Import $import): string
|
||||
{
|
||||
$body = ' Der Import der Räume ist abgeschlossen. Es wurden '.Number::format($import->successful_rows).' '.str('row')->plural($import->successful_rows).' importiert.';
|
||||
$body = ' Der Import der Objekte ist abgeschlossen. Es wurden '.Number::format($import->successful_rows).' '.str('row')->plural($import->successful_rows).' importiert.';
|
||||
|
||||
if ($failedRowsCount = $import->getFailedRowsCount()) {
|
||||
$body .= ' Bei '.Number::format($failedRowsCount).' '.str('row')->plural($failedRowsCount).' ist der Import fehlgeschlagen.';
|
||||
$body .= ' Bei '.Number::format($failedRowsCount).' '.@lang('Reihe|Reihen', $failedRowsCount).' ist der Import fehlgeschlagen.';
|
||||
}
|
||||
|
||||
return $body;
|
||||
|
||||
@@ -4,13 +4,13 @@ namespace App\Filament\Resources\Projektes\Pages;
|
||||
|
||||
use App\Actions\Validation\GutachtenValidation;
|
||||
use App\Filament\Imports\ProjektAllgemeinflaechenImporter;
|
||||
use App\Filament\Imports\ProjektRaeumealleImporter;
|
||||
use App\Filament\Imports\ProjektObjekteImDetailImporter;
|
||||
use App\Filament\Resources\Projektes\ProjekteResource;
|
||||
use App\Models\Konto;
|
||||
use App\Models\ProjektAllgemeinflaechen;
|
||||
use App\Models\Projekte;
|
||||
use App\Models\ProjektOrientierungZuAbschlaege;
|
||||
use App\Models\ProjektRaeumealle;
|
||||
use App\Models\ProjektObjekte;
|
||||
use App\Models\ProjektObjekteImDetail;
|
||||
use Filament\Actions\Action;
|
||||
use Filament\Actions\ActionGroup;
|
||||
use Filament\Actions\DeleteAction;
|
||||
@@ -24,7 +24,7 @@ class EditProjekte extends EditRecord
|
||||
{
|
||||
protected static string $resource = ProjekteResource::class;
|
||||
|
||||
#[On('refreshProjektAllgemeinflaechen'), On('refreshProjektRaeumealle'), On('refreshMethods'), On('refreshOrientierung')]
|
||||
#[On('refreshProjektAllgemeinflaechen'), On('refreshProjektObjekteImDetail'), On('refreshMethods'), On('refreshOrientierung')]
|
||||
public function refresh(): void {}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
@@ -34,7 +34,7 @@ class EditProjekte extends EditRecord
|
||||
* IMPORT
|
||||
*/
|
||||
ActionGroup::make([
|
||||
ImportAction::make('allgemeinflaechen')
|
||||
ImportAction::make('importallgemeinflaechen')
|
||||
->hidden(fn ($record): bool => $record->bezahlt_am ? false : true)
|
||||
->importer(ProjektAllgemeinflaechenImporter::class)
|
||||
->modalHeading('Allgemeinflächen Import')
|
||||
@@ -64,9 +64,9 @@ class EditProjekte extends EditRecord
|
||||
->fileRules([
|
||||
File::types(['csv', 'txt'])->max(1024),
|
||||
]),
|
||||
ImportAction::make()
|
||||
ImportAction::make('import_objekte')
|
||||
->hidden(fn ($record): bool => $record->bezahlt_am ? false : true)
|
||||
->importer(ProjektRaeumealleImporter::class)
|
||||
->importer(ProjektObjekteImDetailImporter::class)
|
||||
->modalHeading('Objekte im Detail Import')
|
||||
->modalContent(view('filament.pages.actions.import-objektemitraeumen'))
|
||||
->modalContentFooter(view('filament.pages.actions.footer-objektemitraeumen'))
|
||||
@@ -78,8 +78,8 @@ class EditProjekte extends EditRecord
|
||||
->color('danger')
|
||||
->requiresConfirmation()
|
||||
->action(function ($record) {
|
||||
ProjektRaeumealle::where('projekte_id', $record->id)->delete();
|
||||
ProjektOrientierungZuAbschlaege::where('projekte_id', $record->id)->delete();
|
||||
ProjektObjekteImDetail::where('projekte_id', $record->id)->delete();
|
||||
ProjektObjekte::where('projekte_id', $record->id)->delete();
|
||||
|
||||
$this->record->refresh();
|
||||
|
||||
@@ -216,7 +216,8 @@ class EditProjekte extends EditRecord
|
||||
->icon('phosphor-download')
|
||||
->color('info')
|
||||
->button(),
|
||||
DeleteAction::make()->icon('heroicon-o-trash'),
|
||||
DeleteAction::make()->icon('heroicon-o-trash')
|
||||
->modalDescription('Möchten Sie dieses Projekt wirklich löschen? Die Daten werden unwiderbringlich gelöscht, dieser Vorgang kann nicht rückgängig gemacht werden.'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -7,9 +7,9 @@ use App\Filament\Resources\Projektes\Pages\ListProjektes;
|
||||
use App\Filament\Resources\Projektes\RelationManagers\ProjektAllgemeinflaechensRelationManager;
|
||||
use App\Filament\Resources\Projektes\RelationManagers\ProjektInhaltsverzeichnisRelationManager;
|
||||
use App\Filament\Resources\Projektes\RelationManagers\ProjektMethodesRelationManager;
|
||||
use App\Filament\Resources\Projektes\RelationManagers\ProjektOrientierungZuAbschlaegesRelationManager;
|
||||
use App\Filament\Resources\Projektes\RelationManagers\ProjektObjekteImDetailRelationManager;
|
||||
use App\Filament\Resources\Projektes\RelationManagers\ProjektObjekteRelationManager;
|
||||
use App\Filament\Resources\Projektes\RelationManagers\ProjektPlatzhalterRelationManager;
|
||||
use App\Filament\Resources\Projektes\RelationManagers\ProjektRaeumeallesRelationManager;
|
||||
use App\Filament\Resources\Projektes\Schemas\ProjekteForm;
|
||||
use App\Filament\Resources\Projektes\Tables\ProjektesTable;
|
||||
use App\Models\Projekte;
|
||||
@@ -48,8 +48,8 @@ class ProjekteResource extends Resource
|
||||
{
|
||||
return [
|
||||
ProjektAllgemeinflaechensRelationManager::class,
|
||||
ProjektOrientierungZuAbschlaegesRelationManager::class,
|
||||
ProjektRaeumeallesRelationManager::class,
|
||||
ProjektObjekteRelationManager::class,
|
||||
ProjektObjekteImDetailRelationManager::class,
|
||||
ProjektMethodesRelationManager::class,
|
||||
ProjektInhaltsverzeichnisRelationManager::class,
|
||||
ProjektPlatzhalterRelationManager::class,
|
||||
|
||||
+2
@@ -54,12 +54,14 @@ class ProjektAllgemeinflaechensRelationManager extends RelationManager
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->emptyStateDescription('Schalten Sie das Projekt frei und importieren Sie die Daten der Allgemeinflächen.')
|
||||
->striped()
|
||||
->recordTitleAttribute('geschoss')
|
||||
->columns([
|
||||
TextColumn::make('geschoss')->searchable(),
|
||||
TextColumn::make('raumart')->searchable(),
|
||||
TextInputColumn::make('flaeche')
|
||||
->extraInputAttributes(['onClick' => 'this.select()'])
|
||||
->summarize(Sum::make()->label('Gesammt')->numeric(
|
||||
decimalPlaces: 2,
|
||||
)->suffix(new HtmlString(' m²')))
|
||||
|
||||
+2
@@ -207,6 +207,8 @@ class ProjektInhaltsverzeichnisRelationManager extends RelationManager
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->emptyStateHeading('Kein Inhaltsverzeichnis')
|
||||
->emptyStateDescription('Generiere ein Inhaltsverzeichnis um zu beginnen.')
|
||||
->recordTitleAttribute('text')
|
||||
// ->recordClasses(fn ($record) => $record->part == 'gutachten' ? 'border-l border-primary-500' : 'border-l border-success-500')
|
||||
->columns([
|
||||
|
||||
@@ -52,6 +52,7 @@ class ProjektMethodesRelationManager extends RelationManager
|
||||
TextColumn::make('raumart')
|
||||
->searchable(),
|
||||
TextInputColumn::make('faktor')
|
||||
->extraInputAttributes(['onClick' => 'this.select()'])
|
||||
->suffixIcon('phosphor-function')
|
||||
->width('1rem')
|
||||
->rules(['required', 'faktor' => 'decimal:0,2'])
|
||||
|
||||
+25
-21
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Filament\Resources\Projektes\RelationManagers;
|
||||
|
||||
use App\Models\ProjektRaeumealle;
|
||||
use App\Models\ProjektObjekteImDetail;
|
||||
use Filament\Actions\BulkAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Schemas\Schema;
|
||||
@@ -18,11 +19,12 @@ use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Tables\Columns\TextInputColumn;
|
||||
use Filament\Tables\Filters\SelectFilter;
|
||||
use Filament\Tables\Table;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Support\HtmlString;
|
||||
use Livewire\Component;
|
||||
|
||||
class ProjektRaeumeallesRelationManager extends RelationManager
|
||||
class ProjektObjekteImDetailRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'projekt_raeumealles';
|
||||
|
||||
@@ -36,11 +38,13 @@ class ProjektRaeumeallesRelationManager extends RelationManager
|
||||
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
|
||||
return $schema
|
||||
->components([
|
||||
TextInput::make('top_nummer')
|
||||
Select::make('projekt_objekte_id')
|
||||
->relationship('top_nummer', 'top_nummer', fn (Builder $query) => $query->where('projekte_id', $this->getOwnerRecord()->id))
|
||||
->required()
|
||||
->maxLength(255),
|
||||
->searchable(),
|
||||
TextInput::make('geschoss')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
@@ -62,7 +66,7 @@ class ProjektRaeumeallesRelationManager extends RelationManager
|
||||
->suffixIcon('phosphor-function')
|
||||
->rules(['required', 'faktor' => 'decimal:0,2'])
|
||||
->afterStateUpdated(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshProjektRaeumealle');
|
||||
$livewire->dispatch('refreshProjektObjekteImDetail');
|
||||
})->validationMessages([
|
||||
'required' => 'Die Eingabe eines Faktors ist erforderlich.',
|
||||
'decimal' => 'Für den Faktors sind zwei Dezimalstellen erforderlich.',
|
||||
@@ -73,27 +77,30 @@ class ProjektRaeumeallesRelationManager extends RelationManager
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->emptyStateDescription('Schalten Sie das Projekt frei und importieren Sie die Daten der Objekte.')
|
||||
->striped()
|
||||
->recordTitleAttribute('top_nummer')
|
||||
->columns([
|
||||
TextColumn::make('top_nummer')
|
||||
TextColumn::make('top_nummer.top_nummer')
|
||||
->extraAttributes(['pointer-events' => 'none'])
|
||||
->searchable()
|
||||
->label('Top'),
|
||||
TextColumn::make('geschoss')->searchable(),
|
||||
TextColumn::make('raumart')->searchable(),
|
||||
TextInputColumn::make('faktor')
|
||||
->extraInputAttributes(['onClick' => 'this.select()'])
|
||||
->suffixIcon('phosphor-function')
|
||||
->width('1rem')
|
||||
->rules(['required', 'faktor' => 'decimal:0,2'])
|
||||
->searchable()
|
||||
->afterStateUpdated(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshProjektRaeumealle');
|
||||
$livewire->dispatch('refreshProjektObjekteImDetail');
|
||||
})->validationMessages([
|
||||
'required' => 'Die Eingabe eines Faktors ist erforderlich.',
|
||||
'decimal' => 'Für den Faktors sind zwei Dezimalstellen erforderlich.',
|
||||
]),
|
||||
TextInputColumn::make('flaeche')
|
||||
->extraInputAttributes(['onClick' => 'this.select()'])
|
||||
->summarize(Sum::make()->label('Gesammt')->numeric(
|
||||
decimalPlaces: 2,
|
||||
)->suffix(new HtmlString(' m²')))
|
||||
@@ -104,7 +111,7 @@ class ProjektRaeumeallesRelationManager extends RelationManager
|
||||
->label('Fläche')
|
||||
->searchable()
|
||||
->afterStateUpdated(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshProjektRaeumealle');
|
||||
$livewire->dispatch('refreshProjektObjekteImDetail');
|
||||
})->validationMessages([
|
||||
'required' => 'Die Eingabe einer Fläche ist erforderlich.',
|
||||
'decimal' => 'Für die Fläche sind zwei Dezimalstellen erforderlich.',
|
||||
@@ -117,22 +124,19 @@ class ProjektRaeumeallesRelationManager extends RelationManager
|
||||
->filters([
|
||||
SelectFilter::make('top_nummer')
|
||||
->label('Top Nummer')
|
||||
->searchable()
|
||||
->options(function (): array {
|
||||
return ProjektRaeumealle::where('projekte_id', $this->getOwnerRecord()->id)->groupBy('top_nummer')->orderBy('top_nummer')->pluck('top_nummer', 'top_nummer')->toArray();
|
||||
}),
|
||||
->relationship('top_nummer', 'top_nummer', fn (Builder $query) => $query->where('projekte_id', $this->getOwnerRecord()->id))
|
||||
->searchable(),
|
||||
SelectFilter::make('geschoss')
|
||||
->searchable()
|
||||
->preload()
|
||||
->options(function (): array {
|
||||
return ProjektRaeumealle::where('projekte_id', $this->getOwnerRecord()->id)->groupBy('geschoss')->orderBy('geschoss')->pluck('geschoss', 'geschoss')->toArray();
|
||||
return ProjektObjekteImDetail::where('projekte_id', $this->getOwnerRecord()->id)->groupBy('geschoss')->orderBy('geschoss')->pluck('geschoss', 'geschoss')->toArray();
|
||||
}),
|
||||
SelectFilter::make('raumart')
|
||||
->searchable()
|
||||
->options(function (): array {
|
||||
return ProjektRaeumealle::where('projekte_id', $this->getOwnerRecord()->id)->groupBy('raumart')->orderBy('raumart')->pluck('raumart', 'raumart')->toArray();
|
||||
return ProjektObjekteImDetail::where('projekte_id', $this->getOwnerRecord()->id)->groupBy('raumart')->orderBy('raumart')->pluck('raumart', 'raumart')->toArray();
|
||||
}),
|
||||
])
|
||||
// ], layout: FiltersLayout::AboveContentCollapsible)
|
||||
->headerActions([
|
||||
CreateAction::make()
|
||||
->icon('phosphor-file-plus')
|
||||
@@ -145,10 +149,10 @@ class ProjektRaeumeallesRelationManager extends RelationManager
|
||||
|
||||
return $data;
|
||||
})->after(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshProjektRaeumealle');
|
||||
$livewire->dispatch('refreshProjektObjekteImDetail');
|
||||
}),
|
||||
DeleteAction::make()->iconButton()->after(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshProjektRaeumealle');
|
||||
$livewire->dispatch('refreshProjektObjekteImDetail');
|
||||
}),
|
||||
])
|
||||
->toolbarActions([
|
||||
@@ -166,7 +170,7 @@ class ProjektRaeumeallesRelationManager extends RelationManager
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
$nutzwert = round($data['faktor'] * $record->flaeche);
|
||||
ProjektRaeumealle::where('id', '=', $record->id)
|
||||
ProjektObjekteImDetail::where('id', '=', $record->id)
|
||||
->update(
|
||||
[
|
||||
'faktor' => $data['faktor'],
|
||||
@@ -175,10 +179,10 @@ class ProjektRaeumeallesRelationManager extends RelationManager
|
||||
);
|
||||
}
|
||||
})->after(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshProjektRaeumealle');
|
||||
$livewire->dispatch('refreshProjektObjekteImDetail');
|
||||
}),
|
||||
DeleteBulkAction::make()->after(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshProjektRaeumealle');
|
||||
$livewire->dispatch('refreshProjektObjekteImDetail');
|
||||
}),
|
||||
]),
|
||||
]);
|
||||
+60
-31
@@ -2,17 +2,21 @@
|
||||
|
||||
namespace App\Filament\Resources\Projektes\RelationManagers;
|
||||
|
||||
use App\Actions\Create\CreateProjektOrientierungZuAbschlaege;
|
||||
use App\Actions\Create\CreateProjektObjekte;
|
||||
use App\Models\Merkmale;
|
||||
use App\Models\Orientierung;
|
||||
use App\Models\ProjektOrientierungZuAbschlaege;
|
||||
use App\Models\ProjektObjekte;
|
||||
use Filament\Actions\Action;
|
||||
use Filament\Actions\BulkAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Forms\Components\Radio;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Support\Enums\FontWeight;
|
||||
use Filament\Support\Enums\Width;
|
||||
use Filament\Tables\Columns\CheckboxColumn;
|
||||
@@ -25,7 +29,7 @@ use Filament\Tables\Table;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Livewire\Component;
|
||||
|
||||
class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
class ProjektObjekteRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'projekt_orientierung_zu_abschlaeges';
|
||||
|
||||
@@ -37,6 +41,16 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
|
||||
protected static ?string $pluralModelLabel = 'Objekte';
|
||||
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $schema
|
||||
->components([
|
||||
TextInput::make('top_nummer')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
|
||||
@@ -44,6 +58,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
|
||||
return $table
|
||||
// ->striped()
|
||||
->emptyStateDescription('Schalten Sie das Projekt frei und importieren Sie die Daten der Objekte.')
|
||||
->recordTitleAttribute('top_nummer')
|
||||
->description('Orientierungen, Zu- und Abschläge')
|
||||
->columns([
|
||||
@@ -59,9 +74,6 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
'style' => 'position: sticky; left: 0; z-index: 1;',
|
||||
'class' => 'bg-gray-50 dark:bg-gray-900',
|
||||
]),
|
||||
TextInputColumn::make('geschoss')
|
||||
->width('1rem')
|
||||
->toggleable(),
|
||||
CheckboxColumn::make('nicht_in_orientierung')
|
||||
->label('NiO')
|
||||
->toggleable()
|
||||
@@ -69,6 +81,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
$livewire->dispatch('refreshOrientierung');
|
||||
}),
|
||||
TextInputColumn::make('type')
|
||||
->extraInputAttributes(['onClick' => 'this.select()'])
|
||||
->toggleable()
|
||||
->disabled(fn ($record): bool => $record->nicht_in_orientierung)
|
||||
->width('2rem')
|
||||
@@ -217,7 +230,23 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
TernaryFilter::make('nicht_in_orientierung')
|
||||
->label('Objekte "Nicht in Orientierung" anzeigen'),
|
||||
])
|
||||
->recordActions([
|
||||
EditAction::make()->iconButton()
|
||||
->mutateDataUsing(function (array $data): array {
|
||||
$data['projekte_id'] = $this->ownerRecord->id;
|
||||
|
||||
return $data;
|
||||
})->after(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshProjektObjekteImDetail');
|
||||
}),
|
||||
DeleteAction::make()->iconButton()->after(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshProjektObjekteImDetail');
|
||||
}),
|
||||
])
|
||||
->headerActions([
|
||||
CreateAction::make()
|
||||
->icon('phosphor-file-plus')
|
||||
->createAnother(false),
|
||||
Action::make('merkmale')
|
||||
->icon('phosphor-pen')
|
||||
->modalCancelAction(fn (Action $action) => $action->label('Schließen'))
|
||||
@@ -229,18 +258,18 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->after(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshOrientierung');
|
||||
}),
|
||||
Action::make('erstellen')
|
||||
->action(fn (CreateProjektOrientierungZuAbschlaege $createProjektOrientierungZuAbschlaege) => $createProjektOrientierungZuAbschlaege->create($this->ownerRecord))
|
||||
->requiresConfirmation()
|
||||
->modalHeading('Objekte erstellen')
|
||||
->modalDescription('Alle bestehenden Daten in dieser Tabelle werden vorher gelöscht.')
|
||||
->modalSubmitActionLabel('Generieren')
|
||||
->label('Generieren')
|
||||
->tooltip('Daten werden aus "Räume Alle" gefiltert.')
|
||||
->icon('heroicon-o-cog-8-tooth')
|
||||
->after(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshOrientierung');
|
||||
}),
|
||||
// Action::make('erstellen')
|
||||
// ->action(fn (CreateProjektObjekte $createProjektObjekte) => $createProjektObjekte->create($this->ownerRecord))
|
||||
// ->requiresConfirmation()
|
||||
// ->modalHeading('Objekte erstellen')
|
||||
// ->modalDescription('Alle bestehenden Daten in dieser Tabelle werden vorher gelöscht.')
|
||||
// ->modalSubmitActionLabel('Generieren')
|
||||
// ->label('Generieren')
|
||||
// ->tooltip('Daten werden aus "Räume Alle" gefiltert.')
|
||||
// ->icon('heroicon-o-cog-8-tooth')
|
||||
// ->after(function (Component $livewire) {
|
||||
// $livewire->dispatch('refreshOrientierung');
|
||||
// }),
|
||||
])
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
@@ -254,7 +283,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->icon('phosphor-align-center-horizontal-simple')
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->where('nicht_in_orientierung', '=', false)
|
||||
->update(
|
||||
['type' => $data['type']]
|
||||
@@ -278,7 +307,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->icon('phosphor-compass')
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->update(
|
||||
['orientierung_id' => $data['methode_id']]
|
||||
);
|
||||
@@ -302,7 +331,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->icon('phosphor-check-square')
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->update(
|
||||
['nicht_in_orientierung' => 1]
|
||||
);
|
||||
@@ -323,7 +352,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
$nutzwert = $this->sum_nutzwerte('a', $data['a'], $record);
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->update(
|
||||
[
|
||||
'a' => $data['a'],
|
||||
@@ -346,7 +375,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
$nutzwert = $this->sum_nutzwerte('b', $data['b'], $record);
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->update(
|
||||
[
|
||||
'b' => $data['b'],
|
||||
@@ -369,7 +398,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
$nutzwert = $this->sum_nutzwerte('c', $data['c'], $record);
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->update(
|
||||
[
|
||||
'c' => $data['c'],
|
||||
@@ -392,7 +421,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
$nutzwert = $this->sum_nutzwerte('d', $data['d'], $record);
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->update(
|
||||
[
|
||||
'd' => $data['d'],
|
||||
@@ -415,7 +444,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
$nutzwert = $this->sum_nutzwerte('e', $data['e'], $record);
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->update(
|
||||
[
|
||||
'e' => $data['e'],
|
||||
@@ -438,7 +467,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
$nutzwert = $this->sum_nutzwerte('f', $data['f'], $record);
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->update(
|
||||
[
|
||||
'f' => $data['f'],
|
||||
@@ -461,7 +490,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
$nutzwert = $this->sum_nutzwerte('g', $data['g'], $record);
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->update(
|
||||
[
|
||||
'g' => $data['g'],
|
||||
@@ -484,7 +513,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
$nutzwert = $this->sum_nutzwerte('h', $data['h'], $record);
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->update(
|
||||
[
|
||||
'h' => $data['h'],
|
||||
@@ -507,7 +536,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
$nutzwert = $this->sum_nutzwerte('i', $data['i'], $record);
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->update(
|
||||
[
|
||||
'i' => $data['i'],
|
||||
@@ -530,7 +559,7 @@ class ProjektOrientierungZuAbschlaegesRelationManager extends RelationManager
|
||||
->action(function (Collection $records, array $data): void {
|
||||
foreach ($records as $record) {
|
||||
$nutzwert = $this->sum_nutzwerte('j', $data['j'], $record);
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $record->id)
|
||||
ProjektObjekte::where('id', '=', $record->id)
|
||||
->update(
|
||||
[
|
||||
'j' => $data['j'],
|
||||
+2
@@ -41,10 +41,12 @@ class ProjektPlatzhalterRelationManager extends RelationManager
|
||||
{
|
||||
return $table
|
||||
->recordTitleAttribute('name')
|
||||
->emptyStateDescription('Generiere die Platzhalter aus dem Inhaltsverzeichnis.')
|
||||
->columns([
|
||||
TextColumn::make('platzhalter')
|
||||
->searchable(),
|
||||
TextInputColumn::make('platzhaltertext')
|
||||
->extraInputAttributes(['onClick' => 'this.select()'])
|
||||
->label('Platzhalter Text')
|
||||
->searchable(),
|
||||
])
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Filament\Resources\Projektes\Widgets;
|
||||
|
||||
use App\Models\Merkmale;
|
||||
use App\Models\ProjektOrientierungZuAbschlaege;
|
||||
use App\Models\ProjektObjekte;
|
||||
use Filament\Actions\Action;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\EditAction;
|
||||
@@ -49,14 +49,14 @@ class WidgetMerkmale extends TableWidget
|
||||
->color('gray')
|
||||
->iconButton()
|
||||
->after(function ($record) {
|
||||
ProjektOrientierungZuAbschlaege::where('projekte_id', '=', $record->projekte_id)
|
||||
ProjektObjekte::where('projekte_id', '=', $record->projekte_id)
|
||||
->update(
|
||||
[$record->code => 0]
|
||||
);
|
||||
$res = ProjektOrientierungZuAbschlaege::where('projekte_id', '=', $record->projekte_id)->get();
|
||||
$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);
|
||||
ProjektOrientierungZuAbschlaege::where('id', '=', $value->id)
|
||||
ProjektObjekte::where('id', '=', $value->id)
|
||||
->update(
|
||||
['nutzwert' => $nutzwert]
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user