Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice


01. VISÃO GERAL

A classe TCIProcessing foi desenvolvida para viabilizar o acesso aos dados em processamento do Configurador de Tributos (FISA170) de uma forma dinâmica e intuitiva, desprendendo o fluxo dos dados de condições impostas pela tabela SF4 (TES). 

Este documento tem o objetivo de demonstrar

...

o funcionamento da classe TCIProcessing (Tax Configurator Integration Processing) e seus os métodos.

02. COMO USAR

...

A Classe TCIProcessing possibilita obter os dados do Configurador de Tributos (FISA170)

...

que estão em processamento, ou seja, em tempo de execução, dados que estão sendo calculados pela MATXFIS e não foram persistidos em banco de dados. Sendo assim, para o funcionamento correto é imprescindível que a classe seja consumida após a inicialização da MATXFIS e antes do seu encerramento.

03. MÉTODOS

New()

Método construtor da classe TCIProcessing.

Exemplo de utilização


Bloco de código
languagejs
themeMidnight
titleExemplo método New()
Function Exemplo()
	Local oDados := JsonObject():New()
	
	oDados := TCIPrecessing():New()
Return

setDataItens()

O método setDataItens() serve para acrescentar ao processamento dos dados retornados pelo método GetDataItens() detalhes das configurações realizadas pelo usuário no Configurador de Tributos (FISA170). As configurações que podem ser obtidas são  "regras_base", "regras_aliquiota", "regras_escrituracao" e "detalhes_livro".O uso correto deste método é antes do consumo do método GetDataItens().

Informações
titleInformação

O uso do método setDataItens se faz necessário apenas quando há a necessidade obter dados de cadastros no Configurador de Tributos (FISA170), não sendo obrigatório para a obtenção dos tributos dos itens.

Exemplo de utilização


Bloco de código
languagejs
themeMidnight
titleExemplo de utilização setDataItens()
Function Exemplo()
	Local oDados := JsonObject():New()
	
	oDados := TCIPrecessing():New()
	oDados := setDataItens({"regras_base", "regras_aliquiota", "regras_escrituracao", "detalhes_livro"})

Return


GetDataItens()

O método GetDataItens() retornará os dados dos tributos por item, o em estrutura Json com o tipo de dados caractere.

Exemplo de utilização

Bloco de código
languagejs
themeMidnight
titleExemplo de utilização GetDataItens()
Function Exemplo()
	Local oDados := JsonObject():New()
	Local cRetorno := ""
	
	oDados := TCIPrecessing():New()
	cRetorno := oDados:GetDataItens()

Return cRetorno 

Exemplo de retorno

Bloco de código
languagejs
themeMidnight
titleExemplo de retorno GetDataItens()
{
    "dados_itens": {
						
        "cod_regra": "TRIB01",
        "desc_regra": "REGRA ICMS CST 40 ISENTO",
        "base_trib": 100,
        "aliq_trib": 7,
        "val_trib": 7,
	    "retencao":false,
        "regr_financ": "",
        "id_cadastro": "1563de01-0c33-87af-5437-01401e2f4532",
        "conf_arred": true,
        "ident_trib": "000021",
        "formula_npi": "BAS:TRIB01 ALQ:TRIB01 *",
        "id_npi": "96b65263-8caf-bbef-dc01-758e1d5701dd",
        "cod_cabec_npi": "VAL:TRIB01",
        "mva": 0,
        "mva_aux": 0,
        "val_pauta": 0,
        "perc_majora": 0,
        "ind_aux_majora": 0,
        "cod_trib_majora": "",
        "ded_dependentes": 0,
        "cod_regr_tab_progre": "",
        "cod_regr_ded_depen": "",
        "aliq_servico": 0,
        "aliq_servico_lei_comp": 0,
        "formula_calc_isento": "BAS:TRIB01",
        "formula_calc_outros": "BAS:TRIB01",
        "cod_regra_guia": "",
        "val_zero": false,
        "val_maximo": 0,
        "val_minimo": 0,
        "operador_maximo": "",
        "operador_minimo": ""
    }
}



  

Atibutos

...

itens

Neste atributo deverá ser informado o número do item que deseja obter os dados, podendo ser preenchido das seguintes formas:

...

