01. VISÃO GERAL

A classe TCAdditionalData (Tax Configurator Additional Data) foi desenvolvida para viabilizar o acesso aos dados adicionais que vão estar vinculados a rotinas do Configurador de Tributos (FISA170). 

Este documento tem o objetivo de demonstrar o funcionamento da classe TCAdditionalData e seus os métodos.

Para entender como inserir/manipular esses dados adicionais nas suas devidas rotinas dentro do Protheus, siga a seguinte documentação: https://tdn.totvs.com.br/pages/viewpage.action?pageId=945397604

02. COMO USAR

A Classe TCAdditionalData possibilita obter os Dados Adicionais, tanto em documentos em processamento (Matxfis em tempo de execução), quanto para documentos persistidos em banco de dados. Sendo assim, para o funcionamento correto é imprescindível passar a classe qual o modo em que ela está sendo instanciada.

03. MÉTODOS

new()

Método construtor da classe TCAdditionalData.

using totvs.protheus.backoffice.fiscal.additionalData
Function Exemplo()
	Local oDados as Json
 	oDados := TCAdditionalData():new()
Return

destroy()

O método destroy() encerra toda a operação da classe. 

using totvs.protheus.backoffice.fiscal.additionalData
Function Exemplo()
	Local oDados as Json
 	oDados := TCAdditionalData():new()
	oDados:destroy()
Return

setDataMode( mode : String )

O Método setDataMode() serve para informar a classe em qual contexto ela está sendo instanciada. Ele sempre deve receber uma string com uma das opções abaixo:

OpçõesDescrição
"WRITTEN"Deve ser passado quando o documento fiscal já foi persistido no banco de dados. 
"PROCESSING"Deve ser passado quando o documento fiscal ainda não persistido no banco de dados (Deve buscar o documento nas referencias da Matxfis)
using totvs.protheus.backoffice.fiscal.additionalData
Function Exemplo()
	Local oDados as Json
 	oDados := TCAdditionalData():new()
	oDados:setDataMode('PROCESSING') // 'WRITTEN' ou 'PROCESSING'
Return

setId( aIds : Array )

O Método setId() serve para informar para a classe os IDs (F2D_IDREL ou D1_IDTRIB/D2_TRIB) dos tributos dos documentos fiscais que já foram persistidos no banco de dados, então deve ser utilizada sempre com setDataMode() no modo WRITTEN.

using totvs.protheus.backoffice.fiscal.additionalData
Function Exemplo()
	Local oDados as Json
	Local aIDs    := {}
	aIDs	:= {"6ABF5415-1642-4011-A261-005056ACF625"} // D1_IDTRIB = F2D_IDREL ou D2_IDTRIB = F2D_IDREL    

 	oDados := TCAdditionalData():new()
	oDados:setDataMode('WRITTEN') // Os documentos já foram persistidos no banco de dados
	oDados:SetId(aIDs) // Informa os IDs do tributo que deseja consultar

Return

getAdditionalData()

O Método getAdditionalData() serve para receber os dados adicionais de acordo com o que foi informado nos métodos setDataMode e setId (Para dados já persistidos).

using totvs.protheus.backoffice.fiscal.additionalData
Function Exemplo()
	Local oDados as Json oDados := TCAdditionalData():new()
	Local cResponse := ""
 	aIDs	:= {"6ABF5415-1642-4011-A261-005056ACF625"} // D1_IDTRIB = F2D_IDREL ou D2_IDTRIB = F2D_IDREL 

	oDados:setDataMode('WRITTEN') // Os documentos já foram persistidos no banco de dados
	oDados:SetId(aIDs) // Informa os IDs do tributo que deseja consultar 
	cResponse := oDados:getAdditionalData() // Recebe os dados adicionais do tributo

Return

Exemplo de retorno getAdditionalData()

{
   "6ABF5415-1642-4011-A261-005056ACF625":{
      "RGCOF1":{
         "regra escrituracao":{
            "id":"3269a74f-077a-e782-9775-d7806aa371c7",
            "dados adicionais":{
               "MOTDESICMS":{
                  "conteudo":"3"
               }
            }
         },
         "perfil de operacao":{
            "id":"000030",
            "dados adicionais":{
               "ICMSSTNFSA":{
                  "conteudo":"1"
               },
               "INDNATFRET":{
                  "conteudo":"0"
               },
               "REGIMESPEC":{
                  "conteudo":"1"
               }
            }
         },
         "regra calculo":{
            "id":"d88f0d0c-8d5e-4f86-d181-7514b99b1ff2",
            "dados adicionais":{
               "CCREDPRES":{
                  "conteudo":"10"
               },
               "CONDSUSPRE":{
                  "conteudo":"S"
               }
            }
         }
      }
   }
}