fix(resellers): avisa que o cadastro de revenda continua na edição
Usuário reportou "só tem nome/documento/e-mail" — era a tela de criação (/resellers/new), que por design só mostra os campos mínimos até a revenda ser salva (CNPJ-lookup/sócios/representante precisam de um id existente), sem nenhuma explicação disso na tela. Adicionado aviso claro dizendo que o resto do cadastro fica disponível assim que salvar. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -793,3 +793,22 @@ Backend (`CreateResellerDto`, `resellers.service.ts`, repositório) e frontend (
|
||||
|
||||
### Pendências
|
||||
A derivação automática de signatários de contrato a partir de `client_registration_partners`/`reseller_partners`/representante legal (pra realmente "usar na confecção do contrato") ainda não existe — hoje `CreateEnvelopeDto.signers` continua sendo preenchido manualmente independente da origem. Esse é o trabalho real que fecha o ciclo que o usuário descreveu; os dados já ficam prontos e completos esperando por ele.
|
||||
|
||||
---
|
||||
|
||||
## Derivação automática de sócios/representante na criação do envelope de assinatura
|
||||
|
||||
Data: 2026-09-18. Fecha exatamente a pendência registrada acima. Usuário: "vamos puxar sócios/representante automaticamente na criação do envelope de assinatura". Implementado diretamente (módulo de assinatura é sensível o suficiente pra não delegar, mesmo padrão já seguido desde a leva original do módulo).
|
||||
|
||||
`CreateEnvelopeDto.signers` passou de obrigatório pra opcional. `EnvelopeService.create()`: se `signers` vier vazio/omitido, deriva automaticamente a partir da origem do envelope (`clientRegistrationId` XOR `resellerId`, já validado):
|
||||
- **Cliente PF**: o próprio titular (`pf_full_name`/`pf_cpf`/`pf_email`/`pf_mobile_phone`) — não tem sócios nem representante, é a única pessoa possível.
|
||||
- **Cliente PJ**: o representante legal (`pj_rep_*`) se `pj_rep_authorization_ack = true`, mais todo sócio de `client_registration_partners` marcado `will_sign = true`.
|
||||
- **Revenda**: mesma lógica, `rep_*`/`reseller_partners`.
|
||||
- **Dedup por CPF**: se o representante também aparecer como sócio com o mesmo CPF (possível em revenda, onde `rep_cpf` é editável — não em cliente, onde `pj_rep_cpf` nunca é setável, lacuna pré-existente já registrada antes), conta uma vez só.
|
||||
- **Nunca falha silenciosamente**: sócio marcado `will_sign` sem `signature_email` cadastrado → 400 nomeando o sócio, pedindo pra completar o cadastro; nada disponível pra derivar (sem representante autorizado, sem sócio marcado) → 400 claro. `signers` explícito no corpo da requisição continua funcionando exatamente como antes — override manual completo, ignora a derivação inteiramente.
|
||||
|
||||
### Verificação
|
||||
`pnpm turbo run typecheck build` 28/28. Suíte 113/113 (107→113, `test/signature-envelope-auto-signers.spec.ts` novo — 6 testes cobrindo PJ com rep+sócio, PF com titular, dedup por CPF em revenda, os dois casos de 400, e o override manual). Testado ao vivo contra a API real: criar revenda com representante autorizado + criar envelope sem informar `signers` → o `contratante` do envelope saiu preenchido automaticamente com os dados do representante, confirmado via `curl`.
|
||||
|
||||
### Achado adicional, resolvido no caminho (não pedido, mas real)
|
||||
Usuário reportou "testei o cadastro de revenda e continua só com nome/documento/e-mail" — investigado ao vivo: a tela de edição de uma revenda existente já mostrava todas as seções corretamente (confirmado abrindo a revenda real "Handix" pela lista). O que ele via era a tela de **criação** (`/resellers/new`), que por design mesmo só mostra os 3 campos mínimos até a revenda ser salva (CNPJ/sócios/representante precisam de um ID existente) — mas sem nenhuma explicação disso na tela, parecendo um cadastro incompleto. Adicionado um aviso claro no formulário de criação: "Salve com o nome pra continuar o cadastro — busca de CNPJ, representante legal, sócios, endereço e contatos ficam disponíveis logo em seguida, na tela de edição desta revenda." Confirmado ao vivo via screenshot.
|
||||
|
||||
Reference in New Issue
Block a user