Skip to content

feat: cadastro de parceiro pela tela, busca com acento, Pix por filial e dados da minuta de venda futura - #301

Merged
malacration merged 2 commits into
malacration:masterfrom
franciscoMarcello:feat/melhorias-comercial
Oct 26, 2026
Merged

malacration merged 2 commits into
malacration:masterfrom
franciscoMarcello:feat/melhorias-comercial

Conversation

@franciscoMarcello

@franciscoMarcello franciscoMarcello commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

O que muda

  • Pix na tela de venda em todas as filiais — forma-pagamento.sql deixa passar formas com U_gerar_pix = 1 independente da filial da conta do banco (a conta do Pix vem de uzzipay.contas).
  • Buscas com acento/cedilha — o Service Layer recusa parâmetro não ASCII em SQLQueries (704 Parameter error, confirmado no HOMOLOG) e não aceita REPLACE/regex no SqlText. Parameter.termoLike troca cada caractere não ASCII por _ (curinga de um caractere do LIKE): "RAÇÃO" → RA__O. Aplicado em item (venda e seletor), parceiro, parceiro limitado e localidade.
  • Lotes na busca de item — produto-tabela-v2.sql devolve WarehouseCode (depósito padrão da filial) para o front consultar GET /batch-stock existente.
  • POST /business-partners/novo (tela Novo parceiro; o POST /business-partners da integração do força de vendas não muda):
    • bloqueia CPF/CNPJ já cadastrado (view nova parceiro-cliente-por-documento.sql, qualquer CardCode, com e sem máscara);
    • exige ao menos uma forma de pagamento liberada (U_envia_forca) → BPPaymentMethods;
    • exige endereço de entrega e tipo de logradouro (TypeOfAddress, obrigatório no SAP); cobrança opcional em outro endereço;
    • Endereco.codigoMunicipio (AbsId da OCNT) vai para County;
    • vendedor: o do login só se for SalePerson (id de funcionário não é SlpCode), senão -1;
    • filiais do cliente novo via cadastro.parceiro.filiais (vazio = comportamento atual do SAP, todas).
  • GET /forma-pagamento/liberadas e IbgeCode em cidades.sql (busca de CEP do front).
  • Correções de serialização para o Service Layer
    • BPFiscalTaxID mandava "Bpcode": null (JsonNaming UpperCamelCase sobre getBPCode) → o SAP recusava a criação de cliente. Vem desde ee32a37 e afeta também a integração do força de vendas. Na leitura, BPCode nunca era preenchido (CPF/CNPJ vazio na listagem de parceiros).
    • BPBranchAssignment mandava disabledForBP.
  • GET /contrato-venda-futura/{id}/negociacao — forma de pagamento e parcelamento do pedido de origem (mesma fonte da emissão dos boletos) para a minuta do contrato.
  • rules.yml — rotas novas para vendedor e vendedor_admin.

Deploy

  • Views novas/alteradas sobem no boot (sql=true): forma-pagamento.sql, forma-pagamento-liberadas.sql, parceiro-cliente-por-documento.sql, cidades.sql, order/produto-tabela-v2.sql. Como as instâncias de produção regravam as views ao subir, todas precisam estar nesta versão.
  • swarm: cadastro.parceiro.filiais=2,4,11,17,18 nos application*.properties.tpl do sap-service; regras de acesso das rotas novas no rules.yml do swarm; filiais Sustennutri que faltarem em uzzipay.contas.

Testes

  • ./gradlew test: 1170 testes, 0 falhas.
  • Views e payload do POST /novo validados no Service Layer de homologação (HOMOLOG2); chaves do JSON conferidas com o $metadata.
  • Revisado com o Codex em várias rodadas até não restarem achados.

PR irmão do front: malacration/sap-front#170.

🤖 Generated with Claude Code

…l e dados da minuta de venda futura

- Pix na venda: formas com U_gerar_pix = 1 aparecem em qualquer filial (forma-pagamento.sql);
  a conta do Pix vem de uzzipay.contas, nao do banco da forma.
- Buscas com acento/cedilha: o Service Layer recusa parametro nao ASCII em SQLQueries (704).
  Parameter.termoLike troca cada caractere por "_" (curinga de um caractere do LIKE) nas buscas
  de item, parceiro, parceiro limitado e localidade.
- Lotes na busca de item: produto-tabela-v2.sql devolve o deposito (WarehouseCode) para o front
  consultar GET /batch-stock.
- POST /business-partners/novo (cadastro pela tela; o POST da integracao do forca de vendas nao muda):
  bloqueia CPF/CNPJ duplicado (view parceiro-cliente-por-documento.sql, sem depender de CLI%),
  exige forma de pagamento liberada (vira CRD2), endereco de entrega e tipo de logradouro
  (TypeOfAddress, obrigatorio no SAP), cobranca opcional em outro endereco, codigo IBGE do
  municipio em County, vendedor = login so se for SalePerson (senao -1) e filiais via
  cadastro.parceiro.filiais.
- GET /forma-pagamento/liberadas e IbgeCode em cidades.sql (busca de CEP do front).
- Correcoes de JSON para o Service Layer: BPFiscalTaxID mandava "Bpcode" (quebrava a criacao de
  cliente desde ee32a37, inclusive pela integracao) e nao lia o BPCode; BPBranchAssignment mandava
  disabledForBP.
- GET /contrato-venda-futura/{id}/negociacao: forma de pagamento e parcelamento do pedido de origem
  (mesma fonte da emissao dos boletos) para a minuta do contrato.
- rules.yml: rotas novas para vendedor e vendedor_admin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@malacration
malacration deployed to homologation October 26, 2026 20:29 — with GitHub Actions Active
@malacration
malacration merged commit c822642 into malacration:master Oct 26, 2026
1 check passed

This branch was successfully deployed

1 active deployment
homologation — d410b00b Deployed Oct 26, 2026 by malacration via teste #629
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants