Versões comparadas

Chave

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

...

La clase TCIWritten facilita la recuperación de datos específicos de las tablas F2D y CJ3 utilizando métodos que permiten el acceso a los registros por medio de ID. La devolución de los datos se estructura en el formato JSON, quedando fácil de manejar e integrar con otras partes de una aplicación.

03.

...

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
languagejava
themeMidnight
titleIniciando 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

...

 Histórico de Alterações

14/07/2025 - Implementação de cClassTrib e Redução de Alíquotas

Alguns atributos da classe TCIWritten foram acrescentados posteriormente. Sendo assim, caso esses atributos não estejam disponíveis no ambiente, será necessário realizar sua atualização.

  • ["dados_escriturados"]["perc_red_aliquota"] → Pega o conteúdo da Escrituração ao lançar a nota (campo Red. Aliq. % (CJ3_PREDAL) da tabela Regra Escrituração (CJ3)).
  • ["dados_escriturados"]["perc_aliquota_original"] → Pega o conteúdo da Escrituração ao lançar a nota (campo Aliq. Origin (CJ3_ALIQOR) da tabela Regra Escrituração (CJ3)).
  • ["dados_escriturados"]["cclasstrib"] → Pega o conteúdo da Escrituração ao lançar a nota (composto pelo campo CST (CJ3_CST) e CCT IBS/CBS (CJ3_CCT) da tabela Regra Escrituração (CJ3)).
  • ["dados_escriturados"]["cct"] → Pega o conteúdo da Escrituração ao lançar a nota (campo CCT IBS/CBS (CJ3_CCT) da tabela CJ3).
  • ["regras_aliquota"]["perc_red_aliquota"] → Pega o conteúdo do cadastro de Regra de Alíquota do Configurador de Tributos (campo Red. Aliq. % (F28_REDALI) da tabela Regra de Alíquota (F28)).
  • ["regras_escrituracao"]["cclasstrib"] → Pega o conteúdo do cadastro de Regra de Escrituração do Configurador de Tributos (campo Class Trib (CJ2_CSTCCT) da tabela Tabela Escrituração por item (CJ2)).
  • ["regras_escrituracao"]["cct"] → Pega o conteúdo do cadastro de Regra de Escrituração do Configurador de Tributos (campo CCT IBS/CBS (CJ2_CCT) da tabela Tabela Escrituração por item (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
languagejava
themeMidnight
titleIniciando 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 
    
    oDados := TCIWritten():New()

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()

...

04. 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 
    
    oDados := TCIWritten():New()

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

05. 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

Bloco de código
languagejs
themeMidnight
titleEjemplo de implementación SetId()
// Definiendo un único ID
	aData := {"369ca132-2b3b-ac96-6b78-3247afcc2219"}

	oDados := TCIWritten():New()
	oDados:SetId(aData)

// Definiendo múltiples ID
	aData1 := {"369ca132-2b3b-ac96-6b78-3247afcc2219","a5dcda40-d145-28d1-c57f-1047e15ce1fe"}
	
	oDados := TCIWritten():New()
	oDados:

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

Bloco de código
languagejs
themeMidnight
titleEjemplo de implementación SetId()
// Definiendo un único ID
	aData := {"369ca132-2b3b-ac96-6b78-3247afcc2219"}

	oDados := TCIWritten():New()
	oDados:SetId(aData)

// Definiendo múltiples ID
	aData1 := {"369ca132-2b3b-ac96-6b78-3247afcc2219","a5dcda40-d145-28d1-c57f-1047e15ce1fe"}
	
	oDados := 

GetDataId()

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

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"
  } } }
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

Devolución

	oDados:SetId(aData1)

