Problemas e limitações de vendas, clientes e fornecedores
Revisão de 08/11/2026, feita no código e com a aplicação rodando localmente.
| Sintoma | Causa provável | O que fazer |
|---|---|---|
| Pedido não aparece no mês | A lista filtra pela data da venda | Troque o mês ou confira a data da venda. |
| Pedido excluído sumiu | Foi para a lixeira | Ver lixeira → Restaurar. |
| Cliente comprou curso e não tem acesso | Pedido não pago, recusado ou na lixeira | Marque como pago ou use Reprocessar pedido. |
| Não consigo excluir o cliente | Cliente com pedidos | Mantenha o cadastro; a exclusão só vale sem pedidos. |
| Total faturado diferente do total em vendas | Valor faturado com desconto ou acréscimo | A linha mostra a diferença; confira o valor faturado. |
| No celular, o título do cabeçalho quebra ("Ven / das") | Os botões de lista/grade e "Opções" espremem o título em telas de ~390 px | Só visual; registrado para correção no app-header. |
| Avatar do cliente com texto quebrado na lista | O avatar padrão vem do serviço externo placehold.co, que não carregou (rede bloqueada ou offline) | Cadastre uma foto no cliente; registrado para trocar por um avatar local. |
Achados técnicos (para o time)
- Fornecedores sem escopo por empresa:
GET /supplierusa$match: {}, e a policy libera todos os ProfileBusiness e ProfileCollaborator. Cada empresa vê todos os fornecedores da plataforma. Precisa decidir se é um diretório global intencional ou se deve filtrar por empresa. - Exclusão de cliente sem autenticação explícita:
DELETE /customer/:customerIdnão temauth.checkToken. Hoje a checagem de permissão falha sem usuário (falha fechada), mas a rota deveria responder 401.- A mesma exclusão apaga o cliente antes de conferir os pedidos e depende do aborto da transação para desfazer. A consulta de pedidos também usa o documento, e não o id.
POST /customer/fcm-token: rota sem autenticação. Confirmar se é intencional (registro de token do app antes do login).- Filtros repassados direto à consulta:
GET /orderrepassa os parâmetros extras da query direto para o$match. Isso fica limitado à própria empresa pelowithDeclaredBusinessGuard, mas aceita operadores. Convém uma lista branca de filtros. - Avatar padrão externo:
order-itemusahttps://placehold.co/400?text=<inicial>como avatar padrão. Isso cria uma dependência externa e envia a inicial do cliente a terceiros. Convém gerar o avatar localmente. - Fuso do mês: a régua de meses (
ref) calcula o início e o fim do mês no fuso do servidor, e não no de Brasília. Uma venda às 22h do último dia pode cair no mês seguinte num servidor em UTC.