seeder wip
This commit is contained in:
1 parent
1d16946f20
commit
005924ef8a
34 files changed
+286
-325
No files matched your search
@@ -15,12 +15,11 @@ use Filament\Schemas\Components\View;
|
|||||||
use Filament\Schemas\Components\Wizard;
|
use Filament\Schemas\Components\Wizard;
|
||||||
use Filament\Schemas\Components\Wizard\Step;
|
use Filament\Schemas\Components\Wizard\Step;
|
||||||
use Filament\Schemas\Schema;
|
use Filament\Schemas\Schema;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Ysfkaya\FilamentPhoneInput\Forms\PhoneInput;
|
use Ysfkaya\FilamentPhoneInput\Forms\PhoneInput;
|
||||||
|
|
||||||
class Register extends BaseRegister
|
class Register extends BaseRegister
|
||||||
{
|
{
|
||||||
public User $user;
|
|
||||||
|
|
||||||
public function form(Schema $schema): Schema
|
public function form(Schema $schema): Schema
|
||||||
{
|
{
|
||||||
return $schema
|
return $schema
|
||||||
@@ -30,7 +29,14 @@ class Register extends BaseRegister
|
|||||||
->icon('lucide-user-plus')
|
->icon('lucide-user-plus')
|
||||||
->description('Benutzer anlegen.')
|
->description('Benutzer anlegen.')
|
||||||
->schema([
|
->schema([
|
||||||
$this->getGenderFormComponent(),
|
Select::make('gender')
|
||||||
|
->label('Geschlecht')
|
||||||
|
->options([
|
||||||
|
'Herr' => 'Herr',
|
||||||
|
'Frau' => 'Frau',
|
||||||
|
'Non-binary' => 'Non-binary',
|
||||||
|
])
|
||||||
|
->required(),
|
||||||
$this->getNameFormComponent(),
|
$this->getNameFormComponent(),
|
||||||
$this->getEmailFormComponent(),
|
$this->getEmailFormComponent(),
|
||||||
$this->getPasswordFormComponent(),
|
$this->getPasswordFormComponent(),
|
||||||
@@ -41,46 +47,83 @@ class Register extends BaseRegister
|
|||||||
->icon('lucide-key-square')
|
->icon('lucide-key-square')
|
||||||
->description('Mit einem Konto verbinden.')
|
->description('Mit einem Konto verbinden.')
|
||||||
->schema([
|
->schema([
|
||||||
$this->getKontoModusFormComponent(),
|
/** BESTEHENDES / NEU */
|
||||||
/** BESTEHENDES KONTO */
|
Select::make('register-modus')
|
||||||
$this->getKontoFormComponent(),
|
->columnSpan(4)
|
||||||
|
->label('Registriermodus')
|
||||||
|
->prefixIcon('lucide-key-square')
|
||||||
|
->prefixIconColor('primary')
|
||||||
|
->aboveLabel([
|
||||||
|
'Bitte wählen Sie ein bestehendes Konto oder erstellen Sie ein neues. Eine Registrierung bei einem bestehenden Konto muß vom Kontoinhaber bestätigt werden.',
|
||||||
|
])
|
||||||
|
->options([
|
||||||
|
'old' => 'Mit einem bestehenden Konto verbinden',
|
||||||
|
'new' => 'Ein neues Konto erstellen',
|
||||||
|
])
|
||||||
|
->live()
|
||||||
|
->required(),
|
||||||
|
/** BESTEHEND */
|
||||||
|
Select::make('konto_id')
|
||||||
|
->columnSpan(4)
|
||||||
|
->label('Konto auswählen')
|
||||||
|
->belowLabel([
|
||||||
|
'Um das erstellte Profil zu aktivieren muß der Kontoinhaber die Anmeldung im Programm freischalten',
|
||||||
|
])
|
||||||
|
->visible(fn (Get $get): bool => $get('register-modus') == 'old')
|
||||||
|
->options(Konto::query()->pluck('company', 'id'))
|
||||||
|
->searchable()
|
||||||
|
->required(),
|
||||||
/** NEU */
|
/** NEU */
|
||||||
Fieldset::make('Rechnungsdaten')
|
Fieldset::make('Rechnungsdaten')
|
||||||
->visible(fn (Get $get): bool => $get('konto') == 'new')
|
->visible(fn (Get $get): bool => $get('register-modus') == 'new')
|
||||||
->schema([
|
->schema([
|
||||||
TextInput::make('company')
|
TextInput::make('kontos.company')
|
||||||
->label('Firma')
|
->label('Firma')
|
||||||
->required(),
|
->required(),
|
||||||
TextInput::make('uid_number')
|
TextInput::make('kontos.uid_number')
|
||||||
->label('UID Nummer')
|
->label('UID Nummer')
|
||||||
->rules([new VatNumber])
|
->rules([new VatNumber])
|
||||||
->required(),
|
->required(),
|
||||||
Textarea::make('address')
|
Textarea::make('kontos.address')
|
||||||
->label('Adresse')
|
->label('Adresse')
|
||||||
->required(),
|
->required(),
|
||||||
TextInput::make('country')
|
TextInput::make('kontos.country')
|
||||||
->label('Land')
|
->label('Land')
|
||||||
->default('Österreich')
|
->default('Österreich')
|
||||||
->required(),
|
->required(),
|
||||||
])->columnSpan(4),
|
])->columnSpan(4),
|
||||||
Fieldset::make('Kontaktperson')
|
Fieldset::make('Kontaktperson')
|
||||||
->visible(fn (Get $get): bool => $get('konto') == 'new')
|
->visible(fn (Get $get): bool => $get('register-modus') == 'new')
|
||||||
->schema([
|
->schema([
|
||||||
// $this->getKontoGenderFormComponent(),
|
Select::make('kontos.gender')
|
||||||
// $this->getTitleFormComponent(),
|
->columnSpan(2)
|
||||||
// $this->getNameFormComponent(),
|
->label('Geschlecht')
|
||||||
// $this->getKontoEmailFormComponent(),
|
->options([
|
||||||
// $this->getPhoneFormComponent(),
|
'Herr' => 'Herr',
|
||||||
|
'Frau' => 'Frau',
|
||||||
|
'Non-binary' => 'Non-binary',
|
||||||
|
])
|
||||||
|
->required(),
|
||||||
|
TextInput::make('kontos.title')
|
||||||
|
->label('Titel')
|
||||||
|
->required(),
|
||||||
|
TextInput::make('kontos.name')
|
||||||
|
->required(),
|
||||||
|
TextInput::make('kontos.email')
|
||||||
|
->label('E-Mail')
|
||||||
|
->unique(table: Konto::class)
|
||||||
|
->required(),
|
||||||
|
PhoneInput::make('kontos.phone')
|
||||||
|
->label('Telefon')
|
||||||
|
->defaultCountry('AT'),
|
||||||
])->columnSpan(4),
|
])->columnSpan(4),
|
||||||
|
|
||||||
]),
|
]),
|
||||||
Wizard\Step::make('AGB')
|
Wizard\Step::make('AGB')
|
||||||
->icon('lucide-receipt-text')
|
->icon('lucide-receipt-text')
|
||||||
->visible(fn (Get $get): bool => $get('konto') == 'new')
|
|
||||||
->description(' Allgemein Geschäftsbedignugen')
|
->description(' Allgemein Geschäftsbedignugen')
|
||||||
->schema([
|
->schema([
|
||||||
Fieldset::make('Bitte lesen und akzeptieren Sie die allgemeinen Geschäftsbedignungen um die Registrierung abzuschließen.')
|
Fieldset::make('Bitte lesen und akzeptieren Sie die allgemeinen Geschäftsbedignungen um die Registrierung abzuschließen.')
|
||||||
->visible(fn (Get $get): bool => $get('konto') == 'new')
|
|
||||||
->schema([
|
->schema([
|
||||||
Checkbox::make('agb_akzeptiert')
|
Checkbox::make('agb_akzeptiert')
|
||||||
->label('ABG akzeptieren')
|
->label('ABG akzeptieren')
|
||||||
@@ -94,106 +137,17 @@ class Register extends BaseRegister
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function handleRegistration(array $data): Model
|
||||||
* MODUS
|
|
||||||
*/
|
|
||||||
protected function getKontoModusFormComponent(): Select
|
|
||||||
{
|
{
|
||||||
return Select::make('konto')
|
if (isset($data['kontos'])) {
|
||||||
->columnSpan(4)
|
$konto = new Konto($data['kontos']);
|
||||||
->label('Registriermodus')
|
$konto->save();
|
||||||
->prefixIcon('lucide-key-square')
|
$data['konto_id'] = $konto->id;
|
||||||
->prefixIconColor('primary')
|
}
|
||||||
->aboveLabel([
|
unset($data['kontos']);
|
||||||
'Bitte wählen Sie ein bestehendes Konto oder erstellen Sie ein neues. Eine Registrierung bei einem bestehenden Konto muß vom Kontoinhaber bestätigt werden.',
|
|
||||||
])
|
|
||||||
->options([
|
|
||||||
'old' => 'Mit einem bestehenden Konto verbinden',
|
|
||||||
'new' => 'Ein neues Konto erstellen',
|
|
||||||
])
|
|
||||||
->live()
|
|
||||||
->required();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
$user = parent::handleRegistration($data);
|
||||||
* USER
|
|
||||||
*/
|
|
||||||
protected function getGenderFormComponent(): Select
|
|
||||||
{
|
|
||||||
return Select::make('gender')
|
|
||||||
->label('Geschlecht')
|
|
||||||
->options([
|
|
||||||
'Herr' => 'Herr',
|
|
||||||
'Frau' => 'Frau',
|
|
||||||
'Non-binary' => 'Non-binary',
|
|
||||||
])
|
|
||||||
->required();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
return $user;
|
||||||
* KONTO WÄHLEN
|
|
||||||
*/
|
|
||||||
protected function getKontoFormComponent(): Select
|
|
||||||
{
|
|
||||||
return Select::make('konto_id')
|
|
||||||
->columnSpan(4)
|
|
||||||
->label('Konto auswählen')
|
|
||||||
->belowLabel([
|
|
||||||
'Um das erstellte Profil zu aktivieren muß der Kontoinhaber die Anmeldung im Programm freischalten',
|
|
||||||
])
|
|
||||||
->visible(fn (Get $get): bool => $get('konto') == 'old')
|
|
||||||
->options(Konto::query()->pluck('company', 'id'))
|
|
||||||
->searchable()
|
|
||||||
->required();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* KONTO NEU
|
|
||||||
*/
|
|
||||||
protected function getTitleFormComponent(): TextInput
|
|
||||||
{
|
|
||||||
return TextInput::make('title')
|
|
||||||
->label('Title')
|
|
||||||
->visible(fn (Get $get): bool => $get('konto') == 'new')
|
|
||||||
->required();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getKontoGenderFormComponent(): Select
|
|
||||||
{
|
|
||||||
return Select::make('gender')
|
|
||||||
->columnSpan(2)
|
|
||||||
->label('Geschlecht')
|
|
||||||
->visible(fn (Get $get): bool => $get('konto') == 'new')
|
|
||||||
->options([
|
|
||||||
'Herr' => 'Herr',
|
|
||||||
'Frau' => 'Frau',
|
|
||||||
'Non-binary' => 'Non-binary',
|
|
||||||
])
|
|
||||||
->required();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getCompanyFormComponent(): TextInput
|
|
||||||
{
|
|
||||||
return TextInput::make('konto.company')
|
|
||||||
->label('Firma')
|
|
||||||
->visible(fn (Get $get): bool => $get('konto') == 'new')
|
|
||||||
->required();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getKontoEmailFormComponent(): TextInput
|
|
||||||
{
|
|
||||||
return TextInput::make('email')
|
|
||||||
->label('E-Mail')
|
|
||||||
->visible(fn (Get $get): bool => $get('konto') == 'new')
|
|
||||||
->unique(table: Konto::class)
|
|
||||||
->required();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getPhoneFormComponent(): PhoneInput
|
|
||||||
{
|
|
||||||
return PhoneInput::make('phone')
|
|
||||||
->label('Telefon')
|
|
||||||
->visible(fn (Get $get): bool => $get('konto') == 'new')
|
|
||||||
->defaultCountry('AT');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,7 @@ use BackedEnum;
|
|||||||
use Filament\Resources\Resource;
|
use Filament\Resources\Resource;
|
||||||
use Filament\Schemas\Schema;
|
use Filament\Schemas\Schema;
|
||||||
use Filament\Tables\Table;
|
use Filament\Tables\Table;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
|
||||||
class AuftraggeberResource extends Resource
|
class AuftraggeberResource extends Resource
|
||||||
{
|
{
|
||||||
@@ -58,8 +59,13 @@ class AuftraggeberResource extends Resource
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getEloquentQuery(): Builder
|
||||||
|
{
|
||||||
|
return parent::getEloquentQuery()->where('konto_id', auth()->user()->konto_id);
|
||||||
|
}
|
||||||
|
|
||||||
public static function getNavigationBadge(): ?string
|
public static function getNavigationBadge(): ?string
|
||||||
{
|
{
|
||||||
return parent::getEloquentQuery()->count();
|
return parent::getEloquentQuery()->where('konto_id', auth()->user()->konto_id)->count();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,7 @@ namespace App\Filament\Resources\Auftraggebers\Tables;
|
|||||||
use Filament\Actions\BulkActionGroup;
|
use Filament\Actions\BulkActionGroup;
|
||||||
use Filament\Actions\DeleteBulkAction;
|
use Filament\Actions\DeleteBulkAction;
|
||||||
use Filament\Actions\EditAction;
|
use Filament\Actions\EditAction;
|
||||||
|
use Filament\Tables\Columns\TextColumn;
|
||||||
use Filament\Tables\Table;
|
use Filament\Tables\Table;
|
||||||
|
|
||||||
class AuftraggebersTable
|
class AuftraggebersTable
|
||||||
@@ -13,7 +14,8 @@ class AuftraggebersTable
|
|||||||
{
|
{
|
||||||
return $table
|
return $table
|
||||||
->columns([
|
->columns([
|
||||||
//
|
TextColumn::make('name'),
|
||||||
|
TextColumn::make('email')->copyable()->label('E-Mail'),
|
||||||
])
|
])
|
||||||
->filters([
|
->filters([
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -68,8 +68,13 @@ class GutachterResource extends Resource
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getEloquentQuery(): Builder
|
||||||
|
{
|
||||||
|
return parent::getEloquentQuery()->where('konto_id', auth()->user()->konto_id);
|
||||||
|
}
|
||||||
|
|
||||||
public static function getNavigationBadge(): ?string
|
public static function getNavigationBadge(): ?string
|
||||||
{
|
{
|
||||||
return parent::getEloquentQuery()->count();
|
return parent::getEloquentQuery()->where('konto_id', auth()->user()->konto_id)->count();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -18,6 +18,7 @@ class GutachtersTable
|
|||||||
return $table
|
return $table
|
||||||
->columns([
|
->columns([
|
||||||
TextColumn::make('name'),
|
TextColumn::make('name'),
|
||||||
|
TextColumn::make('email')->copyable()->label('E-Mail'),
|
||||||
])
|
])
|
||||||
->filters([
|
->filters([
|
||||||
TrashedFilter::make(),
|
TrashedFilter::make(),
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ use Filament\Forms\Components\TextInput;
|
|||||||
use Filament\Support\Enums\FontWeight;
|
use Filament\Support\Enums\FontWeight;
|
||||||
use Filament\Support\Enums\TextSize;
|
use Filament\Support\Enums\TextSize;
|
||||||
use Filament\Support\Icons\Heroicon;
|
use Filament\Support\Icons\Heroicon;
|
||||||
use Filament\Tables\Columns\IconColumn;
|
|
||||||
use Filament\Tables\Columns\TextColumn;
|
use Filament\Tables\Columns\TextColumn;
|
||||||
use Filament\Tables\Table;
|
use Filament\Tables\Table;
|
||||||
use Illuminate\Support\Facades\Mail;
|
use Illuminate\Support\Facades\Mail;
|
||||||
@@ -26,11 +25,6 @@ class KontosTable
|
|||||||
// TextColumn::make('gender')->label('Geschlecht'),
|
// TextColumn::make('gender')->label('Geschlecht'),
|
||||||
// TextColumn::make('title')->label('Title'),
|
// TextColumn::make('title')->label('Title'),
|
||||||
// TextColumn::make('first_name')->label('Vorname'),
|
// TextColumn::make('first_name')->label('Vorname'),
|
||||||
// IconColumn::make('agb_akzeptiert')
|
|
||||||
// ->label('AGB')
|
|
||||||
// ->boolean()
|
|
||||||
// ->trueIcon(Heroicon::OutlinedCheckBadge)
|
|
||||||
// ->falseIcon(Heroicon::OutlinedXMark),
|
|
||||||
|
|
||||||
// PhoneColumn::make('phone')
|
// PhoneColumn::make('phone')
|
||||||
// ->label('Telefon')
|
// ->label('Telefon')
|
||||||
@@ -42,14 +36,14 @@ class KontosTable
|
|||||||
// ->label('E-mail'),
|
// ->label('E-mail'),
|
||||||
|
|
||||||
TextColumn::make('company')->label('Firma')
|
TextColumn::make('company')->label('Firma')
|
||||||
->description(fn ($record): string => $record->address.', '.$record->location),
|
->description(fn ($record): string => $record->address),
|
||||||
|
|
||||||
TextColumn::make('plan.name')
|
TextColumn::make('plan.name')
|
||||||
->icon(Heroicon::CurrencyEuro)
|
->icon(Heroicon::CurrencyEuro)
|
||||||
// ->iconColor('success')
|
// ->iconColor('success')
|
||||||
// ->badge()
|
// ->badge()
|
||||||
->label('Plan')
|
->label('Plan')
|
||||||
->description(fn ($record): string => $record->plan->description)
|
->description(fn ($record): string => $record->plan->payment)
|
||||||
->wrap(),
|
->wrap(),
|
||||||
|
|
||||||
TextColumn::make('guthaben')
|
TextColumn::make('guthaben')
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ use Filament\Actions\DeleteBulkAction;
|
|||||||
use Filament\Actions\EditAction;
|
use Filament\Actions\EditAction;
|
||||||
use Filament\Actions\ForceDeleteBulkAction;
|
use Filament\Actions\ForceDeleteBulkAction;
|
||||||
use Filament\Actions\RestoreBulkAction;
|
use Filament\Actions\RestoreBulkAction;
|
||||||
|
use Filament\Support\Icons\Heroicon;
|
||||||
|
use Filament\Tables\Columns\IconColumn;
|
||||||
use Filament\Tables\Columns\TextColumn;
|
use Filament\Tables\Columns\TextColumn;
|
||||||
use Filament\Tables\Filters\TrashedFilter;
|
use Filament\Tables\Filters\TrashedFilter;
|
||||||
use Filament\Tables\Table;
|
use Filament\Tables\Table;
|
||||||
@@ -21,7 +23,11 @@ class UsersTable
|
|||||||
TextColumn::make('name'),
|
TextColumn::make('name'),
|
||||||
TextColumn::make('konto.company')->badge(),
|
TextColumn::make('konto.company')->badge(),
|
||||||
TextColumn::make('email')->copyable()->label('E-Mail'),
|
TextColumn::make('email')->copyable()->label('E-Mail'),
|
||||||
//
|
IconColumn::make('agb_akzeptiert')
|
||||||
|
->label('AGB')
|
||||||
|
->boolean()
|
||||||
|
->trueIcon(Heroicon::OutlinedCheckBadge)
|
||||||
|
->falseIcon(Heroicon::OutlinedXMark),
|
||||||
])
|
])
|
||||||
->filters([
|
->filters([
|
||||||
TrashedFilter::make()->visible(fn () => auth()->user()->hasRole('super_admin')),
|
TrashedFilter::make()->visible(fn () => auth()->user()->hasRole('super_admin')),
|
||||||
|
|||||||
@@ -66,8 +66,13 @@ class UserResource extends Resource
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getEloquentQuery(): Builder
|
||||||
|
{
|
||||||
|
return parent::getEloquentQuery()->where('konto_id', auth()->user()->konto_id);
|
||||||
|
}
|
||||||
|
|
||||||
public static function getNavigationBadge(): ?string
|
public static function getNavigationBadge(): ?string
|
||||||
{
|
{
|
||||||
return parent::getEloquentQuery()->count();
|
return parent::getEloquentQuery()->where('konto_id', auth()->user()->konto_id)->count();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,9 +2,28 @@
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Database\Factories\AuftraggeberFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
class Auftraggeber extends Model
|
class Auftraggeber extends Model
|
||||||
{
|
{
|
||||||
//
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'konto_id',
|
||||||
|
'name',
|
||||||
|
'logo',
|
||||||
|
'address',
|
||||||
|
'country',
|
||||||
|
'kontakt',
|
||||||
|
'email',
|
||||||
|
'phone',
|
||||||
|
];
|
||||||
|
|
||||||
|
protected static function newFactory(): Factory
|
||||||
|
{
|
||||||
|
return AuftraggeberFactory::new();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -14,6 +14,16 @@ class Gutachter extends Model
|
|||||||
use HasFactory;
|
use HasFactory;
|
||||||
use SoftDeletes;
|
use SoftDeletes;
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'konto_id',
|
||||||
|
'name',
|
||||||
|
'logo',
|
||||||
|
'address',
|
||||||
|
'country',
|
||||||
|
'email',
|
||||||
|
'phone',
|
||||||
|
];
|
||||||
|
|
||||||
protected static function booted(): void
|
protected static function booted(): void
|
||||||
{
|
{
|
||||||
static::addGlobalScope(new KontoScope);
|
static::addGlobalScope(new KontoScope);
|
||||||
|
|||||||
@@ -20,15 +20,13 @@ class Konto extends Model
|
|||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'title',
|
'title',
|
||||||
'gender',
|
'gender',
|
||||||
'first_name',
|
'name',
|
||||||
'last_name',
|
|
||||||
'company',
|
'company',
|
||||||
'email',
|
'email',
|
||||||
'address',
|
'address',
|
||||||
'country',
|
'country',
|
||||||
'phone',
|
'phone',
|
||||||
'uid_number',
|
'uid_number',
|
||||||
'agb_akzeptiert',
|
|
||||||
'plan_id',
|
'plan_id',
|
||||||
'guthaben',
|
'guthaben',
|
||||||
'gueltig_bis',
|
'gueltig_bis',
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ class User extends Authenticatable implements FilamentUser, HasAppAuthentication
|
|||||||
'name',
|
'name',
|
||||||
'email',
|
'email',
|
||||||
'password',
|
'password',
|
||||||
|
'agb_akzeptiert',
|
||||||
'app_verified_at',
|
'app_verified_at',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
FilamentColor::register([
|
FilamentColor::register([
|
||||||
'danger' => Color::Red,
|
'danger' => Color::Red,
|
||||||
'gray' => Color::Zinc,
|
'gray' => Color::Zinc,
|
||||||
'info' => Color::Indigo,
|
'info' => Color::Blue,
|
||||||
'primary' => Color::Sky,
|
'primary' => Color::Red,
|
||||||
'success' => Color::Green,
|
'success' => Color::Green,
|
||||||
'warning' => Color::Amber,
|
'warning' => Color::Amber,
|
||||||
]);
|
]);
|
||||||
|
|||||||
Generated
+5
-5
@@ -1902,16 +1902,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "giggsey/libphonenumber-for-php-lite",
|
"name": "giggsey/libphonenumber-for-php-lite",
|
||||||
"version": "9.0.14",
|
"version": "9.0.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/giggsey/libphonenumber-for-php-lite.git",
|
"url": "https://github.com/giggsey/libphonenumber-for-php-lite.git",
|
||||||
"reference": "af794cc2ed18edeebadf5ffe08eb6add04275709"
|
"reference": "bdb457250790bba0a4f8f03e3a3eceb47805499e"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/giggsey/libphonenumber-for-php-lite/zipball/af794cc2ed18edeebadf5ffe08eb6add04275709",
|
"url": "https://api.github.com/repos/giggsey/libphonenumber-for-php-lite/zipball/bdb457250790bba0a4f8f03e3a3eceb47805499e",
|
||||||
"reference": "af794cc2ed18edeebadf5ffe08eb6add04275709",
|
"reference": "bdb457250790bba0a4f8f03e3a3eceb47805499e",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -1976,7 +1976,7 @@
|
|||||||
"issues": "https://github.com/giggsey/libphonenumber-for-php-lite/issues",
|
"issues": "https://github.com/giggsey/libphonenumber-for-php-lite/issues",
|
||||||
"source": "https://github.com/giggsey/libphonenumber-for-php-lite"
|
"source": "https://github.com/giggsey/libphonenumber-for-php-lite"
|
||||||
},
|
},
|
||||||
"time": "2025-09-16T07:09:25+00:00"
|
"time": "2025-09-26T07:21:30+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "graham-campbell/result-type",
|
"name": "graham-campbell/result-type",
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Factories;
|
||||||
|
|
||||||
|
use App\Models\Konto;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Auftraggeber>
|
||||||
|
*/
|
||||||
|
class AuftraggeberFactory extends Factory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Define the model's default state.
|
||||||
|
*
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
public function definition(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'konto_id' => Konto::all()->random()->id,
|
||||||
|
'name' => fake()->name(),
|
||||||
|
'address' => fake()->Address(),
|
||||||
|
'kontakt' => fake()->name(),
|
||||||
|
'country' => 'Österreich',
|
||||||
|
'email' => fake()->email(),
|
||||||
|
'phone' => fake()->PhoneNumber(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Database\Factories;
|
namespace Database\Factories;
|
||||||
|
|
||||||
|
use App\Models\Konto;
|
||||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,7 +18,7 @@ class GutachterFactory extends Factory
|
|||||||
public function definition(): array
|
public function definition(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'konto_id' => fake()->numberBetween(1, 7),
|
'konto_id' => Konto::all()->random()->id,
|
||||||
'name' => fake()->name(),
|
'name' => fake()->name(),
|
||||||
'address' => fake()->Address(),
|
'address' => fake()->Address(),
|
||||||
'country' => 'Österreich',
|
'country' => 'Österreich',
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ class KontoFactory extends Factory
|
|||||||
'country' => 'Österreich',
|
'country' => 'Österreich',
|
||||||
'phone' => fake()->PhoneNumber(),
|
'phone' => fake()->PhoneNumber(),
|
||||||
'uid_number' => 'ATU'.fake()->randomNumber(8, true),
|
'uid_number' => 'ATU'.fake()->randomNumber(8, true),
|
||||||
'agb_akzeptiert' => 1,
|
|
||||||
'plan_id' => fake()->numberBetween(1, 3),
|
'plan_id' => fake()->numberBetween(1, 3),
|
||||||
'guthaben' => fake()->numberBetween(4, 50),
|
'guthaben' => fake()->numberBetween(4, 50),
|
||||||
'gueltig_bis' => fake()->dateTimeBetween('-1 month', '+5 month'),
|
'gueltig_bis' => fake()->dateTimeBetween('-1 month', '+5 month'),
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ class UserFactory extends Factory
|
|||||||
'email_verified_at' => now(),
|
'email_verified_at' => now(),
|
||||||
'password' => static::$password ??= Hash::make('password'),
|
'password' => static::$password ??= Hash::make('password'),
|
||||||
'remember_token' => Str::random(10),
|
'remember_token' => Str::random(10),
|
||||||
|
'agb_akzeptiert' => 1,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ return new class extends Migration
|
|||||||
$table->string('country')->nullable();
|
$table->string('country')->nullable();
|
||||||
$table->string('phone')->nullable();
|
$table->string('phone')->nullable();
|
||||||
$table->string('uid_number')->nullable();
|
$table->string('uid_number')->nullable();
|
||||||
$table->boolean('agb_akzeptiert')->default(false);
|
|
||||||
$table->string('plan_id')->default(1);
|
$table->string('plan_id')->default(1);
|
||||||
$table->string('guthaben')->default(0);
|
$table->string('guthaben')->default(0);
|
||||||
$table->timestamp('gueltig_bis')->nullable();
|
$table->timestamp('gueltig_bis')->nullable();
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ return new class extends Migration
|
|||||||
$table->string('email')->unique();
|
$table->string('email')->unique();
|
||||||
$table->timestamp('email_verified_at')->nullable();
|
$table->timestamp('email_verified_at')->nullable();
|
||||||
$table->string('password');
|
$table->string('password');
|
||||||
|
$table->boolean('agb_akzeptiert')->default(false);
|
||||||
|
|
||||||
$table->text('app_authentication_secret')->nullable();
|
$table->text('app_authentication_secret')->nullable();
|
||||||
$table->text('app_authentication_recovery_codes')->nullable();
|
$table->text('app_authentication_recovery_codes')->nullable();
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ return new class extends Migration
|
|||||||
$table->foreignId('konto_id')->constrained();
|
$table->foreignId('konto_id')->constrained();
|
||||||
$table->string('name')->nullable();
|
$table->string('name')->nullable();
|
||||||
$table->string('logo')->nullable();
|
$table->string('logo')->nullable();
|
||||||
$table->string('address')->nullable();
|
$table->text('address')->nullable();
|
||||||
$table->string('country')->nullable();
|
$table->string('country')->nullable();
|
||||||
$table->string('phone')->nullable();
|
$table->string('phone')->nullable();
|
||||||
$table->string('email')->nullable();
|
$table->string('email')->nullable();
|
||||||
|
|||||||
@@ -14,12 +14,13 @@ return new class extends Migration
|
|||||||
Schema::create('auftraggebers', function (Blueprint $table) {
|
Schema::create('auftraggebers', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->foreignId('konto_id')->constrained();
|
$table->foreignId('konto_id')->constrained();
|
||||||
$table->string('name');
|
$table->string('name')->nullable();
|
||||||
$table->string('logo');
|
$table->string('logo')->nullable();
|
||||||
$table->text('adresse')->nullable();
|
$table->text('address')->nullable();
|
||||||
$table->string('kontaktperson')->nullable();
|
$table->string('country')->nullable();
|
||||||
|
$table->string('kontakt')->nullable();
|
||||||
$table->string('email')->email()->nullable();
|
$table->string('email')->email()->nullable();
|
||||||
$table->string('telefon')->tel()->nullable();
|
$table->string('phone')->tel()->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Database\Seeders;
|
namespace Database\Seeders;
|
||||||
|
|
||||||
|
use App\Models\Auftraggeber;
|
||||||
use App\Models\Gutachter;
|
use App\Models\Gutachter;
|
||||||
use App\Models\Konto;
|
use App\Models\Konto;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
@@ -15,8 +16,8 @@ class DatabaseSeeder extends Seeder
|
|||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
Konto::factory()->count(10)->create();
|
Konto::factory()->count(10)->create();
|
||||||
|
Gutachter::factory()->count(30)->create();
|
||||||
// Gutachter::factory()->create(30);
|
Auftraggeber::factory()->count(30)->create();
|
||||||
|
|
||||||
$this->call([
|
$this->call([
|
||||||
OrientierungenSeeder::class,
|
OrientierungenSeeder::class,
|
||||||
@@ -24,7 +25,7 @@ class DatabaseSeeder extends Seeder
|
|||||||
RolesAndPermissionsSeeder::class,
|
RolesAndPermissionsSeeder::class,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
User::factory()->count(100)->create();
|
User::factory()->count(40)->create();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -12,10 +12,10 @@ class KontoSeeder extends Seeder
|
|||||||
*/
|
*/
|
||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
$sql = "INSERT INTO `kontos` (`id`, `title`, `gender`, `name`, `company`, `email`, `address`, `location`, `plz`, `country`, `phone`, `uid_number`, `agb_akzeptiert`, `option_id`, `gutachten_zahl`, `gutachten_zeit`, `gutachten_abgeschlossen`, `created_at`, `updated_at`)
|
$sql = "INSERT INTO `kontos` (`id`, `title`, `gender`, `name`, `company`, `email`, `address`, `location`, `plz`, `country`, `phone`, `uid_number`, `option_id`, `gutachten_zahl`, `gutachten_zeit`, `gutachten_abgeschlossen`, `created_at`, `updated_at`)
|
||||||
VALUES
|
VALUES
|
||||||
('1', 'Architekt', 'Herr', 'Hanno Vogl-Fernheim', 'Architekt Vogl-Fernheim', 'office@vogl-fernheim.eu', 'Richardsweg 1', 'Innsbruck', '6020', 'Österreich', '+43 0512 560303', 'ATU 61718733', '1', '1', '1', NULL, '1', NULL, NULL),
|
('1', 'Architekt', 'Herr', 'Hanno Vogl-Fernheim', 'Architekt Vogl-Fernheim', 'office@vogl-fernheim.eu', 'Richardsweg 1', 'Innsbruck', '6020', 'Österreich', '+43 0512 560303', 'ATU 61718733', '1', '1', NULL, '1', NULL, NULL),
|
||||||
('2', 'Staatl. bef. u. beeideter Ziviltechniker', 'Herr', 'Christoph Falkner', 'Ziviltechniker Christoph Falkner', 'christophfalkner@me.com', 'Adele-Obermayr-Straße 2', 'Innsbruck', '6020', 'Österreich', '+43 650 92210248', 'ATU56874500', '1', '1', '1', NULL, '1', NULL, NULL);
|
('2', 'Staatl. bef. u. beeideter Ziviltechniker', 'Herr', 'Christoph Falkner', 'Ziviltechniker Christoph Falkner', 'christophfalkner@me.com', 'Adele-Obermayr-Straße 2', 'Innsbruck', '6020', 'Österreich', '+43 650 92210248', 'ATU56874500', '1', '1', NULL, '1', NULL, NULL);
|
||||||
";
|
";
|
||||||
DB::unprepared($sql);
|
DB::unprepared($sql);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ class RolesAndPermissionsSeeder extends Seeder
|
|||||||
'name' => 'Hermann Telser',
|
'name' => 'Hermann Telser',
|
||||||
'email' => 'ht@webwerkstatt.tirol',
|
'email' => 'ht@webwerkstatt.tirol',
|
||||||
'password' => Hash::make('salam'),
|
'password' => Hash::make('salam'),
|
||||||
|
'agb_akzeptiert' => true,
|
||||||
'app_verified_at' => now(),
|
'app_verified_at' => now(),
|
||||||
'email_verified_at' => now(),
|
'email_verified_at' => now(),
|
||||||
]);
|
]);
|
||||||
@@ -38,6 +39,7 @@ class RolesAndPermissionsSeeder extends Seeder
|
|||||||
'name' => 'Yvonne Bormes',
|
'name' => 'Yvonne Bormes',
|
||||||
'email' => 'yvonne.bormes@ztkammer.at',
|
'email' => 'yvonne.bormes@ztkammer.at',
|
||||||
'password' => Hash::make('yvonne'),
|
'password' => Hash::make('yvonne'),
|
||||||
|
'agb_akzeptiert' => true,
|
||||||
'app_verified_at' => now(),
|
'app_verified_at' => now(),
|
||||||
'email_verified_at' => now(),
|
'email_verified_at' => now(),
|
||||||
]);
|
]);
|
||||||
@@ -49,6 +51,7 @@ class RolesAndPermissionsSeeder extends Seeder
|
|||||||
'name' => 'Daniela Mandlez',
|
'name' => 'Daniela Mandlez',
|
||||||
'email' => 'daniela.mandkez@kammerwest.at',
|
'email' => 'daniela.mandkez@kammerwest.at',
|
||||||
'password' => Hash::make('daniela'),
|
'password' => Hash::make('daniela'),
|
||||||
|
'agb_akzeptiert' => true,
|
||||||
'app_verified_at' => now(),
|
'app_verified_at' => now(),
|
||||||
'email_verified_at' => now(),
|
'email_verified_at' => now(),
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -1,88 +0,0 @@
|
|||||||
<svg width="733" height="614" viewBox="0 0 733 614" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<mask id="mask0_6907_192479" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0"
|
|
||||||
width="733" height="673">
|
|
||||||
<rect width="733" height="673" fill="url(#paint0_radial_6907_192479)" />
|
|
||||||
</mask>
|
|
||||||
<g mask="url(#mask0_6907_192479)">
|
|
||||||
<rect x="-11.5" y="0.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="72.5" y="0.5" width="84" height="84" fill="#DDD6FE" stroke="#DDD6FE" />
|
|
||||||
<rect x="156.5" y="0.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="240.5" y="0.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="324.5" y="0.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="408.5" y="0.5" width="84" height="84" fill="#DDD6FE" stroke="#DDD6FE" />
|
|
||||||
<rect x="492.5" y="0.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="576.5" y="0.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="660.5" y="0.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="-11.5" y="84.5" width="84" height="84" fill="#DDD6FE" stroke="#DDD6FE" />
|
|
||||||
<rect x="72.5" y="84.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="156.5" y="84.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="240.5" y="84.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="324.5" y="84.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="408.5" y="84.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="492.5" y="84.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="576.5" y="84.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="660.5" y="84.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="-11.5" y="168.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="72.5" y="168.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="156.5" y="168.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="240.5" y="168.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="324.5" y="168.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="408.5" y="168.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="492.5" y="168.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="576.5" y="168.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="660.5" y="168.5" width="84" height="84" fill="#DDD6FE" stroke="#DDD6FE" />
|
|
||||||
<rect x="-11.5" y="252.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="72.5" y="252.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="156.5" y="252.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="240.5" y="252.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="324.5" y="252.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="408.5" y="252.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="492.5" y="252.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="576.5" y="252.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="660.5" y="252.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="-11.5" y="336.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="72.5" y="336.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="156.5" y="336.5" width="84" height="84" fill="#DDD6FE" stroke="#DDD6FE" />
|
|
||||||
<rect x="240.5" y="336.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="324.5" y="336.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="408.5" y="336.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="492.5" y="336.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="576.5" y="336.5" width="84" height="84" fill="#DDD6FE" stroke="#DDD6FE" />
|
|
||||||
<rect x="660.5" y="336.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="-11.5" y="420.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="72.5" y="420.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="156.5" y="420.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="240.5" y="420.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="324.5" y="420.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="408.5" y="420.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="492.5" y="420.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="576.5" y="420.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="660.5" y="420.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="-11.5" y="504.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="72.5" y="504.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="156.5" y="504.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="240.5" y="504.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="324.5" y="504.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="408.5" y="504.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="492.5" y="504.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="576.5" y="504.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="660.5" y="504.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="-11.5" y="588.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="72.5" y="588.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="156.5" y="588.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="240.5" y="588.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="324.5" y="588.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="408.5" y="588.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="492.5" y="588.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="576.5" y="588.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
<rect x="660.5" y="588.5" width="84" height="84" fill="white" stroke="#DDD6FE" />
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<radialGradient id="paint0_radial_6907_192479" cx="0" cy="0" r="1"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="translate(366.5 336.5) rotate(90) scale(336.5 366.5)">
|
|
||||||
<stop offset="0%" stop-color="#2563EB" />
|
|
||||||
<stop offset="1" stop-color="white" stop-opacity="0" />
|
|
||||||
</radialGradient>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 7.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.8 MiB |
File renamed without changes.
@@ -1,8 +1,8 @@
|
|||||||
<div class="flex justify-center gap-3">
|
<div class="flex justify-center gap-3 py-10">
|
||||||
<x-filament::button href="/app" tag="a" size="xl">
|
<x-filament::button href="/app" tag="a" size="xl" class="w-xs">
|
||||||
Anmelden
|
Anmelden
|
||||||
</x-filament::button>
|
</x-filament::button>
|
||||||
<x-filament::button href="/app/register" tag="a" size="xl" color="gray">
|
<x-filament::button href="/app/register" tag="a" size="xl" color="gray" class="w-xs">
|
||||||
Konto eröffnen
|
Konto eröffnen
|
||||||
</x-filament::button>
|
</x-filament::button>
|
||||||
</div>
|
</div>
|
||||||
@@ -27,14 +27,17 @@
|
|||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="bg-cover" style="background-image: url('images/backgrounds/bg2.jpg')">
|
{{-- <body class="bg-cover" style="background-image: url('images/backgrounds/bg2.jpg')"> --}}
|
||||||
|
|
||||||
|
<body>
|
||||||
<div>
|
<div>
|
||||||
@livewire('notifications')
|
@livewire('notifications')
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@include('layouts.nav')
|
@include('layouts.nav')
|
||||||
|
|
||||||
<main class="mx-auto mt-30 rounded-xl p-10 max-w-5xl shadow-2xl bg-white/80 dark:bg-gray-900/90">
|
<main
|
||||||
|
class="mx-auto max-w-5xl bg-gray-100 dark:bg-gray-800 rounded-2xl border border-gray-200 dark:border-gray-700 p-5">
|
||||||
@yield('content')
|
@yield('content')
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<footer class="fixed bottom-0 right-0 left-0 z-20 p-4">
|
<footer class="fixed bottom-0 right-0 left-0 z-20 p-4">
|
||||||
<a href="https://webwerkstatt.tirol" target="_blank"
|
<a href="https://webwerkstatt.tirol" target="_blank"
|
||||||
class="w-72 mx-auto cursor-pointer text-xs bg-white dark:bg-black justify-center rounded-sm opacity-70 flex border border-gray-300 dark:border-gray-600">
|
class="w-72 mx-auto cursor-pointer text-xs bg-white dark:bg-black justify-center rounded-sm opacity-90 flex border border-gray-300 dark:border-gray-600">
|
||||||
<span>v3.0 - © 2007-{{ date('Y') }} · </span>
|
<span>v3.0 - © 2007-{{ date('Y') }} · </span>
|
||||||
<span class=" tracking-tight text-xs ml-1 font-bold">
|
<span class=" tracking-tight text-xs ml-1 font-bold">
|
||||||
Web<span class="text-primary-800 dark:text-primary-600 font-black">Werkstatt</span><span
|
Web<span class="text-primary-800 dark:text-primary-600 font-black">Werkstatt</span><span
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<circle cx="12" cy="5" r="2" />
|
<circle cx="12" cy="5" r="2" />
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-2xl leading-none font-black tracking-tighter text-shadow-md dark:text-shadow-none">
|
<div class="text-2xl leading-none font-black tracking-tighter text-shadow-lg">
|
||||||
nutzwerte.at
|
nutzwerte.at
|
||||||
<div class="text-xs font-light tracking-tight">Software für Architekten</div>
|
<div class="text-xs font-light tracking-tight">Software für Architekten</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,36 +1,36 @@
|
|||||||
<nav class="fixed top-0 right-0 left-0 z-20 bg-white dark:bg-black">
|
<nav class="mx-auto w-full max-w-5xl p-5">
|
||||||
<div class=" grid grid-cols-2 max-w-5xl mx-auto py-4">
|
<div class=" grid grid-cols-2">
|
||||||
<div class="fi-logo flex gap-1">
|
<div class="fi-logo flex gap-1 ">
|
||||||
<div class="w-9 pt-1">
|
<div class="w-9 pt-1">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
||||||
stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||||
<path d="m12.99 6.74 1.93 3.44"></path>
|
<path d="m12.99 6.74 1.93 3.44"></path>
|
||||||
<path d="M19.136 12a10 10 0 0 1-14.271 0"></path>
|
<path d="M19.136 12a10 10 0 0 1-14.271 0"></path>
|
||||||
<path d="m21 21-2.16-3.84"></path>
|
<path d="m21 21-2.16-3.84"></path>
|
||||||
<path d="m3 21 8.02-14.26"></path>
|
<path d="m3 21 8.02-14.26"></path>
|
||||||
<circle cx="12" cy="5" r="2"></circle>
|
<circle cx="12" cy="5" r="2"></circle>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-2xl leading-none font-black tracking-tighter text-shadow-md dark:text-shadow-none">
|
<div class="text-2xl leading-none font-black tracking-tighter text-shadow-md dark:text-shadow-none">
|
||||||
nutzwerte.at
|
nutzwerte.at
|
||||||
<div class="text-xs font-light">Software für Architekten</div>
|
<div class="text-xs font-light">Software für Architekten</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="grid grid-flow-col">
|
<div class="grid grid-flow-col">
|
||||||
<x-filament::link href="/" color="gray" icon="heroicon-m-home">
|
<x-filament::link href="/" color="white" icon="heroicon-o-home">
|
||||||
Home
|
Home
|
||||||
</x-filament::link>
|
</x-filament::link>
|
||||||
<x-filament::link href="/nutzwerte" color="gray" icon="heroicon-m-building-office-2">
|
<x-filament::link href="/nutzwerte" color="white" icon="heroicon-o-building-office-2">
|
||||||
Nutzwerte
|
Nutzwerte
|
||||||
</x-filament::link>
|
</x-filament::link>
|
||||||
<x-filament::link href="/dieses-programm" color="gray" icon="heroicon-m-calculator">
|
<x-filament::link href="/dieses-programm" color="white" icon="heroicon-o-calculator">
|
||||||
Programm
|
Programm
|
||||||
</x-filament::link>
|
</x-filament::link>
|
||||||
<x-filament::link href="/impressum" color="gray" icon="heroicon-m-calendar-date-range">
|
<x-filament::link href="/impressum" color="white" icon="heroicon-o-calendar-date-range">
|
||||||
Impressum
|
Impressum
|
||||||
</x-filament::link>
|
</x-filament::link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
@@ -1,48 +1,57 @@
|
|||||||
@extends('layouts.app')
|
@extends('layouts.app')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="text-gray-700 dark:text-gray-200">
|
<div class="flex gap-7">
|
||||||
<div class="flex gap-7">
|
{{-- <body class="bg-cover" style="background-image: url('images/backgrounds/bg2.jpg')"> --}}
|
||||||
<div class="flex flex-col gap-3">
|
|
||||||
<x-filament::section icon="heroicon-m-building-office-2">
|
|
||||||
<x-slot name="heading">
|
|
||||||
<x-title>
|
|
||||||
Die Nutzwertberechnung
|
|
||||||
</x-title>
|
|
||||||
</x-slot>
|
|
||||||
|
|
||||||
<x-slot name="description">
|
|
||||||
ist ein Gutachten im österreichischen Wohnungseigentumsrecht
|
|
||||||
</x-slot>
|
|
||||||
<p class="indent-5 pb-3">
|
|
||||||
Es wird das Verhältnis der einzelnen Eigentumsanteile innerhalb eines Gebäudes bestimmt.
|
|
||||||
</p>
|
|
||||||
<p class="indent-5 pb-3">
|
|
||||||
Sie bildet die Grundlage für die Berechnung der Betriebs- und Instandhaltungskosten sowie für
|
|
||||||
das
|
|
||||||
Stimmrecht der Miteigentümer und ist für die Begründung von Wohnungseigentum notwendig.
|
|
||||||
</p>
|
|
||||||
<x-filament::link href="/nutzwerte" icon-position="after" icon="lucide-external-link">
|
|
||||||
Über die Nutzwertberechnung.
|
|
||||||
</x-filament::link>
|
|
||||||
<p class="indent-5 py-3">
|
|
||||||
Wie Ihnen dieses Programm bei der Nutzwertberechnung zur Hand gehen kann, erfahren sie hier.
|
|
||||||
</p>
|
|
||||||
<x-filament::link href="/dieses-programm" icon-position="after" icon="lucide-external-link">
|
|
||||||
Über dieses Programm
|
|
||||||
</x-filament::link>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
@include('components.login')
|
|
||||||
<br>
|
|
||||||
</x-filament::section>
|
|
||||||
|
|
||||||
|
<div class="flex flex-col gap-3">
|
||||||
|
<div class="text-7xl text-center font-black p-7">
|
||||||
|
Nutzwertberechnung <br>einmal anders
|
||||||
|
</div>
|
||||||
|
<div class="grid grid-cols-3 gap-5">
|
||||||
|
<div class="block rounded-lg bg-white dark:bg-black shadow-secondary-1 dark:bg-surface-dark">
|
||||||
|
<img class="rounded-t-lg object-cover h-56 w-full" src="images/backgrounds/bg2.jpg" alt="" />
|
||||||
|
<div class="p-6 text-surface ">
|
||||||
|
<h5 class="mb-2 text-xl font-medium leading-tight">Das Nutzwertgutachten</h5>
|
||||||
|
<p class="mb-4 text-base">
|
||||||
|
..ist ein Gutachten im österreichischen Wohnungseigentumsrecht.
|
||||||
|
Es wird das Verhältnis der einzelnen Eigentumsanteile innerhalb eines Gebäudes bestimmt.
|
||||||
|
<x-filament::link href="/nutzwerte" icon-position="after" icon="lucide-external-link">
|
||||||
|
mehr...
|
||||||
|
</x-filament::link>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="block rounded-lg bg-white dark:bg-black shadow-secondary-1 dark:bg-surface-dark">
|
||||||
|
<img class="rounded-t-lg object-cover h-56 w-full p-5" src="images/klammer.jpg" alt="" />
|
||||||
|
<div class="p-6 text-surface">
|
||||||
|
<h5 class="mb-2 text-xl font-medium leading-tight">Daten Import</h5>
|
||||||
|
<p class="mb-4 text-base">
|
||||||
|
Die Daten werden aus allen gängigen Zeichenprogrammen importieren, und die Objekte werden
|
||||||
|
angelegt.
|
||||||
|
<x-filament::link href="/dieses-programm" icon-position="after" icon="lucide-external-link">
|
||||||
|
mehr...
|
||||||
|
</x-filament::link>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="block rounded-lg bg-white dark:bg-black shadow-secondary-1 dark:bg-surface-dark">
|
||||||
|
<img class="rounded-t-lg object-cover h-56 w-full" src="images/house2.jpg" alt="" />
|
||||||
|
<div class="p-6 text-surface">
|
||||||
|
<h5 class="mb-2 text-xl font-medium leading-tight">Berechnung</h5>
|
||||||
|
<p class="mb-4 text-base">
|
||||||
|
Nach dem die Parameter gesetzt wurden ist die
|
||||||
|
fertige Nutzwertberechnung bereit um als als PDF-Dokument heruntgeladen zu werden.
|
||||||
|
<x-filament::link href="/dieses-programm" icon-position="after" icon="lucide-external-link">
|
||||||
|
mehr...
|
||||||
|
</x-filament::link>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="p-5">
|
||||||
|
@include('components.login')
|
||||||
</div>
|
</div>
|
||||||
<img src="images/house.jpg" class="w-82 rounded-2xl border border-gray-300" />
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<br>
|
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
Reference in new issue
Block a user