> */ protected $queryString = [ 'status' => ['except' => 'all'], 'channel' => ['except' => 'all'], 'page' => ['except' => 1], 'selectedTransactionId' => ['except' => null, 'as' => 'transaction'], ]; public function mount(Company $company, ?int $transaction = null): void { $this->company = $company; if ($transaction) { $this->selectedTransactionId = $this->baseQuery() ->whereKey($transaction) ->value('id'); } if (! $this->selectedTransactionId) { $this->selectedTransactionId = $this->baseQuery() ->orderByDesc('requires_review') ->orderByDesc('risk_score') ->orderByDesc('executed_at') ->value('id'); } } public function selectTransaction(int $transactionId): void { $this->selectedTransactionId = $transactionId; } public function updatingStatus(): void { $this->resetPage(); } public function updatedStatus(): void { $this->refreshSelection(); } public function updatingChannel(): void { $this->resetPage(); } public function updatedChannel(): void { $this->refreshSelection(); } public function updatedPage(): void { $this->refreshSelection(); } protected function refreshSelection(): void { $first = $this->filteredQuery() ->orderByDesc('requires_review') ->orderByDesc('risk_score') ->orderByDesc('executed_at') ->forPage($this->getPage(), $this->perPage) ->first(); $this->selectedTransactionId = $first?->id; } #[Computed] public function statusOptions(): array { return [ 'all' => __('Alle Status'), Transaction::STATUS_TRUE_POSITIVE => __('Bestätigte Treffer'), Transaction::STATUS_FALSE_POSITIVE => __('Fehlalarme'), Transaction::STATUS_CLEARED => __('Freigegeben'), ]; } #[Computed] public function channelOptions(): array { $channels = $this->baseQuery() ->select('channel') ->distinct() ->orderBy('channel') ->pluck('channel') ->filter() ->values(); $options = [ 'all' => __('Alle Kanäle'), ]; foreach ($channels as $channel) { $options[$channel] = $channel; } return $options; } #[Computed] public function metrics(): array { $baseQuery = $this->baseQuery(); $totalCount = (clone $baseQuery)->count(); $totalVolume = (clone $baseQuery)->sum('amount'); $openAlertsQuery = $this->baseQuery()->where('requires_review', true); $openAlertsCount = (clone $openAlertsQuery)->count(); $openAlertsVolume = (clone $openAlertsQuery)->sum('amount'); $highRiskCount = $totalCount > 0 ? $this->baseQuery()->where('risk_score', '>=', 80)->count() : 0; $last30DaysQuery = $this->baseQuery()->where('executed_at', '>=', now()->subDays(30)); $last30DaysCount = (clone $last30DaysQuery)->count(); $last30DaysVolume = (clone $last30DaysQuery)->sum('amount'); $statusBreakdown = (clone $baseQuery) ->selectRaw('status, COUNT(*) as total, COALESCE(SUM(amount), 0) as volume') ->groupBy('status') ->get() ->mapWithKeys(fn ($row) => [ $row->status => [ 'count' => (int) $row->total, 'amount' => (float) $row->volume, ], ]) ->toArray(); return [ 'total_count' => $totalCount, 'total_volume' => $totalVolume, 'open_alerts' => [ 'count' => $openAlertsCount, 'amount' => $openAlertsVolume, ], 'high_risk_share' => $totalCount > 0 ? (int) round(($highRiskCount / $totalCount) * 100) : 0, 'last_30_days' => [ 'count' => $last30DaysCount, 'amount' => $last30DaysVolume, ], 'by_status' => $statusBreakdown, ]; } #[Computed] public function transactions(): LengthAwarePaginator { return $this->filteredQuery() ->with('company') ->orderByDesc('requires_review') ->orderByDesc('risk_score') ->orderByDesc('executed_at') ->paginate($this->perPage); } #[Computed] public function selectedTransaction(): ?Transaction { $transaction = $this->transactions->firstWhere('id', $this->selectedTransactionId); if (! $transaction && $this->selectedTransactionId) { $transaction = $this->baseQuery() ->with('company') ->whereKey($this->selectedTransactionId) ->first(); } return $transaction ?? $this->transactions->first(); } #[Computed] public function counterpartyHistory(): Collection { $selected = $this->selectedTransaction; if (! $selected) { return collect(); } return $this->baseQuery() ->where('counterparty', $selected->counterparty) ->orderByDesc('executed_at') ->limit(6) ->get(); } #[Computed] public function recentAlerts(): Collection { return $this->baseQuery() ->where('requires_review', true) ->orderByDesc('executed_at') ->limit(5) ->get(); } #[Computed] public function actionChecklist(): array { $selected = $this->selectedTransaction; $items = [ [ 'title' => __('KYC- und Screening-Daten abgleichen'), 'description' => __('Prüfen Sie Unternehmens- und Gegenparteidaten gegen Sanktionslisten, PEP-Register und interne Sperrlisten.'), ], [ 'title' => __('Transaktionsverlauf analysieren'), 'description' => __('Bewerten Sie Häufigkeit, Muster und Gegenparteien der letzten Monate, um ungewöhnliche Aktivitäten zu erkennen.'), ], [ 'title' => __('Vier-Augen-Prinzip sicherstellen'), 'description' => __('Organisieren Sie eine Zweitprüfung und dokumentieren Sie alle Entscheidungen revisionssicher.'), ], ]; if ($selected?->status === Transaction::STATUS_TRUE_POSITIVE) { array_unshift($items, [ 'title' => __('Verdachtsmeldung vorbereiten'), 'description' => __('Erstellen Sie den Meldeentwurf für die FIU, sammeln Sie Belege und stellen Sie eine Eskalation sicher.'), ]); } return $items; } protected function filteredQuery(): Builder { return $this->baseQuery() ->when($this->status !== 'all', fn (Builder $query) => $query->where('status', $this->status)) ->when($this->channel !== 'all', fn (Builder $query) => $query->where('channel', $this->channel)); } protected function baseQuery(): Builder { return Transaction::query()->where('company_id', $this->company->id); } }; ?> @php /** @var \Illuminate\Contracts\Pagination\LengthAwarePaginator $transactions */ $transactions = $this->transactions; /** @var \App\Models\Transaction|null $selected */ $selected = $this->selectedTransaction; $metrics = $this->metrics; $statusOptions = $this->statusOptions; $channelOptions = $this->channelOptions; $counterpartyHistory = $this->counterpartyHistory; $recentAlerts = $this->recentAlerts; $actionChecklist = $this->actionChecklist; $checklistIntro = __('Fokusbereiche für diesen Fall'); $formatCurrency = static fn (float $value): string => number_format($value, 2, ',', '.') . ' €'; $formatAmount = static fn (float $value, string $currency): string => number_format($value, 2, ',', '.') . ' ' . $currency; $statusStyles = [ Transaction::STATUS_TRUE_POSITIVE => 'bg-gradient-to-r from-rose-500/25 via-rose-500/10 to-rose-400/20 text-rose-700 dark:text-rose-200 border border-rose-500/30 shadow-[0_0_25px_-14px_rgba(244,63,94,0.85)]', Transaction::STATUS_FALSE_POSITIVE => 'bg-gradient-to-r from-amber-400/25 via-amber-400/10 to-amber-300/20 text-amber-700 dark:text-amber-200 border border-amber-400/30 shadow-[0_0_25px_-14px_rgba(251,191,36,0.85)]', Transaction::STATUS_CLEARED => 'bg-gradient-to-r from-emerald-400/25 via-emerald-400/10 to-emerald-300/20 text-emerald-700 dark:text-emerald-200 border border-emerald-400/30 shadow-[0_0_25px_-14px_rgba(52,211,153,0.85)]', ]; $statusCopy = [ Transaction::STATUS_TRUE_POSITIVE => __('Ein schwerwiegender Verdacht liegt vor. Priorisieren Sie die Eskalation und bereiten Sie eine Verdachtsmeldung vor.'), Transaction::STATUS_FALSE_POSITIVE => __('Alarm konnte entkräftet werden. Dokumentieren Sie die Begründung und schließen Sie den Fall.'), Transaction::STATUS_CLEARED => __('Keine Auffälligkeiten. Dokumentieren und archivieren Sie den Prüfschritt.'), ]; @endphp
{{ __('Zurück zur Transaktionsprüfung') }} {{ $company->legal_name }} {{ $company->summary }}
{{ __('Ticker') }} {{ $company->ticker }} {{ $company->sector }} {{ __('KYC-Risiko') }} {{ \Illuminate\Support\Str::title($company->kyc_risk_level) }}

