Histórico da Página
Índice
01. VISÃO GERAL
Este documento tem o objetivo de demonstrar as refrencias existentes no motor de calculo do Fiscal MatxFis.
02. LISTAGEM GERAL
Deverá ser montado um Json que deverá ser enviado como requisição para obtenção dos dados do Configurador de Tributos (FISA170). O Json deverá ser composto por atributos para obtenção correta dos dados:
Atibutos
Os atributos que precisam estar contidos no Json:
itens
Neste atributo deverá ser informado o número do item que deseja obter os dados, podendo ser preenchido das seguintes formas:
itens: "ALL": Desta forma haverá o retorno de todos os itens envolvidos na operação;
itens: 1: Pode-se passar o número do item específico (tipo de dado número), para o obter os dados apenas de um item;
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
--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 | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"itens": "all",
"dados_cabecalho": "sim"
} |
Descrição dos atributos contidos em dados_cabecalho
...
Exemplo do retorno da requisição do atributo dados_cabecalho
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"itens": "all",
"dados_itens": "sim"
} |
Descrição dos atributos contidos em dados_itens
...
Exemplo do retorno da requisição do atributo dados_itens
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": ""
}
} |
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"itens": "all",
"dados_itens":
[
"regras_base",
"regras_aliquota",
"detalhe_livro",
"regras_escrituracao"
]
} |
Descrição dos atributos contidos em regras_base
...
Para mais informações sobre o conteúdo dos campos verificar a documentação:
CFGTRIB - Configurador de Tributos - 12.1.22.10
Descrição dos atributos contidos em regras_aliquota
...
Para mais informações sobre o conteúdo dos campos verificar a documentação:
CFGTRIB - Configurador de Tributos - 12.1.22.10
Descrição dos atributos contidos em detalhe_livro
...
Descrição dos atributos contidos em regras_escrituracao
...
Referência | Número | Descrição |
---|---|---|
IT_VLR_TAI | 308 | // Valor Total Auxiliar do Item |
Para mais informações sobre o conteúdo dos campos verificar a documentação:
CFGTRIB - Configurador de Tributos - 12.1.22.10
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 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_escrituracao"}, "planilha_financeira": "sim"}
Conout(oRequisicao:ToJson())
Conout(jComponente:ToJson())
FreeObj(oRequisicao)
FreeObj(jComponente)
Return nil |
...
language | js |
---|---|
theme | Midnight |
title | Exemplo Json estruturado 2 |
...
Aviso | ||
---|---|---|
| ||
Todos os exemplos demonstrados nesta documentação são fictícios, criados com intuito de orientar, cabendo ao desenvolvedor aplicar os conceitos demonstrados da forma que atenda plenamente as necessidades da operação. |
...