Lição: Orçamento de Procedimentos

🟢 Em produção. O módulo de Orçamento está disponível e em uso real. Ele substitui o antigo processo manual de planilha e, depois de aprovado, gera o agendamento pré-preenchido pelo botão Agendar. A HU do módulo (#398) foi concluída em jul/2026.

1. Objetivo do módulo e onde fica

O módulo de Orçamento serve para montar, enviar e acompanhar orçamentos de procedimentos eletivos: cirurgias, planos de tratamento e atendimentos particulares. Você monta o orçamento com serviços, produtos consumidos, taxas e equipamentos; o paciente recebe a proposta em PDF; aprovado, o botão Agendar abre o agendamento já preenchido e o fluxo financeiro — sem redigitar nada.

Onde fica (menu / rota): Agenda → Orçamento.

TelaRota /portal/...Para que serve
Lista de orçamentos/portal/agenda/orcamentoConsultar e filtrar orçamentos
Novo orçamento/portal/agenda/orcamento/criarCriar orçamento do zero
Ver / editar orçamento/portal/agenda/orcamento/:idDetalhar, editar, enviar, aprovar
Reabrir cancelado/portal/agenda/orcamento/:idOrcamentoCancelado/reabrirGera um novo orçamento a partir de um cancelado (começa em Pendente de aprovação interna)

2. Como um orçamento é estruturado

Um orçamento tem um cabeçalho (paciente, local, profissional responsável, status, observação) e uma lista de Serviços. Cada serviço pode conter:

Ou seja, o valor total do orçamento é a soma dos serviços, e cada serviço soma seus produtos, taxas e equipamentos.

3. Campos do orçamento

Os campos abaixo aparecem ao criar/editar (OrcamentoForm.tsx). Datas seguem o formato dd/mm/aaaa e valores em R$ 1.234,56.

CampoObrigatório?Validação / observação
PacienteSimBusca por nome ou CPF; o paciente precisa estar cadastrado
Local / UnidadeSimOnde o procedimento será realizado
Profissional responsávelSimColaborador que responde pelo orçamento
Serviço (um ou mais)SimAo menos um serviço; puxa o preço convertido do convênio (no particular, do convênio Particular; produtos podem vir da tabela de preços interna)
Quantidade por serviçoSimNúmero inteiro maior que zero
Valor unitárioSim (calculado)Vem da tabela/conversão do convênio. Não existe permissão de "override de valor" (correção 30/09): para outro valor, corrija o preço no cadastro ou aplique desconto dentro da alçada
Produtos consumidosOpcionalPor serviço; puxa do Estoque
TaxasOpcionalPor serviço (sala, equipamento)
EquipamentosOpcionalPor serviço, com tempo de uso
DescontoOpcionalValidado por nível de permissão do colaborador (ver seção 8)
ObservaçãoOpcionalTexto livre
ValidadeAutomáticaDias de validade configurados em Parâmetros › Orçamento (ParametrosOrcamento.diasValidos); ao passar, o orçamento aparece como Vencido (status calculado, nunca gravado)

4. Status do orçamento

✅ Novo — 26/09/2026 Os status abaixo são os nomes que aparecem no sistema (código de produção). Correção de 26/09/2026: esta lição listava nomes que não existem no sistema (RASCUNHO, AGUARDANDO_APROVACAO, APROVADO_CLIENTE, REJEITADO_CLIENTE, CONFIRMADO, AGENDADO, REALIZADO, EXPIRADO) e um "cron diário" de expiração.

#StatusSignificadoEdição
1Pendente de aprovação internaOrçamento aguardando a aprovação interna da clínica.Editável
2Em negociaçãoProposta em negociação com o paciente.Editável
3CanceladoOrçamento cancelado (guarda a descrição do motivo; pode ser reaberto).—
4Solicitar nova propostaFoi pedida uma nova proposta.Editável
5RecusadoProposta recusada.🔒 Trava a edição
6Aprovado pelo PacienteO paciente aprovou a proposta.Editável
7Aprovado pelo ConvênioO convênio aprovou a proposta.Editável
8VencidoValidade ultrapassada. Status virtual: calculado na leitura quando data de criação + dias de validade (Parâmetros › Orçamento) < hoje — nunca é gravado no orçamento. Aparece como pendência no board e precisa ser renovado.Editável (para renovar)
9Aprovado pela AssistênciaAprovado pela assistência (enfermagem). Aparece como pendência no board — precisa de seguimento.🔒 Trava a edição

Resumo: travam a edição só Recusado e Aprovado pela Assistência; Vencido e Aprovado pela Assistência aparecem como pendência no board. Não existe status "Confirmado" nem "Realizado" no orçamento: ao agendar a partir dele, cada sessão agendada conta como usada, e cancelar o agendamento devolve a sessão ao orçamento.

🟡 Chegando Status automáticos do orçamento (#656) — implantado, ativação pendente. O sistema já mostra os nomes corrigidos e a lista única de 13 status: além dos 9 acima, 10 Pago, 11 Agendado, 12 Concluído e 13 Renegociado. Esses quatro serão trocados pelo próprio sistema (não podem ser escolhidos à mão) — mas a troca automática ainda não está ativa. Até lá: Quando a ativação for confirmada, valem as regras já implantadas: Concluído = todas as sessões atendidas; Vencido só sem nenhum pagamento (trava agendar, editar e aprovar; sai por Cancelar com motivo ou pelo botão Renegociar, que cria um orçamento novo e marca o vencido como Renegociado); reabrir Cancelado ou Concluído pede senha de nível 3. Não conte com essa troca automática no dia a dia ainda.

5. Botões e ações

AçãoO que faz
SalvarGrava o orçamento (com confirmação na tela desde 24/09, #614). Enquanto não aprovado, a impressão traz o aviso "RASCUNHO" e a data de validade (#611) — é um aviso impresso, não um status.
Imprimir / propostaGera a proposta em PDF para o paciente, com o valor gravado no orçamento.
Mudar statusRegistra a situação do orçamento: Em negociação, Solicitar nova proposta, Recusado, Aprovado pelo Paciente, Aprovado pelo Convênio, Aprovado pela Assistência (ver seção 4).
AgendarCom o orçamento aprovado, abre a tela de agendamento pré-preenchida com os dados do orçamento; cada sessão agendada conta como usada.
CancelarMarca Cancelado com descrição do motivo.
ReabrirTraz um orçamento cancelado de volta ao fluxo.
Aplicar descontoChama a validação do nível de alçada (ver seção 8); não vale para orçamento já pago (ver 7.2).

6. Passo a passo — criar, aprovar e agendar um orçamento

  1. Vá em Agenda → Orçamento e clique em Novo (/portal/agenda/orcamento/criar).
  2. Busque e selecione o paciente (por nome ou CPF).
  3. Informe local e profissional responsável.
  4. Adicione um ou mais serviços; para cada um, informe a quantidade e, se preciso, os produtos, taxas e equipamentos.
  5. Se houver desconto, aplique — o sistema validará seu nível de alçada.
  6. Clique em Salvar e revise o total. Imprima a proposta para o paciente (enquanto não aprovada, ela sai com o aviso "RASCUNHO" e a validade).
  7. Registre a resposta mudando o status — por exemplo, Aprovado pelo Paciente (ou Recusado, Solicitar nova proposta, Em negociação).
  8. Com o orçamento aprovado, clique em Agendar: a tela de agendamento abre pré-preenchida; defina data e horário e salve. Cada sessão agendada conta como usada no orçamento.
  9. Passou da validade sem aprovação? O orçamento aparece como Vencido (pendência no board) e continua editável para ser renovado.

7. Aprovação → botão "Agendar"

Com o orçamento aprovado, o botão Agendar gera o agendamento pré-preenchido com os dados do orçamento — você não precisa recriar os dados; basta conferir e salvar. Na API interna do sistema, a aprovação é POST /orcamento/:id/aprovar. Sequência:

  1. Orçamento aprovado (ex.: Aprovado pelo Paciente) → botão Agendar.
  2. O sistema abre a tela de agendamento pré-preenchida.
  3. Ao salvar, a sessão agendada passa a contar como usada no orçamento (não existe status "Confirmado" no orçamento).
  4. No pagamento/atendimento, a movimentação financeira fica vinculada ao orçamento (orçamentos criados a partir de 25/09: um financeiro único — ver 7.2).
  5. Cancelou um agendamento? A sessão volta ao saldo do orçamento. Não existe status "Realizado" no orçamento: o acompanhamento é pelo uso das sessões.

Orçamentos cancelados podem ser reabertos em /portal/agenda/orcamento/:idOrcamentoCancelado/reabrir — o sistema cria um novo orçamento a partir do cancelado, que começa em Pendente de aprovação interna.

✅ Novo — jul/2026 O caminho inverso também existe: é possível vincular o orçamento a partir do agendamento (#359). Entregue no ciclo de julho/2026; se ainda não apareceu no seu ambiente, chega na próxima atualização.

7.1. Trava de edição pós-aprovação ✅ Novo — set/2026

Entregue no ciclo de setembro/2026; se ainda não apareceu no seu ambiente, chega na próxima atualização.

7.2. Orçamento com várias sessões — financeiro único ✅ Novo — 26/09/2026

Em produção desde 24/09/2026 (noite). Vale para orçamentos criados a partir de 25/09/2026 — os antigos seguem como eram.

8. Regras de negócio — descontos por nível

Ao aplicar desconto, o sistema chama o validacaoDescontoController, que confere o nível de permissão do colaborador via ParametrosDeDesconto:

NívelLimite de descontoPerfil típico
Nível 1até 5%Recepcionista
Nível 2até 10%Coordenador
Nível 3até 20%Gerente
Sem limitequalquerDiretor

✅ Novo — ago/2026 O "nível de desconto" foi renomeado para "nível de alçada" (#557) e as aprovações por nível de alçada foram entregues (épico #571): a solicitação de aprovação notifica todos os usuários do nível e, quando um responde, a pendência é resolvida para todos (#558). Entregue no ciclo de agosto/2026; se ainda não apareceu no seu ambiente, chega na próxima atualização.

✅ Novo — 26/09/2026 Aprovações em tempo real (24/09/2026): os pedidos de aprovação de farol, desconto e edição/cancelamento de Atendido chegam em tempo real a todos os aprovadores do nível exigido ou superior (ex.: um pedido de Nível 2 chega ao Nível 2 e ao Nível 3); quando um responde, o pedido some da tela dos demais. Os canais são isolados por clínica.

Atenção — desconto depois do pagamento: no orçamento com financeiro já pago, o valor trava e não se dá mais desconto (ver 7.2). Desconto é antes do pagamento.

9. Regras de negócio — validade e expiração

Todo orçamento tem validade em ParametrosOrcamento.diasValidos (Parâmetros › Orçamento; padrão 30 dias). Passada a validade, o orçamento aparece como Vencido — um status virtual, calculado na leitura (data de criação + dias de validade < hoje) e nunca gravado: não há rotina que troque o status. O vencido aparece como pendência no board e continua editável para ser renovado. Também há versões: cada alteração relevante (valor ou escopo) gera uma nova versão para o cliente comparar antes de aprovar; o histórico fica preservado.

10. Permissões necessárias

O Orçamento é controlado pela permissão ORCAMENTO, só com as quatro ações do modelo (hierárquicas: DELETE inclui UPDATE, que inclui CREATE, que inclui VIEW). Desde 15/09/2026 as permissões granulares (#395) permitem montar perfis e grupos com essas ações.

PermissãoPermite
ORCAMENTO.VIEWConsultar orçamentos
ORCAMENTO.CREATECriar orçamento
ORCAMENTO.UPDATEAlterar o orçamento, mudar o status (inclusive aprovar e cancelar) e os parâmetros
ORCAMENTO.DELETEExcluir
AGENDAMENTO/ACOLHIMENTO/CONFIRMACAO — CREATEReabrir orçamento cancelado (cria um novo orçamento em Pendente de aprovação interna)
DESCONTO — UPDATEAprovar desconto remotamente (alçada)

✅ Correção — 30/09/2026 Versões anteriores desta lição listavam ORCAMENTO.APROVAR, ORCAMENTO.CANCELAR, ORCAMENTO.REABRIR e ORCAMENTO.OVERRIDE_VALOR: essas permissões não existem no sistema.

11. Erros comuns e como resolver

SituaçãoComo resolver
Não consigo aplicar o desconto desejadoSeu nível de permissão limita o percentual. Peça a um nível superior (Coordenador/Gerente/Diretor) para aplicar.
"Muitas tentativas de autenticação…" / "Muitas tentativas de senha para este aprovador…" ✅ Novo — 15/10/20265 senhas de aprovação erradas em 15 minutos. Aguarde 15 minutos ou peça a aprovação remota.
Orçamento aparece como VencidoPassou da validade (dias configurados em Parâmetros › Orçamento). ✅ Atualização 15/10: orçamento Recusado nunca aparece como Vencido. Vencido é calculado na leitura e o orçamento continua editável: renove-o (ou crie uma nova versão).
Aparecem os status Pago, Agendado, Concluído e Renegociado, mas o orçamento não muda sozinho ✅ Novo — out/2026Os nomes já estão no sistema, mas a troca automática (#656) ainda não está ativa. Abra o orçamento e confira parcelas e sessões; para refazer um vencido, renove ou use o Copiar.
Um serviço sem produto passou a ter cor no Farol ✅ Novo — out/2026Desde 12/10 o custo inclui o repasse do profissional, os custos extras do convênio e os prestadores (#655). Confira a composição no tooltip do Farol.
Preciso mudar o valor da tabela e o campo está bloqueadoNão existe permissão para "valor manual acima da tabela" (a antiga ORCAMENTO.OVERRIDE_VALOR não existe). O valor vem da tabela/conversão do convênio: corrija o preço no cadastro (ver Preços e Conversão de Valores) ou aplique desconto dentro da sua alçada. Se o orçamento já foi pago, o valor trava.
Aprovei mas o agendamento não apareceuDepois de aprovar, use o botão Agendar e salve a tela pré-preenchida; confira em Agenda. O bug de sessões (#386) foi corrigido em jul/2026 — veja a nota abaixo.
Orçamento cancelado por enganoUse Reabrir (/portal/agenda/orcamento/:idOrcamentoCancelado/reabrir) — exige CREATE na permissão AGENDAMENTO/ACOLHIMENTO/CONFIRMACAO e cria um novo orçamento, que começa em Pendente de aprovação interna.
Não consigo editar um orçamento aprovado / "Abrir Proposta" está desabilitado✅ Novo — 26/09/2026 Confira o status: só travam Recusado e Aprovado pela Assistência. Aprovado pelo Paciente, Aprovado pelo Convênio e Vencido continuam editáveis. Se o orçamento está travado e precisa mudar, cancele e crie uma nova versão.
"Não é possível acolher: o orçamento (id N) ainda não foi pago."✅ Novo — 26/09/2026 Orçamento particular com financeiro precisa estar pago para acolher. Faça o pagamento ali mesmo, no acolhimento (ou na tela do orçamento).
"O orçamento desta sessão já foi pago — não é possível alterar o valor nem dar desconto."✅ Novo — 26/09/2026 Comportamento correto: depois de pago, o valor trava. Descontos e ajustes são feitos antes do pagamento.
Acolhimento bloqueado com mensagem de financeiro "diferente do orçamento" ou "separe as sessões por orçamento"✅ Novo — 26/09/2026 É a proteção contra cobrança em dobro (orçamentos novos). Confira se a sessão está ligada à movimentação do orçamento e se o agendamento não está ligado a mais de um orçamento com financeiro.
✅ Novo — jul/2026 Bug corrigido (#386): a validação sessoesRealizadas < sessoesAutorizadas, que rodava depois de incrementar e podia gerar agendamento além do autorizado, foi corrigida. Entregue no ciclo de julho/2026; se ainda não apareceu no seu ambiente, chega na próxima atualização.

12. Farol de resultado — ENTREGUE ✅ Novo — jul/2026

Entregue no ciclo de julho/2026; se ainda não apareceu no seu ambiente, chega na próxima atualização. O Farol de resultado 🟢🟡🔴 por convênio/serviço/produto (#390/#434) mostra cores + índice ao calcular o resultado: 🟢 verde segue direto, 🟡 amarelo alerta e 🔴 vermelho BLOQUEIA — a liberação no vermelho exige aprovação de nível superior.
✅ Novo — ago/2026 Entregue no ciclo de agosto/2026; se ainda não apareceu no seu ambiente, chega na próxima atualização:
✅ Novo — set/2026 Farol CONSOLIDADO no orçamento, no agendamento e na autorização (em produção desde 23/09/2026); se ainda não apareceu no seu ambiente, chega na próxima atualização:

✅ Novo — set/2026 Impressão do orçamento corrigida (#614 — 24/09/2026): o valor da impressão divergia da proposta (mesmo com o orçamento aprovado) e havia falha silenciosa ao salvar. Corrigido: a impressão sai com o mesmo valor da proposta e toda gravação agora tem confirmação na tela.

✅ Novo — set/2026 Regras de preço do orçamento — a série inteira está em produção (23–24/09/2026); se ainda não apareceu no seu ambiente, chega na próxima atualização: 🌳 Na dúvida se um item entra ou não entra, siga a Árvore de decisão de preços.
💰 Aprofunde — como o Rabi chega ao preço? O orçamento calcula cada linha pela regra de conversão do convênio: os 3 níveis de conversão, as 3 linhas de cada item e o modo pacote estão explicados de ponta a ponta na nova área Preços e Conversão de Valores.
✅ Novo — out/2026 Novidades de outubro/2026 (01–13/10) — conferidas no código de produção em 13/10/2026:
✅ Novo — 15/10/2026 Novidades de 13–15/10/2026 — conferidas no código de produção em 15/10/2026:

Novidades de 15–23/10/2026 ✅ Novo — 23/10/2026

Conferidas no código de produção em 23/10/2026.

Pontos-chave

O que a prova vai cobrar