@extends('admin.layouts.app') @section('title', __('admin.search.invoice_title', ['num' => $invoice->invoice_num])) @section('content') {{-- A charge was sent for this invoice and its outcome was never established. This is the whole of what the operator has to act on: what was asked for, from which card, when, the gateway's own reference if there is one, and the one button that ends the state. Nothing automatic will touch this invoice again until somebody presses it. --}} @if(!empty($chargeReview))
{{ __('admin.invoices.charge_review_title') }}

{{ __('admin.invoices.charge_review_body') }}

@csrf {{ __('admin.invoices.charge_review_release_hint') }}
@endif @if(in_array($st, ['paid', 'partially_paid'])) @endif @if(in_array($st, ['unpaid', 'overdue', 'partially_paid', 'payment_pending'])) @endif
{{-- Left (2/3): Line Items + Payment History --}}
{{ __('admin.invoices.line_items') }}
@csrf
@foreach($invoice->items as $item) @endforeach @php $vatGroups = []; foreach ($invoice->items as $it) { $rate = $it->tax_rate !== null ? (float) $it->tax_rate : ($it->taxed ? (float) $invoice->tax_rate : 0.0); $label = $it->tax_label ?: ($rate > 0 ? rtrim(rtrim(number_format($rate, 2), '0'), '.').'%' : null); if ($label === null) { continue; } $tax = (float) $it->amount * (int) $it->qty * $rate / 100; $net = (float) $it->amount * (int) $it->qty; if (! isset($vatGroups[$label])) { $vatGroups[$label] = ['amount' => 0.0, 'rate' => $rate, 'net' => 0.0]; } $vatGroups[$label]['amount'] += $tax; $vatGroups[$label]['net'] += $net; } uasort($vatGroups, fn ($a, $b) => $b['rate'] <=> $a['rate']); @endphp @forelse($invoice->items as $item) @php $effectiveRate = $item->tax_rate !== null ? (float) $item->tax_rate : ($item->taxed ? (float) $invoice->tax_rate : 0.0); @endphp @empty @endforelse @foreach($vatGroups as $label => $g) @endforeach @if($invoice->tax2 > 0) @endif @if($invoice->credit > 0) @endif
{{ __('common.table.description') }}{{ __('common.table.qty') }}{{ __('admin.invoices.price') }}{{ __('common.table.tax') }}{{ __('common.table.total') }}
{{ $item->type }}
{{ money_fmt($item->amount * (int) $item->qty) }}
@csrf @method('DELETE')
{{ __('admin.invoices.no_line_items') }}
{{ $label }}{{ money_fmt($g['amount']) }}{{ money_fmt($g['net']) }}
{{ __('admin.invoices.tax_2') }}{{ $invoice->tax_rate2 > 0 ? " (" . rtrim(rtrim(number_format((float)$invoice->tax_rate2, 2), '0'), '.') . "%)" : "" }}{{ money_fmt($invoice->tax2) }}
{{ __('admin.invoices.subtotal') }}{{ money_fmt($invoice->subtotal) }}
{{ __('admin.invoices.credit_applied') }}-{{ money_fmt($invoice->credit) }}
{{ __('admin.invoices.total') }}{{ money_fmt($invoice->total) }}
@if($invoice->transactions->count() > 0)
{{ __('admin.invoices.payment_history') }}
@foreach($invoice->transactions as $tx) @endforeach
{{ __('common.table.date') }}{{ __('admin.invoices.gateway') }}{{ __('admin.invoices.transaction_id') }}{{ __('common.table.amount') }}
{{ $tx->date?->format(date_fmt()) }} {{ payment_method_label((string) $tx->gateway) }} {{ $tx->transaction_id ?? '—' }} +{{ money_fmt($tx->amount_in) }}
@endif @if($invoice->notes)
{{ __('admin.invoices.notes') }}
{{ $invoice->notes }}
@endif
{{-- Right (1/3) --}}
@if($invoice->client)
{{ __('admin.invoices.client_info') }}
@if($invoice->buyer('address1')) @endif {{-- Alici kimligi: fatura elle kesilirken portala girilecek olan tam da bu uc satir. Fatura kesildigi andaki hali gosteriliyor (buyer_*), musterinin bugunku hali degil. --}} @if($invoice->buyer('client_type')) @endif @if($invoice->buyer('tax_office')) @endif @if($invoice->buyer('tax_id')) @endif @if($invoice->buyer('national_id')) @endif @foreach($invoice->buyerCustomFields() as $label => $value) @endforeach
{{ __('admin.invoices.name') }}client) : "#" }}" style="color:#337ab7;font-weight:600;">{{ $invoice->client?->display_name ?? "Deleted Client" }}
{{ __('common.form.email') }}{{ $invoice->buyer('email') ?? '-' }}
{{ __('admin.invoices.name') }}{{ $invoice->buyer('address1') }}
{{ $invoice->buyer('city') }}, {{ $invoice->buyer('state') }} {{ $invoice->buyer('postcode') }}
{{ $invoice->buyer('country') }}
{{ __('admin.invoices.buyer_type') }}{{ $invoice->buyer('client_type') === 'company' ? __('admin.clients.billing_type_company') : __('admin.clients.billing_type_individual') }}
{{ __('admin.invoices.buyer_tax_office') }}{{ $invoice->buyer('tax_office') }}
{{ __('admin.invoices.tax_id') }}{{ $invoice->buyer('tax_id') }}
{{ __('admin.invoices.buyer_national_id') }}{{ $invoice->buyer('national_id') }}
{{ $label }}{{ $value }}
@endif
{{ __('admin.invoices.invoice_details') }}
@if($invoice->sourceInvoice) @endif @if($invoice->payment_method) @endif @if($st === 'paid' && $invoice->date_paid) @endif
{{ __('admin.invoices.invoice_hash') }}{{ $invoice->invoice_num }}
{{ __('admin.invoices.source_proforma') }}{{ $invoice->sourceInvoice->invoice_num }}
{{ __('admin.invoices.date') }}{{ $invoice->date?->format(date_fmt()) }}
{{ __('admin.invoices.due_date') }}{{ $invoice->due_date?->format(date_fmt()) }}
{{ __('admin.invoices.payment') }}{{ payment_method_label((string) $invoice->payment_method) }}
{{ __('admin.invoices.paid_on') }}{{ $invoice->date_paid->timezone(display_tz())->format(datetime_fmt()) }}
{{ __('admin.invoices.actions') }}
@if($st === 'paid')
✓ {{ __('admin.invoices.paid_on_date', ['date' => $invoice->date_paid?->timezone(display_tz())->format(datetime_fmt())]) }}
@endif @if($st === 'cancelled')
{{ __('admin.invoices.invoice_cancelled') }}
@endif
@if($invoice->creditNotes->isNotEmpty())
{{ __('admin.credit_notes.title') }}
@foreach($invoice->creditNotes as $note)
{{ $note->number }}
{{ $note->date->format(date_fmt()) }} · {{ __('admin.credit_notes.method_'.$note->method) }} · {{ invoice_money_fmt((float) $note->total, $invoice) }}
PDF
@endforeach
@endif
{{ __('admin.invoices.activity_log') }}
@forelse($activityLog as $entry)
{{ $entry->description }}
{{ $entry->date->timezone(display_tz())->format(datetime_fmt()) }} · {{ $entry->user ?: 'System' }}
@empty
{{ __('admin.invoices.no_activity') }}
@endforelse
@endsection