fix: transactions edited so it matches the powerpoint overview
This commit is contained in:
@@ -350,165 +350,7 @@ Transaction::STATUS_CLEARED => __('Keine Auffälligkeiten. Dokumentieren und arc
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@if (! empty($actionChecklist))
|
||||
<section class="rounded-3xl border border-slate-200/70 bg-gradient-to-br from-white via-indigo-50/40 to-slate-100/50 p-6 shadow-sm shadow-slate-900/10 backdrop-blur dark:border-slate-800/60 dark:bg-slate-950/95 dark:from-slate-950/90 dark:via-indigo-900/60 dark:to-slate-900/80">
|
||||
<div class="flex flex-wrap items-center justify-between gap-4">
|
||||
<div class="space-y-2">
|
||||
<p class="inline-flex items-center gap-2 rounded-full border border-indigo-200/60 bg-indigo-500/10 px-3 py-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-indigo-700 shadow-sm dark:border-white/15 dark:bg-white/10 dark:text-slate-200">
|
||||
{{ __('Review-Checkliste') }}
|
||||
</p>
|
||||
<h3 class="text-lg font-semibold text-slate-900 dark:text-slate-100">{{ $checklistIntro }}</h3>
|
||||
<p class="text-xs text-slate-600 dark:text-slate-300">
|
||||
{{ __('Priorisieren Sie die Kernaufgaben, um den Fallabschluss revisionssicher vorzubereiten.') }}
|
||||
</p>
|
||||
</div>
|
||||
<span class="inline-flex items-center rounded-full border border-indigo-200/60 bg-white/90 px-3 py-1 text-[11px] font-semibold uppercase tracking-wide text-indigo-700 shadow-sm dark:border-white/20 dark:bg-white/10 dark:text-slate-100">
|
||||
{{ count($actionChecklist) }} {{ __('Schritte') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="mt-5 overflow-x-auto">
|
||||
<ol class="flex min-w-full gap-4">
|
||||
@foreach ($actionChecklist as $index => $item)
|
||||
<li class="group flex min-w-[240px] flex-1 items-start gap-3 rounded-2xl border border-indigo-100/70 bg-white/95 p-4 text-sm shadow-sm transition hover:-translate-y-0.5 hover:border-indigo-300/70 hover:bg-white hover:shadow-lg hover:shadow-indigo-500/15 dark:border-white/15 dark:bg-white/5 dark:hover:bg-white/10">
|
||||
<span class="mt-0.5 inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md border border-indigo-200/70 bg-indigo-500/10 text-xs font-semibold text-indigo-700 shadow-sm dark:border-white/40 dark:bg-white/10 dark:text-slate-100">
|
||||
{{ sprintf('%02d', $index + 1) }}
|
||||
</span>
|
||||
<div class="space-y-1 text-slate-700 dark:text-slate-100">
|
||||
<p class="font-semibold tracking-wide text-slate-900 transition group-hover:text-indigo-700 dark:text-slate-100 dark:group-hover:text-indigo-200">{{ $item['title'] }}</p>
|
||||
<p class="text-[11px] leading-relaxed text-slate-500 transition group-hover:text-slate-600 dark:text-slate-300 dark:group-hover:text-slate-200">{{ $item['description'] }}</p>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ol>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
<div class="grid gap-6 xl:grid-cols-[minmax(0,1.15fr)_minmax(0,1.85fr)]">
|
||||
<div class="space-y-4">
|
||||
<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-center justify-between gap-4">
|
||||
<div>
|
||||
<h2 class="text-lg font-semibold text-zinc-900 dark:text-zinc-100">{{ __('Transaktionsliste') }}</h2>
|
||||
<p class="text-sm text-zinc-500 dark:text-zinc-400">{{ __('Filtern Sie nach Status und Kanal, um relevante Vorgänge für dieses Unternehmen zu analysieren.') }}</p>
|
||||
</div>
|
||||
<flux:badge variant="outline">
|
||||
{{ $transactions->total() }} {{ __('Ergebnisse') }}
|
||||
</flux:badge>
|
||||
</div>
|
||||
|
||||
<div class="mt-4 flex flex-wrap items-center gap-3">
|
||||
<flux:select wire:model.live="status">
|
||||
@foreach ($statusOptions as $value => $label)
|
||||
<option value="{{ $value }}">{{ $label }}</option>
|
||||
@endforeach
|
||||
</flux:select>
|
||||
|
||||
<flux:select wire:model.live="channel">
|
||||
@foreach ($channelOptions as $value => $label)
|
||||
<option value="{{ $value }}">{{ $label }}</option>
|
||||
@endforeach
|
||||
</flux:select>
|
||||
</div>
|
||||
|
||||
<div class="mt-6 space-y-3">
|
||||
@forelse ($transactions as $transaction)
|
||||
<button
|
||||
wire:click="selectTransaction({{ $transaction->id }})"
|
||||
wire:key="txn-{{ $transaction->id }}"
|
||||
@class([ 'w-full rounded-2xl border p-4 text-left transition focus:outline-none focus:ring-2 focus:ring-indigo-500/80' , 'border-zinc-200/70 bg-white shadow-sm backdrop-blur dark:border-zinc-700/60 dark:bg-zinc-900/80'=> $selected?->id !== $transaction->id,
|
||||
'border-indigo-300/70 bg-indigo-50/80 shadow-md ring-2 ring-indigo-200/60 dark:border-indigo-500/40 dark:bg-indigo-900/50 dark:ring-indigo-500/30' => $selected?->id === $transaction->id,
|
||||
])>
|
||||
<div class="flex flex-wrap items-start justify-between gap-4">
|
||||
<div class="space-y-1">
|
||||
<p class="text-sm font-semibold text-zinc-800 dark:text-zinc-100">
|
||||
{{ $transaction->counterparty }}
|
||||
</p>
|
||||
<p class="text-xs text-zinc-500 dark:text-zinc-400">
|
||||
{{ $transaction->counterparty_country }} • {{ $transaction->executed_at?->format('d.m.Y H:i') }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="flex flex-col items-end gap-2">
|
||||
<span class="text-lg font-semibold text-zinc-900 dark:text-zinc-100">
|
||||
{{ $formatAmount($transaction->amount, $transaction->currency) }}
|
||||
</span>
|
||||
<span class="inline-flex items-center gap-2 rounded-full px-3 py-1 text-xs font-semibold {{ $statusStyles[$transaction->status] ?? 'bg-zinc-500/10 text-zinc-600 border border-zinc-500/20' }}">
|
||||
{{ $transaction->statusLabel() }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-3 flex flex-wrap items-center gap-2 text-xs text-zinc-500 dark:text-zinc-400">
|
||||
<span class="inline-flex items-center gap-1 rounded-md bg-slate-100/60 px-2 py-1 font-semibold text-slate-700 dark:bg-slate-800/80 dark:text-slate-200">
|
||||
Risiko {{ $transaction->risk_score }}
|
||||
</span>
|
||||
<span>{{ $transaction->channel }}</span>
|
||||
<span>•</span>
|
||||
<span class="font-mono">{{ $transaction->reference }}</span>
|
||||
<flux:link
|
||||
:href="route('company.transactions', ['company' => $company->id, 'transaction' => $transaction->id])"
|
||||
wire:navigate
|
||||
class="inline-flex items-center gap-1 font-medium text-indigo-600 transition hover:text-indigo-800 dark:text-indigo-300 dark:hover:text-indigo-200">
|
||||
{{ __('Fallansicht öffnen') }}
|
||||
<flux:icon name="arrow-top-right-on-square" class="h-4 w-4" />
|
||||
</flux:link>
|
||||
</div>
|
||||
</button>
|
||||
@empty
|
||||
<div class="rounded-2xl border border-dashed border-zinc-300/70 bg-zinc-50/70 p-6 text-center text-sm text-zinc-500 dark:border-zinc-600/50 dark:bg-zinc-900/70 dark:text-zinc-300">
|
||||
{{ __('Keine Transaktionen für die aktuellen Filter gefunden.') }}
|
||||
</div>
|
||||
@endforelse
|
||||
</div>
|
||||
|
||||
@if ($transactions->hasPages())
|
||||
<div class="mt-4 flex items-center justify-between gap-3 border-t border-zinc-200/70 bg-zinc-50/70 px-4 py-3 text-sm text-zinc-500 dark:border-zinc-700/60 dark:bg-zinc-900/70 dark:text-zinc-300">
|
||||
<button
|
||||
wire:click="previousPage"
|
||||
wire:loading.attr="disabled"
|
||||
@disabled($transactions->onFirstPage())
|
||||
class="inline-flex items-center gap-2 rounded-full border border-zinc-300/70 bg-white/70 px-4 py-1.5 font-medium text-zinc-700 transition hover:bg-white dark:border-zinc-600/70 dark:bg-zinc-800/80 dark:text-zinc-200 dark:hover:bg-zinc-800/60"
|
||||
>
|
||||
‹ {{ __('Zurück') }}
|
||||
</button>
|
||||
<span class="text-xs font-medium uppercase tracking-wide text-zinc-500 dark:text-zinc-400">
|
||||
{{ __('Seite') }} {{ $transactions->currentPage() }} {{ __('von') }} {{ $transactions->lastPage() }}
|
||||
</span>
|
||||
<button
|
||||
wire:click="nextPage"
|
||||
wire:loading.attr="disabled"
|
||||
@disabled(! $transactions->hasMorePages())
|
||||
class="inline-flex items-center gap-2 rounded-full border border-zinc-300/70 bg-white/70 px-4 py-1.5 font-medium text-zinc-700 transition hover:bg-white dark:border-zinc-600/70 dark:bg-zinc-800/80 dark:text-zinc-200 dark:hover:bg-zinc-800/60"
|
||||
>
|
||||
{{ __('Weiter') }} ›
|
||||
</button>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<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">
|
||||
<h3 class="text-sm font-semibold uppercase tracking-wide text-zinc-500 dark:text-zinc-400">{{ __('Neueste Alerts') }}</h3>
|
||||
<ul class="mt-4 space-y-3 text-sm text-zinc-600 dark:text-zinc-300">
|
||||
@forelse ($recentAlerts as $alert)
|
||||
<li class="flex items-start justify-between gap-3 rounded-2xl border border-zinc-100/70 bg-zinc-50/70 p-3 dark:border-zinc-700/70 dark:bg-zinc-800/70">
|
||||
<div>
|
||||
<p class="font-semibold text-zinc-900 dark:text-zinc-100">{{ $alert->counterparty }}</p>
|
||||
<p class="text-xs text-zinc-500 dark:text-zinc-400">{{ $alert->executed_at?->format('d.m.Y H:i') }} • {{ $alert->channel }}</p>
|
||||
</div>
|
||||
<span class="inline-flex items-center gap-2 rounded-full px-3 py-1 text-xs font-semibold {{ $statusStyles[$alert->status] ?? 'bg-zinc-500/10 text-zinc-600 border border-zinc-500/20' }}">
|
||||
{{ $alert->statusLabel() }}
|
||||
</span>
|
||||
</li>
|
||||
@empty
|
||||
<li 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">
|
||||
{{ __('Aktuell liegen keine offenen Alerts vor.') }}
|
||||
</li>
|
||||
@endforelse
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="space-y-6">
|
||||
<div class="space-y-6">
|
||||
@if ($selected)
|
||||
@php
|
||||
$badgeStyle = $statusStyles[$selected->status] ?? 'bg-zinc-500/10 text-zinc-600 border border-zinc-500/20';
|
||||
|
||||
Reference in New Issue
Block a user