itens: {1, 5, 10}: Pode-se passar um array contendo os números dos itens que deseja obter os dados.

Exemplos de resquisição:
Bloco de código
languagejs
themeMidnight
titleRequisição Itens
--Exemplo itens: "all"
{
    "itens": "all",
}


--Exemplo itens: 1
{
    "itens": 1,
}

--Exemplo itens:{}
{
    "itens": [
        1,
        5,
        10
    ]
}

dados_cabecalho

Com este atributo irá obter os dados do cabeçalho da operação, preenchendo o valor como "sim":

Exemplo de requisição:
Bloco de código
languagejs
themeMidnight
titleExemplo requisição dados_cabecalho
{
            "itens": "all",
            "dados_cabecalho": "sim"
}
Descrição dos atributos contidos em dados_cabecalho
AtributoTipoDescrição
cod_regracaractereCódigo da regra fiscal
base_tribnúmeroValor da base do tributo
val_tribnúmeroValor do tributo
regr_financcaractereCódigo da regra financeira
id_cadastrocaractereId Cadastro tributo
cod_urfcaractereCódigo da URF
perc_urfnúmeroPercentual da URF
val_depnúmeroValor dependente
cod_regr_guiacaractereCódigo Regra geração de guia
val_majoradonúmeroValor majorado
id_tribcaractereId de Tributos
Exemplo do retorno da requisição do atributo dados_cabecalho
Bloco de código
languagejs
themeMidnight
titleExemplo de retorno dados_cabecalho
{
    dados_cabecalho: 
        {
            "cod_regra": "TRIB01",
            "base_trib": 5000,
            "val_trib": 350,
            "regr_fin": "",
            "id_cadastro": "1563de01-0c33-87af-5437-01401e2f4532",
            "cod_urf": "",
            "perc_urf": 0,
            "val_dep": 0,
            "cod_regr_guia": "",
            "val_majorado": 0,
            "id_trib": "000021"
        }
}

dados_itens

Com este atributo irá obter os dados dos tributos genéricos por item, preenchendo o valor como "sim". Caso necessário, há a possibilidade de obter os dados das regras de base ("regras_base"), regras de alíquota ("regras_aliquota"), regras de escrituração ("regras_escrituracao") e detalhes do livro ("detalhe_livro"), complementando a informação do retorno padrão substituindo o "sim" por um array contendo os atributos que desejar:

Exemplo de requisição dados_itens: "sim"
Bloco de código
languagejs
themeMidnight
titleExemplo requisição dados_itens
{
            "itens": "all",
            "dados_itens": "sim"
}
Descrição dos atributos contidos em dados_itens
AtributoTipoDescrição
cod_regracaractereCódigo da regra fiscal
desc_regracaractereDescrição da regra
base_tribnúmeroBase de cálculo do tributo
aliq_tribnúmeroAlíquota  do tributo
val_tribnúmeroValor do tributo
retencaobooleanIndica se o tributo tem retenção
regr_financcaractereCódigo da regra financeira
id_cadastrocaractereId Cadastro Tributo
conf_arredbooleanConfig. Arredondamento
ident_tribcaractereIdentificador do Tributo
formula_npicaractereFórmula convertida em NPI
id_npicaractereId cabeçalho
cod_cabec_npicaractereCódigo do Cabeçalho
mvanúmeroMargem de Valor Agregado
mva_auxnúmeroíndice auxiliar MVA
val_pautanúmeroValor da pauta
perc_majoranúmeroPercentual majoração
ind_aux_majoranúmeroÍndice Auxiliar Majoração
cod_trib_majoracaractereCódigo do que majora o tributo atual
ded_dependentesnúmeroDedução por dependentes
cod_regr_tab_progrecaractereCódigo da regra de tabela progressiva
aliq_serviconúmeroAliquota padrão código lei complementar
cod_regr_ded_depencaractereCódigo da regra dedução dependentes
aliq_servico_lei_compnúmeroAlíquota de serviço da lei complemetar
formula_calc_isentocaractereFórmula de cálculo Isento
formula_calc_outroscaractereFórmula de cálculo outros
cod_regra_guiacaractereCódigo da regra de Guia
val_zerobooleanValor Zero na Base ou Alíquota
val_maximonúmeroValor máximo definido para o tributo
val_minimonúmeroValor mínimo definido para o tributo
operador_maximocaractereOperador de limite de valor máximo do tributo
operador_minimocaractereOperador de limite de valor mínimo do tributo
Exemplo do retorno da requisição do atributo dados_itens
Bloco de código
languagejs
themeMidnight
titleExemplo retorno da requisição dados_itens
{
    "dados_itens": {
        "cod_regra": "TRIB01",
        "desc_regra": "REGRA ICMS CST 40 ISENTO",
        "base_trib": 100,
        "aliq_trib": 7,
        "val_trib": 7,
	    "retencao":false,
        "regr_financ": "",
        "id_cadastro": "1563de01-0c33-87af-5437-01401e2f4532",
        "conf_arred": true,
        "ident_trib": "000021",
        "formula_npi": "BAS:TRIB01 ALQ:TRIB01 *",
        "id_npi": "96b65263-8caf-bbef-dc01-758e1d5701dd",
        "cod_cabec_npi": "VAL:TRIB01",
        "mva": 0,
        "mva_aux": 0,
        "val_pauta": 0,
        "perc_majora": 0,
        "ind_aux_majora": 0,
        "cod_trib_majora": "",
        "ded_dependentes": 0,
        "cod_regr_tab_progre": "",
        "cod_regr_ded_depen": "",
        "aliq_servico": 0,
        "aliq_servico_lei_comp": 0,
        "formula_calc_isento": "BAS:TRIB01",
        "formula_calc_outros": "BAS:TRIB01",
        "cod_regra_guia": "",
        "val_zero": false,
        "val_maximo": 0,
        "val_minimo": 0,
        "operador_maximo": "",
        "operador_minimo": ""
    }
}