{{ __('Transaktionen gesamt') }}

{{ $metrics['total_count'] }}

{{ __('Volumen') }} {{ $formatCurrency($metrics['total_volume']) }}

{{ __('Offene Alerts') }}

{{ $metrics['open_alerts']['count'] }}

{{ __('Volumen') }} {{ $formatCurrency($metrics['open_alerts']['amount']) }}

{{ __('High-Risk-Anteil') }}

{{ $metrics['high_risk_share'] }}%

{{ __('Letzte 30 Tage') }} {{ $metrics['last_30_days']['count'] }}

@if (! empty($actionChecklist))

{{ $checklistIntro }}

{{ __('Bearbeiten Sie die wichtigsten Schritte nacheinander, um den Fallabschluss vorzubereiten.') }}

{{ count($actionChecklist) }} {{ __('Schritte') }}
    @foreach ($actionChecklist as $index => $item)
  1. {{ sprintf('%02d', $index + 1) }}

    {{ $item['title'] }}

    {{ $item['description'] }}

  2. @endforeach
@endif

{{ __('Transaktionsliste') }}

{{ __('Filtern Sie nach Status und Kanal, um relevante Vorgänge für dieses Unternehmen zu analysieren.') }}

{{ $transactions->total() }} {{ __('Ergebnisse') }}
@foreach ($statusOptions as $value => $label) @endforeach @foreach ($channelOptions as $value => $label) @endforeach
@forelse ($transactions as $transaction) @empty
{{ __('Keine Transaktionen für die aktuellen Filter gefunden.') }}
@endforelse
@if ($transactions->hasPages())
{{ __('Seite') }} {{ $transactions->currentPage() }} {{ __('von') }} {{ $transactions->lastPage() }}
@endif

