@extends('layouts.app', ['title' => 'Auftrag ' . $order->order_nr]) @section('content')
{{-- Header --}}
Zurück @if($order->category) {{ $order->category->nr_prefix }} · {{ $order->category->name }} @endif @if($order->offer) aus Angebot {{ $order->offer->offer_nr }} @endif

{{ $order->title }}

{{ $order->order_nr }}
Bearbeiten @if($abFile) AB @endif {{-- Rechnung PDF --}} @if($rechnungFile) Rechnung PDF {{ $rechnungFile->re_nr }} · v{{ $rechnungFile->version }} · {{ \Carbon\Carbon::parse($rechnungFile->created_at)->format('d.m.Y H:i') }} @else Rechnung PDF @endif
@csrf
@if(session('success'))
{{ session('success') }}
@endif {{-- Status-Leiste --}} @php $allOrderStatuses = \App\Models\PmsStatus::order()->where('is_deleted',0)->orderBy('sort')->get(); $allDeptStatuses = \App\Models\PmsStatus::dept()->where('is_deleted',0)->orderBy('sort')->get(); @endphp
AUFTRAGSSTATUS @foreach($allOrderStatuses as $s)
@csrf
@endforeach
ABT.-STATUS @foreach($allDeptStatuses as $s)
@csrf
@endforeach
{{-- Links: Stammdaten + Positionen --}}
{{-- Stammdaten --}}
Stammdaten
KUNDE
{{ $order->customer?->name ?? '—' }}
ANSPRECHPARTNER
{{ $order->customer_contact ? $order->customer_contact->first_name . ' ' . $order->customer_contact->last_name : '—' }}
AUFTRAGSDATUM
{{ $order->order_date ? \Carbon\Carbon::parse($order->order_date)->format('d.m.Y') : '—' }}
PROJEKTART
{{ $order->type?->name ?? '—' }}
STANDORT
{{ $order->project_location?->name ?? '—' }}
ERSTELLT VON
{{ $order->created_by ? $order->created_by->first_name . ' ' . $order->created_by->last_name : '—' }}
@if($order->notes)
HINWEIS
{{ $order->notes }}
@endif @if($abFile)
AUFTRAGSBESTÄTIGUNG
{{ $abFile->filename }}
@endif
{{-- Positionen + PDF-Tab --}}
@if(!$order->fk_offer_id)
@else aus Angebot {{ $order->offer->offer_nr }} @endif
Noch keine Positionen angelegt.
@foreach($order->positions as $i => $pos) @include('pms.orders._position_row', ['pos' => $pos, 'depth' => 0, 'nr' => ($i+1), 'readonly' => !!$order->fk_offer_id]) @endforeach @if(!$order->fk_offer_id) @endif
@if($order->positions->count()) @php $netto = $order->positions->sum('calculated_total'); $vatRate = (float)($order->vat_rate ?? 19); $vatFactor = $vatRate / 100; $mwst = $netto * $vatFactor; $brutto = $netto + $mwst; $rowStyle = 'd-flex align-items-center gap-2 px-4'; @endphp
{{-- Nettosumme --}}
NETTOSUMME {{ number_format($netto, 2, ',', '.') }} €
{{-- MwSt --}}
@if($order->vat_hinweis){{ $order->vat_hinweis }} · @endif UMSATZSTEUER {{ number_format($vatRate, 0) }} % {{ number_format($mwst, 2, ',', '.') }} €
{{-- Gesamtsumme --}}
GESAMTSUMME {{ number_format($brutto, 2, ',', '.') }} €
@endif
{{-- end tab-pane positionen --}} {{-- Tab: Rechnung PDF --}}
{{-- end tab-pane rechnung-pdf --}}
{{-- end tab-content --}}
{{-- Rechts: Timeline --}}
Verlauf / Hinweise
{{-- Neuer Eintrag --}}
@csrf
@foreach([ ['4','notes','bi-info-square-fill','Info','text-info'], ['0','call','bi-telephone-fill','Anruf','text-success'], ['1','mail','bi-envelope-fill','E-Mail','text-primary'], ['2','poste','bi-mailbox2','Post','text-secondary'], ['3','personally','bi-people-fill','Persönlich','text-warning'], ] as [$val,$rid,$ico,$lbl,$col]) @endforeach

{{-- Filter --}}
Filter: @foreach([ ['0','all','bi-list-ul','Alle'], ['1','fnotes','bi-info-square-fill','Info'], ['2','fcall','bi-telephone-fill','Anruf'], ['3','fmail','bi-envelope-fill','E-Mail'], ['4','fposte','bi-mailbox2','Post'], ['5','fpersonally','bi-people-fill','Person'], ] as [$val,$fid,$ico,$lbl]) @endforeach
{{-- Einträge --}} @forelse($order->timeline->sortByDesc('created_at') as $entry) @php $ct = (int) $entry->contact_type; $isNote = $ct === 4; $isCall = $ct === 0; $isEmail = $ct === 1; $isPost = $ct === 2; $isPersonally = $ct === 3; if ($isNote) { $tlIcon = 'bi-info-square-fill'; $tlColor = '#0dcaf0'; } elseif ($isCall) { $tlIcon = 'bi-telephone-fill'; $tlColor = '#198754'; } elseif ($isEmail) { $tlIcon = 'bi-envelope-fill'; $tlColor = '#0d6efd'; } elseif ($isPost) { $tlIcon = 'bi-mailbox2'; $tlColor = '#6c757d'; } else { $tlIcon = 'bi-people-fill'; $tlColor = '#ffc107'; } @endphp
@if(!$isNote && $entry->contact_dst) {{ $entry->contact_dst }} @endif {{ $entry->created_at ? \Carbon\Carbon::parse($entry->created_at)->format('d.m.Y - H:i') : '—' }}
{!! $entry->message !!}
{{ $entry->employee?->first_name }} {{ $entry->employee?->last_name }}
@empty
Noch keine Einträge.
@endforelse
{{-- Modal: Neue Rechnung bestätigen --}} {{-- Inline-Formular --}} @if(!$order->fk_offer_id)
@csrf
@endif @if(!$order->fk_offer_id) {{-- Modal: Leistungsbibliothek (Auftrag) --}} @endif @endsection