Como mencionado, há a possibilidade da obtenção dos dados dos cadastros das regras utilizadas para a composição do tributo, utilizando os atributos "regras_base" para obter os dados das regras de base, "regras_aliquota" para obter os dados das regras de alíquota, "regras_escrituracao" para obter os dados das regras de escrituração e "detalhe_livro" para obter os detalhes do livro. Os dados serão retornados complementando a requisição de "dados_itens" como "sim".

Exemplo de requisição dados_itens:
Bloco de código
languagejs
themeMidnight
titleExemplo requisição dados_itens com detalhes
{
    "itens": "all",
    "dados_itens": 
        [
            "regras_base",
            "regras_aliquota",
            "detalhe_livro",
            "regras_escrituracao"
        ]
}
Descrição dos atributos contidos em regras_base
AtributoTipoDescrição
cod_regr_basecaractereCódigo identificador da regra de base de cálculo
origem_valorcaractereOpção que indica a origem do valor que definirá a base de cálculo
acao_descontocaractereOpção que definirá se o valor do desconto deverá ter alguma ação sobre o valor de origem
acao_fretecaractereOpção que definirá se o valor do frete deverá ter alguma ação sobre o valor de origem
acao_segurocaractereOpção que definirá se o valor do seguro deverá ter alguma ação sobre o valor de origem
acao_despesacaractereOpção que definirá se o valor de despesas acessórias deverá ter alguma ação sobre o valor de origem
acao_icms_desoncaractereOpção que definirá se o valor do icms desonerado deverá ter alguma ação sobre o valor de origem
acao_icms_retcaractereOpção que definirá se o valor do icms retido deverá ter alguma ação sobre o valor de origem
perc_reducaonúmeroPercentual de redução de base de cálculo
tipo_reducaocaractereOpção que definirá o momento em que a redução ocorrerá
um_basecaractereUnidade de medida - Base de cálculo por quantidade
id_cadastrocaractereId identificação do cadastro
formula_basecaractereFórmula base
id_formulacaractereID da fórmula
cod_formulacaractereCódigo da fórmula

...

CFGTRIB - Configurador de Tributos - 12.1.22.10#CadastrodeRegradeBasedeC%C3%A1lculo


