Versões comparadas

Chave

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

Índice


01. 

...

Visión general

...

A classe La clase TCIWritten (Tax Configurator Integration Written) foi desenvolvida para viabilizar o acesso aos dados gravados nas tabelas  se desarrolló para hacer viable el acceso a los datos grabados en las tablas F2D (Tributos Genéricos Calculadosgenéricos calculados)e y CJ3 (Tabela Escrituracao Tabla Registro por itemítem) do del Configurador de Tributostributos (FISA170) de uma una forma dinâmica dinámica e intuitiva. 

Este documento tem o objetivo de demonstrar o funcionamento da classe TCIWritten e seus os tiene el objetivo de mostrar el funcionamiento de la clase TCIWritten y sus métodos.


Aviso
titleAtençãoAtención

Todos los ejemplos mostrados en esta documentación son ficticios, creados con el objetivo de orientar, cabiendo al desarrollador aplicar los conceptos mostrados de manera que atienda plenamente las necesidades de la operaciónTodos 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. 

02.

...

Introducción

A classe La clase TCIWritten facilita a recuperação la recuperación de dados específicos das tabelas F2D e datos específicos de las tablas F2D y CJ3 utilizando métodos que permitem o acesso aos permiten el acceso a los registros por meio medio de IDs. O retorno dos dados é estruturado no ID. La devolución de los datos se estructura en el formato JSON, tornando-o quedando fácil de manipular manejar e integrar com outras con otras partes de uma aplicaçãouna aplicación.

03.

...

Ao inicializar a MATXFIS usando a função MafisIni na rotina de inclusão de documentos de entrada ou saída, é necessário informar que a rotina está apta a processar o configurador de tributos. Essa informação deve ser passada no parâmetro 33.

Por exemplo:

Bloco de código
languagejava
themeMidnight
titleIniciando Mafisini com configurador de Tributos
// Valida a utilização do configurador de tributos
// lCalcTG: variável lógica que indica se a função ChkTrbGen foi encontrada e executada com sucesso
lCalcTG  := IIf(FindFunction("ChkTrbGen"), ChkTrbGen("SD2","D2_IDTRIB"), .F.)

//Inicia os calculos da Matxfis
MaFisIni(SA1->A1_COD, SA1->A1_LOJA, cTipoPar,cTipoNf, SA1->A1_TIPO , MaFisRelImp("MT100",{"SF2","SD2"}),,.T.,,,,,,,,,,,,,,,,,,,,,,,,,lCalcTG)

//...Corpo da função...

// Grava o campo responsável pelo relacionamento do item com o configurador de tributos
If lTrbGen
	SD2->D2_IDTRIB	:= MaFisTG(1,"SD2",nY)
EndIf

Função ChkTrbGen

A função ChkTrbGen responsável por efetuar algumas validações para utilização dos tributos genéricos.

Parâmetros

      • cAlias - Alias da tabela no qual será gravado o ID de relacionamento com a tabela F2D.
      • cCampo - Campo no qual será gravado o ID de relacionamento com a tabela F2D.

Função MaFisTG

A função MaFisTG é responsável pela gravação e exclusão dos tributos calculados pelo configurador de tributos.

Parâmetros

...

 Historial de modificaciones

02/09/2025 - Implementación del campo F2D_BASQTD en el atributo base_cantidad_tributo (Solamente TCIWritten)

Se incluyó atributo base_cantidad_tributoen la clase TCIWritten.

14/07/2025 - Implementación de cClassTrib y Reducción de alícuotas

Algunos atributos del tipo TCIWritten se incluyeron posteriormente. De esta manera, si estos atributos no estuvieran disponibles en el entorno, será necesario realizar su actualización.

  • ["dados_escriturados"]["perc_red_aliquota"] → Toma el contenido del Registro al registrar la factura (campo Red. Alíc. % (CJ3_PREDAL) de la tabla Regla registro (CJ3)).
  • ["datos_registrados"]["porc_alicuota_original"] → Toma el contenido del Registro al registrar la factura (campo Alic. Origin (CJ3_ALIQOR) de la tabla Regla registro (CJ3)).
  • ["datos_registrados"]["cclasstrib"] → Toma el contenido del Registro al registrar la factura (compuesto por el campo CST (CJ3_CST) y CCT IBS/CBS (CJ3_CCT) de la tabla Regla registro (CJ3)).
  • ["datos_registrados"]["cct"] → Toma el contenido del Registro al registrar la factura (campo CCT IBS/CBS (CJ3_CCT) de la tabla CJ3).
  • ["regras_aliquota"]["perc_red_aliquota"] → Toma el contenido del registro de Regla de alícuota del Configurador de tributos (campo Red. Alíc. % (F28_REDALI) de la tabla Regla de alícuota (F28)).
  • ["reglas_registro"]["cclasstrib"] → Toma el contenido del registro de Regla de registro del Configurador de tributos (campo Clas Trib (CJ2_CSTCCT) de la tabla Tabla registro por ítem (CJ2)).
  • ["regras_escrituracao"]["cct"] → Toma el contenido del registro de Regla de registro del Configurador de tributos (campo CCT IBS/CBS (CJ2_CCT) de la tabla Tabla registro por ítem (CJ2)).

04. Cómo identificar si una factura tiene cálculos realizados por el configurador de tributos

Al inicializar MATXFIS utilizando la función MafisIni en la rutina de inclusión de documentos de entrada o salida, es necesario informar que la rutina está apta para procesar el configurador de tributos. Esta información debe pasarse al parámetro 33.

Por ejemplo:

Bloco de código

04. Como Usar

Para utilizar a classe, instancie um objeto da classe TCIWritten, utilizando namespace totvs.protheus.backoffice.fiscal.tciclass e utilize os métodos disponíveis para informar o ID (ou IDs) dos registros que deseja obter. Os dados serão retornados no formato JSON.

Para mais informações sobre o uso de namespaces, consulte o manual Namespace.

Classes em TLPP que herdam de classe com namespace precisam utilizar o namespace na declaração da classe ou utilizar o namespace no programa que executa a chamada da classe.

Para fontes escritos em TLPP, pode adicionar o namespace no início do arquivo fonte. Por exemplo:

Para fontes escritos em ADVPL deve ser utilizado por extendo o namespace + classe.

Dica
titleUso de Namespace
Bloco de código
languagejava
themeMidnight
title
TLPP
#include 'tlpp-core.th'  

