Árvore de páginas

01. VISÃO GERAL

Classe de uso interno da Totvs

Classe que permite integração nativa do módulo Financeiro com o Totvs Automação Fiscal (TAF).

Nome da classe: totvs.protheus.backoffice.fin.taf.integration.TafIntegration

Documentação de projeto: Integração com TAF / TGI (uso interno)

Necessário FINA989 com data igual ou superior a 01/04/2024 e FINXREINF com data igual ou superior a 15/09/2023.

02. MÉTODOS

setParameters()

Define os parâmetros da consulta aos dados do Financeiro.

Parâmetros:

NomeTipoDescriçãoObrigatório

Valor

padrão

jParametersjsonJson com os parâmetros da consulta, conforme abaixo.Sim

Estrutura esperada no json de parâmetros

NomeTipoDescriçãoObrigatórioValor padrão
branchcharacterFilial do Protheus que será consultada (informar código completo)Sim
initialDatedateData inicialSim
finalDatedateData finalSim
typeDatePayablecharacterData que será considerada para o contas a pagar (1 = contabilização, 2 = emissão)Sim
typeDateReceivablecharacterData que será considerada para o contas a receber (1 = contabilização, 2 = emissão)Sim
event4020characterREINF: Define se a consulta deverá retornar registrod o bloco 40 ou do bloco 20 (informar "40" ou "20")Não"40"
pageSizenumericQuantidade de registros por páginaNão100

Retorno: não há

getBills()

Retorna um json no padrão oData com os dados dos títulos financeiros conforme parâmetros definidos praviamente.

Parâmetros:

NomeTipoDescriçãoObrigatórioValor padrão
nPagenumericPágina que está sendo consultadaNão1

Retorno:

PropriedadeTipoDescrição
hasNextlogicalIndica se há mais páginas para consulta
remainingRecordsnumericNúmero de registros restantes
items[]JSON[]Lista de títulos

items[].branch

characterFilial do título financeiro
items[].billPrefixcharacterPrefixo do título financeiro
items[].billNumbercharacterNúmero do título financeiro. Se possuir múltiplas parcelas e não for oriundo de nota fiscal, recebe a parcela como sufixo separado por hífem. Exemplo: "123456-A"
items[].billDatecharacterData de emissão ou contabilização do título (conforme parâmetros typeDatePayable e typeDateReceivable)
items[].billOriginTypecharacterOrigem do documento (1 = Oriundo de nota fiscal; 2 = Título avulso)
items[].participatingCodecharacterCódigo do cliente/fornecedor (mesma regra do extrator)
items[].operationTypecharacterOperação  (0 = A Pagar; 1 = A Receber)
items[].finSentTafcharacterSituação de integração com o TAF (1 = Enviado ao TAF; 2 = Não enviado) - FKF_REINF
items[].modelIdentificationCodecharacterCódigo do modelo do documento fiscal de origem do título
items[].documentNumbercharacterNúmero da nota fiscal
items[].documentSeriescharacterSérie da nota fiscal
items[].documentValuenumericValor bruto da nota fiscal
items[].natureOfIncomeJSONNaturezas de rendimento
items[].natureOfIncome.codecharacterCódigo da natureza de rendimentos


getWriteOff()

Retorna um json no padrão oData com os dados das baixas financeiras conforme parâmetros definidos praviamente.

Parâmetros:

NomeTipoDescriçãoObrigatórioValor padrão
nPagenumericPágina que está sendo consultadaNão1

Retorno:

PropriedadeTipoDescrição
hasNextlogicalIndica se há mais páginas para consulta
remainingRecordsnumericNúmero de registros restantes
items[]JSON[]Lista de baixas

items[].branch

characterFilial do título financeiro
items[].billPrefixcharacterPrefixo do título financeiro
items[].billNumbercharacterNúmero do título financeiro
items[].billInstallmentcharacterParcela do título financeiro
items[].paymentDatecharacterData da baixa
items[].paymentSequencecharacterSequência da baixa
items[].finSentTafcharacterSituação de integração com o TAF (1 = Enviado ao TAF; 2 = Não enviado) - FK2_REINF
items[].participatingCodecharacterCódigo do cliente/fornecedor (mesma regra do extrator)
items[].operationTypecharacterOperação  (0 = A Pagar; 1 = A Receber)
items[].natureOfIncomeJSONNaturezas de rendimento
items[].natureOfIncome.codecharacterCódigo da natureza de rendimentos
Exemplo de retorno
{
  "items": [
    {
      "branch": "D MG 01",
      "billNumber": "F989CT014",
      "billPrefix": "RNF",
      "billInstallment": "",
      "paymentDate": "2023-1-5",
      "paymentSequence": "01",
      "finSentTaf": "2",
      "participatingCode": "RNF01501F",
      "operationType": "0",
      "natureOfIncome": [{ "code": "15010" }]
    }
  ],
  "hasNext": false,
  "remainingRecords": 0
}


03. EXEMPLOS DE USO

Exemplo
method loadData() class MyIntegration

    local oFin as object
    local jParameters := JsonObject():new() as Json
    local lHasNext := .T. as logical
    local jResponse as json
    local nPage := 1 as numeric
    local cFili := 'D MG 01' as character
    local cPathBills  := 'C:\TEMP\Json_TAF\json_bills'+FWUUIDV4()+'.json' as character
    local cPathWriteOff  := 'C:\TEMP\Json_TAF\json_WriteOff'+FWUUIDV4()+'.json' as character

    oFin := totvs.protheus.backoffice.fin.taf.integration.TafIntegration():new()

    jParameters['branch'] := "D MG 01 "
    jParameters['initialDate'] := cToD("01/03/2024")
    jParameters['finalDate'] := cToD("31/03/2024")
    jParameters['typeDatePayable'] := "2"
    jParameters['typeDateReceivable'] := "2"
 
    oFin:setParameters(jParameters)
 
    nPage := 1
    lHasNext := .T.
    while lHasNext
        jResponse := oFin:getBills(nPage++)
        if jResponse:hasProperty('hasNext')
            lHasNext := jResponse['hasNext']
 
            //Tratamento dos dados recebidos
        else
            //Tratamento de falha
        endIf
 
    endDo

    nPage := 1
    lHasNext := .T.
    while lHasNext
        jResponse := oFin:getWriteOff(nPage++)
        if jResponse:hasProperty('hasNext')
            lHasNext := jResponse['hasNext']
 
            //Tratamento dos dados recebidos
        else
            //Tratamento de falha
        endIf
 
    endDo

Return


04. TABELAS UTILIZADAS

SE2 - Títulos a pagar

FK7 - Tabela auxiliar

FKF - Complemento do título

FKW - Impostos x natureza de rendimento

FKY - Impostos x natureza de rendimento x baixas