Descrição dos atributos contidos em regras_aliquota
AtributoTipoDescrição
cod_regr_aliquotacaractereCódigo identificador da regra de alíquota
origem_aliquotacaractereOpção que indica a origem da alíquota
tipo_aliquotacaractereOpção que defini  o tipo de alíquota informada manualmente
aliquotanúmeroAlíquota informada manualmente
cod_urfcaractereCódigo da URF
perc_urfnúmeroPercentual URF
valor_urfnúmeroValor da URF no período
id_cadastrocaractereId do cadastro Alíquota
formula_aliquotacaractereFórmula alíquota
id_aliquotacaractereID da fórmula
cod_formulacaractereCódigo da fórmula

...

CFGTRIB - Configurador de Tributos - 12.1.22.10#CadastrodeRegradeAl%C3%ADquota


Descrição dos atributos contidos em detalhe_livro
AtributoTipoDescrição
cstcaractereClassificação fiscal
valor_tributadonúmeroValor tributado
valor_isentonúmeroValor isento
valor_outrosnúmeroValor outros
valor_nao_tributnúmeroValor não tributado
valor_diferidonúmeroValor diferido
valor_majoradonúmeroValor majorado
perc_majoradonúmeroPercentual da Majoração
perc_diferidonúmeroPercentual do diferimento
perc_reducaonúmeroPercentual da redução
valor_pautanúmeroValor pauta
mvanúmeroMargem de valor agregado
ind_aux_mvanúmeroÍndice auxiliar de MVA
ind_aux_majoranúmeroÍndice auxiliar de majoração
cod_tab_cstcaractereTabela CST
val_base_originalnúmeroValor base original
Descrição dos atributos contidos em regras_escrituracao
AtributoTipoDescrição
id_cadastrocaractereId Cadastro
incidenciacaractereOpção de Incidência da regra de tributação
acao_tot_nfcaractereOpção para determinar a soma no total da nota fiscal
perc_diferimentonúmeroPercentual do diferimento
cstcaractereClassificação fiscal
cod_tab_cstcaractereTabela CST
inc_parc_reducaractereOpção que define a incidência da parcela reduzida de base de cálculo

...

CFGTRIB - Configurador de Tributos - 12.1.22.10#CadastrodeRegradeEscritura%C3%A7%C3%A3o


Exemplo do retorno da requisição do atributo dados_itens contendo os atributos de regras e detalhe do livro
Bloco de código
languagejs
themeMidnight
titleExemplo de retorno dados_itens com detalhes
{
    "dados_itens": [
        {
            "cod_regra": "TRIB01",
            "desc_regra": "REGRA ICMS CST 40 ISENTO",
            "base_trib": 100,
            "aliq_trib": 7,
            "val_trib": 7,
			"retencao":false,
            "regr_financ": "",
            "id_cadastro": "1563de01-0c33-87af-5437-01401e2f4532",
            "conf_arred": true,
            "ident_trib": "000021",
            "formula_npi": "BAS:TRIB01 ALQ:TRIB01 *",
            "id_npi": "96b65263-8caf-bbef-dc01-758e1d5701dd",
            "cod_cabec_npi": "VAL:TRIB01",
            "mva": 0,
            "mva_aux": 0,
            "val_pauta": 0,
            "perc_majora": 0,
            "ind_aux_majora": 0,
            "cod_trib_majora": "",
            "ded_dependentes": 0,
            "cod_regr_tab_progre": "",
            "cod_regr_ded_depen": "",
            "aliq_servico": 0,
            "aliq_servico_lei_comp": 0,
            "formula_calc_isento": "BAS:TRIB01",
            "formula_calc_outros": "BAS:TRIB01",
            "cod_regra_guia": "",
            "val_zero": false,
            "val_maximo": 0,
            "val_minimo": 0,
            "operador_maximo": "",
            "operador_minimo": "",
            "regras_base": {
                "cod_regr_base": "BAS001",
                "origem_valor": "01",
                "acao_desconto": "1",
                "acao_frete": "1",
                "acao_seguro": "1",
                "acao_despesa": "1",
                "acao_icms_deson": "1",
                "acao_icms_ret": "1",
                "perc_reducao": 0,
                "tipo_reducao": "",
                "um_base": "",
                "id_cadastro": "5ce3cd32-1d87-2a5c-5ad4-8525ab17ee1e",
                "formula_base": "B:BAS001",
                "id_formula": "fcd4411a-b439-9318-7eea-c4dba6299db5",
                "cod_formula": "BAS:TRIB01"
            },
            "regras_aliquota": {
                "cod_regr_aliquota": "ALQ005",
                "origem_aliquota": "04",
                "tipo_aliquota": "1",
                "aliquota": 7,
                "cod_urf": "",
                "perc_urf": 0,
                "valor_urf": 0,
                "id_cadastro": "80f93a77-3fdb-ed19-ac8d-b6b4be022372",
                "formula_aliquota": "A:ALQ005",
                "id_aliquota": "6c0d2b4e-5166-753e-61ab-918cf3a336d4",
                "cod_formula": "ALQ:TRIB01"
            },
            "detalhe_livro": {
                "cst": "40",
                "valor_tributado": 0,
                "valor_isento": 100,
                "valor_outros": 0,
                "valor_nao_tribut": 0,
                "valor_diferido": 0,
                "valor_majorado": 0,
                "perc_majorado": 0,
                "perc_diferido": 0,
                "perc_reducao": 0,
                "valor_pauta": 0,
                "mva": 0,
                "ind_aux_mva": 0,
                "Ind_aux_majora": 0,
                "cod_tab_cst": "000001",
                "val_base_original": 0
            },
            "regras_escrituracao": {
                "id_cadastro": "d62db7e9-419f-43a9-cc69-9cafe5805f5b",
                "incidencia": "2",
                "acao_tot_nf": "1",
                "perc_diferimento": 0,
                "cst": "40",
                "cod_tab_cst": "000001",
                "inc_parc_redu": "2"
            }
        }
    ]
}

