@extends('layouts.merchant') @section('title', 'Заказ '.$order->number) @section('content') ← К заказам

Заказ {{ $order->number }}

{{ $order->created_at->format('d.m.Y H:i') }}

{{-- Status transitions (ТЗ §26.1) — next allowed step(s) are the options. --}} @if ($order->status->sellerTransitions())
@csrf
@endif
@foreach ($order->items as $item) {{-- min-w-0 и nowrap: без них длинное название не даёт колонке сжаться, и сумма переносится по разряду — «5 / 625 / ₽» в три строки. --}}
{{ $item->title }}
{{ $item->quantity }} × {{ number_format((float) $item->unit_price, 0, '.', ' ') }} ₽@if (filled($item->vendor_code)) · {{ $item->vendor_code }}@endif
{{ number_format((float) $item->total_price, 0, '.', ' ') }} ₽
@endforeach
Итого{{ number_format((float) $order->total, 0, '.', ' ') }} ₽

Покупатель

{{ $order->buyer?->displayName() ?? '—' }}

{{ $order->buyer?->primaryPhone()?->formatted() }}

{{-- Переписка по заказу: тот же диалог, что и у покупателя, — с какой стороны его ни открыли. --}} @if ($order->buyer)
@csrf
@endif

История

{{-- Оплата — отдельная ось от статуса доставки: заказ бывает отправлен и не оплачен, а по счёту деньги приходят неделями. Момент выставления выбирает продавец: до этого неизвестна доставка, а она входит в сумму. --}} @if ($order->expectsPayment())

Оплата

{{ $order->payment_status->label() }}

Способ: {{ $order->payment_method->label() }}. @if ($order->payment_status === \App\Enums\PaymentStatus::Pending) Сначала укажите стоимость доставки ниже — она войдёт в сумму. @endif

Товары
{{ number_format((float) $order->total, 0, '.', ' ') }} ₽
Доставка
{{ number_format((float) ($order->delivery_cost ?? 0), 0, '.', ' ') }} ₽
К оплате
{{ number_format($order->payableAmount(), 0, '.', ' ') }} ₽
{{-- Счёт для юрлиц: выбираем, с каких реквизитов выставить. --}} @if ($order->payment_method === \App\Enums\PaymentMethod::Invoice) @php($__accounts = $order->seller?->bankAccounts()->orderByDesc('is_default')->get() ?? collect())
@if ($order->hasInvoice())

Счёт № {{ $order->invoice_number }} от {{ $order->invoice_issued_at?->format('d.m.Y') }} — открыть PDF. Покупатель видит его в своём заказе.

@elseif ($__accounts->isEmpty())

Чтобы выставить счёт, добавьте банковские реквизиты в разделе «Реквизиты».

@elseif (! $order->buyer_organization_id)

Покупатель не указал организацию — счёт выписать не на кого.

@else
@csrf
@endif
@endif {{-- Оплата картой: деньги идут напрямую продавцу через его эквайринг. Подключённых может быть несколько — какой выбрать, решает продавец в заказе, а не мы за него. --}} @php($__acquirings = $order->seller?->integrations()->get()->filter(fn ($i) => $i->type->isAcquiring() && $i->is_active && $i->isConfigured())->values() ?? collect()) @if ($order->payment_method === \App\Enums\PaymentMethod::Card)
@if ($order->hasPaymentLink())

Ссылка на оплату выдана{{ $order->paymentIntegration?->displayName() ? ' · '.$order->paymentIntegration->displayName() : '' }} — покупатель видит кнопку «Оплатить» в своём заказе.

@elseif ($__acquirings->isEmpty())

Чтобы принимать оплату картой, подключите эквайринг в разделе «Интеграции». Деньги будут приходить на ваш счёт напрямую.

@endif
@endif @unless ($order->payment_status->isPaid())
@if ($order->payment_status === \App\Enums\PaymentStatus::Pending)
@csrf @if ($order->payment_method === \App\Enums\PaymentMethod::Card && $__acquirings->isNotEmpty()) @endif
@else
@csrf
@endif
@else

Оплачен {{ $order->paid_at?->format('d.m.Y в H:i') }}@if ($order->paidMarkedBy) · отметил {{ $order->paidMarkedBy->displayName() }}@endif.

@endunless
@endif {{-- Доставка: продавец выбирает службу из отмеченных покупателем пунктов и вписывает стоимость вручную. Правится, пока заказ не «Отправлен». --}} @php($registry = app(\App\Services\Shipping\CarrierRegistry::class))

Доставка

@if ($order->buyerPoints->isEmpty())

Покупатель не выбрал пункты выдачи для этого заказа.

@elseif (! $order->deliveryEditable()) {{-- После отправки — только просмотр. --}}

Доставку уже нельзя менять (заказ {{ $order->status->label() }}).

@if ($order->hasDelivery())
Служба
{{ $registry->get($order->delivery_carrier_code)?->name ?? $order->delivery_carrier_code }}
Стоимость
{{ number_format((float) $order->delivery_cost, 0, '.', ' ') }} ₽
@if ($order->delivery_point_address)
Пункт
{{ $order->delivery_point_address }}
@endif @if ($order->tracking_number)
Трек-номер
{{ $order->tracking_number }}
@endif
@endif @else

Покупатель отметил эти пункты (по приоритету). Выберите службу, которой отправите, и укажите стоимость — она попадёт покупателю в уведомление и в заказ. Правится до перевода в «Отправлен».

@csrf
@foreach ($order->buyerPoints as $bp) @php($carrier = $registry->get($bp->carrier_code)) @endforeach
{{-- Ширины полей были заданы в пикселях: на телефоне они складывались в лесенку рядом с полем комментария во всю ширину. --}}
@endif
@endsection