Consulta de Imposto por Produtos

Regras de negócio

No ERP sankhya existe várias formas de configurar alíquotas de ICMS para serem utilizadas como base para cálculos de impostos nas operações de entrada e saída de produtos dos estados, isto é, são utilizadas para tributação e fiscalização de empresas. Existem também a possibilidade de se configurar várias regras e exceções de alíquotas de estado para estado.
Existem situações que serão necessárias que a empresa configure suas regras de cálculo de impostos nas notas fiscais de acordo com o NCM “Nomenclatura Comum do Mercosul” dos produtos, pois dessa forma as definições das regras ficam mais fáceis.
OBS: Caso tenha alguma necessidade de configuração do ERP procure “Consultor” ou acesso o link de apoio:
https://ajuda.sankhya.com.br/hc/pt-br/articles/360044602934-Al%C3%ADquotas-de-ICMS

Dependências

Não possui dependências

Detalhes Técnicos

A entidade utilizada é a AliquotaICMS que por sua vez instancia a tabela TGFICM mapeando os campos principais.
Para realizarmos a busca através do Json, utilizamos o serviço "DatasetSP.loadRecords".

O serviço DatasetSP.loadRecords é o serviço para ser utilizado para consulta de dados através do JSON.

No exemplo abaixo foi utilizado como filtro os campos TIPRESTRICAO e CODRESTRICAO para buscar as alíquotas de ICMS por produtos. .

• TIPRESTRICAO – Tipo de Restrição; • CODRESTRICAO – Código da Restrição;
OBS.: O campo CODRESTRIÇÃO recebe os dados de acordo com o tipo e restrição selecionado, por exemplo:

1 - Se a busca da aliquota for por "Produto", o campo TIPRESTRICAO recebe a opção 'P' e o campo CODRESTRICAO receberá o código do produto(CODPROD).
2 - Se a busca da aliquota for por Grupo de Produto, o campo TIPRESTRICAO recebe a opção 'G' e o campo CODRESTRICAO receberá o código do grupo de produto(CODGRUPOPROD).
3 - Se a busca da aliquota for por Parceiros, o campo TIPRESTRICAO recebe a opção 'E' e o campo CODRESTRICAO receberá o código do Grupo de ICMS do Parceiro.

Para utilizarmos o filtro, basta acrescentar no corpo da requisição o código abaixo utilizando o criteria:
      "criteria":{
         "expression": {
           "$": "this.TIPRESTRICAO = ? and CODRESTRICAO = ?"
        },
        "parameters": [
           {
             "$": "P",
             "type": "S"
           },
           {
             "$": "127",
             "type": "I"
           }
        ]
      }
      

Para melhor performance sempre utilize nas suas consultas apenas os campos necessários, para evitar tráfego de dados que não serão utilizados.

Descritivo de campos da entidade

Acesse aqui o dicionário de dados da tabela TGFICM

Exemplo de uso:


URL de chamada: https://api.sankhya.com.br/gateway/v1/mge/service.sbr?serviceName=DatasetSP.loadRecords&outputType=json

Corpo de requisição
{
   "serviceName":"DatasetSP.loadRecords",
   "requestBody":{
      "dataSetID":"001",
      "entityName":"AliquotaICMS",
      "standAlone":false,
      "fields":[
         "UnidadeFederativaOrigem.UF",
         "UnidadeFederativaDestino.UF",
         "DESCRRESTRICAO",
         "CODRESTRICAO",
         "ALIQUOTA"
      ],
      "tryJoinedFields":true,
      "parallelLoader":true,
      "crudListener":"br.com.sankhya.mgecomercial.listeners.AliquotaICMSCrudListener",
      "criteria":{
         "expression": {
           "$": "this.TIPRESTRICAO = ? and CODRESTRICAO = ?"
        },
        "parameters": [
           {
             "$": "P",
             "type": "S"
           },
           {
             "$": "127",
             "type": "I"
           }
        ]
      },
      "ignoreListenerMethods":""
   }
}

Retorno em json:

{
    "serviceName": "DatasetSP.loadRecords",
    "status": "1",
    "pendingPrinting": "false",
    "transactionId": "4D65956C491E6946CB573D1F2EF1D5DC",
    "responseBody": {
        "total": "3",
        "askRowsLimit": "0",
        "result": [
            [
                "MG",
                "SP",
                "127 PRODUTO PORTAL XML 2",
                "127",
                "25"
            ],
            [
                "MG",
                "SP",
                "127 PRODUTO PORTAL XML 2",
                "127",
                "25"
            ],
            [
                "MG",
                "MG",
                "127 PRODUTO PORTAL XML 2",
                "127",
                "25"
            ]
        ]
    }
}
Language
Click Try It! to start a request and see the response here!