planilha_financeira

Com esta atributo é possível obter os das referencias da planilha de cálculo da operação (planilha financeira), retornará o compilado total da operação. Deverá ser preenchido com um "sim" para obtenção dos dados por tributos.

Exemplo de requisição planilha_financeira:
Bloco de código
languagejs
themeMidnight
titleExemplo de requisição planilha_financeira
{
            "itens": "all",
            "planilha_financeira": "sim"
}


Descrição dos atributos contidos em planilha_financeira
AtributoTipoDescrição
codigo_tributocaractereCódigo do tributo
descricao_tributocaractereDescrição do tributo
base_tributonúmeroBase de cálculo tributo
aliquota_tributonúmeroAlíquota do tributo
valor_tributonúmeroValor do tributo
nome_refcaractereNome de referencia
Exemplo do retorno planilha_financeira
Bloco de código
languagejs
themeMidnight
titleExemplo requisição planilha_financeira
{
    "planilha_financeira": {
        "codigo_tributo": "TRIB01",
        "descricao_tributo": "REGRA ICMS CST 40 ISENTO",
        "base_tributo": 5000,
        "aliquota_tributo": 7,
        "valor_tributo": 350,
        "nome_ref": "TG"
    }
}
Informações
titleInformação

A requisição da planilha financeira pode trazer os dados de cálculos realizados método legado (operações que levam em consideração os cadastros da TES - SF4) se houver composição da operação considerando "operadores legados", ou a operação envolvendo alguns tributos calculados exclusivamente pela TES (SF4).

Exemplo de retorno geral

Abaixo é apresentado um exemplo de um retorno de uma requisição que continha apenas um item, sendo assim, o retorno será o Json estruturado da seguinte forma:

...

Como demonstrado a estrutura será composta pelo número do item, e em seguida seus dados (válido para dados_cabecalho, dados_itens e suas regras e detalhes de livro e regras_escrituracao, dados de planilha_financeira apresentam os dados compilados de toda operação).

Notificação de erro

Caso haja a requisição de algum item que não exista Item not exist.