using NameSpace totvs.protheus.backoffice.fiscal.tciclass

Function Teste() 

    Local  oDados as object 
    
    oDados := TCIWritten():New()

Return  
Bloco de código
languagejava
themeMidnight
titleADVPL
#include "Protheus.CH"

Function Teste()

	Local  oDados as object
	
	//Verifica se a classe existe
	If FindClass("totvs.protheus.backoffice.fiscal.tciclass.TCIWritten")
		oDados := totvs.protheus.backoffice.fiscal.tciclass.TCIWritten():New()
	Endif

Return

05. Métodos

New()

O construtor da classe. Inicializa um novo objeto da classe TCIWritten.

Utilização

Bloco de código
languagejs
themeMidnight
titleExemplo implementação New()
	oDados := TCIWritten():New()	

SetId(aData as Array)

Define os IDs dos registros que se deseja obter os dados. Pode ser um único ID ou uma lista de IDs.

Parâmetros

  • aData (array): Lista de IDs dos registros.

Utilização

Iniciando Mafisini con el configurador de tributos
// Valida la utilización del configurador de tributos
// lCalcTG: variable lógica que indica si la función ChkTrbGen se encontró y se ejecuta con éxito
lCalcTG  := IIf(FindFunction("ChkTrbGen"), ChkTrbGen("SD2","D2_IDTRIB"), .F.)

//Inicia los cálculos de Matxfis
MaFisIni(SA1->A1_COD, SA1->A1_LOJA, cTipoPar,cTipoNf, SA1->A1_TIPO , MaFisRelImp("MT100",{"SF2","SD2"}),,.T.,,,,,,,,,,,,,,,,,,,,,,,,,lCalcTG)

//...Cuerpo de la función...

// Graba el campo responsable por la relación del ítem con el configurador de tributos
If lTrbGen
	SD2->D2_IDTRIB	:= MaFisTG(1,"SD2",nY)
EndIf

Función ChkTrbGen

La función ChkTrbGen responsable por efectuar algunas validaciones para utilización de los tributos genéricos.

Parámetros

      • cAlias - Alias de la tabla en la cual se grabará el ID de relación con la tabela F2D.
      • cCampo - Campo en el cual se grabará el ID de relación con la tabela F2D.

Función MaFisTG

La función MaFisTG es responsable por la grabación y borrado de los tributos calculados por el configurador de tributos.

Parámetros

      • Tipo de la operación ( 1- Grabación de los tributos genéricos o 2 - Borrado de los tributos genéricos)
      • Alias de la tabla 
      • Ítem de la factura
      • Id del tributo (Utilizado para borrado)

05. Cómo utilizar

Para utilizar la clase, debe instanciar un objeto de la clase TCIWritten, utilizando namespace totvs.protheus.backoffice.fiscal.tciclass y utilice los métodos disponibles para informar el ID (o los ID) de los registros que desea obtener. Los datos se devolverán en el formato JSON.

Dica
titleUso de Namespace

Para más información sobre el uso de namespaces, consulte el manual Namespace.

Clases en TLPP que heredan de clase con namespace deben utilizar namespace en la declaración de la clase o utilizar namespace en el programa que ejecuta la activación de la clase.

Para fuentes escritos en TLPP, puede incluir namespace al inicio del archivo fuente. Por ejemplo:

Bloco de código
languagejava
themeMidnight
titleTLPP
#include 'tlpp-core.th'  

using NameSpace totvs.protheus.backoffice.fiscal.tciclass

Function Teste() 

    Local  oDados as object 
    
    
Bloco de código
languagejs
themeMidnight
titleExemplo de implementação SetId()
// Definindo um único ID aData := {"369ca132-2b3b-ac96-6b78-3247afcc2219"}
oDados := TCIWritten():New()
oDados:SetId(aData) // Definindo múltiplos IDs aData1 := {"369ca132-2b3b-ac96-6b78-3247afcc2219","a5dcda40-d145-28d1-c57f-1047e15ce1fe"} oDados := TCIWritten():New() oDados:SetId(aData1)

GetDataId()

Recupera os dados dos registros informados em 𝚜𝚎𝚕𝚏:𝚊𝙸𝚍𝚁𝚎𝚚𝚞𝚎𝚜𝚝


Return  

Para fuentes escritos en ADVPL debe utilizarse por completo namespace + clase.

Bloco de código
languagejava
themeMidnight
titleADVPL
#include "Protheus.CH"

Function Teste()

	Local  oDados as object
	
	//Verifica si la clase existe
	If FindClass("totvs.protheus.backoffice.fiscal.tciclass.TCIWritten")
		oDados := totvs.protheus.backoffice.fiscal.tciclass.TCIWritten():New()
	Endif

Return

06. Métodos

New()

El constructor de la clase. Inicializa un nuevo objeto de la clase TCIWritten.

Utilización

Bloco de código
languagejs
themeMidnight
titleExemplo implementação New()
	oDados := TCIWritten():New()	

SetId(aData as Array)

Define los ID de los registros que se desea obtener los datos. Puede ser un único ID o una lista de estos.

Parámetros

  • aData (array): Lista de los ID de los registros.

Utilización

Local oDados := totvs.protheus.backoffice.fiscal.tciclass.
TCIWritten():New()
Local aID
	oDados:SetId(aData)

// Definiendo múltiples ID
	aData1 := {"
4201ee25-972f-5840-9feb-2df327f3982d"} // id inválido ou inexistente Local cRetorno := "" Local oRetorno
369ca132-2b3b-ac96-6b78-3247afcc2219","a5dcda40-d145-28d1-c57f-1047e15ce1fe"}
	
	oDados := 
JsonObject
TCIWritten():New()
	oDados:SetId(
aId) cRetorno := oDados:
aData1)
Bloco de código
languagejs
themeMidnight
titleEjemplo de implementación SetId()
// Definiendo un único ID
	aData := {"369ca132-2b3b-ac96-6b78-3247afcc2219"}

	oDados := 
Aviso
titleIMPORTANTE

Para o correto funcionamento do método GetDataId() é imprescindível informar o(s) ID(s) que deseja os dados através do método SetId(), caso contrário será retornado uma mensagem: "erro - Necessita informar Id"

Quando um id inválido é informado em SetId(aIds as Array),  GetDataId() retornará um objeto JSON com a chave "Aviso" e o valor "Id não calculado pelo configurador de tributos". Exemplo: 

Bloco de código
languagejava
themeMidnight

