fix: anpassungen lt. Besprechung Frontend/ Powerpoint 10-11-2025
This commit is contained in:
@@ -34,13 +34,23 @@
|
|||||||
$formatNumber = static fn ($value): string => number_format($value, 0, ',', '.');
|
$formatNumber = static fn ($value): string => number_format($value, 0, ',', '.');
|
||||||
|
|
||||||
$riskSegments = collect([
|
$riskSegments = collect([
|
||||||
'Kritisch (≥80)' => $transactions->filter(fn ($trx) => $trx->risk_score >= 80),
|
'Kritisch (≥80)' => [
|
||||||
'Hoch (65-79)' => $transactions->filter(fn ($trx) => $trx->risk_score >= 65 && $trx->risk_score < 80),
|
'transactions' => $transactions->filter(fn ($trx) => $trx->risk_score >= 80),
|
||||||
'Beobachtung (40-64)' => $transactions->filter(fn ($trx) => $trx->risk_score >= 40 && $trx->risk_score < 65),
|
'status' => \App\Models\Transaction::STATUS_TRUE_POSITIVE,
|
||||||
])->map(fn ($group, $label) => [
|
],
|
||||||
|
'Hoch (65-79)' => [
|
||||||
|
'transactions' => $transactions->filter(fn ($trx) => $trx->risk_score >= 65 && $trx->risk_score < 80),
|
||||||
|
'status' => \App\Models\Transaction::STATUS_FALSE_POSITIVE,
|
||||||
|
],
|
||||||
|
'Gering (40-64)' => [
|
||||||
|
'transactions' => $transactions->filter(fn ($trx) => $trx->risk_score >= 40 && $trx->risk_score < 65),
|
||||||
|
'status' => \App\Models\Transaction::STATUS_CLEARED,
|
||||||
|
],
|
||||||
|
])->map(fn ($data, $label) => [
|
||||||
'label' => $label,
|
'label' => $label,
|
||||||
'count' => $group->count(),
|
'count' => $data['transactions']->count(),
|
||||||
'volume' => $group->sum('amount'),
|
'volume' => $data['transactions']->sum('amount'),
|
||||||
|
'status' => $data['status'],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$topCompanies = $activeAlerts
|
$topCompanies = $activeAlerts
|
||||||
@@ -94,22 +104,24 @@
|
|||||||
<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">
|
<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">
|
||||||
<div class="flex flex-wrap items-end justify-between gap-4">
|
<div class="flex flex-wrap items-end justify-between gap-4">
|
||||||
<div>
|
<div>
|
||||||
<h2 class="text-xl font-semibold text-zinc-900 dark:text-zinc-100">Risikolassen und Automatisierungsscore</h2>
|
<h2 class="text-xl font-semibold text-zinc-900 dark:text-zinc-100">Risikoklassen und Automatisierungsscore</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="inline-flex items-center gap-2 rounded-full border border-indigo-200/70 bg-indigo-500/10 px-4 py-1.5 text-xs font-semibold uppercase tracking-wide text-indigo-700 dark:border-indigo-500/30 dark:text-indigo-200">
|
<div class="inline-flex items-center gap-2 rounded-full border border-indigo-200/70 bg-indigo-500/10 px-4 py-1.5 text-xs font-semibold uppercase tracking-wide text-indigo-700 dark:border-indigo-500/30 dark:text-indigo-200">
|
||||||
Automationspräzision {{ $precisionRate }}%
|
Automatisierungsscore {{ $precisionRate }}%
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-6 grid gap-3">
|
<div class="mt-6 grid gap-3">
|
||||||
@foreach ($riskSegments as $segment)
|
@foreach ($riskSegments as $segment)
|
||||||
<div class="flex items-center justify-between gap-4 rounded-2xl border border-zinc-200/70 bg-zinc-50/80 p-4 transition hover:-translate-y-0.5 hover:shadow-md dark:border-zinc-700/60 dark:bg-zinc-800/70">
|
<a
|
||||||
|
href="{{ route('transaction-review', ['status' => $segment['status']]) }}"
|
||||||
|
class="flex items-center justify-between gap-4 rounded-2xl border border-zinc-200/70 bg-zinc-50/80 p-4 transition hover:-translate-y-0.5 hover:shadow-md hover:border-indigo-300/70 hover:bg-indigo-50/50 dark:border-zinc-700/60 dark:bg-zinc-800/70 dark:hover:border-indigo-500/50 dark:hover:bg-indigo-900/20 cursor-pointer group">
|
||||||
<div class="flex items-center gap-3">
|
<div class="flex items-center gap-3">
|
||||||
<span class="inline-flex h-10 w-10 items-center justify-center rounded-full bg-gradient-to-br from-indigo-500 to-emerald-500 text-sm font-semibold text-white">
|
<span class="inline-flex h-10 w-10 items-center justify-center rounded-full bg-gradient-to-br from-indigo-500 to-emerald-500 text-sm font-semibold text-white group-hover:scale-110 transition-transform">
|
||||||
{{ $loop->iteration }}
|
{{ $loop->iteration }}
|
||||||
</span>
|
</span>
|
||||||
<div>
|
<div>
|
||||||
<p class="text-sm font-semibold text-zinc-900 dark:text-zinc-100">{{ $segment['label'] }}</p>
|
<p class="text-sm font-semibold text-zinc-900 dark:text-zinc-100 group-hover:text-indigo-700 dark:group-hover:text-indigo-300">{{ $segment['label'] }}</p>
|
||||||
<p class="text-xs text-zinc-500 dark:text-zinc-400">{{ $formatNumber($segment['count']) }} Beobachtungen</p>
|
<p class="text-xs text-zinc-500 dark:text-zinc-400">{{ $formatNumber($segment['count']) }} Beobachtungen</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -117,7 +129,7 @@
|
|||||||
<p class="text-xs uppercase tracking-wide text-zinc-400">Volumen</p>
|
<p class="text-xs uppercase tracking-wide text-zinc-400">Volumen</p>
|
||||||
<p class="text-sm font-semibold text-zinc-900 dark:text-zinc-100">{{ $formatCurrencyCompact($segment['volume']) }}</p>
|
<p class="text-sm font-semibold text-zinc-900 dark:text-zinc-100">{{ $formatCurrencyCompact($segment['volume']) }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</a>
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -80,9 +80,9 @@ new #[Layout('components.layouts.app'), Title('Transaktionsprüfung')] class ext
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'all' => 'Alle Prüfaufträge',
|
'all' => 'Alle Prüfaufträge',
|
||||||
Transaction::STATUS_TRUE_POSITIVE => 'Bestätigte Treffer',
|
Transaction::STATUS_TRUE_POSITIVE => 'Kritisches Risiko',
|
||||||
Transaction::STATUS_FALSE_POSITIVE => 'Fehlalarme',
|
Transaction::STATUS_FALSE_POSITIVE => 'Hohes Risiko',
|
||||||
Transaction::STATUS_CLEARED => 'Freigegebene Vorgänge',
|
Transaction::STATUS_CLEARED => 'Geringes Risiko',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,17 +261,17 @@ Transaction::STATUS_CLEARED => [
|
|||||||
<p class="mt-1 text-xs text-slate-300">Volumen: {{ $formatAmount($total['amount']) }}</p>
|
<p class="mt-1 text-xs text-slate-300">Volumen: {{ $formatAmount($total['amount']) }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="rounded-2xl border border-rose-400/40 bg-rose-500/15 p-4 text-center backdrop-blur-sm shadow-lg shadow-rose-900/40">
|
<div class="rounded-2xl border border-rose-400/40 bg-rose-500/15 p-4 text-center backdrop-blur-sm shadow-lg shadow-rose-900/40">
|
||||||
<p class="text-xs font-medium uppercase tracking-wide text-rose-50">Bestätigte Treffer</p>
|
<p class="text-xs font-medium uppercase tracking-wide text-rose-50">Kritisches Risiko</p>
|
||||||
<p class="text-2xl font-semibold text-rose-100">{{ $confirmed['count'] }}</p>
|
<p class="text-2xl font-semibold text-rose-100">{{ $confirmed['count'] }}</p>
|
||||||
<p class="mt-1 text-xs text-rose-100/80">Volumen: {{ $formatAmount($confirmed['amount']) }}</p>
|
<p class="mt-1 text-xs text-rose-100/80">Volumen: {{ $formatAmount($confirmed['amount']) }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="rounded-2xl border border-amber-400/40 bg-amber-400/15 p-4 text-center backdrop-blur-sm shadow-lg shadow-amber-900/30">
|
<div class="rounded-2xl border border-amber-400/40 bg-amber-400/15 p-4 text-center backdrop-blur-sm shadow-lg shadow-amber-900/30">
|
||||||
<p class="text-xs font-medium uppercase tracking-wide text-amber-50">Fehlalarme</p>
|
<p class="text-xs font-medium uppercase tracking-wide text-amber-50">Hohes Risiko</p>
|
||||||
<p class="text-2xl font-semibold text-amber-100">{{ $falseAlarm['count'] }}</p>
|
<p class="text-2xl font-semibold text-amber-100">{{ $falseAlarm['count'] }}</p>
|
||||||
<p class="mt-1 text-xs text-amber-100/80">Volumen: {{ $formatAmount($falseAlarm['amount']) }}</p>
|
<p class="mt-1 text-xs text-amber-100/80">Volumen: {{ $formatAmount($falseAlarm['amount']) }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="rounded-2xl border border-emerald-400/40 bg-emerald-400/15 p-4 text-center backdrop-blur-sm shadow-lg shadow-emerald-900/30">
|
<div class="rounded-2xl border border-emerald-400/40 bg-emerald-400/15 p-4 text-center backdrop-blur-sm shadow-lg shadow-emerald-900/30">
|
||||||
<p class="text-xs font-medium uppercase tracking-wide text-emerald-50">Freigegeben</p>
|
<p class="text-xs font-medium uppercase tracking-wide text-emerald-50">Geringes Risiko</p>
|
||||||
<p class="text-2xl font-semibold text-emerald-100">{{ $cleared['count'] }}</p>
|
<p class="text-2xl font-semibold text-emerald-100">{{ $cleared['count'] }}</p>
|
||||||
<p class="mt-1 text-xs text-emerald-100/80">Volumen: {{ $formatAmount($cleared['amount']) }}</p>
|
<p class="mt-1 text-xs text-emerald-100/80">Volumen: {{ $formatAmount($cleared['amount']) }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user