Árvore de páginas

01. VISIÓN GENERAL

Clase de uso interno de TOTVS

Clase que permite la integración nativa del Módulo Financiero con el Totvs Automatización Fiscal (TAF).

Nombre de la clase: totvs.protheus.backoffice.fin.taf.integration. TafIntegration

Documentación del proyecto:  Integración con TAF / TGI ( uso interno)

Documentación del informe generada a partir de esta clase: Informe de Verificación Financiera vs. TAF

Se requiere FINA989 con fecha igual o superior al 01/04/2024 y FINXREINF con fecha igual o superior al 15/09/2023.

02. MÉTODOS

setParameters()

Define los parámetros de la consulta a los datos del Financiero.

Parámetros:

Nombre

Tipo

Descripción

Obligatorio

Valor

Estándar

jParameters

json

json con los parámetros de la consulta, según lo siguiente.


Estructura esperada en el parámetro json

Nombre

Tipo

Descripción

Obligatorio

Valor estándar

branch

character

Sucursal del Protheus que se consultará (informe el código completo)


initialDate

date

Fecha inicial


finalDate

date

Fecha final


typeDatePayable

character

Fecha que debe tenerse en cuenta para las cuentas por pagar (1 = contabilización, 2 = emisión)


typeDateReceivable

character

Fecha que debe tenerse en cuenta para las cuentas por cobrar (1 = contabilización, 2 = emisión)


event4020

character

REINF: Define si la consulta debe devolver el registro del bloque 40 o del bloque 20 (informe "40" o "20")

No

"40"

pageSize

numeric

Número de registros por página

No

100

Respuesta: no hay

getBills()

Devuelve un json en el estándar oData con los datos de los títulos financieros según los parámetros definidos previamente.

Parámetros:

Nombre

Tipo

Descripción

Obligatorio

Valor estándar

nPage

numeric

Página que se está consultando

No

1

Respuesta:

Propiedad

Tipo

Descripción

hasNext

logical

Indica si hay más páginas para consulta

remainingRecords

numeric

Número de registros restantes

items[]

JSON[]

Lista de títulos

items[].branch

character

Sucursal del título financiero

items[].billPrefix

character

Prefijo del título financiero

items[].billNumber

character

Número del título financiero. Si tiene múltiples cuotas y no proviene de una factura, recibirá la cuota como un sufijo separado por un guión. Ejemplo: "123456-A"

items[].billDate

character

Fecha de emisión o contabilización del título (según los parámetros typeDatePayable y typeDateReceivable)

items[].billOriginType

character

Origen del documento (1 = Propio de factura, 2 = Título suelto)

items[].participatingCode

character

Código del cliente/proveedor (igual regla del extractor)

items[].operationType

character

Operación (0 = Por pagar; 1 = Por cobrar)

items[].finSentTaf

character

Situación de integración con el TAF( 1 = enviado al TAF; 2 = no enviado) - FKF_Reinf

items[].modelIdentificationCode

character

Código del modelo del documento fiscal de origen del título

items[].documentNumber

character

Número de la factura

items[].documentSeries

character

Serie de la factura

items[].documentValue

numeric

Valor bruto de la factura

items[].natureOfIncome

JSON

Naturalezas de rendimiento

items[].natureOfIncome.code

character

Código de la naturaleza de los ingresos

items[].natureOfIncome.grossValue

numeric

Valor bruto por naturaleza de los ingresos


getWriteOff()

Devuelve un json en el estándar oData con los datos de las Bajas financieras de acuerdo con los parámetros definidos previamente.

Parámetros:

Nombre

Tipo

Descripción

Obligatorio

Valor estándar

nPage

numeric

Página que se está consultando

No

1

Respuesta:

Propiedad

Tipo

Descripción

hasNext

logical

Indica si hay más páginas para consulta

remainingRecords

numeric

Número de registros restantes

items[]

JSON[]

Lista de bajas

items[].branch

character

Sucursal del título financiero

items[].billPrefix

character

Prefijo del título financiero

items[].billNumber

character

Número del título financiero

items[].billInstallment

character

Cuota del título financiero

items[].paymentDate

character

Fecha de la baja

items[].paymentSequence

character

Secuencia de la baja

items[].finSentTaf

character

Situación de integración con TAF( 1 = enviado al TAF; 2 = no enviado) - FK2_REINF

items[].participatingCode

character

Código del cliente/proveedor (igual regla del extractor)

items[].operationType

character

Operación (0 = Por pagar; 1 = Por cobrar)

items[].natureOfIncome

JSON

Naturalezas de rendimiento

items[].natureOfIncome.code

character

Código de la naturaleza de los ingresos

items[].natureOfIncome.grossValue

numeric

Valor bruto por naturaleza de los ingresos

Ejemplo de respuesta
{
  "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", "grossValue": 10000 }]
    }
  ],
  "hasNext": false,
  "remainingRecords": 0
}


03. EJEMPLOS 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']
 
            //Tratamiento de los datos recibidos
        else
            //Tratamiento de falla
        endIf
 
    endDo

    nPage := 1
    lHasNext := .T.
    while lHasNext
        jResponse := oFin:getWriteOff(nPage++)
        if jResponse:hasProperty('hasNext')
            lHasNext := jResponse['hasNext']
 
            //Tratamiento de los datos recibidos
        else
            //Tratamiento de falla
        endIf
 
    endDo

Return


04. TABLAS UTILIZADAS

SE2 - Títulos por pagar

FK7 - Tabla auxiliar

FKF - Complemento del título

FKW - Impuestos vs. Naturaleza del ingreso

FKY - Impuestos vs. Naturaleza del ingreso vs. bajas