Exemplo
Bloco de código
languagejs
themeMidnight
titleRequisição
{
    "itens": [
        1,
        5,
        10
    ],
    "dados_itens": [
        "regras_base",
        "regras_aliquota",
        "detalhe_livro",
        "regras_escrituracao"
    ]
}
Bloco de código
languagejs
themeMidnight
titleRetorno
{
    "id": [
        "369ca132-2b3b-ac96-6b78-3247afcc2219",
        {
            "dados_cabecalho": {
                "cod_regra": "TRIB01",
                "base_trib": 5000,
                "val_trib": 350,
                "regr_fin": "",
                "id_cadastro": "1563de01-0c33-87af-5437-01401e2f4532",
                "cod_urf": "",
                "perc_urf": 0,
                "val_dep": 0,
                "cod_regr_guia": "",
                "val_majorado": 0,
                "id_trib": "000021"
            },
            "dados_itens": {
                "cod_regra": "TRIB01",
                "desc_regra": "REGRA ICMS CST 40 ISENTO",
                "base_trib": 100,
                "aliq_trib": 7,
                "val_trib": 7,
                "retencao": false,
                "regr_financ": "",
                "id_cadastro": "1563de01-0c33-87af-5437-01401e2f4532",
                "conf_arred": true,
                "ident_trib": "000021",
                "formula_npi": "BAS:TRIB01 ALQ:TRIB01 *",
                "id_npi": "96b65263-8caf-bbef-dc01-758e1d5701dd",
                "cod_cabec_npi": "VAL:TRIB01",
                "mva": 0,
                "mva_aux": 0,
                "val_pauta": 0,
                "perc_majora": 0,
                "ind_aux_majora": 0,
                "cod_trib_majora": "",
                "ded_dependentes": 0,
                "cod_regr_tab_progre": "",
                "cod_regr_ded_depen": "",
                "aliq_servico": 0,
                "aliq_servico_lei_comp": 0,
                "formula_calc_isento": "BAS:TRIB01",
                "formula_calc_outros": "BAS:TRIB01",
                "cod_regra_guia": "",
                "val_zero": false,
                "val_maximo": 0,
                "val_minimo": 0,
                "operador_maximo": "",
                "operador_minimo": "",
                "regras_base": {
                    "cod_regr_base": "BAS001",
                    "origem_valor": "01",
                    "acao_desconto": "1",
                    "acao_frete": "1",
                    "acao_seguro": "1",
                    "acao_despesa": "1",
                    "acao_icms_deson": "1",
                    "acao_icms_ret": "1",
                    "perc_reducao": 0,
                    "tipo_reducao": "",
                    "um_base": "",
                    "id_cadastro": "5ce3cd32-1d87-2a5c-5ad4-8525ab17ee1e",
                    "formula_base": "B:BAS001",
                    "id_formula": "fcd4411a-b439-9318-7eea-c4dba6299db5",
                    "cod_formula": "BAS:TRIB01"
                },
                "regras_aliquota": {
                    "cod_regr_aliquota": "ALQ005",
                    "origem_aliquota": "04",
                    "tipo_aliquota": "1",
                    "aliquota": 7,
                    "cod_urf": "",
                    "perc_urf": 0,
                    "valor_urf": 0,
                    "id_cadastro": "80f93a77-3fdb-ed19-ac8d-b6b4be022372",
                    "formula_aliquota": "A:ALQ005",
                    "id_aliquota": "6c0d2b4e-5166-753e-61ab-918cf3a336d4",
                    "cod_formula": "ALQ:TRIB01"
                },
                "detalhe_livro": {
                    "cst": "40",
                    "valor_tributado": 0,
                    "valor_isento": 100,
                    "valor_outros": 0,
                    "valor_nao_tribut": 0,
                    "valor_diferido": 0,
                    "valor_majorado": 0,
                    "perc_majorado": 0,
                    "perc_diferido": 0,
                    "perc_reducao": 0,
                    "valor_pauta": 0,
                    "mva": 0,
                    "ind_aux_mva": 0,
                    "Ind_aux_majora": 0,
                    "cod_tab_cst": "000001",
                    "val_base_original": 0
                },
                "regras_escrituracao": {
                    "id_cadastro": "d62db7e9-419f-43a9-cc69-9cafe5805f5b",
                    "incidencia": "2",
                    "acao_tot_nf": "1",
                    "perc_diferimento": 0,
                    "cst": "40",
                    "cod_tab_cst": "000001",
                    "inc_parc_redu": "2"
                }
            },
            "planilha_financeira": {
                "codigo_tributo": "TRIB01",
                "descricao_tributo": "REGRA ICMS CST 40 ISENTO",
                "base_tributo": 5000,
                "aliquota_tributo": 7,
                "valor_tributo": 350,
                "nome_ref": "TG"
            }
        }
    ],
    "Item not exist": 10
}

03. EXEMPLO DE IMPLEMENTAÇÃO

Abaixo é demontrado como pode ser feita a implementação:

...