Passageiros - Assentos e Acomodações
O que é
Esta página descreve como o assento de cada passageiro é definido em um veículo da excursão. O assento é gravado no campo assento do passageiro e fica associado ao transporte_id correspondente - por isso o mesmo número pode existir em veículos diferentes da mesma excursão, mas nunca duas vezes no mesmo veículo.
Existem dois fluxos paralelos que escrevem nesse campo: o admin atribui ou ajusta os assentos pelo mapa do veículo dentro da listagem de Passageiros, e o passageiro pode escolher o próprio assento pela área do cliente quando a excursão libera a feature. Em ambos os fluxos o assento precisa pertencer ao layout cadastrado em Cadastros > Veículos e respeitar o tipo da categoria.
Quartos do hotel não entram aqui. O termo "acomodações" normalmente se refere a quartos de hospedagem, que têm tela e fluxo próprios. Consulte
Hospedagem - Distribuição de Quartos.
Como usar
Atribuir assento pelo admin (mapa visual)
- Vá em Viagens (Excursões) no menu lateral e abra a excursão desejada.
- Acesse a aba Passageiros.
- Em cada bloco de transporte (um por veículo cadastrado) clique no ícone de Mapa de Assentos no cabeçalho.
- O sistema carrega o layout do veículo (grid de poltronas por andar, com piso inferior e piso superior em ônibus double-decker).
- Clique em uma poltrona livre. O modal lista os passageiros sem assento - incluindo passageiros sem transporte definido e passageiros de outros veículos da mesma excursão.
- Selecione o passageiro e confirme. O assento é gravado e o mapa é recarregado.
Cores no mapa:
- Disponível - poltrona livre, do tipo compatível com a categoria.
- Ocupado - já tem passageiro vinculado (passa o mouse para ver nome, telefone, embarque e status).
- Guia - assento reservado para guia escalado naquele transporte.
- Não selecionável - corredor, motorista, banheiro ou item de mobiliário do layout.
Atribuir/trocar assento pelo cadastro do passageiro
- Na lista de passageiros, clique no nome ou no ícone de editar.
- No modal, preencha o campo Assento com o número desejado.
- Salve. O sistema valida em transação com
lockForUpdatee devolve erro se o número já estiver ocupado no mesmo veículo.
Liberar / remover atribuição
- Edite o passageiro.
- Deixe o campo Assento em branco e salve.
- A poltrona volta para o status "disponível" no mapa.
Escolha pelo passageiro (área do cliente)
Quando a excursão tem Permitir escolha de assento ativa, o passageiro entra em Minha Conta > Pedidos > {pedido} e clica em Escolher Assento. O sistema:
- Junta todos os pedidos do mesmo comprador para aquela excursão, mostrando todos os passageiros da família/grupo.
- Verifica regra de momento configurada para a excursão:
antes_pagamento- sempre liberado;apos_pagamento- só comorder.statusempagoouparcial;x_dias_antes- só dentro do prazoescolha_assento_dias_antes.
- Respeita
escolha_assento_a_partir_de(data/hora mínima para liberar). - Bloqueia troca a menos de
troca_ate_dias_antesdias da viagem.
O passageiro pode escolher os assentos em lote (vários passageiros no mesmo envio) e o sistema valida cada um individualmente.
Imprimir mapa para o motorista/guia
- Na listagem de Passageiros da excursão, acesse a exportação Mapa de Assentos (PDF).
- O PDF gera um grid visual por andar de cada veículo + uma lista numerada (assento, nome, embarque).
- Opcionalmente filtre por transporte específico via parâmetro
?transporte={id}.
Casos especiais
Tipos de assento (normal, semi-leito, executivo, leito)
Cada item do layout do veículo tem um tipo. Quando a categoria do passageiro define um tipo_assento, o sistema só permite atribuir poltronas daquele tipo. Se nenhuma categoria da excursão usa tipo, qualquer categoria pode ocupar qualquer poltrona válida. Quando pelo menos uma categoria define tipo, as demais são tratadas como normal por default.
Tipos suportados no layout do veículo:
normal- assento comum.semi_leito- semi-leito.executivo- executivo.leito- leito.
Mensagem típica: "Este assento não é do tipo {Leito}. Selecione um assento compatível com sua categoria."
Trocar o veículo do transporte mantendo passageiros
Ao trocar o veículo de um excursao_transporte, o sistema mantém os passageiros nos mesmos números de assento se o novo veículo tiver capacidade equivalente. Quando o novo veículo é menor, passageiros em assentos inexistentes ficam "órfãos" - o sistema detecta isso e pede confirmação explícita antes da troca, listando os passageiros que ficarão sem assento e precisarão ser realocados manualmente.
Excursão sem layout cadastrado no veículo
Se o veículo não tem veiculo_layouts cadastrado (cadastrado em Cadastros > Veículos > Layout), o mapa não é renderizado e o campo Assento vira texto livre. Isso é usado para transportes sem mapa formal (fretado pontual, "Sem Veículo" cadastrado só por nome e vagas).
Veículo de dois andares
Layouts com andar = 2 são renderizados em dois grids separados, rotulados como Piso Inferior e Piso Superior. A numeração dos assentos é única no veículo inteiro.
Pacote de viagem (sem transporte)
Excursões marcadas como tipo_excursao = pacote_viagem não usam mapa de assentos. O método podeEscolherAssento retorna false imediatamente para passageiros vinculados a esse tipo de excursão e a área do cliente não exibe a opção.
Assento reservado para guia
Guias escalados em um transporte (excursao_guias.assento) ocupam o assento no mapa com o rótulo Guia. Esse assento não pode ser atribuído a passageiros enquanto o guia estiver vinculado. Para liberar, remova o assento do guia em Guias > Atribuir ou desvincule o guia do transporte.
Acomodações em hotel
Para distribuir passageiros em quartos de hospedagem (rooming list), use o módulo Hospedagem (módulo hospedagem). A alocação de quartos é independente do assento no veículo: um passageiro pode ter assento 12 no ônibus e cama 2 no quarto duplo "203". Veja Hospedagem - Distribuição de Quartos.
Erros comuns e como resolver
- "O assento {12} já está ocupado neste veículo. Selecione outro assento." - Causa: outro passageiro ativo (
confirmado/pendente) ou um guia já tem esse número no mesmoexcursao_transporte. Solução: escolher outro número ou liberar o assento do ocupante atual antes. - "Assento inválido. Por favor, selecione um assento válido no mapa." - Causa: o número informado não existe no layout do veículo (ou está marcado como
tipo = vazio, corredor, motorista). Solução: clicar diretamente em uma poltrona do mapa visual. - "O veículo não possui mapa de assentos configurado." - Causa: veículo cadastrado sem layout. Solução: ir em Cadastros > Veículos > {veículo} > Layout e aplicar um template (Ônibus 44, Leito 28, Van 15 etc.) ou desenhar custom.
- "A seleção de assentos estará disponível após a confirmação do pagamento." - Causa: excursão configurada com
momento_escolha = apos_pagamentoe o pedido ainda está pendente. Solução: confirmar pagamento ou ajustar a configuração da excursão. - "Alteração de assento não permitida a menos de {2} dias da viagem." - Causa: passou do prazo
troca_ate_dias_antes. Solução: ajustar via admin (admin não respeita esse prazo) ou aumentar o prazo na configuração. - "A seleção de assentos estará disponível a partir de DD/MM/AAAA às HH:MM." - Causa:
escolha_assento_a_partir_deconfigurada para data futura. Solução: aguardar a data ou alterar a configuração. orphan_seatsao trocar veículo - Causa: capacidade do novo veículo é menor que o maior número de assento ocupado no veículo antigo. Solução: confirmar a troca aceitando que os passageiros listados ficarão sem assento, e depois realocá-los manualmente no novo layout.
Onde encontrar
- URL:
/admin/excursoes/{excursao}/passageiros - Endpoint do mapa (admin):
GET /admin/excursoes/{excursao}/transportes/{transporte}/assentos - Endpoint do mapa (cliente):
GET /cliente/pedidos/{codigo}/assentos - Exportação PDF:
GET /admin/excursoes/{excursao}/passageiros/mapa-assentos/pdf?transporte={id} - Caminho no menu: Viagens (Excursões) > {excursão} > Passageiros
- Permissões necessárias: ver as viagens para visualizar o mapa, editar as viagens para atribuir/alterar assentos
- Módulo necessário: nenhum (assentos fazem parte do core de excursões)
Veja também
Cadastrar Passageiro- o assento pode ser preenchido já no cadastro.Gerenciar Passageiros- visão da listagem agrupada por transporte.Excursões - Gerenciar Transportes- cadastrar e trocar veículos sem perder os assentos atribuídos.Hospedagem - Distribuição de Quartos- alocar os mesmos passageiros em quartos do hotel.