@extends('layouts.app')
@section('title',$order->code)
@section('content')
@php($statusLabels = ['draft'=>'Rascunho','in_production'=>'Em produção','ready'=>'Pronto para entrega','delivered'=>'Entregue','cancelled'=>'Cancelada'])
{{ $order->code }} {{ $statusLabels[$order->status] ?? $order->status }}
{{ $order->customer->name }} · pedido em {{ $order->ordered_at->format('d/m/Y') }}
Voltar às ordens
Receita vinculada
{{ $order->prescription?->issued_at?->format('d/m/Y') ?? 'Sem receita' }}
Previsão de entrega
{{ $order->promised_at?->format('d/m/Y') ?? 'Não definida' }}
Total negociado
R$ {{ number_format((float)$order->total_amount,2,',','.') }} @if((float)$order->discount > 0)
Desconto: R$ {{ number_format((float)$order->discount,2,',','.') }}
@endif
@include('orders._pupil_measurement')
@if($order->status==='draft' && ! $hasCreditPlan)
Negociação da ordem Defina desconto, previsão e observações antes de iniciar a produção ou gerar o crediário.
Subtotal R$ {{ number_format((float)$order->subtotal,2,',','.') }}
@endif
@if($order->status==='draft' && ! $hasCreditPlan)
Adicionar item
@csrf
Adicionar item
@endif
Itens Produtos, lentes, armações e serviços desta ordem.
Subtotal R$ {{ number_format((float)$order->subtotal,2,',','.') }}
@if($hasCreditPlan && $order->status==='draft')
Os itens e valores estão bloqueados porque esta OS já possui crediário gerado.
@endif
Item Qtd. Unitário Total
@forelse($order->items as $item)
{{ $item->description }} {{ $item->product?->type ?? $item->item_type }}
{{ number_format((float)$item->quantity,3,',','.') }} R$ {{ number_format((float)$item->unit_price,2,',','.') }} R$ {{ number_format((float)$item->total_amount,2,',','.') }} @if($order->status==='draft' && ! $hasCreditPlan)@csrf @method('DELETE')Remover @endif
@emptyAdicione armação, lentes ou serviços. @endforelse
Pagamento e crediário O parcelamento fica vinculado diretamente a esta ordem de serviço.
Crédito disponível do cliente
R$ {{ number_format((float)$customerSummary['available_credit'],2,',','.') }}
@if($hasCreditPlan)
Crediário vinculado. O valor negociado da OS foi congelado para manter as parcelas consistentes.
Parcela Vencimento Valor Pago Saldo Situação
@foreach($orderInstallmentRows as $row)
{{ $row['installment']->installment_number }}/{{ $row['installment']->total_installments }}
{{ $row['installment']->due_date->format('d/m/Y') }}
R$ {{ number_format($row['gross'],2,',','.') }}
R$ {{ number_format($row['allocated'],2,',','.') }}
R$ {{ number_format($row['balance'],2,',','.') }}
{{ $row['status_label'] }}
@endforeach
Se houver pagamento registrado ou PIX/boleto ainda ativo, o cancelamento da OS será bloqueado para proteger o financeiro.
@elseif($order->status==='draft')
@if(! $customerSummary['credit_account'])
@elseif($customerSummary['credit_account']->status !== 'active')
O crediário deste cliente está bloqueado. Regularize na ficha do cliente antes de parcelar a OS.
@elseif((float)$order->total_amount <= 0)
Adicione itens e defina o valor final da OS antes de gerar o parcelamento.
@elseif((float)$order->total_amount > (float)$customerSummary['available_credit'])
O total da OS é maior que o crédito disponível do cliente. Aumente o limite ou reduza o valor negociado antes de parcelar.
@else
@csrf
Gerar crediário desta OS
@endif
@else
Esta OS não possui parcelamento de crediário vinculado.
@endif
Andamento
Ao iniciar produção, o estoque dos itens controlados é baixado automaticamente. Cancelamentos devolvem esse estoque uma única vez e também tratam o crediário vinculado com segurança.
@if($order->status==='draft')
@csrf @method('PATCH')Iniciar produção
@csrf @method('PATCH')Cancelar ordem
@elseif($order->status==='in_production')
@csrf @method('PATCH')Marcar como pronta
@csrf @method('PATCH')Cancelar e devolver estoque
@elseif($order->status==='ready')
@csrf @method('PATCH')Registrar entrega
@csrf @method('PATCH')Cancelar ordem
@else
Fluxo encerrado: {{ $statusLabels[$order->status] ?? $order->status }}
@endif
@endsection