GetDataId()

...

A chamada acima retornará um objeto como este:

{
	"dados_Id": {
		"4201ee25-972f-5840-9feb-2df327f3982d": {			
			"Aviso": "Id não calculado pelo configurador de tributos"
  } } }

Recupera los datos de los registros informados en 𝚜𝚎𝚕𝚏:𝚊𝙸𝚍𝚁𝚎𝚚𝚞𝚎𝚜𝚝

Aviso
titleIMPORTANTE

Para el correcto funcionamiento del método GetDataId() es imprescindible informar el(los) ID(s) cuyos datos desea por medio del método SetId(), en caso contrario se devolverá un mensaje: "error - Necesita informar Id"

Cuando se informa un id no válido en SetId(aIds as Array),  GetDataId() devolverá un objeto JSON con la clave "Aviso" y el valor "Id no calculado por el configurador de tributos". Ejemplo

Bloco de código
languagejava
themeMidnight
Local oDados := totvs.protheus.backoffice.fiscal.tciclass.TCIWritten():New()
Local aID := {"4201ee25-972f-5840-9feb-2df327f3982d"} // id no válido o inexistente
Local cRetorno := ""
Local oRetorno := JsonObject():New()

oDados:SetId(aId)
cRetorno := oDados:GetDataId()


La activación anterior devolverá un objeto como este:

{
	"dados_Id": {
		"4201ee25-972f-5840-9feb-2df327f3982d": {			
			"Aviso": "Id no calculado por el configurador de tributos"
  } } }

Devolución

