Pular para o conteúdo principal

Detalhes de Venda, Faturamento e Pagamento — Visão Geral

Última atualização: 16 de julho de 2026

O que é este fluxo

Enquanto o fluxo de Nova Venda cobre a criação e edição de um pedido, este fluxo cobre a consulta de uma venda que já existe: ver seus detalhes, compartilhar ou exportar um PDF dela, e (em teoria) acompanhar faturamento, pagamento, coletar assinatura do cliente ou marcar uma cotação como perdida. Das cinco sub-telas envolvidas, só duas são reais e alcançáveis pelo vendedor hoje: detalhes da venda e compartilhamento/relatórios. As outras três, faturamento, pagamento, assinatura digital e perda de cotação, existem como código funcional ou semi-funcional, mas nenhuma delas tem hoje um botão real que leve até elas.

Um aviso sobre a documentação interna existente

Há um arquivo features/sale/SALE.md no próprio repositório que se apresenta como documentação completa desta feature. Ele está desatualizado e não deve ser usado como referência: descreve, por exemplo, um sale.controller.ts baseado em dados mockados e um menu de opções com entradas para "PIX/Link de Pagamento", "Converter/Faturar", "Perda de Venda" e "Assinatura de Documentos" que não existem mais na UI atual. O código hoje já usa dados reais no controller principal, e esse menu de opções foi substituído por um mais enxuto (SaleMoreOptionsSheet), sem que as telas antigas fossem removidas. Esta documentação Docusaurus reflete o estado real do código, verificado arquivo por arquivo, não o conteúdo desse markdown interno.

Resumo: o que é real, o que é mock, e o que é alcançável

Sub-fluxoDado real ou mock?Alcançável hoje pela UI?
Detalhes da vendaReal (API, SQLite, catálogo de status sincronizado)Sim
Compartilhar "Layout Padrão" (PDF)Real, gerado no cliente a partir dos dados da vendaSim
Compartilhar "Relatórios ERP/Online"Real, baixa PDF gerado pelo ERPSim, só para venda já integrada e finalizada
Compartilhar boletoPlaceholder, onPress vazio com // TODONão implementado
FaturamentoMock total, itens hardcodedNão, sem botão de entrada
PagamentoMock total, setTimeout simulando sucessoNão, sem botão de entrada
Assinatura digitalPDF e captura reais, resultado nunca é enviadoNão, modal nunca é aberto
Perda de cotaçãoMock incompleto, botão "Ok" sem onPressNão, sheet nunca é aberto

Por que três sub-telas ficaram inalcançáveis

sale.controller.ts (a tela de listagem de vendas) ainda exporta onPressPayment, onPressInvoice, documentSignModalOpen/setDocumentSignModalOpen e lossQuotationSheetOpen/setLossQuotationSheetOpen, e a própria sale.tsx monta condicionalmente <DocumentSignFlow> e <LossQuotationSheet> quando esses estados ficam true. O problema é que nenhum botão real da interface chama setDocumentSignModalOpen(true) ou setLossQuotationSheetOpen(true), e onPressPayment/onPressInvoice nem chegam a ser referenciados dentro de sale.tsx. Tudo indica que essas ações viviam num menu de opções anterior (o próprio SALE.md descreve esse menu antigo), que foi substituído por um mais simples sem que o código das telas de destino fosse removido junto.

Cada sub-tela é detalhada em seu próprio documento, com o nível de honestidade sobre o que é real e o que é mock que já é padrão neste projeto de documentação.