{{ __('Neueste Alerts') }}

    @forelse ($recentAlerts as $alert)
  • {{ $alert->counterparty }}

    {{ $alert->executed_at?->format('d.m.Y H:i') }} • {{ $alert->channel }}

    {{ $alert->statusLabel() }}
  • @empty
  • {{ __('Aktuell liegen keine offenen Alerts vor.') }}
  • @endforelse
@if ($selected) @php $badgeStyle = $statusStyles[$selected->status] ?? 'bg-zinc-500/10 text-zinc-600 border border-zinc-500/20'; $riskLevel = match (true) { $selected->risk_score >= 80 => __('Hoch'), $selected->risk_score >= 60 => __('Erhöht'), $selected->risk_score >= 40 => __('Moderat'), default => __('Niedrig'), }; $riskNarrative = match (true) { $selected->risk_score >= 80 => __('Die Einstufung über 80 Punkten signalisiert einen erhöhten AML-Prüffokus. Eskalation und enges Monitoring sind angeraten.'), $selected->risk_score >= 60 => __('Das Risiko liegt im oberen Mittelfeld. Prüfen Sie Plausibilitäten und dokumentieren Sie Gegenmaßnahmen.'), $selected->risk_score >= 40 => __('Die Einstufung erscheint moderat. Stellen Sie sicher, dass grundlegende Prüfungen vollständig dokumentiert sind.'), default => __('Der Score deutet auf ein geringes AML-Risiko hin. Ein strukturierter Nachweis der Prüfung ist dennoch erforderlich.'), }; $statusGuidance = $statusCopy[$selected->status] ?? __('Review abschließen und Audit-Trail ergänzen.'); $executedDate = $selected->executed_at?->format('d.m.Y'); $executedTime = $selected->executed_at?->format('H:i'); $amountValue = $formatAmount($selected->amount, $selected->currency); $companyName = $company->legal_name ?? $company->name; $companyCountryLabel = $company->country ?? __('Jurisdiktion offen'); $counterpartyCountryLabel = $selected->counterparty_country ?? __('Jurisdiktion offen'); $referenceLabel = $selected->reference ?: __('Keine Referenz angegeben'); $flaggedReasonLabel = $selected->flagged_reason ?: __('Nicht dokumentiert'); $domesticFlow = $company->country && $selected->counterparty_country && strcasecmp($company->country, $selected->counterparty_country) === 0; $purposeDescription = __('Die Zahlung nutzt den Referenztext ":reference" und wurde mit dem Flag ":reason" markiert. Prüfen Sie Rechnungs- und Liefernachweise, um den wirtschaftlichen Anlass zu bestätigen.', [ 'reference' => $referenceLabel, 'reason' => $flaggedReasonLabel, ]); $countryNotes = []; if ($domesticFlow) { $countryNotes[] = __('Transparency International – CPI 2024: 75/100 (Rang 15).'); } else { $countryNotes[] = __('Ermitteln Sie länderspezifische Restrisiken (Sanktionen, Exportkontrolle, Devisenauflagen).'); } if (! $company->country || ! $selected->counterparty_country) { $countryNotes[] = __('Länderangaben unvollständig – KYC-Stammdaten aktualisieren.'); } $analysisSections = [ [ 'title' => __('Verwendungszweck'), 'description' => $purposeDescription, 'notes' => [ __('Rechnungskopie inkl. HR-/VAT-/IBAN-Angaben anfordern.'), __('3-Way-Match (PO–GR–Invoice) vollständig dokumentieren.'), ], ], [ 'title' => __('LEI'), 'description' => __('Für :company und :counterparty liegt kein verifizierter LEI im Datensatz vor. Ein Direktabruf im GLEIF-Register wird empfohlen.', [ 'company' => $companyName, 'counterparty' => $selected->counterparty, ]), 'notes' => [ __('Status: not verified.'), __('Bankinterne LEI-Prüfung vor Freigabe abschließen.'), ], ], [ 'title' => __('Länderanalyse'), 'description' => $domesticFlow ? __('Vorliegende Daten deuten auf eine Inlandszahlung (:from → :to) hin. Das systemische Korruptionsrisiko gilt als niedrig.', [ 'from' => $companyCountryLabel, 'to' => $counterpartyCountryLabel, ]) : __('Transaktion verläuft von :from nach :to. Prüfen Sie Export-/Importauflagen sowie mögliche Hochrisikofaktoren.', [ 'from' => $companyCountryLabel, 'to' => $counterpartyCountryLabel, ]), 'notes' => $countryNotes, ], [ 'title' => __('PEP-Exposure'), 'description' => __('Es liegen keine Hinweise auf PEP-Einfluss in den Stammdaten vor. Screening der wirtschaftlich Berechtigten bleibt fortzuführen.'), 'notes' => [ __('Manuelles Screening der Management- und Eigentümerebene abschließen (Status: not verified).'), ], ], [ 'title' => __('AML Exposure (transaktionsbezogen)'), 'description' => __('Klarer Leistungszweck und etablierte Gegenparteien wirken risikomindernd. Restrisiko besteht in der eindeutigen Identifikation der Rechnungseinheit und des Zahlungswegs.'), 'notes' => [ __('Kontoinhaber und IBAN mit der Rechnungseinheit matchen.'), __('Preis- und Mengenabweichungen gegen Bestellung analysieren.'), ], ], [ 'title' => __('Sanktions-Exposure'), 'description' => __('Bisherige Namenstests ergaben keine Treffer. Automatisierte Listenprüfungen sind auf den finalen Rechtsträger erneut auszuführen.'), 'notes' => [ __('EU-/OFAC-Abgleich sowie interne Sanktionslisten auf finaler Rechnungseinheit bestätigen.'), ], ], [ 'title' => __('Korruptions-/Bestechungs-Exposure'), 'description' => __('Makrorisiko im deutschen Markt ist gering. Beschaffungsrisiken (Kick-backs, Scheinrechnungen) bleiben bei Großvolumina bestehen.'), 'notes' => [ __('Zahlungen ausschließlich an bestätigte Gesellschaftskonten leisten.'), __('Vier-Augen-Prinzip und Liefernachweise dokumentieren.'), ], ], [ 'title' => __('Adverse Media Scanning (≤ 12 Monate)'), 'description' => __('In den letzten 12 Monaten wurden keine AML-relevanten Negativmeldungen identifiziert. Restrisiko: laufende Restrukturierungs- und Compliance-News beobachten.'), 'notes' => [ __('Interne Newsfeeds und Watchlists weiterführen.'), ], ], [ 'title' => __('KYC/EDD Feststellungen'), 'description' => __('KYC-Dossier aktualisieren: rechtliche Einheit, wirtschaftlich Berechtigte und Zahlungsweg eindeutig dokumentieren.'), 'notes' => [ __('IBAN/BIC sowie Steuerkennzeichen im Dossier hinterlegen.'), __('Rechnungskopie, Liefernachweis und Vertragsgrundlage einholen.'), ], ], [ 'title' => __('Gesamtbeurteilung (AML-Sicht)'), 'description' => __('Die Transaktion über :amount zwischen :company und :counterparty wirkt branchenüblich. Freigabe ist möglich, sobald Rechnungseinheit, Zahlungsweg und Screening final bestätigt sind.', [ 'amount' => $amountValue, 'company' => $companyName, 'counterparty' => $selected->counterparty, ]), 'notes' => [ __('Votum: Freigabefähig unter Auflagen (Rechnung, 3-Way-Match, Screening, Exportkontrolle).'), ], ], ]; $combineNotes = static function (array $sections): array { $notes = []; foreach ($sections as $section) { $notes = array_merge($notes, $section['notes'] ?? []); } return $notes; }; $clusterFactory = static function (string $title, array $sections) use ($combineNotes): array { $leadSection = $sections[0] ?? null; $contexts = array_slice($sections, 1); return [ 'title' => $title, 'lead_label' => $leadSection['title'] ?? null, 'lead' => $leadSection['description'] ?? '', 'contexts' => array_map( static fn (array $section): array => [ 'label' => $section['title'], 'body' => $section['description'], ], $contexts ), 'actions' => $combineNotes($sections), 'count' => count($sections), ]; }; $transactionSections = array_slice($analysisSections, 0, 2); $riskSections = array_slice($analysisSections, 2, 6); $dueSections = array_slice($analysisSections, 8); $analysisClusters = [ $clusterFactory(__('Transaktion & Zweck'), $transactionSections), $clusterFactory(__('Risikoperspektive'), $riskSections), $clusterFactory(__('Due Diligence & Abschluss'), $dueSections), ]; $analysisClusterCount = array_sum(array_map(static fn (array $cluster): int => $cluster['count'], $analysisClusters)); $sources = array_values(array_filter([ $companyName ? __('Unternehmensprofil :company (:country) – interne KYC-Stammdaten.', [ 'company' => $companyName, 'country' => $companyCountryLabel, ]) : null, __('Transaktionsdatensatz #:id – Core Banking Export.', ['id' => $selected->id]), $selected->reference ? __('Rechnungsreferenz ":reference" – Plausibilisierung steht aus.', ['reference' => $referenceLabel]) : null, __('GLEIF – LEI Register (Direktabruf, Status: not verified).'), __('Transparency International – CPI 2024 (Deutschland 75/100).'), __('EU/OFAC Sanktionsportale – orientierender Namensabgleich (endgültige Prüfung intern).'), ])); @endphp
{{ __('Case ID') }} {{ $selected->id }}

