Árvore de páginas

Versões comparadas

Chave

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

...

A classe TCIWritten facilita a recuperação de dados específicos das tabelas F2D e CJ3 utilizando métodos que permitem o acesso aos registros por meio de IDs. O retorno dos dados é estruturado no formato JSON, tornando-o fácil de manipular e integrar com outras partes de uma aplicação.

...

03.

...

Como identificar se uma nota possui cálculos realizados pelo configurador de tributos

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.

...

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.

...

      • 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 é resposavel pela gravação e exclusão dos tributos calculados pelo configurador de tributos.

...

      • Tipo da operação ( 1- Gravação dos tributos genéricos ou 2 - Exclusão dos tributos genéricos)
      • Alias da tabela 
      • Item da nota
      • Id do tributo (Utilizado para exclusão)

...

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.

Dica
titleUso de Namespace

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:

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 fontes escritos em ADVPL deve ser utilizado por extendo o namespace + classe.

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

Descrição

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

Exemplo de implementação

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

SetId()

Descrição

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

Parâmetros

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

Exemplo de implementação

Bloco de código
languagejs
themeMidnight
titleExemplo de implementação SetId()
// Definindo um único ID
	aIds := {"369ca132-2b3b-ac96-6b78-3247afcc2219"}

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

// Definindo múltiplos IDs
	aIds := {"369ca132-2b3b-ac96-6b78-3247afcc2219","a5dcda40-d145-28d1-c57f-1047e15ce1fe"}
	
	oDados := TCIWritten():New()
	oDados:SetId(aIds)

GetDataId()

Descrição

Recupera os dados dos registros definidos pelos IDs.

Retorno

      • json: Dados dos registros no formato JSON.

Exemplo de implementação

Bloco de código
languagejs
themeMidnight
titleExemplo de implementação GetDataId()
	aIds := {"ec451397fd32a6d9-7b9770fa-81146b68-a23118b5-74a1490e1417cc17375d15b3"}
	cResponse := ""
	
	oDados := TCIWritten():New()
	oDados:SetId(aIds)
	cResponse := oDados:GetDataId()

...

Bloco de código
languagejs
themeMidnight
titleExemplo de retorno GetDataId()
{
  "dados_Id": {
    "ec451397fd32a6d9-7b9770fa-81146b68-a23118b5-74a1490e1417cc17375d15b3": {
      "TRIB01-XIFIS26TG_002": {
        "filial": "XIFIS26",
        "tributo": "ICMSTG0002",
        "basecodigo_tributo _relacionado": 12130.8"",
        "aliquotadescricao_tributo_relacionado": 18"",
        "valorbase_tributo": 2183.540,
        "valoraliquota_urftributo": 010,
        "mva": valor_tributo": 80,
        "valor_urf": 10,
        "mva": 0,
        "valor_pauta": 0,
        "percentual_majora": 0,
        "indice_aux_majora": 0,
        "tributo_majora": "",
        "aliquota_majora": 0,
        "valor_majora": 0,
        "ded_dependentes": 0,
        "dados_escriturados": {
          "filial": "",
          "codigo_tributo": "",
          "valor_tributado": 0,
          "cst": "",
          "valor_isento": 0,
          "valor_outros": 0,
          "valor_nao_tributado": 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,
          "codigo_tab_cst": "",
          "valor_base_original": 0
        }
      },
      "TG_003": {
        "filial": "XIFIS26",
        "tributo": "TG0002",
        "codigo_tributo_relacionado": "",
        "descricao_tributo_relacionado": "",
        "base_tributo": 0,
        "aliquota_tributo": 10,
        "valor_tributo": 80,
        "valor_urf": 0,
        "mva": 0,
        "valor_pauta": 0,
        "percentual_majora": 0,
        "indice_aux_majora": 0,
        "tributo_majora": "",
        "aliquota_majora": 0,
        "valor_majora": 0,
        "ded_dependentes": 0,
        "dados_escriturados": {
          "filial": "",
          "codigo_tributo": "",
          "valor_tributado": 0,
          "cst": "",
          "valor_isento": 0,
          "valor_outros": 0,
          "valor_nao_tributado": 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,
          "codigo_tab_cst": "",
          "valor_base_original": 0
        }
      },
      "TRIB01": {
        "filial": "XIFIS26",
        "tributo": "ICMS",
        "codigo_tributo_relacionado": "000021",
        "descricao_tributo_relacionado": "ICMS - Imposto sobre Circulação de Mercadorias e Serviços",
        "base_tributo": 12130.8,
        "aliquota_tributo": 18,
        "valor_tributo": 2183.54,
        "valor_urf": 0,
        "mva": 0,
        "valor_pauta": 0,
        "percentual_majora": 0,
        "indice_aux_majora": 0,
        "tributo_majora": "",
        "aliquota_majora": 0,
        "valor_majora": 0,
        "ded_dependentes": 0,
        "dados_escriturados": {
          "filial": "XIFIS26",
          "codigo_tributo": "TRIB01",
          "valor_tributado": 0,
          "cst": "90",
          "valor_isento": 0,
          "valor_outros": 12130.8,
          "valor_nao_tributado": 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,
          "codigo_tab_cst": "000001",
          "valor_base_original": 0
        }
      },
      "TRIB02": {
    }
      }"filial": "XIFIS26",
        "TRIB02-XIFIS26tributo": {"IPI",
        "filialcodigo_tributo_relacionado": "XIFIS26000022",
        "descricao_tributo_relacionado": "IPI - Imposto sobre Produtos Industrializados",
        "base_tributo ": 11028,
        "aliquota_tributo": 10,
        "valor_tributo": 1102.8,
        "valor_urf": 0,
        "mva": 0,
        "valor_pauta": 0,
        "percentual_majora": 0,
        "indice_aux_majora": 0,
        "tributo_majora": "",
        "aliquota_majora": 0,
        "valor_majora": 0,
        "ded_dependentes": 0,
        "dados_escriturados": {
          "filial": "XIFIS26",
          "codigo_tributo": "TRIB02",
          "valor_tributado": 0,
          "cst": "49",
          "valor_isento": 0,
          "valor_outros": 11028,
          "valor_nao_tributado": 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,
          "codigo_tab_cst": "000003",
          "valor_base_original": 0
        }

      },
      "TRIB03": {
         }"filial": "XIFIS26",
        "TRIB03-XIFIS26tributo": {"PIS",
        "filialcodigo_tributo_relacionado": "XIFIS26000015",
        "descricao_tributo_relacionado": "PISPROGRAMA DE INTEGRAÇÃO SOCIAL",
        "base_tributo ": 11028,
        "aliquota_tributo": 1.65,
        "valor_tributo": 181.96,
        "valor_urf": 0,
        "mva": 0,
        "valor_pauta": 0,
        "percentual_majora": 0,
        "indice_aux_majora": 0,
        "tributo_majora": "",
        "aliquota_majora": 0,
        "valor_majora": 0,
        "ded_dependentes": 0,
        "dados_escriturados": {
          "filial": "XIFIS26",
          "codigo_tributo": "TRIB03",
          "valor_tributado": 181.96,
          "cst": "70",
          "valor_isento": 0,
          "valor_outros": 0,
          "valor_nao_tributado": 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,
          "codigo_tab_cst": "000005",
          "valor_base_original": 0
        }
      },
      "TRIB04": {
        "filial": "XIFIS26",
        "TRIB04-XIFIS26tributo": {"COF",
        "filialcodigo_tributo_relacionado": "XIFIS26000016",
        "descricao_tributo_relacionado": "COFCONTRIBUIÇÃO PARA FINANCIAMENTO DA SEGURIDADE SOCIAL",
        "base_tributo ": 11028,
        "aliquota_tributo": 7.6,
        "valor_tributo": 838.13,
        "valor_urf": 0,
        "mva": 0,
        "valor_pauta": 0,
        "percentual_majora": 0,
        "indice_aux_majora": 0,
        "tributo_majora": "",
        "aliquota_majora": 0,
        "valor_majora": 0,
        "ded_dependentes": 0,
        "dados_escriturados": {
          "filial": "XIFIS26",
          "codigo_tributo": "TRIB04",
          "valor_tributado": 838.13,
          "cst": "70",
          "valor_isento": 0,
          "valor_outros": 0,
          "valor_nao_tributado": 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,
          "codigo_tab_cst": "000006",
          "valor_base_original": 0
        }
      }
    }
  }
},


