@php $title = 'Visualizar Orçamento'; @endphp @push('styles') @endpush

Detalhes

Detalhes completos do orçamento
@if($orcamento->status == 'Aguardando Cliente') @elseif($orcamento->status == 'Convertido em Venda') @if($orcamento->vendas && is_object($orcamento->vendas) && $orcamento->vendas->count() > 0) @php $venda = $orcamento->vendas->first(); @endphp @endif @endif @if($orcamento->status !== 'Convertido em Venda') @elseif($orcamento->status === 'Convertido em Venda' && $orcamento->vendas && is_object($orcamento->vendas) && $orcamento->vendas->count() > 0) @php $venda = $orcamento->vendas->first(); @endphp @if($venda->status === \App\Enum\StatusVenda::PENDENTE->value) @endif @endif
Dados do Orçamento

{{ $orcamento->codigo }}

{{ $orcamento->data_emissao ? $orcamento->data_emissao->format('d/m/Y') : '' }}

{{ $orcamento->data_validade ? $orcamento->data_validade->format('d/m/Y') : '' }}

@php $statusColor = match($orcamento->status) { 'Pendente' => 'warning', 'Aguardando Cliente' => 'info', 'Aprovado pelo Cliente' => 'primary', 'Convertido em Venda' => 'success', 'Cancelado pelo Cliente' => 'danger', default => 'secondary' }; @endphp {{ $orcamento->status }}

{{ $orcamento->cliente->razao_social }}

@php $contatoPrincipal = $orcamento->cliente->contatos->where('principal', true)->first(); @endphp

{{ $contatoPrincipal?->nome ?? '-' }}

{{ $contatoPrincipal->telefone ?? '-' }}

{{ $orcamento->prazo_entrega ?? '-' }}

{{ $orcamento->observacoes ?? '-' }}

Itens do Orçamento
@forelse($orcamento->itens ?? [] as $index => $item) @empty @endforelse
# Tipo Item Descrição Qtd Unidade Valor Unit. Total
{{ $index + 1 }} @if($item->tipo_item === 'SERVICO') Serviço @else Produto @endif
@if($item->tipo_item === 'SERVICO') {{ $item->servico?->nome ?? 'Serviço não definido' }} @else {{ $item->produto?->nome ?? 'Produto não definido' }} @endif
{{ $item->descricao ?? '-' }} {{ number_format($item->quantidade, 0, '', '.') }} {{ isset($item->unidade) ? ucfirst($item->unidade) : '-' }} R$ {{ number_format($item->valor_unitario, 2, ',', '.') }} R$ {{ number_format($item->valor_total, 2, ',', '.') }}
Nenhum item cadastrado

Este orçamento ainda não possui itens.

