mivita/resources/views/admin/payment-dashboard/show.blade.php
2026-04-14 18:07:45 +02:00

165 lines
7.9 KiB
PHP

@extends('layouts.layout-2')
@section('content')
@if(session('success'))
<div class="alert alert-success alert-dismissible fade show">
{{ session('success') }}
<button type="button" class="close" data-dismiss="alert">&times;</button>
</div>
@endif
<div class="d-flex justify-content-between align-items-center mb-3">
<div>
<a href="{{ route('admin.payment-dashboard.index') }}" class="btn btn-sm btn-outline-secondary mr-2">
<i class="ion ion-md-arrow-back"></i> Zurück
</a>
</div>
<div>
<span class="badge badge-{{ $incident->severity_color }} badge-pill px-3 py-2" style="font-size:0.9rem">
{{ $incident->severity_label }}
</span>
<span class="badge badge-{{ $incident->status_color }} badge-pill px-3 py-2 ml-1" style="font-size:0.9rem">
{{ $incident->status_label }}
</span>
</div>
</div>
<div class="row">
{{-- Linke Spalte: Details + Timeline --}}
<div class="col-lg-8">
<div class="card mb-4">
<div class="card-header d-flex align-items-center">
<i class="ion {{ $incident->type_icon }} mr-2 text-secondary"></i>
<h5 class="mb-0">{{ $incident->title }}</h5>
</div>
<div class="card-body">
<div class="row mb-3">
<div class="col-sm-4">
<small class="text-muted d-block">Anbieter</small>
<span class="badge badge-secondary">{{ $incident->provider_label }}</span>
</div>
<div class="col-sm-4">
<small class="text-muted d-block">Typ</small>
{{ $incident->type_label }}
</div>
<div class="col-sm-4">
<small class="text-muted d-block">Erkannt am</small>
{{ $incident->detected_at->format('d.m.Y H:i') }}
</div>
</div>
<div class="row mb-3">
<div class="col-sm-4">
<small class="text-muted d-block">Dauer</small>
{{ $incident->duration }}
</div>
<div class="col-sm-4">
<small class="text-muted d-block">Betroffene Bestellungen</small>
{{ $incident->affected_orders }}
</div>
<div class="col-sm-4">
<small class="text-muted d-block">Betroffener Umsatz</small>
{{ number_format($incident->affected_revenue, 2, ',', '.') }}
</div>
</div>
@if($incident->ticket_number)
<div class="mb-3">
<small class="text-muted d-block">Ticket-Nummer</small>
<code>{{ $incident->ticket_number }}</code>
</div>
@endif
@if($incident->description)
<div class="mb-3">
<small class="text-muted d-block">Beschreibung</small>
<p class="mb-0">{{ $incident->description }}</p>
</div>
@endif
@if($incident->notes)
<div>
<small class="text-muted d-block">Interne Notizen</small>
<p class="mb-0 text-muted">{{ $incident->notes }}</p>
</div>
@endif
</div>
</div>
{{-- Aktivitäten-Timeline --}}
<div class="card">
<h6 class="card-header">Kommunikationsverlauf ({{ $incident->activities->count() }})</h6>
<div class="card-body">
@include('admin.payment-dashboard._partials.activity-timeline')
</div>
</div>
</div>
{{-- Rechte Spalte: Aktionen --}}
<div class="col-lg-4">
{{-- Status ändern --}}
<div class="card mb-4">
<h6 class="card-header">Status ändern</h6>
<div class="card-body">
<form method="POST" action="{{ route('admin.payment-dashboard.status.update', $incident) }}">
@csrf
@method('PATCH')
<div class="form-group">
<select name="status" class="custom-select">
@foreach(['open' => 'Offen', 'in_progress' => 'In Bearbeitung', 'waiting_provider' => 'Wartet auf Anbieter', 'resolved' => 'Gelöst', 'closed' => 'Geschlossen'] as $value => $label)
<option value="{{ $value }}" {{ $incident->status === $value ? 'selected' : '' }}>{{ $label }}</option>
@endforeach
</select>
</div>
<button type="submit" class="btn btn-primary btn-block">Status speichern</button>
</form>
</div>
</div>
{{-- Aktivität hinzufügen --}}
<div class="card">
<h6 class="card-header">Aktivität hinzufügen</h6>
<div class="card-body">
@if($errors->has('type') || $errors->has('title'))
<div class="alert alert-danger small">
@foreach($errors->all() as $error)
<div>{{ $error }}</div>
@endforeach
</div>
@endif
<form method="POST" action="{{ route('admin.payment-dashboard.activity.store', $incident) }}">
@csrf
<div class="form-group">
<label class="small">Typ</label>
<select name="type" class="custom-select custom-select-sm">
<option value="note">Notiz</option>
<option value="email">E-Mail</option>
<option value="call">Telefonat</option>
<option value="ticket">Ticket</option>
<option value="provider_response">Anbieter-Antwort</option>
</select>
</div>
<div class="form-group">
<label class="small">Titel</label>
<input type="text" name="title" class="form-control form-control-sm"
placeholder="Kurze Beschreibung" value="{{ old('title') }}" required>
</div>
<div class="form-group">
<label class="small">Details</label>
<textarea name="content" class="form-control form-control-sm" rows="3"
placeholder="Inhalt der Aktivität...">{{ old('content') }}</textarea>
</div>
<button type="submit" class="btn btn-secondary btn-block btn-sm">
<i class="ion ion-md-add"></i> Aktivität speichern
</button>
</form>
</div>
</div>
@if($incident->resolved_at)
<div class="mt-3 text-center text-muted small">
<i class="ion ion-md-checkmark-circle text-success"></i>
Gelöst am {{ $incident->resolved_at->format('d.m.Y H:i') }}
</div>
@endif
</div>
</div>
@endsection