Skip to content
Light
English

Order Fields Policy

Este artigo tem como objetivo explicar a Política de campos do pedido do Demander.

A Política de campos do pedido permite controlar o comportamento de campos do pedido de acordo com o contexto comercial (por exemplo: vendedor, cliente, tipo de pedido etc.).

Para cada campo suportado, é possível definir:

  • Visibilidade (mostrar/ocultar).
  • Obrigatoriedade (exigir preenchimento).
  • Bloqueio (mostrar sem permitir alteração).
  • Filtro de opções (permitir/bloquear valores).
  • Seleção automática de valor (quando aplicável).

O objetivo é atender cenários onde a empresa precisa limitar o uso e/ou as opções de campos do pedido por contexto(por exemplo: um contexto pode ver um campo com lista filtrada, outro pode exigir preenchimento, outro pode ocultar o campo).

A solução foi concebida de forma extensível: novos campos podem ser adicionados mantendo o mesmo contrato do jsonRegras e sem remodelagem de base. Para consultar quais campos estão disponíveis no momento, veja a seção Campos suportados e exemplos.

A configuração da política envolve campos de identificação, filtros de contexto e o JSON de regras. Esta seção foi baseada nos campos previstos na integração da tabela 280 - PoliticaCamposPedido.

  • codigo: identifica a política no contexto do cliente.
  • descricao: descrição da política.
  • ativo: define se a política pode ser aplicada (0 = inativo, 1 = ativo).
  • prioridade: critério de desempate entre políticas aplicáveis (menor valor indica maior prioridade).

Os filtros abaixo são opcionais. Quando preenchidos, restringem o uso da política ao contexto correspondente (e aumentam a especificidade).

  • codVendedor: filtro por vendedor.
  • codCliente: filtro por cliente.
  • codListaPreco: filtro por lista de preço.
  • codTipoPedido: filtro por tipo de pedido.
  • codFormaPagamento: filtro por forma de pagamento.
  • codCondicaoPagamento: filtro por condição de pagamento.
  • codTipoFrete: filtro por tipo de frete.
  • codTipoDesconto: filtro por tipo de desconto.
  • codSegmento: filtro por segmento.
  • codFilial: filtro por filial.
  • codTransportadora: filtro por transportadora.
  • codRedespacho: filtro por redespacho.
  • codDivisaoVendas: filtro por divisão de vendas.

Exemplos de filtrosExemplo 1: política aplicável somente quando codVendedor,codCliente e codDivisaoVendas coincidirem.

  • prioridade= 1
  • codVendedor= 45
  • codCliente= 1001
  • codDivisaoVendas= DV01

Neste caso, a política só deve ser considerada aplicável quando o pedido estiver no contexto do vendedor 45, do cliente 1001 e da divisão DV01 ao mesmo tempo. Se qualquer um desses valores for diferente, a política não se aplica.

Exemplo 2: política aplicável quando codVendedor e codDivisaoVendas coincidirem, independente do cliente.

  • prioridade= 5
  • codVendedor= 45
  • codDivisaoVendas= DV01

Neste caso, a política se aplica para qualquer cliente, desde que o pedido esteja no contexto do vendedor 45 e da divisão DV01.

Em uma situação onde existirem ambas as políticas (Exemplo 1 e Exemplo 2) aplicáveis, o sistema deve preferir a mais específica (Exemplo 1) por que a prioridade dela é menor (1) indicando que deve ser aplicada primeiro.

O campo jsonRegras armazena um JSON com o comportamento dos campos:

{ “campos”: { “nomeCampo”: { “obrigatoriedade”: (“VISIVEL”,“OBRIGATORIO”,“BLOQUEADO”,“OCULTO”), -> comportamento do campo nos dados do pedido “filtro”: { “tipo”: (“PERMITIR”,“BLOQUEAR”) “valores”: [“1”, “2”, “3”] -> Valores que estarão disponiveis/bloqueados conforme “tipo” }, “selecionado”: “2” -> Valor que será selecionado automaticamente ou enviar null para não selecionar automaticamente. } } }

Comportamento

  • VISIVEL: mantém o campo disponível para uso.
  • OBRIGATORIO: exige preenchimento do campo.
  • BLOQUEADO: não permite alteração no campo.
  • OCULTO: oculta o campo.
  • PERMITIR: exibe para seleção somente as opções listadas em valores.
  • BLOQUEAR: oculta da seleção as opções listadas em valores.
  • selecionado: o valor será selecionado automaticamente quando a regra for aplicada.

Esta seção concentra os campos que possuem interpretação no aplicativo e exemplos de uso. Ao adicionar novos campos, a manutenção da documentação tende a ficar restrita a esta seção.

Campo: Divisão de vendas (divisaoVendas)

  • Permite controlar visibilidade, obrigatoriedade, bloqueio, filtro de opções e seleção automática do valor.

Exemplo de jsonRegras para divisaoVendas:

{ “campos”: { “divisaoVendas”: { “obrigatoriedade”: “VISIVEL”, “filtro”: { “tipo”: “PERMITIR”, “valores”: [“1”, “2”, “3”] }, “selecionado”: “2” } } }

Como o sistema escolhe a política (prioridade e especificidade)

Section titled “Como o sistema escolhe a política (prioridade e especificidade)”

Quando existir mais de uma política aplicável, deve prevalecer a regra mais adequada ao contexto. A lógica esperada de seleção é:

  • Considerar somente políticas ativas.
  • Uma política é aplicável quando todos os filtros preenchidos nela coincidem com os valores do cenário do pedido.
  • Campos de filtro não preenchidos na política são considerados “indiferentes” (política mais genérica).
  • Ordenação recomendada para desempate:prioridade ASC(menor valor indica maior prioridade), depois especificidade maior número de filtros aplicados, depois id DESC.
  • Retornar/aplicar apenas a melhor política(a primeira após a ordenação).
  • Cenário 1: Campo visível e com lista permitida (apenas 1, 2 e 3).
  • Quando a política for aplicável ao contexto do pedido, o usuário verá somente essas opções no campo.
  • Cenário 2: Seleção automática.
  • Se selecionado estiver presente na lista final após o filtro, o sistema deve preencher automaticamente o campo com esse código.
  • Cenário 3: Campo oculto para um contexto específico.
  • Quando a política definir OCULTO, o campo deve deixar de ser exibido e o valor atual deve ser removido do pedido.

Como fazer a integração desta política?

Section titled “Como fazer a integração desta política?”
    1. Acesse o cadastro Política de campos do pedido.
    1. Preencha Código,Descrição,Empresa (idClienteRetta),Ativo e Prioridade.
    1. Configure os filtros de contexto (por exemplo: vendedor, cliente, tipo de pedido etc.). Quanto mais filtros preenchidos, mais específica é a política.
    1. No campo JSON das regras, informe o jsonRegras seguindo o contrato oficial.
  • Para detalhes do significado de cada campo, consulte a seção Campos de configuração.
    1. Salve a política e sincronize os dados para que os aplicativos e integrações recebam a configuração.