user()->konto->guthaben */ Action::make('freischalten') ->hidden(fn ($record): bool => $record->bezahlt_am ? true : false) ->color('success') ->visible(fn (): bool => (bool) Auth::user()->konto->guthaben) ->requiresConfirmation() ->modalHeading('Gutachten freischalten?') ->tooltip('Von Ihrem Guthaben wird ein Punkt abgezogen.') ->modalIcon('phosphor-coins') ->modalDescription('Von Ihrem Guthaben wird ein Punkt abgezogen.') ->modalSubmitActionLabel('Bezahlen') ->action(function ($record) { if (Konto::where('id', $record['konto_id'])->where('guthaben', '>', 0)->get()) { Konto::where('id', $record['konto_id'])->decrement('guthaben', 1); Projekte::where('id', $record['id'])->update(['bezahlt_am' => Carbon::now()]); $this->record->refresh(); Notification::make() ->title('Gutachten freischaltet') ->success() ->send(); } }), Action::make('bezahlen') ->color('primary') ->icon('phosphor-currency-eur') ->hidden(fn ($record): bool => $record->bezahlt_am ? true : false) ->visible(fn (): bool => Auth::user()->konto->guthaben == 0) ->label('Konto laden') ->tooltip('Konto laden (Dirket nur bei Büro AVF möglich).') ->action(function () { Konto::where('id', Auth::user()->konto_id)->update(['guthaben' => 10]); }), // ->requiresConfirmation() // ->modalHeading('Kein Guthaben') // ->modalIcon('heroicon-o-exclamation-triangle') // ->modalDescription('Bitte laden sie Ihr Konto auf. (nicht aktive)') // ->modalSubmitActionLabel('Konto aufladen'), /** * PDF */ ActionGroup::make([ /** * STANDART TEXT */ Action::make('make-standard') ->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false) ->label('Standard Texte') ->icon('icon-pdf') ->url(function ($record) { return route('pdf', ['record' => $record, 'part' => 'standard']); }) ->openUrlInNewTab(), /** * NUTZWERTE */ Action::make('make-nutzwerte-file') ->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false) ->label('Nutzwertberechnung') ->icon('icon-pdf') ->url(function ($record) { return route('pdf', ['record' => $record, 'part' => 'nutzwerte']); }) ->openUrlInNewTab(), /** * PARAGRAPH 6 */ Action::make('make-paragraph') ->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false) ->label('Auszug gem. §6 ') ->icon('icon-pdf') ->url(function ($record) { return route('pdf', ['record' => $record, 'part' => 'paragraph']); }) ->openUrlInNewTab(), ])->label('Pdf') ->icon('phosphor-download') ->color('gray') ->button(), /** * EXCEL */ ActionGroup::make([ Action::make('excel-nutzwerte') ->label('Nutzfläche & Nutzwerte') ->icon('icon-excel') ->url(fn ($record) => route('excelnutzwerte', ['record' => $record])) ->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false) ->openUrlInNewTab(), Action::make('excel-aufstellung') ->label('Nutzflächen Aufstellung') ->icon('icon-excel') ->url(fn ($record) => route('excelaufstellung', ['record' => $record])) ->hidden(fn ($record): bool => (! $record->bezahlt_am || ! $record->evaluation_gutachten) ? true : false) ->openUrlInNewTab(), ])->label('Excel') ->icon('phosphor-download') ->color('gray') ->button(), /** * ADMIN */ ActionGroup::make([ /** * EVALUATE */ Action::make('evaluate_gutachten') ->color('primary') // ->hidden(fn ($record): bool => $record->bezahlt_am && ! $record->evaluation_gutachten ? false : true) ->label('Daten überprüfen') ->icon('phosphor-eye') ->action(function ($record): void { GutachtenValidation::run($record); $this->record->refresh(); }), Action::make('reparieren') ->color('success') ->label('Daten reparieren ..') ->modalIcon('phosphor-arrow-fat-line-right-fill') ->modalDescription(self::reparierenText()) // ->hidden(fn ($record): bool => ! $record->cloned_from_id) ->action(fn ($record) => Reparieren::run($record)) ->icon('phosphor-arrow-fat-line-right-fill'), DeleteAction::make()->icon('heroicon-o-trash') ->label('Projekt löschen') ->modalDescription('Möchten Sie dieses Projekt wirklich löschen? Die Daten werden unwiderbringlich gelöscht, dieser Vorgang kann nicht rückgängig gemacht werden.'), ])->label('Admin') ->icon('phosphor-user-circle') ->button(), ]; } protected function getSavedNotificationTitle(): ?string { return 'Projekt Änderungen gespeichert'; } protected function reparierenText(): ?HtmlString { $txt = '
Geklonte Projekte
'; $txt .= '
    '; $txt .= '
  1. Es werden Änderungen vom originalen Objekt und Objekt im Detail übernommen.
  2. '; $txt .= '
  3. Es werden gelöschte Objekt und Objekt im Detail ergänzt.
  4. '; $txt .= '
  5. Elemente ohne Verbindung zum Originale werden gelöscht.
  6. '; $txt .= '
'; $txt .= '
Alle Projekte
'; $txt .= '
    '; $txt .= '
  1. Objekt ohne verbundene Objekt im Detail werden gelöscht.
  2. '; $txt .= '
  3. Objekt im Detail ohne Verbindung zu einem Objekt werden gelöscht.
  4. '; $txt .= '
  5. Manuell hinzugefügte Elemente werden nicht gelöscht.
  6. '; // $txt .= '
  7. Doppelte Objekt oder Objekt im Detail werden gelöscht.
  8. '; $txt .= '
'; return new HtmlString($txt); } }