Histórico da Página
Índice
01. VISÃO GERAL
A classe TCIProcessing (Tax Configurator Integration Processing) 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 | ||||||
---|---|---|---|---|---|---|
| ||||||
using totvs.protheus.backoffice.fiscal.tciclass Function Exemplo() Local oDados := JsonObject():New() as Json oDados := TCIPrecessingTCIProcessing():New() Return |
...
setDataItems()
O método setDataItenssetDataItems() serve para acrescentar ao processamento dos dados retornados pelo método GetDataItensGetDataItems() 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 GetDataItems().
Informações | ||
---|---|---|
| ||
O uso do método setDataItens setDataItems 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
...
setDataItems()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
using totvs.protheus.backoffice.fiscal.tciclass Function Exemplo() Local oDados := JsonObject():Newas json Local cRetorno oDados := TCIPrecessingTCIProcessing():New() oDados:setDataItenssetDataItems({"regras_base", "regras_aliquiotaaliquota", "regras_escrituracao", "detalhesdetalhe_livro"}) cRetorno := oDados:GetDadaItensGetDadaItems() Return cRetorno |
GetDataItems()
O método GetDataItems() retornará os dados dos tributos por item, em estrutura Json com o tipo de dado caractere.
Exemplo de utilização GetDataItems()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
using totvs.protheus.backoffice.fiscal.tciclass Function Exemplo() Local oDados := JsonObject():New()as json Local cRetorno := "" oDados := TCIPrecessingTCIProcessing():New() cRetorno := oDados:GetDataItems() Return cRetorno |
Exemplo de retorno GetDataItems()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "dados_itens": { "1": { "TRIB01": { "cod_regra": "TRIB01", "desc_regra": "REGRA ICMS CST 00 TRIBUTADO", "base_trib": 100, "aliq_trib": 18, "val_trib": 18, "regr_financ": "", "id_cadastro": "a1c7cdbc-d6a3-3f8f-b00c-f95c2b6b8202", "config_arred": true, "ident_trib": "000021", " "desc_trib": "ICMS - Imposto sobre Circulação de Mercadorias e Serviços" "formula_npi": "BAS:TRIB01 ALQ:TRIB01 *", "id_npi": "0e5b3e42-9a2b-5cf1-0f4a-0a17630aa57b", "cod_cabec_npi": "VAL:TRIB01", "margem_mva": 0, "mva": false, "mva_aux": 0, "val_pauta": 0, "pauta": false, "perc_majora": 0, "majorado": false, "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": "" } } } |
Descrição das propriedades contidas em dados_itens
Propriedade | Tipo | Descrição |
---|---|---|
cod_regra | caractere | Código da regra fiscal |
desc_regra | caractere | Descrição da regra |
base_trib | número | Base de cálculo do tributo |
aliq_trib | número | Alíquota do tributo |
val_trib | número | Valor do tributo |
retencao | boolean | Indica se o tributo tem retenção |
regr_financ | caractere | Código da regra financeira |
id_cadastro | caractere | Id Cadastro Tributo |
conf_arred | boolean | Config. Arredondamento |
ident_trib | caractere | Identificador do Tributo legado relacionado com tributo criado |
desc_trib | caractere | Descrição do Tributo legado relacionado com o tributo criado |
desc_trib | caractere | Descrição do tributo |
formula_npi | caractere | Fórmula convertida em NPI |
id_npi | caractere | Id cabeçalho |
cod_cabec_npi | caractere | Código do Cabeçalho |
mva | número | Margem de Valor Agregado |
mva_aux | número | índice auxiliar MVA |
val_pauta | número | Valor da pauta |
perc_majora | número | Percentual majoração |
ind_aux_majora | número | Índice Auxiliar Majoração |
cod_trib_majora | caractere | Código do que majora o tributo atual |
ded_dependentes | número | Dedução por dependentes |
cod_regr_tab_progre | caractere | Código da regra de tabela progressiva |
aliq_servico | número | Aliquota padrão código lei complementar |
cod_regr_ded_depen | caractere | Código da regra dedução dependentes |
aliq_servico_lei_comp | número | Alíquota de serviço da lei complemetar |
formula_calc_isento | caractere | Fórmula de cálculo Isento |
formula_calc_outros | caractere | Fórmula de cálculo outros |
formula_calculo | caractere | Fórmula do calculo que compõe o valor do Tributo |
cod_regra_guia | caractere | Código da regra de Guia |
val_zero | boolean | Valor Zero na Base ou Alíquota |
val_maximo | número | Valor máximo definido para o tributo |
val_minimo | número | Valor mínimo definido para o tributo |
operador_maximo | caractere | Operador de limite de valor máximo do tributo |
operador_minimo | caractere | Operador de limite de valor mínimo do tributo |
Exemplo de retorno
...
GetDataItems() com
...
setDataItems() contendo "regras_base", "regras_
...
aliquota", "regras_escrituracao"
...
, "
...
detalhe_livro".
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "dados_itens": { "1": { "TRIB01": { "cod_regra": "TRIB01", "desc_regra": "REGRA ICMS CST 00 TRIBUTADO", "base_trib": 100, "aliq_trib": 18, "val_trib": 18, "regr_financ": "", "id_cadastro": "b2355baf-baef-8f3c-877a-b0b81890f4f6", "config_arred": true, "ident_trib": "000021", "formula_npi": "BAS:TRIB01 ALQ:TRIB01 *", "id_npi": "a720bf23-c24d-3ed8-4822-e78e7d907d8b", "cod_cabec_npi": "VAL:TRIB01", "margem_mva": 0, "mva": false, "mva_aux": 0, "val_pauta": 0, "pauta": false, "perc_majora": 0, "majorado": false, "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": "BAS002", "origem_valor": "01", "acao_desconto": "2", "acao_frete": "3", "acao_seguro": "3", "acao_despesa": "3", "acao_icms_deson": "1", "acao_icms_ret": "1", "perc_reducao": 0, "tipo_reducao": "", "um_base": "", "id_cadastro": "71380195-0f8e-14e1-3620-7c53beb48b03", "formula_base": "B:BAS002", "id_formula": "6cf6c049-b177-0623-6b76-afc08e78c922", "cod_formula": "BAS:TRIB01" }, "regras_aliquota": { "cod_regr_aliquota": "ALQ001", "origem_aliquota": "04", "tipo_aliquota": "1", "aliquota": 18, "cod_urf": "", "perc_urf": 0, "valor_urf": 0, "id_cadastro": "A:ALQ001", "id_aliquota": "47f56799-c5e1-c560-7a06-f228d9edbc5c", "cod_formula": "ALQ:TRIB01" }, "detalhe_livro": { "cst": "00", "valor_tributado": 18, "valor_isento": 0, "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": "b20ddabf-ba24-358e-8168-2dc0563721a8", "incidencia": "1", "acao_tot_nf": "1", "perc_diferimento": 0, "cst": "00", "cod_tab_cst": "000001", "inc_parc_redu": "" } }, } } |
Descrição das propriedades contidas em regras_base
Propriedade | Tipo | Descrição |
---|---|---|
cod_regr_base | caractere | Código identificador da regra de base de cálculo |
origem_valor | caractere | Opção que indica a origem do valor que definirá a base de cálculo |
acao_desconto | caractere | Opção que definirá se o valor do desconto deverá ter alguma ação sobre o valor de origem |
acao_frete | caractere | Opção que definirá se o valor do frete deverá ter alguma ação sobre o valor de origem |
acao_seguro | caractere | Opção que definirá se o valor do seguro deverá ter alguma ação sobre o valor de origem |
acao_despesa | caractere | Opção que definirá se o valor de despesas acessórias deverá ter alguma ação sobre o valor de origem |
acao_icms_deson | caractere | Opção que definirá se o valor do icms desonerado deverá ter alguma ação sobre o valor de origem |
acao_icms_ret | caractere | Opção que definirá se o valor do icms retido deverá ter alguma ação sobre o valor de origem |
perc_reducao | número | Percentual de redução de base de cálculo |
tipo_reducao | caractere | Opção que definirá o momento em que a redução ocorrerá |
um_base | caractere | Unidade de medida - Base de cálculo por quantidade |
id_cadastro | caractere | Id identificação do cadastro |
formula_base | caractere | Fórmula base |
id_formula | caractere | ID da fórmula |
cod_formula | caractere | Código da fórmula |
Para mais informações sobre o conteúdo dos campos verificar a documentação:
CFGTRIB - Configurador de Tributos - 12.1.22.10#CadastrodeRegradeBasedeC%C3%A1lculo
Descrição das propriedades contidas em regras_aliquota
Propriedade | Tipo | Descrição |
---|---|---|
cod_regr_aliquota | caractere | Código identificador da regra de alíquota |
origem_aliquota | caractere | Opção que indica a origem da alíquota |
tipo_aliquota | caractere | Opção que defini o tipo de alíquota informada manualmente |
aliquota | número | Alíquota informada manualmente |
cod_urf | caractere | Código da URF |
perc_urf | número | Percentual URF |
valor_urf | número | Valor da URF no período |
id_cadastro | caractere | Id do cadastro Alíquota |
formula_aliquota | caractere | Fórmula alíquota |
id_aliquota | caractere | ID da fórmula |
cod_formula | caractere | Código da fórmula |
Para mais informações sobre o conteúdo dos campos verificar a documentação:
CFGTRIB - Configurador de Tributos - 12.1.22.10#CadastrodeRegradeAl%C3%ADquota
Descrição das propriedades contidas em detalhes_livro
Propriedade | Tipo | Descrição |
---|---|---|
cst | caractere | Classificação fiscal |
valor_tributado | número | Valor tributado |
valor_isento | número | Valor isento |
valor_outros | número | Valor outros |
valor_nao_tribut | número | Valor não tributado |
valor_diferido | número | Valor diferido |
valor_majorado | número | Valor majorado |
perc_majorado | número | Percentual da Majoração |
perc_diferido | número | Percentual do diferimento |
perc_reducao | número | Percentual da redução |
valor_pauta | número | Valor pauta |
mva | número | Margem de valor agregado |
ind_aux_mva | número | Índice auxiliar de MVA |
ind_aux_majora | número | Índice auxiliar de majoração |
cod_tab_cst | caractere | Tabela CST |
val_base_original | número | Valor base original |
Descrição das propriedades contidas em regras_escrituracao
Atributo | Tipo | Descrição |
---|---|---|
id_cadastro | caractere | Id Cadastro |
incidencia | caractere | Opção de Incidência da regra de tributação |
acao_tot_nf | caractere | Opção para determinar a soma no total da nota fiscal |
perc_diferimento | número | Percentual do diferimento |
cst | caractere | Classificação fiscal |
cod_tab_cst | caractere | Tabela CST |
inc_parc_redu | caractere | Opção que define a incidência da parcela reduzida de base de cálculo |
Para mais informações sobre o conteúdo dos campos verificar a documentação:
CFGTRIB - Configurador de Tributos - 12.1.22.10#CadastrodeRegradeEscritura%C3%A7%C3%A3o
GetHeaderData()
O método GetHeaderData() retorna os dados de cabeçalho da operação em processamento, em estrutura Json com o tipo de dado caractere.
Informações | ||
---|---|---|
| ||
O método GetHeaderData() não retorna os dados por item, retornará os dados por tributo. |
Exemplo de utilização GetHeaderData()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
using totvs.protheus.backoffice.fiscal.tciclass Function Exemplo() Local oDados := JsonObject():New()as json Local cRetorno := "" oDados := TCIPrecessingTCIProcessing():New() cRetorno := oDados:GetHeaderData() Return cRetorno |
Exemplo de retorno GetHeaderData()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "dados_cabecalho": { "TRIB01": { "cod_regra": "TRIB01", "base_trib": 500, "val_trib": 90, "regr_financ": "", "id_cadastro": "f935d6c2-658b-5527-795a-4366cff3686f", "cod_urf": "", "perc_urf": 0, "val_dep": 0, "cod_regr_guia": "", "val_majorado": 0, "id_trib": "000021" } } } |
Descrição das propriedades contidas em dados_cabecalho
Propriedade | Tipo | Descrição |
---|---|---|
cod_regra | caractere | Código da regra fiscal |
base_trib | número | Valor da base do tributo |
val_trib | número | Valor do tributo |
regr_financ | caractere | Código da regra financeira |
id_cadastro | caractere | Id Cadastro tributo |
cod_urf | caractere | Código da URF |
perc_urf | número | Percentual da URF |
val_dep | número | Valor dependente |
cod_regr_guia | caractere | Código Regra geração de guia |
val_majorado | número | Valor majorado |
id_trib | caractere | Id de Tributos |
GetSpreadSheetData()
O método GetSpreadSheetData() retornará os dados da planilha financeira da operação.
Informações | ||
---|---|---|
| ||
O método GetSpreadSheetData() não retorna os dados por item, retornará os dados por tributo. |
Exemplo de utilização GetSpreadSheetData()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
using totvs.protheus.backoffice.fiscal.tciclass Function Exemplo() Local oDados := JsonObject():New()as json Local cRetorno := "" oDados := TCIPrecessingTCIProcessing():New() cRetorno := oDados:GetSpreadSheetData() Return cRetorno |
Exemplo de retorno GetSpreadSheetData()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "planilha_financeira": { "TRIB01": { "codigo": "TRIB01", "descricao": "REGRA ICMS CST 00 TRIBUTADO", "base": 500, "aliquota": 18, "valor": 90, "nome": "TG" } } |
Descrição das propriedades contidas em planilha_financeira
Propriedade | Tipo | Descrição |
---|---|---|
codigo | caractere | Código do tributo |
descricao | caractere | Descrição do tributo |
base | número | Valor base de cálculo tributo |
aliquota | número | Alíquota do tributo |
valor | número | Valor do tributo |
nome | caractere | Nome de referencia |
Informações | ||
---|---|---|
| ||
A requisição da planilha financeira pode trazer os dados de cálculos realizados pelo 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). |
GetTaxesSubjectToPayment()
O método GetTaxesSubjectToPayment() retornará os tributos passíveis de recolhimento.
Informações | ||
---|---|---|
| ||
O retorno do método GetTaxesSubjectToPayment() é realizado por tributo. |
Exemplo de utilização GetTaxesSubjectToPayment()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
using totvs.protheus.backoffice.fiscal.tciclass Function Exemplo() Local oDados := JsonObject():New()as json Local cRetorno := "" oDados := TCIPrecessingTCIProcessing():New() cRetorno := oDados:GetTaxesSubjectToPayment() Return cRetorno |
Exemplo de retorno GetTaxesSubjectToPayment()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "tributos_passiveis_recolhimento": { "TRIB04": { "codigo_regra": "RF0002", "valor_tributo": 38, "numero_titulo": "TG0000001", "id_regra_fiscal": "297409ff-bfdf-3581-37f1-8b2de366f7d9", "histórico_titulo": "TRIB04 - NF: 000000001 / 004", "sigla_tributo": "TRIB04" } } } |
Descrição das propriedades contidas em tributos_passiveis_recolhimento
Propriedade | Tipo | Descrição |
---|---|---|
codigo_regra | caractere | Código da regra financeira |
valor_tributo | número | Valor do tributo |
numero_titulo | caractere | Número do título a ser gerado |
id_regra_fiscal | caractere | ID da regra fiscal |
histórico_titulo | caractere | Histórico para gravar no título |
sigla_tributo | caractere | Sigla do Tributo |
GetTaxesSubjectToWithholding()
O método GetTaxesSubjectToWithholding() retornará os dados de tributos passíveis de retenção, para isso é necessário informar a data da vigência através do método setDateTaxesToWithholding().
Exemplo de utilização GetTaxesSubjectToWithholding()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
using totvs.protheus.backoffice.fiscal.tciclass Function Exemplo() Local oDados := JsonObject():New()as json Local cDate := "20200101" Local cRetorno := "" oDados := TCIPrecessingTCIProcessing():New() oDados:setDateTaxesToWithholding(cDate) cRetorno := oDados:GetTaxesSujectToWithholding() Return cRetorno |
Exemplo de retorno GetTaxesSubjectToWithholding()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "tributos_passiveis_retencao": { "TRIB03": { "sigla_tributo": "TRIB03", "base_tributo": 500, "valor_tributo": 8.25, "codigo_regra": "RF0001", "retem_integr_prim_parcela": false, "saldo_valor_tributo": 8.25, "codigo_base_tributos": 500, "id_regra": "663fcfca-7522-6e0f-7d70-7e6d64fe46eb", "codigo_urf": "", "percentual_urf": 0 } } } |
Descrição das propriedades contidas em tributos_passiveis_retencao
Propriedade | Tipo | Descrição |
---|---|---|
sigla_tributo | caractere | Sigla do tributo |
base_tributo | número | Valor base de calculo Tributo |
valor_tributo | número | Valor do tributo |
codigo_regra | caractere | Codigo da regra financeira |
retem_integr_prim_parcela | caractere | Indica se retém integralmente na primeira parcela |
saldo_valor_tributo | número | Saldo restante do tributo |
saldo_base_tributos | número | Saldo restante da base de cálculo |
id_regra | caractere | ID da regra Fiscal |
codigo_urf | caractere | Código da URF |
percentual_urf | número | Percentual aplicável ao valor da URF |
GetAllData()
O método GetAllData() retornará todas as propriedades disponíveis para o operação, dados_itens, dados_cabecalho, planilha_financeira, tributos_passiveis_retencao e tributos_passiveis_recolhimento.
Exemplo de utilização GetAllData()
Bloco de códigocode | ||||||
---|---|---|---|---|---|---|
| ||||||
using totvs.protheus.backoffice.fiscal.tciclass Function Exemplo() Local oDados := JsonObject():New()as json Local cDate := "20200101" Local cRetorno := "" oDados := TCIPrecessingTCIProcessing():New() oDados:setDateTaxesToWithholding(cDate) oDados:setDataItens({"regras_base", "regras_aliquiota", "regras_escrituracao", "detalhes_livro"}) cRetorno := oDados:GetAllData() Return cRetorno |
Exemplo de retorno GetAllData()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "dados_itens": { "1": { "TRIB01": { "cod_regra": "TRIB01", "desc_regra": "REGRA ICMS CST 00 TRIBUTADO", "base_trib": 100, "aliq_trib": 18, "val_trib": 18, "regr_financ": "", "id_cadastro": "a893b8a4-b3fc-2536-455a-3cd44a5cd47a", "config_arred": true, "ident_trib": "000021", "formula_npi": "BAS:TRIB01 ALQ:TRIB01 *", "id_npi": "92a2f42e-e745-301b-183a-8f7d1af09b94", "cod_cabec_npi": "VAL:TRIB01", "margem_mva": 0, "mva": false, "mva_aux": 0, "val_pauta": 0, "pauta": false, "perc_majora": 0, "majorado": false, "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": "BAS002", "origem_valor": "01", "acao_desconto": "2", "acao_frete": "3", "acao_seguro": "3", "acao_despesa": "3", "acao_icms_deson": "1", "acao_icms_ret": "1", "perc_reducao": 0, "tipo_reducao": "", "um_base": "", "id_cadastro": "125c2940-17aa-ef29-f68d-b52a78217080", "formula_base": "B:BAS002", "id_formula": "b83ace11-2f6e-e316-2216-733f412d3f7d", "cod_formula": "BAS:TRIB01" }, "regras_aliquota": { "cod_regr_aliquota": "ALQ001", "origem_aliquota": "04", "tipo_aliquota": "1", "aliquota": 18, "cod_urf": "", "perc_urf": 0, "valor_urf": 0, "id_cadastro": "A:ALQ001", "id_aliquota": "3200fd00-d30c-865a-169d-12c5b611d6a7", "cod_formula": "ALQ:TRIB01" }, "detalhe_livro": { "cst": "00", "valor_tributado": 18, "valor_isento": 0, "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": "3ad6ff3e-48e9-5520-9c95-dc495a2db680", "incidencia": "1", "acao_tot_nf": "1", "perc_diferimento": 0, "cst": "00", "cod_tab_cst": "000001", "inc_parc_redu": "" } } } }, "dados_cabecalho": { "TG_001": { "cod_regra": "TG_001", "base_trib": 500, "val_trib": 50, "regr_financ": "", "id_cadastro": "ff583f18-d972-1646-4985-f2b19e03e586", "cod_urf": "", "perc_urf": 0, "val_dep": 0, "cod_regr_guia": "", "val_majorado": 0, "id_trib": "" }, "planilha_financeira": { "TRIB01": { "codigo": "TRIB01", "descricao": "REGRA ICMS CST 00 TRIBUTADO", "base": 500, "aliquota": 18, "valor": 90, "nome": "TG" } }, "tributos_passiveis_retencao": { "TRIB03": { "sigla_tributo": "TRIB03", "base_tributo": 500, "valor_tributo": 8.25, "codigo_regra": "RF0001", "retem_integr_prim_parcela": false, "saldo_valor_tributo": 8.25, "codigo_base_tributos": 500, "id_regra": "663fcfca-7522-6e0f-7d70-7e6d64fe46eb", "codigo_urf": "", "percentual_urf": 0 } }, "tributos_passiveis_recolhimento": { "TRIB04": { "codigo_regra": "RF0002", "valor_tributo": 38, "numero_titulo": "TG0000001", "id_regra_fiscal": "297409ff-bfdf-3581-37f1-8b2de366f7d9", "histórico_titulo": "TRIB04 - NF: 000000001 / 004", "sigla_tributo": "TRIB04" } } } |
...
setItems()
O método setItenssetItems() permite especificar o número do item ou itens que desejar obter os dados em exclusivo através do método getDataItems() ou GetAllData().
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
Para mais informações sobre o conteúdo dos campos verificar a documentação:
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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 | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"itens": "all",
"planilha_financeira": "sim"
} |
Descrição dos atributos contidos em planilha_financeira
...
Exemplo de utilização setItems()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
using totvs.protheus.backoffice.fiscal.tciclass
Function Exemplo()
Local oDados as json
Local aItems := {1, 3, 5}
Local cRetorno := ""
oDados := TCIProcessing():New()
oDados:setItems(aItems)
oDados:setDataItems( |
Exemplo do retorno planilha_financeira
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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 | ||
---|---|---|
| ||
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:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"item": [
1,
{
"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,
"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"
}
}
]
} |
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"itens": [
1,
5,
10
],
"dados_itens": [
"regras_base",
"regras_aliquota",
"detalhe_livro",
"regras_escrituracao"
]
} |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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:
Implementação de Json simplificado - Contém a forma de requisição completa. No exemplo está demonstrado como compor o objeto da forma não nativa (ADVPL) e da forma nativa (TL++), ficando a cargo do desenvolvedor escolher a melhor alternativa.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
Function MontaObjetoRequisicao()
Local oRequisicao as json
Local jRequisicao as json
//Exemplo composição Json não nativo
oRequisicao := JsonObject():New()
oRequisicao["itens"] := "all"
oRequisicao["dados_cabecalho"] := "sim"
oRequisicao["dados_itens"] := "sim"
oRequisicao["planilha_financeira"] := "sim"
//Exemplo composição Json nativo (TL++)
jRequisicao := {"itens": "ALL", "dados_cabecalho": "sim", "dados_itens": "sim", "planilha_financeira": "sim"}
Conout(oRequisicao:ToJson())
Conout(jRequisicao:ToJson())
FreeObj(oRequisicao)
FreeObj(jRequisicao)
Return nil |
O Json ficará estruturado da seguinte forma:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"itens": "ALL",
"dados_cabecalho": "sim",
"dados_itens": "sim",
"planilha_financeira": "sim"
} |
Implementação de Json especificando detalhes - Contém a forma de requisição especificando referencias. No exemplo está demonstrado como compor o objeto da forma não nativa (ADVPL) e da forma nativa (TL++), ficando a cargo do desenvolvedor escolher a melhor alternativa.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
Function MontaObjetoRequisicaoEspecifico() Local oRequisicao as Json Local jComponente as json //Exemplo composição Json não nativo oRequisicao := JsonObject():New() oRequisicao["itens"] := {1, 5, 10} oRequisicao["dados_cabecalho"] := "sim" oRequisicao["dados_itens"] := {"regras_base", "detalhe_livro", "detalhe_livro" , "regras_escrituracao"} oRequisicao["planilha_financeira"] := "sim" //Exemplo composição Json nativo (TL++) jComponente := {"itens": {1, 5, 10}, "dados_planilha": "sim", "dados_itens": {"regras_base", "detalhe_livro", "detalhe_livro" regras_aliquiota", "regras_escrituracao"}, "planilhadetalhes_financeiralivro": "sim"}) cRetorno := Conout(oRequisicaooDados:ToJsonGetDataItems()) Return Conout(jComponente:ToJson()) FreeObj(oRequisicao) FreeObj(jComponente) Return nilcRetorno |
destroy()
O método destroy() encerra toda a operação da classe.
Exemplo de utilização destroy()
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
Function Exemplo() Local oDados as json Local aItems := {1, 3, 5} Local cRetorno := "" oDados := TCIProcessing():New() oDados:setItems(aItems) oDados:setDataItems({{ "id": [ 1, 5, 10 ], "dados_cabecalho": "sim", "dados_itens": [ "regras_base", "regras_aliquotaaliquiota", "detalheregras_livroescrituracao", "regrasdetalhes_escrituracaolivro"}) cRetorno ], "planilha_financeira": "sim" }:= oDados:GetDataItems() oDados:destroy() Return cRetorno |
Aviso | ||
---|---|---|
| ||
|