@include('dacruz.header') @include('dacruz.sidenav')
Cotação {{ $code }}
Valor do frete R$ {{ number_format($cotacao['valor_frete']/100, 2, ',', '.') }}
Status {{ $cotacao['status_cotacao'] ?? 'Aprovada' }}
@if ($statusFechamentoOpcoes->isNotEmpty() && $badgeFechamentoAtual) @elseif ($badgeFechamentoAtual) {{ $badgeNomeAtual }} @endif
Cliente {{ $cotacao['nome'] }}
Rota {{ $cotacao['origem'] }} → {{ $cotacao['destino'] }}
@php $tem_telefone_enviar_docs = !empty($cotacao['telefone'] ?? null); $tem_email_enviar_docs = !empty($cotacao['email'] ?? null); @endphp
@if($tem_telefone_enviar_docs || $tem_email_enviar_docs)
@endif
@if($ordemColeta) @else @endif
@if($recibos) @else @endif
@if($declaracaoConteudo && $declaracaoConteudo->preenchida_pelo_cliente) @else @endif

{{ $cotacao['nome'] }} · {{ $cotacao['origem'] }} → {{ $cotacao['destino'] }} · R$ {{ number_format($cotacao['valor_frete']/100, 2, ',', '.') }}

Cliente e Administrativo
Cliente {{ $cotacao['nome'] }}
CPF/CNPJ {{ $cotacao['ct_cpf_cnpj_cliente'] }}
Telefone @php $tel = $cotacao['telefone'] ?? ''; $digits = preg_replace('/[^0-9]/', '', $tel); while (strlen($digits) > 11 && substr($digits, 0, 2) === '55') { $digits = substr($digits, 2); } $tinha_codigo_pais = strlen(preg_replace('/[^0-9]/', '', $cotacao['telefone'] ?? '')) > 11; $telefone_exibir = $digits !== '' ? (\App\Helpers\FuncoesHelper::formatedPhone($digits) ?? $tel) : ''; if ($telefone_exibir !== '' && $tinha_codigo_pais) { $telefone_exibir = '+55 ' . $telefone_exibir; } $tel_wa = preg_replace('/[^0-9]/', '', $cotacao['telefone'] ?? ''); while (strlen($tel_wa) > 11 && substr($tel_wa, 0, 2) === '55') { $tel_wa = substr($tel_wa, 2); } if (strlen($tel_wa) === 10 || strlen($tel_wa) === 11) { $tel_wa = '55' . $tel_wa; } @endphp @if(!empty($tel_wa)) {{ $telefone_exibir ?: '-' }} @else {{ $telefone_exibir ?: '-' }} @endif
Email @if(!empty($cotacao['email'])) {{ $cotacao['email'] }} @else - @endif
@php $acaoContatoCliente = $acaoContatoCliente ?? [ 'url' => '#', 'disabled' => true, 'contato_id' => null, 'documento_normalizado' => '', 'label' => 'Gerenciar contatos', 'ajuda' => '', ]; @endphp
Contatos {{ $acaoContatoCliente['label'] }} {{ $acaoContatoCliente['ajuda'] ?? '' }}
Resp. fechamento {{ $cotacao['ct_responsavel_fechamento'] ?? '-' }}
Data aprovação {{ $aproved_at ?? '-' }}
Resp. atualização {{ $cotacao['nome_responsavel_atualizacao'] ?? 'N/A' }}
Status {{ $cotacao['status_cotacao'] ?? '-' }}
Carga
Origem {{ $cotacao['origem'] }}
Destino {{ $cotacao['destino'] }}
Tipo de frete {{ str_replace(['Transporte de ', 'Transporte '], '', $cotacao['tipo_frete']) }}
Peso {{ $cotacao['peso2'] }} kg
Cubagem {{ $cotacao['volume'] }} m³
Valor da nota R$ {{ $cotacao['valor_nota_formatado'] }}
Qtd. itens {{ $cotacao['quantidade'] }}
Prazo coleta {{ $cotacao['prazo_coleta'] ?? '-' }}
Prazo entrega {{ $cotacao['prazo_entrega'] }}
Financeiro
Valor do frete R$ {{ number_format($cotacao['valor_frete']/100, 2, ',', '.') }}
Forma de pagamento {{ $cotacao['ct_forma_pagamento'] ?? '-' }}
Serviços
Fracionado/Dedicado {{ isset($cotacao['ct_modalidade_frete']) && $cotacao['ct_modalidade_frete'] ? ucfirst($cotacao['ct_modalidade_frete']) : '-' }}
Embalagem {{ $cotacao['ct_embalagem'] ?? '-' }}
Seguro {{ $cotacao['ct_seguro'] ?? '-' }}
Ajud. carga {{ $cotacao['ct_ajudante_carga'] ?? '-' }}
Ajud. descarga {{ $cotacao['ct_ajudante_descarga'] ?? '-' }}
Carga com maquinário {{ $cotacao['ct_carga_maquinario'] ?? '-' }}
Descrição e observações
Descrição da carga

