konto optionen

This commit is contained in:
salam committed 2025-09-22 10:02:08 +02:00
1 parent 47edd31030
commit e5ea920579
25 files changed
+309 -178

No files matched your search

@@ -0,0 +1,61 @@
<?php
namespace App\Filament\Resources\KontoOptions;
use App\Filament\Resources\KontoOptions\Pages\CreateKontoOption;
use App\Filament\Resources\KontoOptions\Pages\EditKontoOption;
use App\Filament\Resources\KontoOptions\Pages\ListKontoOptions;
use App\Filament\Resources\KontoOptions\Schemas\KontoOptionForm;
use App\Filament\Resources\KontoOptions\Tables\KontoOptionTable;
use App\Models\KontoOption;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Tables\Table;
use UnitEnum;
class KontoOptionResource extends Resource
{
protected static ?string $model = KontoOption::class;
protected static string|BackedEnum|null $navigationIcon = 'lucide-key-square';
protected static string|UnitEnum|null $navigationGroup = 'Administration';
protected static ?string $navigationLabel = 'Konto Optionen';
protected static ?string $modelLabel = 'Konto Option';
protected static ?string $pluralModelLabel = 'Konto Optionen';
public static function form(Schema $schema): Schema
{
return KontoOptionForm::configure($schema);
}
public static function table(Table $table): Table
{
return KontoOptionTable::configure($table);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => ListKontoOptions::route('/'),
'create' => CreateKontoOption::route('/create'),
'edit' => EditKontoOption::route('/{record}/edit'),
];
}
public static function getNavigationBadge(): ?string
{
return parent::getEloquentQuery()->count();
}
}
@@ -0,0 +1,11 @@
<?php
namespace App\Filament\Resources\KontoOptions\Pages;
use App\Filament\Resources\KontoOptions\KontoOptionResource;
use Filament\Resources\Pages\CreateRecord;
class CreateKontoOption extends CreateRecord
{
protected static string $resource = KontoOptionResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\KontoOptions\Pages;
use App\Filament\Resources\KontoOptions\KontoOptionResource;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditKontoOption extends EditRecord
{
protected static string $resource = KontoOptionResource::class;
protected function getHeaderActions(): array
{
return [
DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\KontoOptions\Pages;
use App\Filament\Resources\KontoOptions\KontoOptionResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListKontoOptions extends ListRecords
{
protected static string $resource = KontoOptionResource::class;
protected function getHeaderActions(): array
{
return [
// CreateAction::make(),
];
}
}
@@ -1,10 +1,10 @@
<?php
namespace App\Filament\Resources\Kontooptionens\Schemas;
namespace App\Filament\Resources\KontoOptions\Schemas;
use Filament\Schemas\Schema;
class KontooptionenForm
class KontoOptionForm
{
public static function configure(Schema $schema): Schema
{
@@ -1,6 +1,6 @@
<?php
namespace App\Filament\Resources\Kontooptionens\Tables;
namespace App\Filament\Resources\KontoOptions\Tables;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
@@ -8,15 +8,19 @@ use Filament\Actions\EditAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class KontooptionensTable
class KontoOptionTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
TextColumn::make('name')->description(fn ($record): string => $record->description),
TextColumn::make('number_user')->alignCenter()->badge(),
TextColumn::make('number_gutachter')->alignCenter()->badge(),
TextColumn::make('name')
->description(fn ($record): string => $record->description)
->wrap(),
TextColumn::make('payment_plan.name')
->label('Zahlung'),
TextColumn::make('number_user')->alignCenter()->badge()->label('Benutzer'),
TextColumn::make('number_gutachter')->alignCenter()->badge()->label('Gutachter'),
])
->filters([
//
@@ -1,61 +0,0 @@
<?php
namespace App\Filament\Resources\Kontooptionens;
use App\Filament\Resources\Kontooptionens\Pages\CreateKontooptionen;
use App\Filament\Resources\Kontooptionens\Pages\EditKontooptionen;
use App\Filament\Resources\Kontooptionens\Pages\ListKontooptionens;
use App\Filament\Resources\Kontooptionens\Schemas\KontooptionenForm;
use App\Filament\Resources\Kontooptionens\Tables\KontooptionensTable;
use App\Models\Kontooptionen;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Tables\Table;
use UnitEnum;
class KontooptionenResource extends Resource
{
protected static ?string $model = Kontooptionen::class;
protected static string|BackedEnum|null $navigationIcon = 'lucide-key-square';
protected static string|UnitEnum|null $navigationGroup = 'Interne Administration';
protected static ?string $navigationLabel = 'Konto Optionen';
protected static ?string $modelLabel = 'Konto Option';
protected static ?string $pluralModelLabel = 'Konto Optionen';
public static function form(Schema $schema): Schema
{
return KontooptionenForm::configure($schema);
}
public static function table(Table $table): Table
{
return KontooptionensTable::configure($table);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => ListKontooptionens::route('/'),
'create' => CreateKontooptionen::route('/create'),
'edit' => EditKontooptionen::route('/{record}/edit'),
];
}
public static function getNavigationBadge(): ?string
{
return parent::getEloquentQuery()->count();
}
}
@@ -1,11 +0,0 @@
<?php
namespace App\Filament\Resources\Kontooptionens\Pages;
use App\Filament\Resources\Kontooptionens\KontooptionenResource;
use Filament\Resources\Pages\CreateRecord;
class CreateKontooptionen extends CreateRecord
{
protected static string $resource = KontooptionenResource::class;
}
@@ -1,19 +0,0 @@
<?php
namespace App\Filament\Resources\Kontooptionens\Pages;
use App\Filament\Resources\Kontooptionens\KontooptionenResource;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditKontooptionen extends EditRecord
{
protected static string $resource = KontooptionenResource::class;
protected function getHeaderActions(): array
{
return [
DeleteAction::make(),
];
}
}
@@ -1,19 +0,0 @@
<?php
namespace App\Filament\Resources\Kontooptionens\Pages;
use App\Filament\Resources\Kontooptionens\KontooptionenResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListKontooptionens extends ListRecords
{
protected static string $resource = KontooptionenResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}
@@ -20,7 +20,10 @@ class KontosTable
TextColumn::make('konto_gender')->label('Geschlecht'),
// TextColumn::make('konto_title')->label('Title'),
// TextColumn::make('konto_first_name')->label('Vorname'),
// TextColumn::make('konto_last_name')->label('Nachname'),
TextColumn::make('konto_option.name')
->badge()
->label('Plan')
->description(fn ($record): string => $record->konto_option->payment_plan->name),
TextColumn::make('konto_company')->label('Firma'),
IconColumn::make('konto_agb_akzeptiert')
->label('AGB')
@@ -20,7 +20,7 @@ class PermissionResource extends Resource
protected static string|BackedEnum|null $navigationIcon = 'lucide-toggle-right';
protected static string|UnitEnum|null $navigationGroup = 'Interne Administration';
protected static string|UnitEnum|null $navigationGroup = 'Administration';
protected static ?string $recordTitleAttribute = 'name';
+6 -9
View File
@@ -2,8 +2,8 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne;
class Konto extends Model
{
@@ -26,14 +26,11 @@ class Konto extends Model
'konto_phone',
'konto_uid_number',
'konto_agb_akzeptiert',
'konto_option_id',
];
// protected static function booted(): void
// {
// static::addGlobalScope('konto', function (Builder $query) {
// if (auth()->hasUser()) {
// $query->where('id', auth()->user()->konto_id);
// }
// });
// }
public function konto_option(): HasOne
{
return $this->hasOne(KontoOption::class, 'id', 'konto_option_id');
}
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasOne;
class KontoOption extends Model
{
public function payment_plan(): HasOne
{
return $this->hasOne(PaymentPlan::class, 'id', 'payment_plan_id');
}
}
@@ -4,7 +4,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Kontooptionen extends Model
class PaymentPlan extends Model
{
//
}
+70
View File
@@ -0,0 +1,70 @@
<?php
declare(strict_types=1);
namespace App\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Models\KontoOption;
use Illuminate\Auth\Access\HandlesAuthorization;
class KontoOptionPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:KontoOption');
}
public function view(AuthUser $authUser, KontoOption $kontoOption): bool
{
return $authUser->can('View:KontoOption');
}
public function create(AuthUser $authUser): bool
{
return $authUser->can('Create:KontoOption');
}
public function update(AuthUser $authUser, KontoOption $kontoOption): bool
{
return $authUser->can('Update:KontoOption');
}
public function delete(AuthUser $authUser, KontoOption $kontoOption): bool
{
return $authUser->can('Delete:KontoOption');
}
public function restore(AuthUser $authUser, KontoOption $kontoOption): bool
{
return $authUser->can('Restore:KontoOption');
}
public function forceDelete(AuthUser $authUser, KontoOption $kontoOption): bool
{
return $authUser->can('ForceDelete:KontoOption');
}
public function forceDeleteAny(AuthUser $authUser): bool
{
return $authUser->can('ForceDeleteAny:KontoOption');
}
public function restoreAny(AuthUser $authUser): bool
{
return $authUser->can('RestoreAny:KontoOption');
}
public function replicate(AuthUser $authUser, KontoOption $kontoOption): bool
{
return $authUser->can('Replicate:KontoOption');
}
public function reorder(AuthUser $authUser): bool
{
return $authUser->can('Reorder:KontoOption');
}
}
+22 -23
View File
@@ -4,67 +4,66 @@ declare(strict_types=1);
namespace App\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Models\Kontooptionen;
use App\Models\KontoOption;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class KontooptionenPolicy
class KontoOptionPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:Kontooptionen');
return $authUser->can('ViewAny:KontoOption');
}
public function view(AuthUser $authUser, Kontooptionen $kontooptionen): bool
public function view(AuthUser $authUser, KontoOption $kontooptionen): bool
{
return $authUser->can('View:Kontooptionen');
return $authUser->can('View:KontoOption');
}
public function create(AuthUser $authUser): bool
{
return $authUser->can('Create:Kontooptionen');
return $authUser->can('Create:KontoOption');
}
public function update(AuthUser $authUser, Kontooptionen $kontooptionen): bool
public function update(AuthUser $authUser, KontoOption $kontooptionen): bool
{
return $authUser->can('Update:Kontooptionen');
return $authUser->can('Update:KontoOption');
}
public function delete(AuthUser $authUser, Kontooptionen $kontooptionen): bool
public function delete(AuthUser $authUser, KontoOption $kontooptionen): bool
{
return $authUser->can('Delete:Kontooptionen');
return $authUser->can('Delete:KontoOption');
}
public function restore(AuthUser $authUser, Kontooptionen $kontooptionen): bool
public function restore(AuthUser $authUser, KontoOption $kontooptionen): bool
{
return $authUser->can('Restore:Kontooptionen');
return $authUser->can('Restore:KontoOption');
}
public function forceDelete(AuthUser $authUser, Kontooptionen $kontooptionen): bool
public function forceDelete(AuthUser $authUser, KontoOption $kontooptionen): bool
{
return $authUser->can('ForceDelete:Kontooptionen');
return $authUser->can('ForceDelete:KontoOption');
}
public function forceDeleteAny(AuthUser $authUser): bool
{
return $authUser->can('ForceDeleteAny:Kontooptionen');
return $authUser->can('ForceDeleteAny:KontoOption');
}
public function restoreAny(AuthUser $authUser): bool
{
return $authUser->can('RestoreAny:Kontooptionen');
return $authUser->can('RestoreAny:KontoOption');
}
public function replicate(AuthUser $authUser, Kontooptionen $kontooptionen): bool
public function replicate(AuthUser $authUser, KontoOption $kontooptionen): bool
{
return $authUser->can('Replicate:Kontooptionen');
return $authUser->can('Replicate:KontoOption');
}
public function reorder(AuthUser $authUser): bool
{
return $authUser->can('Reorder:Kontooptionen');
return $authUser->can('Reorder:KontoOption');
}
}
}