Skip to main content

14 – Definições de Busca de Regras

Para a busca de regras da reforma tributária, temos algumas definições que diferem da busca de regras do motor atual.

Abaixo segue essas definições, na ordem de prioridade do motor:

A)      Busca de regra geral por operação

Primeiramente o motor considera a busca de regras gerais por operação, onde é feito uma busca de regras considerando os parâmetros do cenário indicado na chamada e o código do produto, ncm e origem = vazio.

Para identificar esse tipo de retorno, é retornado no campo genérico do retorno a marcação = “buscaRT=regraGeralOperacao”.

Caso não encontre regra nessa etapa, segue para a próxima busca.

B)      Busca de regra específica por código de produto ou ean

Nessa etapa o motor irá buscar regras específicas, aquelas cujo produto, ean e origem são preenchidos na regra, considerando as demais informações enviadas na requisição. Nesse tipo de regra, se encaixa os seguintes critérios, respeitando a seguinte ordem:

1)      Busca por código de produto informado na chamada = É necessário que a configuração “AtivaBuscaCodProd” esteja ativa no cockpit; Se não encontrar, segue para o item 2: 

2)      Busca por ean informado na chamada = É necessário que a configuração “AtivaBuscaEan” esteja ativa no cockpit;

Nota: Todos esses critérios de buscam, também segue o critério de agrupamento de origem. Vide Tópico 20.

Nas 2 hipóteses acima, caso seja encontrado uma regra específica, seja por código de produto ou ean, é feito antes uma busca na tabela de “produtos com regra geral”, para aquele código ou ean e cenário encontrado. Caso encontre um registro ativo e vigente nessa tabela, é feito uma comparação entre a data de criação desse registro e a data de criação da regra especifica encontrada.

Se a data de criação da regra especifica seja mais recente, é consumido essa regra.

Caso o registro da tabela “Produtos com regra geral” for mais recente, é feito uma busca de regra geral e entregue no retorno caso encontre. Se não encontrar a regra geral, é consumido a regra especifica encontrada anteriormente.

Para identificar esses retornos, é retornado no campo genérico do retorno as seguintes marcações, a depender da situação:

Se consumido regra específica por código: “buscaRT=regraEspecificaCodigo”.

Se consumido regra específica por ean: “buscaRT=regraEspecificaEan”.

Se consumido regra geral por código: “buscaRT=regraGeralCodigo”.

Se consumido regra geral por ean: “buscaRT=regraGeralEan”.

 

Caso não encontre regra nessa etapa, segue para a próxima busca. 

 

C)      Busca por regra geral

Nessa etapa, quando não é encontrado regras específicas da etapa acima, será validado se o código de produto ou ean informado na chamada + o cenário da operação, consta na tabela de “produtos com regra geral”.

Caso encontre um registro ativo e vigente nessa tabela, é feito uma busca de regra geral e caso encontre é consumido essa regra.

Para identificar esse tipo de retorno, é retornado no campo genérico do retorno as seguintes marcações:

Se consumido regra geral por código: “buscaRT=regraGeralCodigo”.

Ou

Se consumido regra geral por ean: “buscaRT=regraGeralEan”.

Caso não encontre regra nessa etapa, segue para a próxima busca.

D)      Busca de regra ondemand por código EAN

Nessa etapa, é feito uma busca de regras ondemand, considerando o ean e origem indicado na chamada + os parâmetros do cenários.

Referente aos parâmetros do cenário, pode ser considerado o de/para de perfis ou não. Caso não haja o de/para para os perfis indicado, não é impedimento para essa busca.

Não havendo de/para de cenários do cenário RT para a busca ondemand, é retornando no campo genérico do retorno a marcação: deparaRT=N.

Em relação ao ean indicado, é necessário que haja cadastrado na base interna do Supermercado Systax. (obs: não é necessário que o cliente tenha cadastrado em sua base). Se não houver cadastrado na base interna do Supermercado Systax, não será calculado regra nessa etapa.