{{ $cotacao['descricao'] }}

Observações

{{ $cotacao['ct_observacoes'] ?? '' }}

{{ count($observacoesInternas) }} registro(s)

Uso exclusivo da equipe. Este conteúdo não é enviado ao cliente nem exibido em documentos.

Cada inclusão vira um novo item no histórico.
@if (count($observacoesInternas) > 0) @foreach ($observacoesInternas as $observacaoInterna)
{{ $observacaoInterna['nome_colaborador'] }} {{ $observacaoInterna['data_hora_formatada'] }}
{!! nl2br(e($observacaoInterna['texto'])) !!}
@endforeach @else
Nenhuma observação interna registrada até o momento.
@endif

Preencha os dados para gerar a cobrança do frete

R$

Preencha as informações do motorista responsável pelo transporte

Dados Pessoais
Informe manualmente o nome completo do motorista.
Por favor, informe o nome completo.
Por favor, informe um CPF válido.
Por favor, informe uma data de nascimento válida.
Por favor, informe um RG válido.
Por favor, selecione a UF do RG.
Por favor, informe a data de emissão do RG.
Por favor, informe o estado civil.
Por favor, informe o sexo.
Contato
Informe um telefone ou preencha o campo de e-mail.
Informe um telefone válido ou preencha o e-mail.
Informe um e-mail ou preencha o campo de telefone.
Informe um e-mail válido ou preencha o telefone.
Endereço
Por favor, informe o CEP.
Por favor, informe o logradouro.
Por favor, informe o número.
Por favor, informe o bairro.
Por favor, informe a cidade.
Por favor, selecione o estado.
Por favor, informe um ponto de referência.
Dados do Veículo
Por favor, informe o número da placa.
Por favor, informe o RENAVAM.
Por favor, informe o CRV.
Por favor, informe a marca do veículo.
Por favor, informe o modelo do veículo.
Por favor, informe o ano do veículo.
Por favor, informe a cor do veículo.
Por favor, informe a capacidade de carga.
Por favor, selecione o tipo de medida.
Por favor, selecione a categoria do veículo.
Documentação Profissional
Por favor, informe o número da CNH.
Por favor, informe a data de validade da CNH.
Por favor, selecione a categoria da CNH.
Por favor, selecione a UF da CNH.
Documentos e Fotos
CNH (Frente)

PDF, JPG ou PNG (máx. 5MB)

CNH (Verso)

PDF, JPG ou PNG (máx. 5MB)

Fotos do Veículo

PDF, JPG ou PNG (máx. 5MB).

Documento do Veículo

PDF, JPG ou PNG (máx. 5MB).

Marque se o motorista fara a coleta e a entrega.
Marque se o motorista fara apenas a coleta.
Marque se o motorista fara apenas a entrega.
@foreach($listaMotoristas as $idx => $m) @include('dacruz.partials.fechamento-motorista-card', [ 'motoristaCardId' => $m->id ?? ('idx-'.$idx), 'motoristaCardTipo' => $m->tipo_motorista ?? '', 'motoristaCardNome' => !empty($m->nome) ? $m->nome : 'Motorista Contratado', 'motoristaCardCpf' => $m->cpf ?? '-', 'motoristaCardMarca' => $m->marca ?? '-', 'motoristaCardPlaca' => $m->numero_placa ?? '-', 'motoristaCardBuonny' => $m->buonny ?? '', 'motoristaGrupoTipo' => 'motorista-tipo-'.$idx.'-'.($m->id ?? 'novo'), 'motoristaCardClasses' => $idx > 0 ? 'mt-3 pt-3 border-top' : '', ]) @endforeach
Ordem de Coleta

Agendamento de coleta da mercadoria

@if($ordemColeta && !empty($ordemColeta->preenchida_pelo_cliente))

Preenchida pelo cliente

@endif
@if($ordemColeta) @if(!empty($ordemColeta->token)) @endif @else @endif
Recibo

Comprovante de pagamento do frete

@if ($recibos) @else @endif
Declaração de Conteúdo

Documento legal para o transporte

@if($declaracaoConteudo && $declaracaoConteudo->preenchida_pelo_cliente)

Preenchida pelo cliente

@endif
@if($declaracaoConteudo && ($declaracaoConteudo->preenchida_pelo_cliente || !empty($declaracaoConteudo->nome_remetente))) @if(!empty($declaracaoConteudo->token)) @endif @else @endif
@include('dacruz.partials.rastreamento-card', [ 'rastreamentos' => $rastreamentos ?? collect(), 'rastreamento' => $rastreamento ?? null, 'linkRastreamento' => $linkRastreamento ?? null, ])