Resumo Financeiro
Subtotal: R$ {{ number_format($orcamento->subtotal ?? 0, 2, ',', '.') }}
@if(($orcamento->desconto ?? 0) > 0)
Desconto @if($orcamento->subtotal > 0) {{ number_format($orcamento->desconto, 1, ',', '.') }}% @endif -R$ {{ number_format($orcamento->valor_desconto ?? 0, 2, ',', '.') }}
@endif
Total Geral: R$ {{ number_format($orcamento->total ?? 0, 2, ',', '.') }}
Fluxo do Orçamento
@php $statusAtual = $orcamento->status; // Determinar quantos steps foram concluídos $completedSteps = 0; $activeStep = 1; // Verificar status da venda se existir $vendaStatus = null; $vendaConcluida = false; if ($orcamento->vendas && is_object($orcamento->vendas) && $orcamento->vendas->count() > 0) { $vendaStatus = $orcamento->vendas->first()->status; $vendaConcluida = $vendaStatus === \App\Enum\StatusVenda::CONCLUIDA->value; } switch ($statusAtual) { case \App\Enum\StatusOrcamento::PENDENTE->value: $completedSteps = 0; $activeStep = 1; break; case \App\Enum\StatusOrcamento::AGUARDANDO_CLIENTE->value: $completedSteps = 2; $activeStep = 2; break; case \App\Enum\StatusOrcamento::APROVADO_CLIENTE->value: $completedSteps = 2; $activeStep = 3; break; case \App\Enum\StatusOrcamento::CONVERTIDO_VENDA->value: $completedSteps = 3; $activeStep = 4; // Se tem venda e ela está concluída, considera step 4 completo if ($vendaConcluida) { $completedSteps = 4; $activeStep = 5; } break; case \App\Enum\StatusOrcamento::CANCELADO->value: // Quando cancelado, steps 1 e 2 ficam verdes (completed) $completedSteps = 2; $activeStep = 3; break; default: $completedSteps = 0; $activeStep = 1; break; } $progressClass = 'progress-' . $completedSteps; // Adicionar classe especial se venda existe mas não está concluída if ($statusAtual === \App\Enum\StatusOrcamento::CONVERTIDO_VENDA->value && !$vendaConcluida) { $progressClass .= ' venda-pendente'; } // Adicionar classe especial para orçamento cancelado if ($statusAtual === \App\Enum\StatusOrcamento::CANCELADO->value) { $progressClass = 'progress-cancelled'; } @endphp
  • {{ \App\Enum\StatusOrcamento::PENDENTE->value }} @if($completedSteps >= 1) @endif
    {{ $orcamento->created_at->format('d/m/Y H:i') }}
  • {{ \App\Enum\StatusOrcamento::AGUARDANDO_CLIENTE->value }} @if($completedSteps >= 2) @endif
    @if($completedSteps >= 2) {{ $orcamento->updated_at->format('d/m/Y H:i') }} @endif
  • @if($statusAtual === \App\Enum\StatusOrcamento::CANCELADO->value) @else @endif
    @if($statusAtual === \App\Enum\StatusOrcamento::CANCELADO->value) {{ \App\Enum\StatusOrcamento::CANCELADO->value }} @else {{ \App\Enum\StatusOrcamento::APROVADO_CLIENTE->value }} @if($completedSteps >= 3) @endif @endif
    @if($statusAtual === \App\Enum\StatusOrcamento::CANCELADO->value || $completedSteps >= 3) {{ $orcamento->updated_at->format('d/m/Y H:i') }} @endif
  • @if($statusAtual === \App\Enum\StatusOrcamento::CANCELADO->value) {{ \App\Enum\StatusOrcamento::VENDA_NAO_REALIZADA->value }} @elseif($statusAtual === \App\Enum\StatusOrcamento::CONVERTIDO_VENDA->value && $vendaStatus) {{ $vendaStatus }} @if($vendaConcluida) @endif @else {{ \App\Enum\StatusOrcamento::CONVERTIDO_VENDA->value }} @endif
    @if($statusAtual === \App\Enum\StatusOrcamento::CONVERTIDO_VENDA->value) {{ $orcamento->updated_at->format('d/m/Y H:i') }} @endif @if($statusAtual === \App\Enum\StatusOrcamento::CANCELADO->value) {{ $orcamento->updated_at->format('d/m/Y H:i') }} @endif
    @if($statusAtual === \App\Enum\StatusOrcamento::CONVERTIDO_VENDA->value && $orcamento->vendas && is_object($orcamento->vendas) && $orcamento->vendas->count() > 0) @endif
Informações Adicionais
@if($orcamento->condicoesPagamento)
Condições de Pagamento
@if($orcamento->condicoesPagamento->forma_pagamento)
Forma: @if($orcamento->condicoesPagamento->forma_pagamento == 'PIX') PIX @elseif($orcamento->condicoesPagamento->forma_pagamento == 'BOLETO') Boleto @elseif($orcamento->condicoesPagamento->forma_pagamento == 'CARTAO') Cartão @else {{ $orcamento->condicoesPagamento->forma_pagamento }} @endif
@endif @if($orcamento->condicoesPagamento->tipo_pagamento)
Tipo: {{ $orcamento->condicoesPagamento->tipo_pagamento }}
@endif @if($orcamento->condicoesPagamento->data_vencimento)
Vencimento: {{ $orcamento->condicoesPagamento->data_vencimento->format('d/m/Y') }}
@endif @if($orcamento->condicoesPagamento->valor_entrada && $orcamento->condicoesPagamento->valor_entrada > 0)
Entrada: R$ {{ number_format($orcamento->condicoesPagamento->valor_entrada, 2, ',', '.') }}
@endif
@if($orcamento->condicoesPagamento->observacoes)
Observações:

{{ $orcamento->condicoesPagamento->observacoes }}

@endif @if($parcelas && $parcelas->count() > 0)
Parcelas Cadastradas:
@foreach($parcelas->sortBy('numero_parcela') as $parcela)
@if($parcela->numero_parcela == 0) Entrada: @else Parcela {{ $parcela->numero_parcela }}: @endif R$ {{ number_format($parcela->valor, 2, ',', '.') }}
Vencimento: {{ $parcela->data_vencimento->format('d/m/Y') }}
@endforeach
@endif
@else

Nenhuma informação adicional cadastrada para este orçamento.

@endif