{{ $selected->counterparty }} — {{ $amountValue }}

{{ __('Ausgeführt am') }} {{ $executedDate ?? __('Nicht verfügbar') }} @if ($executedTime) • {{ $executedTime }} @endif • {{ $selected->channel ?: __('Kanal offen') }}

{{ $selected->statusLabel() }} {{ __('Risikowert') }} {{ $selected->risk_score }} ({{ $riskLevel }})

{{ __('Stichtag') }}

{{ $executedDate ?? __('Nicht verfügbar') }}

{{ $executedTime ? __('Zeit') . ' ' . $executedTime : __('Zeitpunkt offen') }}

{{ __('Kanal & Referenz') }}

{{ $selected->channel ?: __('Unbekannt') }}

{{ $selected->reference ?: __('Keine Referenz hinterlegt') }}

{{ __('Flagging durch') }}

{{ $selected->flagged_by ?: __('Automatisiertes Monitoring') }}

{{ $selected->flagged_reason ?: __('Flagging-Grund nicht dokumentiert') }}

{{ __('Empfohlene Maßnahme') }}

{{ $statusGuidance }}

{{ __('Parteiprofile') }}

{{ __('Sending party') }}

{{ __('Unternehmensprofil') }}

{{ $selected->company?->legal_name ?? $company->legal_name ?? $company->name }}