Bloco de código
languagejs
themeMidnight
titleEjemplo de devolución GetDataId()
{
  "dados_Id": {
    "fd32a6d9-70fa-6b68-18b5-cc17375d15b3": {

Retorno

Bloco de código
languagejs
themeMidnight
titleExemplo de retorno GetDataId()
{
  "dados_Id": {
    "fd32a6d9-70fa-6b68-18b5-cc17375d15b3": {
       "TG_001": {
        "filial": "XIFIS26",
        "tributo": "TG0002",
        "codigo_tributo_relacionado": "",
        "descricao_tributo_relacionado": "",
        "baseTG_tributo001": 0,{
        "aliquota_tributosucursal": 10"XIFIS26",
        "valor_tributo": 80"TG0002",
        "valorcodigo_tributo_urfrelacionado": 10"",
        "mvadescricao_tributo_relacionado": 0"",
        "valorbase_quantidade_pautatributo": 0,
        "percentualbase_majoratributo": 0,     
        "indicealiquota_aux_majoratributo": 010,
        "valor_tributo_majora": ""80,
        "aliquotavalor_majoraurf": 010,
        "valor_majoramva": 0,
        "dedvalor_dependentespauta": 0,
	 	"id_cadastro_regra_tributo": "4201ee25-972f-5840-9feb-2df327f3982d"
        "dadospercentual_escrituradosmajora": {0,
          "filialindice_aux_majora": ""0,
          "codigotributo_tributomajora": "",
          "valoraliquota_tributadomajora": 0,
          "cstvalor_majora": ""0,
          "valorded_isentodependentes": 0,
          "valor_outrosid_cadastro_regra_tributo": 0,
  "4201ee25-972f-5840-9feb-2df327f3982d"
        "valordados_nao_tributadoescriturados": 0,{
          "valor_diferidosucursal": 0"",
          "valorcodigo_majoradotributo": 0"",
          "percvalor_majoradotributado": 0,
          "perc_diferidocst": 0"",
          "percvalor_reducaoisento": 0,
          "valor_pautaoutros": 0,
          "mvavalor_nao_tributado": 0,
          "indvalor_aux_mvadiferido": 0,
          "Indvalor_aux_majoramajorado": 0,
          "codigoperc_tab_cstmajorado": ""0,
          "valorperc_base_originaldiferido": 0,
        },
		"regras_base": {
			"codigo_regra  "perc_reducao": "BAS021"0,
			"descricao": "Base ICMS ST RED. 41,67%     "valor_pauta": 0,
          "mva": 0,
              "ind_aux_mva": 0,
          "Ind_aux_majora": 0,
          "codigo_tab_cst": "",
          "valor_base_original": 0,
            ",
			"acao_origem": "11",
			"acao_desconto"perc_red_aliquota": 0,
          "perc_aliquota_original": 0,
          "cct": "1",
			"acao_frete          "cclasstrib": "1",
			"acao_seguro": "1",
			"acao_despesa"
        },
        "regras_base": {
            "codigo_regra": "1BAS021",
			"acao_icms_desonerado            "descripcion": "1",
			"acao_icms_retido": "1",
			"perc_reducao": 41.67,
			"tipo_reducao": " ",
			"unidade_medida": "  ",
			"formula_base": "( ( O:VAL_MERCADORIA * I:PERC_REDUCAO_BASE ) * I:MVA )",
			"id_formula": "c706aeb1-3f33-c97c-71df-87b1edff2d88",
			"codigo_formula": "B:BAS021"
		},
		"regras_aliquota": {
			"codigo_regra": "ALQ023",
			"descricao": "ALIQUOTA PADRAO DE 20%Base ICMS ST RED. 41,67%                                                                            ",
            "acao_origem": "11",
            "acao_desconto": "1",
    ",
			"acao_origem        "acao_frete": "041",
			            "acao_tiposeguro": "1",
			"perc_aliquota            "acao_despesa": 20,
			"codigo_urf": ""1",
            ",
			"perc_urfacao_icms_desonerado": 0,
			"formula_aliquota"1",
            "acao_icms_retido": "201",
			"id_formula": "9d86e6bc-6a3c-9ea8-8053-57b2eb7eb045",
			"codigo_fomula": "A:ALQ023"
		},
		"regras_escrituracao": {
			"codigo_regra": "ESC013",
			"descricao": "ICMS Tributado Redução em Isento CST 70                          "perc_reducao": 41.67,
            "tipo_reducao": " ",
            "unidade_medida": "  ",
            "formula_base": "( ( O:VAL_MERCADORIA * I:PERC_REDUCAO_BASE ) * I:MVA )",
            "id_formula": "c706aeb1-3f33-c97c-71df-87b1edff2d88",
            "codigo_formula": "B:BAS021"
        },
             ",
			"acao_incidencia"regras_aliquota": "2",
			"acao_total_nf{
            "codigo_regra": "6ALQ023",
			"perc_diferimento": 0,
			"incidencia_parc_red": " ",
			"tabela_cst": "000001",
			"cst            "descripcion": "70 ",
			"cst_devolucao": "70 "
		}

ALICUOTA ESTANDAR DEL 20%                                                           },
      "TG_00N": { ... },
      
    },

Descrição das propriedades contidas no tributo

...

Objeto dados_escriturados

...

Objeto regras_base

...

",
            "acao_origem": "04",
            "acao_tipo": "1",
            "perc_aliquota": 20,
            "codigo_urf": "      ",
            "perc_urf": 0,
            "formula_aliquota": "20",
            "id_formula": "9d86e6bc-6a3c-9ea8-8053-57b2eb7eb045",
            "codigo_fomula": "A:ALQ023",
            "perc_red_aliquota": 0
        },
        "regras_escrituracao": {
            "codigo_regra": "ESC013",
            "descripcion": "ICMS Tributado Reduccion en Exento CST 70                                                             ",
            "acao_incidencia": "2",
            "acao_total_nf": "6",
            "perc_diferimento": 0,
            "incidencia_parc_red": " ",
            "tabela_cst": "000001",
            "cst": "70 ",
            "cst_devolucao": "70 ",
            "cct": "",
            "cclasstrib": ""
        }
 
      },
      "TG_00N": { ... },
       
    },

Descripción de las propiedades contenidas en el tributo

Propiedad

Tipo

Descripción

filial

carácter

Sucursal de la operación

tributo

carácter

Sigla del tributo

codigo_tributo_relacionado

carácter

Código del tributo relacionado

descricao_tributo_relacionado

carácter

Descripción de los tributos relacionados

base_tributonúmero*Valor de la base del tributo
base_quantidade_tributonúmero*Valor de la base por cantidad del tributo

aliquota_tributo

número

Alícuota del tributo

valor_tributo

número

Valor del tributo

valor_urf

número

Valor de la URF

mva

número

Valor de MVA

valor_pauta

número

Valor de la tarifa

percentual_majora

número

Porcentaje aumentado

indice_aux_majora

número

Índice auxiliar de aumento

tributo_majora

carácter

Tributo aumentado

aliquota_majora

número

Alícuota aumentada

valor_majora

número

Valor aumentado

ded_dependentes

número

Deducción por dependientes

id_cadastro_regra_tributo

carácter

Id del registro del tributo

dados_escriturados

json


regras_base

json


regras_aliquota

json


regras_escrituracao

json


Informações
titleInformación

*El atributo base_tributo puede tener su origen (por valor de la mercadería, valor contable, etc.) verificado en el atributo "acao_origem" (que queda dentro de "regras_base"). 

La opción de base por cantidad estará siempre en el atributo "base_quantidade_tributo".

De acuerdo con la base de cálculo (campo F27_VALORI), los posibles orígenes de una base pueden ser:

Image Added


Objeto dados_escriturados

Atributo

Tipo

Descripción

filial

carácter

Sucursal de la operación

valor_tributado

número

Valor tributado

cst

carácter

CST

valor_isento

número

Valor exento

valor_outros

número

Valor otros

valor_nao_tributado

número

Valor no tributado

valor_deferido

número

Valor concedido

valor_majorado

número

Valor aumentado

perc_majorado

número

Porcentaje aumentado

perc_diferido

número

Porcentaje de aplazamiento

perc_redução

número

Porcentaje de reducción

valor_pauta

número

Valor de la tarifa

mva

número

MVA

ind_aux_mva

número

Índice auxiliar MVA

ind_aux_majora

número

Índice auxiliar aumentado:

codigo_tab_cst

carácter

Cód. Tabla CST

valor_base_original

número

Valor base original

perc_red_aliquota

número

% de la Reducción de alícuota

perc_aliquota_original

número

Alícuota original sin reducción

cclasstrib

carácter

Clasificación tributaria de IBS y CBS

cct

carácter

CCT de IBS y CBS


Objeto regras_base

Atributo

Tipo

Descripción

codigo_regra

carácter

Código de la regla

descricao

carácter

Descripción de la regla

acao_origem

carácter

Valor de origen

acao_desconto

carácter

Acciones de descuento

acao_frete

carácter

Acciones de valor de flete

acao_seguro

carácter

Acciones de valor de seguro

acao_despesa

carácter

Acciones de los gastos

acao_icms_desonerado

carácter

Acciones ICMS exento

acao_icms_retido

carácter

Acciones ICMS retenido

perc_reducao

número

Porcentaje de reducción

tipo_reducao

carácter

Tipo de reducción

unidade_medida

carácter

Unidad de medida

formula_base

carácter

Fórmula de la base

id_formula

carácter

Identificador de la fórmula 

codigo_formula

carácter

Código de la fórmula 

Informações
titleInformación

Para más información sobre el contenido de los campos vea la documentación:

CFGTRIB - Configurador de tributos (Reglas de base de cálculo)


Objeto regras_aliquota

Atributo

Tipo

Descripción

codigo_regra

carácter

Código de la regla

descricao

carácter

Descripción de la regla

acao_origem

carácter

Valor de origen

acao_tipo

carácter

Tipo de alícuota         

perc_aliquota

número

Alícuota                 

codigo_urf

carácter

Código de la URF            

perc_urf

número

Porcentaje de la URF        

formula_aliquota

carácter

Fórmula de la alícuota

id_formula

carácter

Identificador de la fórmula

codigo_fomula

carácter

Código de la fórmula 

perc_red_aliquota

número

% de Reducción de alícuota

Informações
titleInformación

Para más información sobre el contenido de los campos vea la documentación:

CFGTRIB - Configurador de tributos (Reglas de alícuota)


Objeto regras_escrituracao

Atributo

Tipo

Descripción

codigo_regra

carácter

Código de la regla

descricao

carácter

Descripción de la regla

acao_incidencia

carácter

Opción de incidencia      

acao_total_nf

carácter

Suma en el total de la factura    

perc_diferimento

número

Porcentaje de aplazamiento

incidencia_parc_red

carácter

Incidencia Reducción Base  

tabela_cst

número

Tabla de CST            

cst

carácter

Clasificación fiscal     

cst_devolucao

carácter

CST de Devolución

cclasstrib

carácter

Clasificación tributaria de IBS y CBS

cct

carácter

CCT de IBS y CBS

Informações
titleInformación

Para más información sobre el contenido de los campos vea la documentación:

CFGTRIB - Configurador de tributos (Reglas de registro)


Utilización

Bloco de código
languagejs
themeMidnight
titleEjemplo de implementación GetDataId()
	aIds := {"fd32a6d9-70fa-6b68-18b5-cc17375d15b3"}
	cResponse := ""
	
	oDados := TCIWritten():New()
	oDados:SetId(aIds)
	cResponse := oDados:GetDataId()

SetDataItems(aContent as Array)

Permite incluir a la devolución de GetDataId() detalles de las configuraciones realizadas por el usuario en el Configurador de tributos (FISA170). 

Parámetros

  • aContent (array): as configuraciones que pueden obtenerse. Está restringido a las siguientes opciones: "regras_base", "regras_aliquota" o "regras_escrituracao"


Aviso
titleIMPORTANTE

El uso del método setDataItems() solamente es necesario apenas cuando hay la necesidad de obtener datos de registros en el Configurador de tributos (FISA170), no siendo obligatorio para la obtención de los tributos de los ítems.

Si fuera necesario, el método setDataItems() debe activarse antes de GetDataId().

Si los valores informados en el parámetro aContent divergieran de los valores permitidos, se incluirá el objeto erro_propriedade describiendo la propiedad no válida informada:


Bloco de código
languagejava
themeMidnight
Local oDados := totvs.protheus.backoffice.fiscal.tciclass.TCIWritten():New()
Local aID := {"4201ee25-972f-5840-9feb-2df327f3982d",  "69003b5a-c15f-4113-a4b0-e2883d809711"}
Local cRetorno := ""
Local oRetorno := JsonObject():New()

oDados:SetId(aId)
oDados:setDataItems({"regras_b4s3", "regras_al1quot4","regras_escr1tur4c40" })
cRetorno := oDados:GetDataId()


La activación anterior devolverá un objeto como este:

{
	"dados_Id": {
		"4201ee25-972f-5840-9feb-2df327f3982d": {
			"erro_propriedade": {
				"propriedade_1": "regras_b4s3",
				"propriedade_2": "regras_al1quot4",
				"propriedade_3": "regras_escr1tur4c40"
			},
			"TRIB05": {...},
			... //otros tributos
		}
	}
}

Utilización

Bloco de código
languagejava
themeMidnight
titleIniciando Mafisini con el configurador de tributos
using totvs.protheus.backoffice.fiscal.tciclass
 
Function Exemplo()
    Local oDados as json
    Local cRetorno
     
    oDados := TCIWritten():New()
    oDados:setDataItems({"regras_base", "regras_aliquota", "regras_escrituracao"})
     
    cRetorno := oDados:GetDataId()
 
Return cRetorno

setReturnByTaxRule()

Modifica la devolución de GetDataId(), para devolver un JSON indexado por reglas de cálculo (F2B_REGRA).

*Se puede utilizar en conjunto con el método setTaxRuleFilterList() para filtrar, pasando por el parámetro qué reglas de cálculo se desea en la devolución.

**Se puede utilizar en conjunto con el método setAdditionalFieldsToReturn() para incluir campos en la devolución, pasando por el parámetro qué atributos desea recibir además de la devolución estándar.

Aviso
titleAtención

Los métodos setTaxRuleFilterList() y setAdditionalFieldsToReturn() solamente funcionarán en el contexto de las devoluciones simplificadas: setReturnByTaxRule() y setReturnByIdTotvs(). Estos no tienen efecto en la devolución estándar de GetDataId().

Utilización

Informações
titleInformação

Para mais informações sobre o conteúdo dos campos verificar a documentação:

CFGTRIB - Configurador de Tributos (Regras de base de cálculo)

Objeto regras_aliquota

...

Informações
titleInformação

Para mais informações sobre o conteúdo dos campos verificar a documentação:

CFGTRIB - Configurador de Tributos (Regras de alíquota)

Objeto regras_escrituracao

...

Informações
titleInformação

Para mais informações sobre o conteúdo dos campos verificar a documentação:

CFGTRIB - Configurador de Tributos (Regras de escrituração)

Utilização

Bloco de código
languagejs
themeMidnight
titleExemplo de implementação GetDataId()
	aIds := {"fd32a6d9-70fa-6b68-18b5-cc17375d15b3"}
	cResponse := ""
	
	oDados := TCIWritten():New()
	oDados:SetId(aIds)
	cResponse := oDados:GetDataId()

SetDataItems(aContent as Array)

Permite adicionar ao retorno de GetDataId(detalhes das configurações realizadas pelo usuário no Configurador de Tributos (FISA170). 

Parâmetros

  • aContent (array): as configurações que podem ser obtidas. Está restrito às seguintes opções: "regras_base", "regras_aliquota" ou "regras_escrituracao"

...

titleIMPORTANTE

O uso do método 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.

Quando necessário, o método setDataItems() deve ser chamado antes de GetDataId().

...

Bloco de código
languagejava
themeMidnight
Local oDados := totvs.protheus.backoffice.fiscal.tciclass.TCIWritten():New()
Local aID := {"4201ee25-972f-5840-9feb-2df327f3982d",  "69003b5a-c15f-4113-a4b0-e2883d809711"}
Local cRetorno := ""
Local oRetorno := JsonObject():New()

oDados:SetId(aId)
oDados:setDataItems({"regras_b4s3", "regras_al1quot4","regras_escr1tur4c40" })
cRetorno := oDados:GetDataId()

A chamada acima retornará um objeto como este:

{
	"dados_Id": {
		"4201ee25-972f-5840-9feb-2df327f3982d": {
			"erro_propriedade": {
				"propriedade_1": "regras_b4s3",
				"propriedade_2": "regras_al1quot4",
				"propriedade_3": "regras_escr1tur4c40"
			},
			"TRIB05": {...},
			... //demais tributos
		}
	}
}

Utilização

Bloco de código
languagejava
themeMidnight
titleIniciando Mafisini com configurador de Tributos
using totvs.protheus.backoffice.fiscal.tciclass
 
Function Exemplo()
    Local oDados as json
    Local cRetorno
     
    oDados := TCIWritten():New()
    oDados:setDataItems({"regras_base", "regras_aliquota", "regras_escrituracao"})
     
    cRetorno := oDados:GetDataId()
 
Return cRetorno

setReturnByTaxRule()

Altera o o retorno do GetDataId(), para retornar um JSON indexado por regras de cálculo (F2B_REGRA).

*Pode-se utilizar em conjunto com o método setTaxRuleFilterList() para filtrar, passando por parâmetro quais regras de cálculo se deseja no retorno.

**Pode-se utilizar em conjunto com o método setAdditionalFieldsToReturn() para adicionar campos no retorno, passando por parâmetro quais atributos se deseja receber além do retorno padrão;

Aviso
titleAtenção

Os métodos setTaxRuleFilterList() e setAdditionalFieldsToReturn() irão apenas funcionar no contexto dos retornos simplificados: setReturnByTaxRule() e setReturnByIdTotvs(). Eles não tem efeito no retorno padrão do GetDataId().

Utilização

Bloco de código
languagejs
themeMidnight
titleExemplo de implementação:
	aData := {"DD227D08-AECE-4F11-BE55-AC5AFCAF013F","A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F","30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F"}  
	aFieldsNeeded := {'dados_escriturados','mva','regras_escrituracao'}
 	aTribs := {'PISTG','COFTG'}  

    oDados := TCIWritten():New()
	oDados:SetId(aData)
	
	oDados:setReturnByTaxRule()  // Altera o retorno do método :GetDataId()

	oDados:setAdditionalFieldsToReturn( aFieldsNeeded ) // Opcional: Adicionar mais campos no retorno do objeto

    oDados:setTaxRuleFilterList( aTribs )  // Opcional: Filtra o retorno somente com as regras de cálculo que se deseja  

	CONOUT( oDados:GetDataId() )

	/*
 {
   "COFTG":{
      "items":{
         "DD227D08-AECE-4F11-BE55-AC5AFCAF013F":{
            "regra_trib":"COFTG",
            "filial":"XIFIS26",
            "codigo_tributo_relacionado":"000016",
            "tributo":"COF",
            "descricao_tributo_relacionado":"CONTRIBUI  O PARA FINANCIAMENTO DA SEGURIDADE SOCIAL",
            "base_tributo":1000,
            "aliquota_tributo":7.6,
            "valor_tributo":76,
            "dados_escriturados":{
},
            "mva":0,
            "regras_escrituracao":"regra nao vinculada"
         },
         "A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{
},
         "30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{
}
      }
   },
   "PISTG":{
      "items":{
         "DD227D08-AECE-4F11-BE55-AC5AFCAF013F":{
},
         "A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{
},
         "30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{
}
      }
   }
}
	*/

setReturnByIdTotvs()

Altera o o retorno do GetDataId(), para retornar um JSON indexado por tributos com ID Totvs (F2C_CODIGO).

*Pode-se utilizar em conjunto com o método setIdTotvsFilterList() para filtrar, passando por parâmetro quais ID Totvs se deseja no retorno.

**Pode-se utilizar em conjunto com o método setAdditionalFieldsToReturn() para adicionar campos no retorno, passando por parâmetro quais atributos se deseja receber além do retorno padrão;

Aviso
titleAtenção

Os métodos setIdTotvsFilterList() e setAdditionalFieldsToReturn() irão apenas funcionar no contexto dos retornos simplificados: setReturnByTaxRule() e setReturnByIdTotvs(). Eles não tem efeito no retorno padrão do GetDataId().

Utilização

Bloco de código
languagejs
themeMidnight
titleExemplo Ejemplo de implementaçãoimplementación:
	aData  := {"DD227D08-AECE-4F11-BE55-AC5AFCAF013F","A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F","30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F"}   
	aFieldsNeeded := {'dados_escriturados','mva','regras_escrituracao'}

	oDados 	aTribs := {'PISTG','COFTG'}  

    oDados := TCIWritten():New()
	oDados:SetId(aData)
	
	oDados:setReturnByIdTotvssetReturnByTaxRule()  // AlteraModifica ola retornodevolución dodel método :GetDataId()  

  	oDados:setAdditionalFieldsToReturn( aFieldsNeeded ) // Opcional: AdicionarIncluir maismás campos noen retornola devolución dodel objeto 

	aTotvsId := {'000021'} // 000021 = ICMS
	oDados:setIdTotvsFilterListsetTaxRuleFilterList( aTotvsIdaTribs )  // Opcional: Filtra la devolución osolamente retornocon somentelas oreglas IDde totvscálculo que se desejadesea   
	
      
CONOUT( oDados:GetDataId() )

	/*
 {
   "000021COFTG":{
      "items":{
         "DD227D08-AECE-4F11-BE55-AC5AFCAF013F":{
            "regra_trib":"ICMSTGCOFTG",
            "filial":"XIFIS26",
            "codigo_tributo_relacionado":"000021",
            "tributo":"ICMS",
            "descricao_tributo_relacionado":"ICMS - Imposto sobre Circula  o de Mercadorias e Servi os",
            "base_tributo":1000,
            "aliquota_tributo":18,
             "codigo_tributo_relacionado":"000016",
            "tributo":"COF",
            "descricao_tributo_relacionado":"CONTRIBUYE PARA FINANCIACIÓN DE LA SEGURIDAD SOCIAL",
            "base_tributo":1000,
            "aliquota_tributo":7.6,
            "valor_tributo":76,
            "dados_escriturados":{
},
            "mva":0,
            "regras_escrituracao":"regla no vinculada"
         },
         "A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{
},
         "30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{
}
      }
   },
   "PISTG":{
      "items":{
         "DD227D08-AECE-4F11-BE55-AC5AFCAF013F":{
},
         "A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{
},
         "30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{
}
      }
   }
}
	*/

setReturnByIdTotvs()

Modifica la devolución de GetDataId(), para devolver un JSON indexado por tributos con ID Totvs (F2C_CODIGO).

*Se puede utilizar en conjunto con el método setIdTotvsFilterList() para filtrar, pasando el por parámetro qué ID Totvs desea en la devolución retorno.

**Se puede utilizar en conjunto con el método setAdditionalFieldsToReturn() para incluir campos en la devolución, pasando por el parámetro qué atributos desea recibir además de la devolución estándar.

Aviso
titleAtención

Los métodos setIdTotvsFilterList() y setAdditionalFieldsToReturn() solamente funcionarán en el contexto de las devoluciones simplificadas: setReturnByTaxRule() y setReturnByIdTotvs(). Estos no tienen efecto en la devolución estándar de GetDataId().

Utilización

Bloco de código
languagejs
themeMidnight
titleEjemplo de implementación:
	aData  := {"DD227D08-AECE-4F11-BE55-AC5AFCAF013F","A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F","30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F"}   
	aFieldsNeeded := {'mva','regras_escrituracao'}

	oDados := TCIWritten():New()
	oDados:SetId(aData)
	
	oDados:setReturnByIdTotvs() // Modifica la devolución del método :GetDataId()  

  	oDados:setAdditionalFieldsToReturn( aFieldsNeeded ) // Opcional: Incluir más campos en la devolución del objeto 

	aTotvsId := {'000021'} // 000021 = ICMS
	oDados:setIdTotvsFilterList( aTotvsId ) // Opcional: Filtra la devolución solamente el ID totvs que desea             CONOUT( oDados:GetDataId() )
	/*
 {
   "000021":{
      "items":{
         "DD227D08-AECE-4F11-BE55-AC5AFCAF013F":{
            "regra_trib":"ICMSTG",
            "filial":"XIFIS26",
            "codigo_tributo_relacionado":"000021",
            "tributo":"ICMS",
            "descricao_tributo_relacionado":"ICMS - Impuesto sobre circulación de mercaderías y servicios",
            "base_tributo":1000,
            "aliquota_tributo":18,
            "valor_tributo":180,
            "mva":0,
            "regras_escrituracao":{
               "codigo_regra":"PRUEBA",
               "descricao":"REGLA DE REGISTRO",
               "acao_incidencia":"1",
               "acao_total_nf":"5",
               "perc_diferimento":0,
               "incidencia_parc_red":" ",
               "tabela_cst":"000001",
               "cst":"00",
               "cst_devolucao":"00"
            }
         },
         "A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{
},
         "30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{
}
      }
   }
}
	*/

getAgregTypeByTax()

El método getAgregTypeByTax( cTipoIncidencia , cCodTribIdTotvs ) permite recibir de manera simple cuál fue el tipo de incidencia sobre el total de la factura (CJ2_STONF) para cada tributo, dentro de cada ítem de un documento.

Parámetros:

cTipoIncidencia: (String) (Opcional) - Busca y filtra la devolución de acuerdo con un tipo válido de incidencia sobre el total de la factura (actualmente de 1 a 8).

cCodTribIdTotvs : (String) (Opcional) - Busca y filtra la devolución de acuerdo con un tipo válido de código de tributo (ID Totvs = F2C_CODIGO en la tabla F2C).

*Si no se informara ningún parámetro, traerá todos los registros encontrados, independientemente del tipo de incidencia y tributo Id Totvs.

*Es obligatoria la activación del método  oDados:setDataItems({"regras_escrituracao"}) antes de la activación del getAgregTypeByTax(), para que los datos de registro estén disponibles.

Las opciones de incidencia actualmente son:

1

Sin acción

2

Sustrae solamente del total de la factura

3

Sustrae del total de la factura y de la factura de crédito

4

Sustrae solamente del total de la factura de crédito

5

Suma solamente en el total de la factura

6

Suma en el total de la factura y de la factura de crédito

7

Suma solamente en el total de la factura de crédito

8

Gross up en el total de la factura de crédito


Utilización sin transferir parámetros:

Bloco de código
languagejs
themeMidnight
titleEjemplo de implementación getAgregTypeByTax
	oDados := TCIWritten():New()
    aData := {"6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F","ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F"}   
	oDados:SetId(aData)
	oDados:setDataItems({'regras_escrituracao'}) //obligatorio
	oDados:GetDataId() // opcional
	cResponse := oDados:getAgregTypeByTax()

Ejemplo devolución

Bloco de código
languagejs
themeMidnight
titleEjemplo de implementación devolución
 {
   "data":{
      "6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F":{
          "valor_tributoCOFTG":180,{
            "mvaacao_tot_nf":0"2",
            "regrasid_escrituracaototvs":{"000016"
               "codigo_regra":"TESTE"},
               "descricao":"REGRA DE ESCRITURACAO",
  "PISTG":{
             "acao_tot_incidencianf":"13",
               "acaoid_total_nftotvs":"5000015",
         },
         "perc_diferimentoICMSTG":0,{
               "incidenciaacao_parctot_rednf":" 5",
               "tabelaid_csttotvs":"000001000021",
         }
      "cst":"00"},
      "ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{
         "cst_devolucaoCOFTG":"00"{
            }
    "acao_tot_nf":"2",
     },
         "A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{
},
"id_totvs":"000016"
         "30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{
}},
      }
   }
}
	*/

