fix: changes and fixes for the detail transaction view
This commit is contained in:
@@ -1383,7 +1383,7 @@ Transaction::STATUS_CLEARED => __('Keine Auffälligkeiten. Dokumentieren und arc
|
|||||||
]));
|
]));
|
||||||
@endphp
|
@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' ,
|
<div @class([ 'rounded-3xl p-7 shadow-lg shadow-slate-900/5 backdrop-blur' ,
|
||||||
$caseBoxClass,
|
$caseBoxClass,
|
||||||
])>
|
])>
|
||||||
@@ -1476,18 +1476,78 @@ Transaction::STATUS_CLEARED => __('Keine Auffälligkeiten. Dokumentieren und arc
|
|||||||
<dd class="text-right">{{ $selected->counterparty_country ?? __('Nicht verifiziert') }}</dd>
|
<dd class="text-right">{{ $selected->counterparty_country ?? __('Nicht verifiziert') }}</dd>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-between gap-3">
|
<div class="flex justify-between gap-3">
|
||||||
<dt>{{ __('Referenzhinweis') }}</dt>
|
<dt>{{ __('Sitz') }}</dt>
|
||||||
<dd class="text-right">{{ $selected->reference ?: __('Keine Angabe') }}</dd>
|
<dd class="text-right">{{ $selected->counterparty_headquarters ?? __('Nicht verifiziert') }}</dd>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-between gap-3">
|
<div class="flex justify-between gap-3">
|
||||||
<dt>{{ __('Next step') }}</dt>
|
<dt>{{ __('Sektor') }}</dt>
|
||||||
<dd class="text-right">{{ __('IBAN/Beneficiary eindeutig zuordnen') }}</dd>
|
<dd class="text-right">{{ $selected->counterparty_sector ?? __('Nicht verifiziert') }}</dd>
|
||||||
</div>
|
</div>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</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="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">
|
<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>
|
<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">
|
<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="text-xs font-semibold uppercase tracking-wide">{{ __('Kontrollaufgaben (Zusammenfassung)') }}</p>
|
||||||
<p class="mt-2 leading-relaxed">
|
<p class="mt-2 leading-relaxed">
|
||||||
{{ __('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.') }}
|
{{ data_get($selected->tranx_recommendation, 'answer') ?: __('Keine Kontrollaufgaben verfügbar.') }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</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">
|
<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="text-xs font-semibold uppercase tracking-wide">{{ __('Narrative Zusammenfassung') }}</p>
|
||||||
<p class="mt-2 leading-relaxed">
|
<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.', [
|
{{ data_get($selected->tranx_report, 'answer') ?: __('Keine narrative Zusammenfassung verfügbar.') }}
|
||||||
'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.') }}
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if (! empty($analysisClusters))
|
{{-- @if (! empty($analysisClusters))
|
||||||
<div class="mt-8 space-y-5">
|
<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="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">
|
<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>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif --}}
|
||||||
|
|
||||||
@if (! empty($sources))
|
@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">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@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>
|
||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
|
|||||||
Reference in New Issue
Block a user