14-04-2026
This commit is contained in:
parent
f58c709945
commit
0f82fea88a
72 changed files with 7414 additions and 148 deletions
111
resources/views/admin/payment-dashboard/management.blade.php
Normal file
111
resources/views/admin/payment-dashboard/management.blade.php
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<div>
|
||||
<h4 class="mb-0">
|
||||
<i class="ion ion-md-alert text-danger"></i> Payment Monitor
|
||||
</h4>
|
||||
<small class="text-muted">Stand: {{ now()->format('d.m.Y H:i') }}</small>
|
||||
</div>
|
||||
<a href="{{ route('admin.payment-dashboard.index') }}" class="btn btn-outline-secondary btn-sm">
|
||||
<i class="ion ion-md-code-working"></i> Entwickler-Ansicht
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{{-- Ampel-Karten --}}
|
||||
<div class="row mb-4">
|
||||
<div class="col-md-4">
|
||||
@php
|
||||
$level = $stats['critical_open'] > 0 ? 'danger' : ($stats['open_incidents'] > 0 ? 'warning' : 'success');
|
||||
$levelText = $stats['critical_open'] > 0 ? 'Kritische Störung!' : ($stats['open_incidents'] > 0 ? 'Offene Störungen' : 'Alles in Ordnung');
|
||||
@endphp
|
||||
<div class="card border-{{ $level }}">
|
||||
<div class="card-body text-center py-4">
|
||||
<i class="ion ion-md-{{ $level === 'success' ? 'checkmark-circle' : 'alert' }} text-{{ $level }}" style="font-size: 3rem"></i>
|
||||
<h5 class="mt-2 text-{{ $level }}">{{ $levelText }}</h5>
|
||||
<div class="display-4 font-weight-bold">{{ $stats['open_incidents'] }}</div>
|
||||
<div class="text-muted">Offene Störungen</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card {{ $transactionStats['failed'] > 0 ? 'border-warning' : '' }}">
|
||||
<div class="card-body text-center py-4">
|
||||
<i class="ion ion-md-card text-{{ $transactionStats['success_rate'] >= 95 ? 'success' : ($transactionStats['success_rate'] >= 80 ? 'warning' : 'danger') }}" style="font-size: 3rem"></i>
|
||||
<h5 class="mt-2">Zahlungsquote</h5>
|
||||
<div class="display-4 font-weight-bold text-{{ $transactionStats['success_rate'] >= 95 ? 'success' : ($transactionStats['success_rate'] >= 80 ? 'warning' : 'danger') }}">
|
||||
{{ $transactionStats['success_rate'] }}%
|
||||
</div>
|
||||
<div class="text-muted">
|
||||
{{ $transactionStats['failed'] }} fehlgeschlagen (30 Tage)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card">
|
||||
<div class="card-body text-center py-4">
|
||||
<i class="ion ion-md-cash text-info" style="font-size: 3rem"></i>
|
||||
<h5 class="mt-2">Betroffener Umsatz</h5>
|
||||
<div class="display-4 font-weight-bold text-{{ $stats['total_affected_revenue'] > 0 ? 'warning' : 'success' }}">
|
||||
{{ number_format($stats['total_affected_revenue'], 0, ',', '.') }} €
|
||||
</div>
|
||||
<div class="text-muted">bei offenen Incidents</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Anbieter-Status --}}
|
||||
<div class="card mb-4">
|
||||
<h6 class="card-header">Anbieter-Status</h6>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
@foreach($providerStats as $key => $provider)
|
||||
<div class="col-sm-6 col-md-3 text-center mb-3">
|
||||
<div class="h5 mb-1">{{ $provider['label'] }}</div>
|
||||
@if($provider['open_incidents'] > 0)
|
||||
<span class="badge badge-danger badge-pill" style="font-size:1rem; padding: 0.5rem 1rem">
|
||||
<i class="ion ion-md-alert"></i> {{ $provider['open_incidents'] }} Störung(en)
|
||||
</span>
|
||||
@else
|
||||
<span class="badge badge-success badge-pill" style="font-size:1rem; padding: 0.5rem 1rem">
|
||||
<i class="ion ion-md-checkmark"></i> OK
|
||||
</span>
|
||||
@endif
|
||||
<div class="text-muted small mt-1">{{ $provider['total_30d'] }} Incidents (30d)</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Aktive Störungen --}}
|
||||
@if($openIncidents->count() > 0)
|
||||
<div class="card mb-4 border-danger">
|
||||
<h6 class="card-header bg-danger text-white">
|
||||
<i class="ion ion-md-alert"></i> Aktive Störungen ({{ $openIncidents->count() }})
|
||||
</h6>
|
||||
<div class="card-body p-0">
|
||||
@include('admin.payment-dashboard._partials.incident-table', [
|
||||
'incidents' => $openIncidents,
|
||||
'showActions' => false,
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
{{-- Letzte Vorfälle --}}
|
||||
<div class="card">
|
||||
<h6 class="card-header">Letzte Vorfälle</h6>
|
||||
<div class="card-body p-0">
|
||||
@include('admin.payment-dashboard._partials.incident-table', [
|
||||
'incidents' => $recentIncidents,
|
||||
'showActions' => false,
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
Loading…
Add table
Add a link
Reference in a new issue