getAgregTypeByTax()

O método getAgregTypeByTax( cTipoIncidencia , cCodTribIdTotvs ) permite receber de forma simples qual foi o tipo de incidência sobre o total da NF (CJ2_STONF) para cada tributo, dentro de cada item de um documento.

Parâmetros:

cTipoIncidencia: (String) (Opcional) - Busca e filtra o retorno de acordo com um tipo válido de incidência sobre total da NF (atualmente de 1 à 8).

cCodTribIdTotvs : (String) (Opcional) - Busca e filtra o retorno de acordo com um tipo válido de código de tributo (ID Totvs = F2C_CODIGO na tabela F2C).

*Caso não seja informado nenhum parâmetro, irá trazer todos os registros encontrados, independente de tipo de incidência e tributo Id Totvs.

*Obrigatório a chamada do método  oDados:setDataItems({"regras_escrituracao"}) antes da chamada do getAgregTypeByTax(), para os dados de escrituração estarem disponíveis.

As opções de incidência atualmente são:

1Sem Ação
2Subtrai somente do total da nota
3Subtrai do total da nota e da duplicata
4Subtrai somente do total da duplicata
5Soma somente no total da nota
6Soma no total da nota e da duplicata
7Soma somente no total da duplicata
8Gross up no total da duplicata
"PISTG":{
            "acao_tot_nf":"3",
            "id_totvs":"000015"
         },
         "ICMSTG":{
            "acao_tot_nf":"5",
            "id_totvs":"000021"
         }
      }
   }
}