{{ __('Jurisdiktion') }}
{{ $company->country ?? __('Nicht verifiziert') }}
{{ __('Sitz') }}
{{ $company->headquarters ?? __('Nicht verifiziert') }}
{{ __('Sektor') }}
{{ $company->sector ?? __('Nicht verifiziert') }}

{{ __('Receiving party') }}

{{ __('Verifizierung offen') }}

{{ $selected->counterparty }}

{{ __('Jurisdiktion') }}
{{ $selected->counterparty_country ?? __('Nicht verifiziert') }}
{{ __('Referenzhinweis') }}
{{ $selected->reference ?: __('Keine Angabe') }}
{{ __('Next step') }}
{{ __('IBAN/Beneficiary eindeutig zuordnen') }}

{{ __('Transaktionsbewertung') }}

{{ $riskNarrative }}

  • • {{ __('Betrag') }} {{ $amountValue }}
  • • {{ __('Flagging-Grund') }}: {{ $selected->flagged_reason ?: __('nicht dokumentiert') }}
  • • {{ __('Kanal') }}: {{ $selected->channel ?: __('unbekannt') }}

{{ __('Kontrollaufgaben (Zusammenfassung)') }}

{{ __('Sicherstellen, dass Rechnungskopf, Beneficiary-Daten und 3-Way-Match (PO–GR–Invoice) dokumentiert sind. Interne Listenabgleiche (Sanktionen/PEP) auf den konkreten Rechtsträger erneut ausführen.') }}