Rastreamento de Frete

Status Atual
Em Trânsito
Atualizado há 2 horas

Carga em trânsito para o destino

Localização Atual
São Paulo, SP
GPS: -23.5505, -46.6333
Mapa de Rastreamento
Distância Restante
245 km
Tempo Estimado
3h 30min
Atualizar Status
Compartilhar Rastreamento
Histórico de Atualizações
@php $checklistItens = $checklistFechamento['itens'] ?? []; $checklistTotal = count($checklistItens); $checklistConcluidos = count(array_filter($checklistItens, static function ($item) { return !empty($item['concluido']); })); $checklistPendentes = max($checklistTotal - $checklistConcluidos, 0); @endphp
{{ $checklistConcluidos }}/{{ $checklistTotal }} concluídos

A lista reúne itens automáticos definidos nas configurações da transportadora e passos manuais que a equipe pode marcar conforme o andamento do fechamento.

0) style="display: none;" @endif> Nenhum item foi configurado para este checklist.
{{ count($comunicacoesHistorico ?? []) }} registro(s)
Último e-mail
@if(!empty($ultimaComunicacaoEmail))
{{ $ultimaComunicacaoEmail['tipo_conteudo'] }}
{{ $ultimaComunicacaoEmail['enviado_em_formatado'] }}
@if(!empty($ultimaComunicacaoEmail['colaborador']))
Colaborador: {{ $ultimaComunicacaoEmail['colaborador'] }}
@endif @else
Nenhum e-mail enviado ainda.
@endif
E-mail
Último WhatsApp
@if(!empty($ultimaComunicacaoWhatsapp))
{{ $ultimaComunicacaoWhatsapp['tipo_conteudo'] }}
{{ $ultimaComunicacaoWhatsapp['enviado_em_formatado'] }}
@if(!empty($ultimaComunicacaoWhatsapp['colaborador']))
Colaborador: {{ $ultimaComunicacaoWhatsapp['colaborador'] }}
@endif @else
Nenhum WhatsApp enviado ainda.
@endif
WhatsApp
Histórico recente
Mostra os envios feitos por e-mail e WhatsApp nesta cotação.
@if(count($comunicacoesHistorico ?? []))
@foreach(($comunicacoesHistorico ?? collect()) as $comunicacao)
{{ $comunicacao['tipo_conteudo'] }} {{ $comunicacao['canal_formatado'] }}
{{ $comunicacao['enviado_em_formatado'] }}
@if(!empty($comunicacao['colaborador']))
Colaborador: {{ $comunicacao['colaborador'] }}
@endif
@endforeach
@if(count($comunicacoesHistorico ?? []) > 8) @endif @else

Nenhum envio registrado ainda para esta cotação.

@endif
@php $dados_cotacao_agendar = $dados_cotacao ?? session('dados_cotacao', []); $cotacao_agendar = $cotacao ?? []; $tem_telefone_agendar = !empty($cotacao_agendar['telefone']) || !empty($dados_cotacao_agendar['telefone'] ?? null); $tem_email_agendar = !empty($cotacao_agendar['email']) || !empty($dados_cotacao_agendar['email'] ?? null); $display_whats = $tem_telefone_agendar ? 'd-inline-flex' : 'd-none'; $display_email = $tem_email_agendar ? 'd-inline-flex' : 'd-none'; $display_ambos = ($tem_telefone_agendar && $tem_email_agendar) ? 'd-inline-flex' : 'd-none'; @endphp @php $tem_telefone_rastreamento = !empty($cotacao['telefone']) && $cotacao['telefone'] !== '-'; $tem_email_rastreamento = !empty($cotacao['email']) && $cotacao['email'] !== '-'; $display_whats_rastreamento = $tem_telefone_rastreamento ? 'd-inline-flex' : 'd-none'; $display_email_rastreamento = $tem_email_rastreamento ? 'd-inline-flex' : 'd-none'; $display_ambos_rastreamento = ($tem_telefone_rastreamento && $tem_email_rastreamento) ? 'd-inline-flex' : 'd-none'; @endphp @php $tem_telefone_declaracao = !empty($cotacao['telefone']) && $cotacao['telefone'] !== '-'; $tem_email_declaracao = !empty($cotacao['email']) && $cotacao['email'] !== '-'; $display_whats_declaracao = $tem_telefone_declaracao ? 'd-inline-flex' : 'd-none'; $display_email_declaracao = $tem_email_declaracao ? 'd-inline-flex' : 'd-none'; $display_ambos_declaracao = ($tem_telefone_declaracao && $tem_email_declaracao) ? 'd-inline-flex' : 'd-none'; @endphp @include('dacruz.partials.modal-indicador-status', [ 'indicadorStatusUpdateUrl' => route('dacruz.indicador-status.atualizar') ])