Contratos - Variáveis Dinâmicas
O que é
As variáveis dinâmicas (também chamadas de placeholders) são marcadores que você escreve no template do contrato no formato {{nome_variavel}}. Quando o contrato é gerado para um passageiro específico, o Viagilize substitui cada marcador pelo valor real correspondente - nome do cliente, CPF, data da excursão, valor cobrado, código da reserva, e assim por diante.
Você encontra a lista no painel lateral "Variáveis disponíveis" ao editar o template de contrato de uma excursão ou um template reutilizável. A lista é montada automaticamente pelo método getPlaceholdersDisponiveis() do ContratoService e varia conforme o modo de operação da sua empresa (Excursões ou Jornadas).
Como usar
- Abra a excursão e clique em Contratos > Configurar Template (ou vá em Contratos > Templates de Contrato para um modelo reutilizável).
- No editor, posicione o cursor no ponto onde deseja inserir o dado.
- No painel lateral Variáveis disponíveis, clique na variável desejada - ela é inserida no texto com as chaves duplas (ex:
{{cliente_nome}}).
- Salve o template. Na geração do contrato, cada
{{...}} será trocado pelo valor real do passageiro.
- Use Preview ou PDF para conferir o resultado com dados de exemplo antes de publicar.
Catálogo de variáveis
Empresa
| Variável |
Descrição |
{{empresa_nome}} |
Nome da empresa |
{{empresa_cnpj}} |
CNPJ da empresa |
{{empresa_telefone}} |
Telefone (ou WhatsApp, se telefone vazio) |
{{empresa_email}} |
E-mail da empresa |
{{empresa_endereco}} |
Endereço completo da empresa |
{{empresa_responsavel}} |
Nome do responsável |
{{empresa_logo}} |
Logo da empresa (imagem renderizada) |
{{empresa_assinatura}} |
Assinatura/carimbo da empresa (imagem) |
{{contrato_rodape}} |
Rodapé customizado do contrato |
Cliente
| Variável |
Descrição |
{{cliente_nome}} |
Nome completo do cliente |
{{cliente_cpf}} |
CPF formatado |
{{cliente_rg}} |
RG |
{{cliente_email}} |
E-mail |
{{cliente_telefone}} |
Telefone |
{{cliente_endereco}} |
Endereço completo |
{{cliente_data_nascimento}} |
Data de nascimento (dd/mm/aaaa) |
{{cliente_assinatura}} |
Imagem da assinatura digital do cliente |
Excursão
| Variável |
Descrição |
{{excursao_nome}} |
Nome da excursão |
{{excursao_destino}} |
Local/destino da excursão |
{{excursao_data}} |
Data formatada para exibição |
{{excursao_data_inicio}} |
Data de início |
{{excursao_data_fim}} |
Data de fim (ou início, se não houver) |
{{excursao_hora_inicio}} |
Horário de início |
{{excursao_hora_fim}} |
Horário de fim |
{{excursao_descricao}} |
Descrição da excursão |
{{excursao_observacoes}} |
Observações cadastradas |
Embarque
| Variável |
Descrição |
{{embarque_local}} |
Local de embarque |
{{embarque_hora}} |
Horário de embarque |
{{embarque_hora_retorno}} |
Horário de retorno |
{{embarque_endereco}} |
Endereço do ponto de embarque |
{{embarque_cidade}} |
Cidade do embarque |
{{embarque_estado}} |
Estado do embarque |
Transporte
| Variável |
Descrição |
{{transporte_nome}} |
Nome/modelo do veículo |
{{transporte_placa}} |
Placa do veículo |
{{transporte_empresa}} |
Empresa de transporte |
Voos (ida e volta)
Cada grupo tem o mesmo conjunto de variáveis, mudando apenas o prefixo voo_ida_ ou voo_volta_.
| Variável |
Descrição |
{{voo_ida_cia}} / {{voo_volta_cia}} |
Companhia aérea |
{{voo_ida_numero}} / {{voo_volta_numero}} |
Número do voo |
{{voo_ida_origem}} / {{voo_volta_origem}} |
Aeroporto de origem |
{{voo_ida_destino}} / {{voo_volta_destino}} |
Aeroporto de destino |
{{voo_ida_data}} / {{voo_volta_data}} |
Data do voo |
{{voo_ida_partida}} / {{voo_volta_partida}} |
Horário de partida |
{{voo_ida_chegada}} / {{voo_volta_chegada}} |
Horário de chegada |
{{voo_ida_classe}} / {{voo_volta_classe}} |
Classe |
{{voo_ida_bagagem}} / {{voo_volta_bagagem}} |
Bagagem permitida |
Cruzeiro
| Variável |
Descrição |
{{cruzeiro_companhia}} |
Companhia do cruzeiro |
{{cruzeiro_navio}} |
Nome do navio |
{{cruzeiro_porto_embarque}} |
Porto de embarque |
{{cruzeiro_porto_retorno}} |
Porto de retorno |
{{cruzeiro_partida}} |
Data e hora de partida |
{{cruzeiro_chegada}} |
Data e hora de chegada |
{{cruzeiro_cabine}} |
Número da cabine |
{{cruzeiro_categoria_cabine}} |
Categoria da cabine (Interna, Externa, Varanda, Suíte) |
{{cruzeiro_itinerario}} |
Itinerário com portos visitados |
Financeiro
| Variável |
Descrição |
{{valor_cobrado}} |
Valor cobrado do passageiro |
{{valor_total}} |
Valor total |
{{valor_pago}} |
Valor já pago |
{{valor_pendente}} |
Valor pendente |
{{forma_pagamento}} |
Forma de pagamento utilizada |
{{parcelas}} |
Número de parcelas |
Pedido
| Variável |
Descrição |
{{codigo_pedido}} |
Código do pedido |
{{valor_pedido}} |
Valor total do pedido |
{{valor_total_grupo}} |
Valor somado de todos os passageiros do grupo |
{{status_pedido}} |
Status do pedido |
Reserva
| Variável |
Descrição |
{{categoria_nome}} |
Categoria do passageiro |
{{codigo_reserva}} |
Código da reserva (QR Code) |
{{status_reserva}} |
Status da reserva |
{{data_reserva}} |
Data em que a reserva foi feita |
{{aceite_data}} |
Data e hora do aceite do contrato |
{{aceite_ip}} |
IP a partir do qual o contrato foi aceito |
{{contrato_versao}} |
Versão atual do contrato (ex: v1, v2) |
Jornada (modo Jornadas)
Disponível apenas quando você opera em modo Jornadas (agências consultivas). Nesse modo, os grupos Excursão, Embarque, Transporte, Voos, Cruzeiro, Financeiro, Pedido e Reserva ficam ocultos.
| Variável |
Descrição |
{{jornada_titulo}} |
Título da jornada |
{{jornada_destino}} |
Destino principal |
{{jornada_cidades}} |
Cidades do roteiro (separadas por vírgula) |
{{jornada_data_inicio}} |
Data de início |
{{jornada_data_fim}} |
Data de fim |
{{jornada_duracao_dias}} |
Duração em dias |
{{jornada_valor_total}} |
Valor total da jornada (R$) |
{{jornada_responsavel}} |
Consultor/agente responsável |
{{jornada_roteiro_resumo}} |
Resumo do roteiro visível ao passageiro |
Sistema
| Variável |
Descrição |
{{data_atual}} |
Data atual |
{{hora_atual}} |
Hora atual |
Casos especiais
Variável sem valor no cadastro
Se o dado referenciado não existir (ex: passageiro sem RG cadastrado, excursão sem hora de fim, voo não preenchido), o placeholder é substituído por string vazia. O contrato continua válido, apenas mostra o campo em branco no local - confira o cadastro antes de gerar.
empresa em modo Jornadas
A lista de variáveis muda de acordo com tenant()->modo_operacao. empresas em modo jornadas só veem os grupos Empresa, Cliente, Jornada e Sistema. empresas em modo excursoes (padrão) veem todos os grupos exceto Jornada.
Imagens renderizadas
{{empresa_logo}}, {{empresa_assinatura}} e {{cliente_assinatura}} não são texto - são substituídos pelo HTML de uma tag <img> apontando para a imagem armazenada. Insira essas variáveis em uma linha vazia ou dentro de uma célula da tabela de assinaturas para evitar quebra de layout.
Rodapé customizado
{{contrato_rodape}} injeta o rodapé padrão configurado em Configurações > Contratos. O rodapé já contém {{empresa_nome}}, {{empresa_cnpj}}, {{empresa_telefone}} e {{empresa_email}} resolvidos internamente.
Erros comuns e como resolver
- Placeholder aparece literal no PDF (ex:
{{cliente_nomee}}) - Causa: nome da variável escrito errado ou variável inexistente. Solução: copie o placeholder direto do painel lateral em vez de digitar, e confira na tabela acima.
- Campo aparece em branco no contrato final - Causa: o dado correspondente não está preenchido no cadastro (passageiro, cliente, excursão, voo ou embarque). Solução: completar o cadastro antes de gerar o contrato.
- Variável de voo/cruzeiro/jornada não aparece no painel - Causa: você não cadastrou voos/cruzeiro na excursão, ou a sua empresa está em modo de operação diferente. Solução: cadastrar os dados na excursão ou verificar o modo de operação em Configurações.
{{empresa_logo}} mostra texto quebrado - Causa: a empresa não tem logo enviada em Configurações > Empresa. Solução: enviar o logo antes de usar a variável no template.
Onde encontrar
- Painel Variáveis disponíveis dentro do editor de template, em Excursões > {excursão} > Contratos > Configurar Template ou em Contratos > Templates de Contrato > Editar.
- Caminho no menu: Contratos Digitais > Templates de Contrato.
- Permissão necessária: ver os contratos (para inserir variáveis em um template, normalmente editar os contratos).
- Módulo necessário:
contratos-digitais.
Veja também
Configurar Template de Contrato
Templates de Contrato
Contratos Digitais - Módulo Adicional