GetDataId()

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": {
       "TG_001": {
Bloco de código
languagejs
themeMidnight
titleEjemplo de devolución GetDataId()
{
  "dados_Id": {
    "fd32a6d9-70fa-6b68-18b5-cc17375d15b3": {
       "TG_001": {
        "filial": "XIFIS26",
        "tributo": "TG0002",
        "codigo_tributo_relacionado": "",
        "descricao_tributo_relacionado": "",
        "base_tributo": 0,
        "aliquota_tributo": 10,
        "valor_tributofilial": 80"XIFIS26",
        "valor_urftributo": 10"TG0002",
        "mvacodigo_tributo_relacionado": 0"",
        "valordescricao_tributo_pautarelacionado": 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"        "percentual_majora": 0,
        "dadosindice_aux_escrituradosmajora": {0,
          "filialtributo_majora": "",
          "codigoaliquota_tributomajora": ""0,
          "valor_tributadomajora": 0,
          "cstded_dependentes": ""0,
	 	"id_cadastro_regra_tributo": "4201ee25-972f-5840-9feb-2df327f3982d"
        "valordados_isentoescriturados": 0,{
          "valor_outrosfilial": 0"",
          "valorcodigo_nao_tributadotributo": 0"",
          "valor_diferidotributado": 0,
          "valor_majoradocst": 0"",
          "percvalor_majoradoisento": 0,
          "percvalor_diferidooutros": 0,
          "percvalor_nao_reducaotributado": 0,
          "valor_pautadiferido": 0,
          "mvavalor_majorado": 0,
          "indperc_aux_mvamajorado": 0,
          "Indperc_aux_majoradiferido": 0,
          "codigoperc_tab_cstreducao": ""0,
          "valor_base_originalpauta": 0,
        },
		"regras_base": {
			"codigo_regra  "mva": "BAS021"0,
			"descricao": "Base ICMS ST RED. 41,67%     "ind_aux_mva": 0,
          "Ind_aux_majora": 0,
          "codigo_tab_cst": "",
          "valor_base_original": 0
        },
		"regras_base": {
			"codigo_regra": "BAS021",
			"descricao": "Base ICMS ST RED. 41,67%                                                                            ",
			"acao_origem": "11",
			"acao_desconto": "1",
			"acao_frete": "1",
			"acao_seguro": "1",
			"acao_despesa": "1",
			"acao_icms_desonerado": "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%                                                                              ",
			"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"
		},
		"regras_escrituracao": {
			"codigo_regra": "ESC013",
			"descricao": "ICMS Tributado Redução em Isento CST 70                                                             ",
			"acao_incidencia": "2",
			"acao_total_nf": "6",
			"perc_diferimento": 0,
			"incidencia_parc_red": " ",
			"tabela_cst": "000001",
			"cst": "70 ",
			"cst_devolucao": "70 "
		}

      },
      "TG_00N": { ... },
      
    },

...

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)

...

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éditode 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":{
         "COFTG":{
            "acao_tot_nf":"2",
            "id_totvs":"000016"
         },
         "PISTG":{
            "acao_tot_nf":"3",
            "id_totvs":"000015"
         },
         "ICMSTG":{
            "acao_tot_nf":"5",
            "id_totvs":"000021"
         }
      },
      "ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{
         "COFTG":{
            "acao_tot_nf":"2",
            "id_totvs":"000016"
         },
         "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 factura:

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("3")

Ejemplo devoluciónUtilización sin pasar 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":{{
   "data":{
      "6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F":{
         "PISTG":{
            "acao_tot_nf":"3",
            "id_totvs":"000015"
         }
      },
      "6D76CB61ADE403B0-2AEED7F2-4F11-9E568E56-AC5AFCAF013F":{
         "COFTGPISTG":{
            "acao_tot_nf":"23",
            "id_totvs":"000016000015"
         },
      }
   "PISTG":{
     }
}


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":{
      "6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F":{       "acao_tot_nf":"3",
            "id_totvs":"000015"
         },
         "ICMSTG":{
            "acao_tot_nf":"5",
            "id_totvs":"000021"
         }
      },
      "ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{
         "COFTG":{
            "acao_tot_nf":"2",
            "id_totvs":"000016"
         },{
         "PISTGICMSTG":{
            "acao_tot_nf":"35",
            "id_totvs":"000015000021"
         },
         "ICMSTG":{}
            "acao_tot_nf":"5",
            "id_totvs":"000021"
         }
      }
   }
}

Utilización con parámetro de incidencia sobre total de la factura:

}

getAdditionalData()

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

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

	aIds := {"369ca132-2b3b-ac96-6b78-3247afcc2219","a5dcda40-d145-28d1-c57f-1047e15ce1fe"}  // Id do tributo  
	
	// Configuracao da classe ...
Bloco de código
languagejs
themeMidnight
titleEjemplo de implementación getAgregTypeByTax
	oDados := TCIWritten():New()
	oDados:setDataItems({"regras_escrituracao"}) // Es necesario para recibir los datos    aData := {"6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F","ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F"}adicionales dentro de la propiedad de donde vinieron, en este caso, regla de registro    
	oDados:SetId(aDataaIds)

	oDados:setDataItems({'regras_escrituracao'}) //obligatorio
	oDados:GetDataId() // opcional
	cResponse := oDados:getAgregTypeByTax("3")

Ejemplo devolución

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.

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

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":{                  "conteudo":"O"
               },
               "ENQIPICODE":{
                  "conteudo":"113"
               },
      "6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F":{
         "ICMSTGTRIBPREF":{
            "acao_tot_nf":"5",
            "id_totvsconteudo":"00002199"
         }
      },
      "ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{
         "ICMSTG":{}
            "acao_tot_nf":"5"},
         "perfil de  "id_totvsoperacao":"000021"
{},
         "regra de calculo":{}
      }
   }
}

Destroy()

Libera los recursos utilizados por la instancia de la clase TCIWritten.

...

Bloco de código
languagejs
themeMidnight
titleEjemplo de 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
titleEjemplo completo de implementació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

...