Descrição das propriedades contidas no tributo

PropriedadeTipoDescrição
filialcaractereFilial da operação
tributocaractereSigla do tributo
codigo_tributo_relacionadocaractereCódigo do tributo relacionado
descricao_tributo_relacionadocaractereDescrição do tributos relacionado
base_tributonúmeroValor da base do tributo
aliquota_tributonúmeroAlíquota do tributo
valor_tributonúmeroValor do tributo
valor_urfnúmeroValor da URF
mvanúmeroValor do MVA
valor_pautanúmeroValor pauta
percentual_majoranúmeroPercentual majorado
indice_aux_majoranúmeroÍndice auxiliar majoração
tributo_majoracaractereTributo majorado
aliquota_majoranúmeroAlíquota majorada
valor_majoranúmeroValor majorado
ded_dependentesnúmeroDedução por dependentes

...

AtributoTipoDescrição
FilialcaractereFilial da operação
valor_tributadonúmeroValor tributado
cstcaractereCST
valor_isentonúmeroValor isento
valor_outrosnúmeroValor outros
valor_nao_tributadonúmeroValor não tributado
valor_deferidonúmeroValor deferido
valor_majoradonúmeroValor majorado
perc_majoradonúmeroPercentual majorado
perc_diferidonúmeroPercentual diferimento
perc_reduçãonúmeroPercentual redução
valor_pautanúmeroValor pauta
mvanúmeroMVA
ind_aux_mvanúmeroÍndice auxiliar MVA
ind_aux_majoranúmeroÍndice auxiliar majorado
codigo_tab_cstcaractereCod. Tabela CST
valor_base_originalnúmeroValor base original

Destroy()

Descrição

Libera os recursos utilizados pela instância da classe TCIWritten.

Exemplo de implementação

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

	oDados:destroy()
Aviso
titleAtenção

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. 

...

06. Exemplo Completo de Implementação


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

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

    aIds := {"ec451397-7b97-8114-a231-74a1490e1417"}
    cResponse := ""
     
    oDados := TCIWritten():New()
    oDados:SetId(aIds)
    cResponse := oDados:GetDataId()
 
Return cResponse

...