Produto: | TOTVS CRM Automação da Força de Vendas |
---|---|
Linha de Produto: | Linha TOTVS CRM |
ERPs impactados: | Protheus, Datasul e ERPs terceiros |
Módulo: | Venda |
Função: | Pedido |
Ambiente: | Web/Android |
Ticket: | 16271428 |
Requisito/Story/Issue: |
Na versão atual do TOTVS SFA, no módulo de "Venda", não existe a possibilidade de criar uma validação lógica customizada, de acordo com os capos disponíveis no pedido.
Para isso será disponibilizado uma nova configuração chamada "Validações lógicas" dentro de: Configuração → Configuração pedido.
Esta nova opção, irá permitir criar uma lógica customizada, onde terá o seguinte fluxo:
Segue um exemplo de cadastro de uma validação lógica na "Imagem 01":
Com isso, será possível customizar validações durante a confecção do pedido, permitindo ter mais autonomia em regras de negócio específicas.
Para a construção das lógicas, está sendo sugerido o plugin: https://querybuilder.js.org/index.html
Nova tabela |
---|
validacaoLogica { idValidacaoLogica: type="long", value="seqPkValidacaoLogica", descricao: type="String", length="80" not-null="true", idnAtivo: type="byte", not-null="true", sglGatilho: type="String", length="80" not-null="true", sglGatilhoCampo: type="String", length="80" not-null="false", logica: type="byte[]", not-null="true", sglRetornoVerdadeiro: type="String", length="80" not-null="true", retornoVerdadeiro: type="byte[]", not-null="false", sglRetornoFalso: type="String", length="80" not-null="true", retornoFalso: type="byte[]", not-null="false", codigoERP: type="String", length="80" not-null="true", wsVersao: type="long", update="false" insert="false" } |
Valores de sglGatilho / sglGatilhoCampo |
---|
ALT_CAB { ALT_ITEM { GRAVAR { FINALIZAR { |
Campos que serão utilizados para construção da lógica | ||
---|---|---|
CAB_PARCEIRO( label="Cabeçalho parceiro", tipo="ENTIDADE" ), CAB_LOCAL( label="Cabeçalho local", tipo="ENTIDADE" ), CAB_LOCAL_FILIAL( label="Cabeçalho filial", tipo="ENTIDADE" ), CAB_PROFISSIONAL( label="Cabeçalho profissional" tipo="ENTIDADE" ), CAB_TIPO_PEDIDO( label="Cabeçalho tipo pedido" tipo="ENTIDADE" ), CAB_COND_PGTO( label="Cabeçalho condição de pagamento" tipo="ENTIDADE" ), CAB_TAB_PRECO( label="Cabeçalho tabela de preço" tipo="ENTIDADE" ), CAB_TIPO_ESTOQUE( label="Cabeçalho tipo estoque" tipo="ENTIDADE" ), | ITEM_DESCRICAO( label="Produto descricao", tipo="STRING" ), ITEM_QUANTIDADE( label="Produto quantidade", tipo="DECIMAL" ), ITEM_QUANTIDADE_EMB( label="Produto quantidade embalagem", tipo="DECIMAL" ), ITEM_ESTOQUE( label="Produto estoque", tipo="DECIMAL" ), ITEM_PRECO_TABELA( label="Produto preço tabela", tipo="DECIMAL" ), ITEM_PRECO_VENDA( label="Produto preço venda", tipo="DECIMAL" ), ITEM_PERC_DESCONTO( label="Produto percentual desconto", tipo="DECIMAL" ), ITEM_VAL_DESCONTO( label="Produto valor desconto", tipo="DECIMAL" ), | RSM_TOT_BRU( label="Resumo valor total bruto", tipo="DECIMAL" ), RSM_TOT_LIQ( label="Resumo valor total líquido", tipo="DECIMAL" ), RSM_TOT_IMP( label="Resumo valor total com impostos", tipo="DECIMAL" ), RSM_PERC_DESC( label="Resumo percentual total desconto", tipo="DECIMAL" ), RSM_VAL_DESC( label="Resumo valor total desconto", tipo="DECIMAL" ), RSM_QTDE_PROD( label="Resumo quantidade de produtos", tipo="DECIMAL" ), RSM_QTDE_EMB( label="Resumo quantidade de embalagens", tipo="DECIMAL" ), |
Exemplo de JSON gerado pelo plugin (validacaoLogica.logica) |
---|
{ "condition": "AND", "rules": [ { "id": "name", "field": "name", "type": "string", "input": "text", "operator": "equal", "value": "Mistic" }, { "condition": "OR", "rules": [ { "id": "category", "field": "category", "type": "integer", "input": "checkbox", "operator": "in", "value": [ 1, 2 ] }, { "id": "in_stock", "field": "in_stock", "type": "integer", "input": "radio", "operator": "equal", "value": 0 } ], "not": false } ], "not": false, "valid": true } |
Valores de sglRetornoVerdadeiro / sglRetornoFalso |
---|
NONE ("Nenhuma ação"), MSG_TEMP ("Mensagem temporária"), MSG_CONF ("Mensagem confirmação"), MSG_BLQ_GRA ("Mensagem de bloqueio ao Gravar"), MSG_BLQ_FIN ("Mensagem de bloqueio ao Finalizar"), MSG_APROV ("Mensagem de envio para aprovação"), |
Exemplo de retornoVerdadeiro / retornoFalso (TextArea) | |||||
---|---|---|---|---|---|
Este campo será preenchido de forma semelhante ao "Envio de email" que temos hoje,
|