Utilización con parámetro de incidencia sobre total de la facturaUtilização sem passar parâmetros:

Bloco de código
languagejs
themeMidnight
titleExemplo Ejemplo de implementação implementación getAgregTypeByTax
	oDados := TCIWritten():New()
    aData := {"6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F","ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F"}   
	oDados:SetId(aData)
	oDados:setDataItems({'regras_escrituracao'}) //obrigatorioobligatorio
	oDados:GetDataId() // opcional
	cResponse := oDados:getAgregTypeByTax("3")

Exemplo RetornoEjemplo devolución

Bloco de código
languagejs
themeMidnight
titleExemplo Ejemplo de implementação Retornoimplementación getAgregTypeByTax
 {
   "data":{
      "6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F":{
         "COFTGPISTG":{
            "acao_tot_nf":"23",
            "id_totvs":"000016"
000015"
         }
      },
      "ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{
         "PISTG":{
            "acao_tot_nf":"3",
            "id_totvs":"000015"
         },
      }
   "ICMSTG":{
            "acao_tot_nf":"5"}
}


Utilización con parámetro de código de tributo (Id Totvs):

Bloco de código
languagejs
themeMidnight
titleEjemplo de implementación getAgregTypeByTax
	oDados := TCIWritten():New()
    aData := {"6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F","ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F"}   
	oDados:SetId(aData)
	oDados:setDataItems({'regras_escrituracao'}) //obligatorio
	oDados:GetDataId() // opcional
	cResponse := oDados:getAgregTypeByTax( , "000021")

