Consulta de Imposto por Grupo de Parceiros

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.Existe também, possibilidade de se configurar também várias regras e exceções de alíquotas de estado para estado.
Existem situações em que será necessário a empresa,configurar 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 grupo de parceiros. .

• 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 parceiros(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": [
           {
             "$": "E",
             "type": "S"
           },
           {
             "$": "10",
             "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",
         "DESCRRESTRICAO2",
         "CODRESTRICAO2",
         "ALIQUOTA"
      ],
      "tryJoinedFields":true,
      "parallelLoader":true,
      "crudListener":"br.com.sankhya.mgecomercial.listeners.AliquotaICMSCrudListener",
      "criteria":{
         "expression": {
           "$": "this.TIPRESTRICAO = ? and CODRESTRICAO = ?"
        },
        "parameters": [
           {
             "$": "E",
             "type": "S"
           },
           {
             "$": "10",
             "type": "I"
           }
        ]
      },
      "ignoreListenerMethods":""
   }
}

Retorno em json:

{
    "serviceName": "DatasetSP.loadRecords",
    "status": "1",
    "pendingPrinting": "false",
    "transactionId": "4322B08E0402C5933D5559F44CDCBE46",
    "responseBody": {
        "total": "2",
        "askRowsLimit": "0",
        "result": [
            [
                "MG",
                "SP",
                "",
                "10",
                "4"
            ],
            [
                "MG",
                "SP",
                "",
                "100",
                "4"
            ]
        ]
    }
}
Language
Click Try It! to start a request and see the response here!