fix: changes and fixes for the detail transaction view

This commit is contained in:
2025-11-20 14:56:28 +01:00
parent 67df5f36c1
commit 3a54f6cba3
2 changed files with 69 additions and 44 deletions
Vendored
BIN
View File
Binary file not shown.
@@ -1383,7 +1383,7 @@ Transaction::STATUS_CLEARED => __('Keine Auffälligkeiten. Dokumentieren und arc
]));
@endphp
<div class="grid gap-6 xl:grid-cols-[minmax(0,1.65fr)_minmax(0,1fr)]">
<div class="grid gap-6">
<div @class([ 'rounded-3xl p-7 shadow-lg shadow-slate-900/5 backdrop-blur' ,
$caseBoxClass,
])>
@@ -1476,18 +1476,78 @@ Transaction::STATUS_CLEARED => __('Keine Auffälligkeiten. Dokumentieren und arc
<dd class="text-right">{{ $selected->counterparty_country ?? __('Nicht verifiziert') }}</dd>
</div>
<div class="flex justify-between gap-3">
<dt>{{ __('Referenzhinweis') }}</dt>
<dd class="text-right">{{ $selected->reference ?: __('Keine Angabe') }}</dd>
<dt>{{ __('Sitz') }}</dt>
<dd class="text-right">{{ $selected->counterparty_headquarters ?? __('Nicht verifiziert') }}</dd>
</div>
<div class="flex justify-between gap-3">
<dt>{{ __('Next step') }}</dt>
<dd class="text-right">{{ __('IBAN/Beneficiary eindeutig zuordnen') }}</dd>
<dt>{{ __('Sektor') }}</dt>
<dd class="text-right">{{ $selected->counterparty_sector ?? __('Nicht verifiziert') }}</dd>
</div>
</dl>
</div>
</div>
</div>
{{-- Historie mit dieser Gegenpartei als Dropdown --}}
@if (!empty($counterpartyHistory) && $counterpartyHistory->isNotEmpty())
<div class="mt-8 rounded-3xl border border-slate-200/70 bg-white/95 p-6 shadow-sm dark:border-slate-700/70 dark:bg-slate-900/90">
<div
x-data="{ openHistory: false }"
class="rounded-2xl border-2 border-emerald-200/70 bg-gradient-to-br from-emerald-50/70 to-slate-50/70 transition dark:border-emerald-700/70 dark:from-emerald-900/20 dark:to-slate-800/70"
>
<button
@click="openHistory = !openHistory"
type="button"
class="flex w-full items-center justify-between gap-4 p-6 text-left transition hover:bg-emerald-100/50 dark:hover:bg-emerald-900/30"
>
<div class="flex-1 space-y-2">
<div class="flex items-center gap-3">
<span class="inline-flex items-center rounded-full border border-emerald-400/70 bg-emerald-500/20 px-3 py-1 text-xs font-bold uppercase tracking-wide text-emerald-700 dark:border-emerald-500/60 dark:bg-emerald-500/30 dark:text-emerald-200">
{{ __('Gegenpartei-Historie') }}
</span>
<h4 class="text-lg font-bold text-slate-900 dark:text-white">
{{ __('Historie mit dieser Gegenpartei') }}
</h4>
</div>
<p class="text-xs text-slate-500 dark:text-slate-400">
{{ $counterpartyHistory->count() }} {{ __('Transaktionen gefunden') }}
</p>
</div>
<div class="flex items-center gap-2">
<flux:icon
name="chevron-down"
class="h-6 w-6 text-emerald-600 transition-transform duration-200 dark:text-emerald-400"
::class="{ 'rotate-180': openHistory }"
/>
</div>
</button>
<div
x-show="openHistory"
x-collapse
class="border-t-2 border-emerald-200/70 dark:border-emerald-700/60"
>
<div class="space-y-3 p-6">
@foreach ($counterpartyHistory as $history)
<div class="flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-slate-200/70 bg-white/90 p-4 text-sm text-slate-600 transition hover:bg-slate-50 dark:border-slate-700/70 dark:bg-slate-800/90 dark:text-slate-300 dark:hover:bg-slate-700/60">
<div>
<p class="font-semibold text-slate-900 dark:text-slate-100">{{ $history->executed_at?->format('d.m.Y H:i') }}</p>
<p class="text-xs text-slate-500 dark:text-slate-400">{{ $history->channel }} {{ $history->reference }}</p>
</div>
<div class="flex flex-col items-end gap-1">
<span class="text-sm font-semibold text-slate-900 dark:text-slate-100">{{ $formatAmount($history->amount, $history->currency) }}</span>
<span class="inline-flex items-center gap-1 rounded-md bg-slate-100/60 px-2 py-0.5 text-xs font-semibold text-slate-700 dark:bg-slate-800/80 dark:text-slate-200">
{{ __('Risiko') }} {{ $history->risk_score }}
</span>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
@endif
<div class="mt-8 grid gap-4 lg:grid-cols-[minmax(0,1.1fr)_minmax(0,0.9fr)]">
<div class="rounded-2xl border border-slate-200/70 bg-slate-50/80 p-5 dark:border-slate-700/70 dark:bg-slate-800/70">
<p class="text-xs font-semibold uppercase tracking-wide text-slate-400">{{ __('Transaktionsbewertung') }}</p>
@@ -1502,7 +1562,7 @@ Transaction::STATUS_CLEARED => __('Keine Auffälligkeiten. Dokumentieren und arc
<div class="rounded-2xl border border-emerald-400/40 bg-emerald-500/10 p-5 text-sm text-emerald-900 shadow-sm shadow-emerald-900/10 dark:border-emerald-500/40 dark:bg-emerald-500/10 dark:text-emerald-100">
<p class="text-xs font-semibold uppercase tracking-wide">{{ __('Kontrollaufgaben (Zusammenfassung)') }}</p>
<p class="mt-2 leading-relaxed">
{{ __('Sicherstellen, dass Rechnungskopf, Beneficiary-Daten und 3-Way-Match (POGRInvoice) dokumentiert sind. Interne Listenabgleiche (Sanktionen/PEP) auf den konkreten Rechtsträger erneut ausführen.') }}
{{ data_get($selected->tranx_recommendation, 'answer') ?: __('Keine Kontrollaufgaben verfügbar.') }}
</p>
</div>
</div>
@@ -1524,21 +1584,11 @@ Transaction::STATUS_CLEARED => __('Keine Auffälligkeiten. Dokumentieren und arc
<div class="mt-8 rounded-2xl border border-indigo-200/60 bg-indigo-500/10 p-5 text-sm text-indigo-900 dark:border-indigo-500/30 dark:bg-indigo-500/10 dark:text-indigo-100">
<p class="text-xs font-semibold uppercase tracking-wide">{{ __('Narrative Zusammenfassung') }}</p>
<p class="mt-2 leading-relaxed">
{{ __('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'),
]) }}
</p>
<p class="mt-2 text-xs text-indigo-800 dark:text-indigo-200">
{{ __('Hinweis: Interne Quellen (ERP, KYC-Stammdaten, Screening) ergänzen, um den Verifizierungsstatus auf „abgeschlossen“ anzuheben.') }}
{{ data_get($selected->tranx_report, 'answer') ?: __('Keine narrative Zusammenfassung verfügbar.') }}
</p>
</div>
@if (! empty($analysisClusters))
{{-- @if (! empty($analysisClusters))
<div class="mt-8 space-y-5">
<div class="rounded-3xl border border-slate-200/70 bg-white/95 p-6 shadow-sm transition hover:shadow-md dark:border-slate-700/70 dark:bg-slate-900/90">
<div class="flex flex-wrap items-center justify-between gap-3">
@@ -1600,7 +1650,7 @@ Transaction::STATUS_CLEARED => __('Keine Auffälligkeiten. Dokumentieren und arc
</div>
@endforeach
</div>
@endif
@endif --}}
@if (! empty($sources))
<div class="mt-6 rounded-2xl border border-slate-200/70 bg-slate-50/80 p-5 dark:border-slate-700/70 dark:bg-slate-800/70">
@@ -1793,32 +1843,7 @@ Transaction::STATUS_CLEARED => __('Keine Auffälligkeiten. Dokumentieren und arc
</div>
</div>
@endif
</div>
<div class="space-y-6">
<div class="rounded-3xl border border-zinc-200/70 bg-white/95 p-6 shadow-sm backdrop-blur dark:border-zinc-700/70 dark:bg-zinc-900/90">
<h4 class="text-sm font-semibold uppercase tracking-wide text-zinc-500 dark:text-zinc-400">{{ __('Historie mit dieser Gegenpartei') }}</h4>
<div class="mt-4 space-y-3">
@forelse ($counterpartyHistory as $history)
<div class="flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-zinc-100/70 bg-zinc-50/70 p-4 text-sm text-zinc-600 dark:border-zinc-700/70 dark:bg-zinc-800/70 dark:text-zinc-300">
<div>
<p class="font-semibold text-zinc-900 dark:text-zinc-100">{{ $history->executed_at?->format('d.m.Y H:i') }}</p>
<p class="text-xs text-zinc-500 dark:text-zinc-400">{{ $history->channel }} {{ $history->reference }}</p>
</div>
<div class="flex flex-col items-end gap-1">
<span class="text-sm font-semibold text-zinc-900 dark:text-zinc-100">{{ $formatAmount($history->amount, $history->currency) }}</span>
<span class="inline-flex items-center gap-1 rounded-md bg-slate-100/60 px-2 py-0.5 text-xs font-semibold text-slate-700 dark:bg-slate-800/80 dark:text-slate-200">
{{ __('Risiko') }} {{ $history->risk_score }}
</span>
</div>
</div>
@empty
<div class="rounded-2xl border border-dashed border-zinc-300/60 bg-zinc-50/60 p-4 text-center text-xs text-zinc-500 dark:border-zinc-600/50 dark:bg-zinc-900/60">
{{ __('Keine weiteren Transaktionen mit dieser Gegenpartei gefunden.') }}
</div>
@endforelse
</div>
</div>
</div>
</div>
@else