Ejemplo Devolución

Bloco de código
languagejs
themeMidnight
titleEjemplo de implementación getAgregTypeByTax
{
   "data":{,
            "id_totvs":"000021"
         }
      },
      "ADE403B06D76CB61-D7F22AEE-4F11-8E569E56-AC5AFCAF013F":{
         "COFTGICMSTG":{
            "acao_tot_nf":"25",
            "id_totvs":"000016000021"
         },
         "PISTG":{
            "acao_tot_nf":"3"},
            "id_totvs":"000015"
         },"ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{
         "ICMSTG":{
            "acao_tot_nf":"5",
            "id_totvs":"000021"
         }
      }
   }
}

...

getAdditionalData()

El Método getAdditionalData() sirve para recibir los datos adicionales. Este hace uso de la classe TCAdditionalData.

Bloco de código
languagejs
themeMidnight
titleExemplo de implementação getAgregTypeByTaxEjemplo método getAdditionalData()
using totvs.protheus.backoffice.fiscal.tciclass 
Function Exemplo()
	Local oDados
	Local cRetorno := ""

	aIds	oDados := TCIWritten():New()
    aData := {"6D76CB61369ca132-2AEE2b3b-4F11ac96-9E566b78-AC5AFCAF013F3247afcc2219","ADE403B0a5dcda40-D7F2d145-4F1128d1-8E56c57f-AC5AFCAF013F1047e15ce1fe"}  // Id do tributo  
	
	// Configuracao da classe ...
	oDados:SetId(aData := TCIWritten():New()
	oDados:setDataItems({'"regras_escrituracao'"}) //obrigatorio
	oDados:GetDataId() // opcional
	cResponse := oDados:getAgregTypeByTax("3") Es necesario para recibir los datos adicionales dentro de la propiedad de donde vinieron, en este caso, regla de registro    
	oDados:SetId(aIds)

	cRetorno := oDados:getAdditionalData()     // Devuelve los datos adicionales
Return

Ejemplo de devolución getAdditionalData()

*Hasta el momento de la publicación de esta documentación, solamente los datos adicionales que se refieren a la regla de registro se están devolviendo devolviendo, pues los datos adicionales del Perfil de operación y Regla de cálculo están en desarrollo.Exemplo Retorno

Bloco de código
languagejs
themeMidnight
titleExemplo de implementação getAgregTypeByTaxEjemplo de devolución GetDataItems()
{
   "data1":{
  // Item do documento fiscal
	  "6D76CB61-2AEE-4F11-9E56-AC5AFCAF013FTG_001":{ // Tributo
         "PISTGregra escrituracao":{
            "acao_tot_nfid":"3e118b167-a462-0bb0-1a11-08991d2ff2c2",
 // Identificador único de la regla de registro
    "id_totvs":"000015"
         }
      },
      "ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{
"dados adicionais":{ // Contiene todos los datos adicionales y sus respectivos valores
               "PISTGAGCREDPRES":{
             "acao_tot_nf     "conteudo":"31",
            "id_totvs":"000015"
   },
              }
 "BASEIPICAL":{
       }
   }
}

Utilização com parâmetro de código de tributo (Id Totvs):

Bloco de código
languagejs
themeMidnight
titleExemplo de implementação getAgregTypeByTax
	oDados := TCIWritten():New()
      aData := {"6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F","ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F"}   
	oDados:SetId(aData)
	oDados:setDataItems({'regras_escrituracao'}) //obrigatorio
	oDados:GetDataId() // opcional
	cResponse := oDados:getAgregTypeByTax( , "000021")

Exemplo Retorno

Bloco de código
languagejs
themeMidnight
titleExemplo de implementação getAgregTypeByTax
{
   "data":{
"conteudo":"O"
               },
               "ENQIPICODE":{
                  "6D76CB61-2AEE-4F11-9E56-AC5AFCAF013Fconteudo":{"113"
         "ICMSTG":{
      },
               "acao_tot_nfTRIBPREF":"5",
{
                  "id_totvsconteudo":"000021"
"99"
               }
      },
      "ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{}
         "ICMSTG":{},
         "perfil   "acao_tot_nf":"5"de operacao":{},
         "regra de  "id_totvscalculo":"000021"
   {}
      }
      }
   }

Destroy()

Libera os los recursos utilizados pela instância da classe por la instancia de la clase TCIWritten.

UtilizaçãoUtilización

Bloco de código
languagejs
themeMidnight
titleExemplo Ejemplo de implementação implementación destroy()
	aIds := {"369ca132-2b3b-ac96-6b78-3247afcc2219","a5dcda40-d145-28d1-c57f-1047e15ce1fe"}
	cResponse := ""
	
	oDados := TCIWritten():New()
	oDados:SetId(aIds)
	cResponse := oDados:GetDataId()

	oDados:destroy()

...


07.

...

Ejemplo completo de

...

implementación


Bloco de código
languagejs
themeMidnight
titleExemplo Completo Ejemplo completo de Implementaçãoimplementación
 using NameSpace totvs.protheus.backoffice.fiscal.tciclass

  Function Exemplo()
	Local  aData as array
	Local  cResponse as character
    Local  oDados as object       


	aData := {"ec451397-7b97-8114-a231-74a1490e1417"}
    cResponse := ""
     
    oDados := TCIWritten():New()
    oDados:SetId( aData )
    oDados:setDataItems({"regras_base", "regras_aliquota", "regras_escrituracao"})
    cResponse := oDados:GetDataId()
 
Return cResponse

...