Para que essa busca seja feita, é necessário que a configuração “calculoOnDemand” esteja ativo na tela de “Configuração Tax Engine” ou que seja informado na tag “genérico” do cabeçalho da requisição a marcação: “busca=4”.

Para identificar esse tipo de retorno, é retornado no campo genérico do retorno as seguintes marcações:

Se regra ondemand for geral: “buscaRT=ondemandGeralEan”.

Ou 

Se regra ondemand for específica: “buscaRT=ondemandEspecificalEan”.

Caso não encontre regra nessa etapa, segue para a próxima busca.

E)       Busca de regra especÍfica por NCM

Nessa etapa o motor irá buscar regras específicas considerando a NCM e origem informado na chamada (também considerando se necessário o agrupamento de origem).

Nesse tipo de busca  é necessário que a configuração “AtivaBuscaNCM” esteja ativa no cockpit.

Nessa busca, caso seja encontrado uma regra específica é feito antes uma busca na tabela de “produtos com regra geral”, para aquela NCM e cenário encontrado. Caso encontre um registro ativo e vigente nessa tabela, é feito uma comparação entre a data de criação desse registro e a data de criação da regra especifica encontrada.

Se a data de criação da regra especifica seja mais recente, é consumido essa regra.

Caso o registro da tabela “Produtos com regra geral” for mais recente, é feito uma busca de regra geral e entregue no retorno caso encontre. Se não encontrar a regra geral, é consumido a regra especifica encontrada anteriormente.

Para identificar esses retornos, é retornado no campo genérico do retorno as seguintes marcações, a depender da situação:

Se consumido regra específica por NCM: “buscaRT=regraEspecificaNCM”.

Ou 

Se consumido regra geral por NCM: “buscaRT=regraGeralNCM”.

Caso não encontre regra nessa etapa, segue para a próxima busca.

F)       Busca de regra geral por NCM

Nessa etapa, quando não é encontrado regras específicas por NCM da etapa acima, será validado se a NCM informado na chamada + o cenário da operação, consta na tabela de “produtos com regra geral”.

Caso encontre um registro ativo e vigente nessa tabela, é feito uma busca de regra geral e caso encontre é consumido essa regra.

Para identificar esse tipo de retorno, é retornado no campo genérico do retorno a marcação: “buscaRT=regraGeralNCM”.

Caso não encontre regra nessa etapa, segue para a próxima busca.

G)     Busca de regra ondemand por NCM

Nessa etapa, é feito uma busca de regras ondemand, considerando a NCM e origem indicado na chamada + os parâmetros do cenários.

Referente aos parâmetros do cenário, pode ser considerado o de/para de perfis ou não. Caso não haja o de/para para os perfis indicado, não é impedimento para essa busca.

Não havendo de/para de cenários do cenário RT para a busca ondemand, é retornando no campo genérico do retorno a marcação: deparaRT=N.

Em relação a NCM indicada é necessário que haja cadastrado na base interna do Supermercado Systax. (obs: não é necessário que o cliente tenha cadastrado em sua base). Se não houver cadastrado na base interna do Supermercado Systax, não será calculado regra nessa etapa.

Para que essa busca seja feita, é necessário que a configuração “calculoOnDemand” esteja ativo na tela de “Configuração Tax Engine” ou que seja informado na tag “genérico” do cabeçalho da requisição a marcação: “busca=4”.

Para identificar esse tipo de retorno, é retornado no campo genérico do retorno as seguintes marcações:

Se regra ondemand for geral: “buscaRT=ondemandGeralNCM”.

Ou 

Se regra ondemand for específica: “buscaRT=ondemandEspecificalNCM”.

Todas as etapas acima indicadas são as que o motor percorre para retornar uma regra válida e vigente na data do cálculo.

Caso não seja encontrado regra da reforma, os blocos serão suprimidos.