@if (! empty($selected->signals))

{{ __('Detektionssignale') }}

@foreach ($selected->signals as $signal) {{ data_get($signal, 'type') }} — {{ data_get($signal, 'value') }} @endforeach
@endif

{{ __('Narrative Zusammenfassung') }}

{{ __('Die Transaktion verbindet :company (:jurisdiction) mit :counterparty (:country). Der Betrag von :amount wurde über den Kanal :channel ausgeführt. Für die abschließende AML-Beurteilung ist der Nachweis der wirtschaftlich Berechtigten sowie ein Abgleich der Zahlungsempfänger-Daten erforderlich.', [ 'company' => $company->legal_name ?? $company->name, 'jurisdiction' => $company->country ?? __('Jurisdiktion offen'), 'counterparty' => $selected->counterparty, 'country' => $selected->counterparty_country ?? __('Jurisdiktion offen'), 'amount' => $amountValue, 'channel' => $selected->channel ?: __('unbekannt'), ]) }}

{{ __('Hinweis: Interne Quellen (ERP, KYC-Stammdaten, Screening) ergänzen, um den Verifizierungsstatus auf „abgeschlossen“ anzuheben.') }}

@if (! empty($analysisClusters))

{{ __('Vertiefte Analysefelder') }}

{{ $analysisClusterCount }} {{ __('Prüfpunkte') }}

{{ __('Verdichten Sie die Prüfung auf drei Themenblöcke. Jeder Block fasst die wesentlichen Anforderungen zusammen.') }}

@foreach ($analysisClusters as $clusterIndex => $cluster)
@if ($cluster['lead_label']) {{ $cluster['lead_label'] }} @endif
{{ sprintf('%02d', $clusterIndex + 1) }} — {{ $cluster['title'] }}

{{ $cluster['lead'] }}

{{ $cluster['count'] }} {{ __('Teilfelder') }}
@if (! empty($cluster['contexts']))
@foreach ($cluster['contexts'] as $context)

{{ $context['label'] }}

{{ $context['body'] }}

@endforeach
@endif @if (! empty($cluster['actions']))

{{ __('Schlüsselmaßnahmen') }}

    @foreach ($cluster['actions'] as $action)
  • {{ $action }}
  • @endforeach
@endif
@endforeach
@endif @if (! empty($sources))
{{ __('Quellen & Verifizierungsstand (≤ 365 Tage)') }}
    @foreach ($sources as $source)
  • {{ $source }}
  • @endforeach
@endif

{{ __('Historie mit dieser Gegenpartei') }}

@forelse ($counterpartyHistory as $history)

{{ $history->executed_at?->format('d.m.Y H:i') }}

{{ $history->channel }} • {{ $history->reference }}

{{ $formatAmount($history->amount, $history->currency) }} {{ __('Risiko') }} {{ $history->risk_score }}
@empty
{{ __('Keine weiteren Transaktionen mit dieser Gegenpartei gefunden.') }}
@endforelse
@else
{{ __('Wählen Sie links eine Transaktion aus, um die vollständige Fallansicht zu öffnen.') }}
@endif