Índice
La clase TCIWritten (Tax Configurator Integration Written) se desarrolló para hacer viable el acceso a los datos grabados en las tablas F2D (Tributos genéricos calculados)y CJ3 (Tabla Registro por ítem) del Configurador de tributos (FISA170) de una forma dinámica e intuitiva.
...
| Aviso | ||
|---|---|---|
| ||
Todos los ejemplos mostrados en esta documentación son ficticios, creados con el objetivo de orientar, cabiendo al desarrollador aplicar los conceptos mostrados de manera que atienda plenamente las necesidades de la operación. |
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.
...
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 | ||||||
|---|---|---|---|---|---|---|
| ||||||
// 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 |
La función ChkTrbGen responsable por efectuar algunas validaciones para utilización de los tributos genéricos.
Parámetros
La función MaFisTG es responsable por la grabación y borrado de los tributos calculados por el configurador de tributos.
Parámetros
...
Se incluyó atributo base_cantidad_tributoen la clase TCIWritten.
Algunos atributos del tipo TCIWritten se incluyeron posteriormente. De esta manera, si estos atributos no estuvieran disponibles en el entorno, será necesario realizar su actualización.
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 | ||||||
|---|---|---|---|---|---|---|
| ||||||
// 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 |
La función ChkTrbGen responsable por efectuar algunas validaciones para utilización de los tributos genéricos.
Parámetros
La función MaFisTG es responsable por la grabación y borrado de los tributos calculados por el configurador de tributos.
Parámetros
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 | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| |||||||||
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:
|
...
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 | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
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:
Para fuentes escritos en ADVPL debe utilizarse por completo namespace + clase.
|
El constructor de la clase. Inicializa un nuevo objeto de la clase TCIWritten.
Utilización
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
oDados := TCIWritten():New() |
Define los ID de los registros que se desea obtener los datos. Puede ser un único ID o una lista de estos.
Parámetros
Utilización
| Bloco de código | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
// Definiendo un único ID
aData := {"369ca132-2b3b-ac96-6b78-3247afcc2219"}
Para fuentes escritos en ADVPL debe utilizarse por completo namespace + clase.
|
Recupera los datos de los registros informados en 𝚜𝚎𝚕𝚏:𝚊𝙸𝚍𝚁𝚎𝚚𝚞𝚎𝚜𝚝
|
El constructor de la clase. Inicializa un nuevo objeto de la clase TCIWritten.
Utilización
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
oDados := TCIWritten():New() |
Define los ID de los registros que se desea obtener los datos. Puede ser un único ID o una lista de estos.
Parámetros
Utilización
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
// Definiendo un único ID
aData | ||||||
| Aviso | ||||||
| ||||||
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 | | |||||
|
...
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"
}
}
}
Recupera los datos de los registros informados en 𝚜𝚎𝚕𝚏:𝚊𝙸𝚍𝚁𝚎𝚚𝚞𝚎𝚜𝚝
| Aviso | |||||||
|---|---|---|---|---|---|---|---|
| |||||||
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:
La activación anterior devolverá un objeto como este: |
Devolución
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
{
"dados_Id": {
"fd32a6d9-70fa-6b68-18b5-cc17375d15b3": {
"TG_001": { |
Devolución
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
{ "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_tributosucursal": 80"XIFIS26", "valor_urftributo": 10"TG0002", "mvacodigo_tributo_relacionado": 0"", "valordescricao_tributo_pautarelacionado": 0"", "percentualbase_quantidade_majoratributo": 0, "indicebase_aux_majoratributo": 0, "aliquota_tributo_majora": ""10, "aliquotavalor_majoratributo": 080, "valor_majoraurf": 010, "ded_dependentesmva": 0, "id_cadastro_regra_tributo": "4201ee25-972f-5840-9feb-2df327f3982d" "valor_pauta": 0, "dadospercentual_escrituradosmajora": {0, "filialindice_aux_majora": ""0, "codigotributo_tributomajora": "", "valoraliquota_tributadomajora": 0, "cstvalor_majora": ""0, "valorded_isentodependentes": 0, "valor_outros": 0,"id_cadastro_regra_tributo": "4201ee25-972f-5840-9feb-2df327f3982d" "valor_nao_tributadodados_escriturados": { "sucursal": 0"", "valorcodigo_diferidotributo": 0"", "valor_majoradotributado": 0, "perc_majoradocst": 0"", "percvalor_diferidoisento": 0, "percvalor_reducaooutros": 0, "valor_nao_pautatributado": 0, "mvavalor_diferido": 0, "indvalor_aux_mvamajorado": 0, "Indperc_aux_majoramajorado": 0, "codigoperc_tab_cstdiferido": ""0, "valorperc_base_originalreducao": 0, }, "regras_base": { "codigo_regra": "BAS021", "descricao": "Base ICMS ST RED. 41,67% "valor_pauta": 0, "mva": 0, "ind_aux_mva": 0, "Ind_aux_majora": 0, "codigo_tab_cst": "", "valor_base_original": 0, "perc_red_aliquota": 0, ", "acao_origem": "11", "acao_desconto"perc_aliquota_original": 0, "cct": "", "cclasstrib": "1", "acao_frete": "1", "acao_seguro" }, "regras_base": { "codigo_regra": "1BAS021", "acao_despesa "descripcion": "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%Base ICMS ST RED. 41,67% ", "acao_origem": "11", ", "acao_origemdesconto": "041", "acao_tipofrete": "1", "perc_aliquota "acao_seguro": 20, "codigo_urf": ""1", ", "perc_urfacao_despesa": 0, "formula_aliquota"1", "acao_icms_desonerado": "201", "id_formula "acao_icms_retido": "9d86e6bc-6a3c-9ea8-8053-57b2eb7eb0451", "codigo_fomula": "A:ALQ023" }, "regras_escrituracao": { "codigo_regra": "ESC013", "descricao": "ICMS Tributado Redução em Isento CST 70 "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", ", "acao_incidencia "codigo_formula": "2B:BAS021", "acao_total_nf": "6", "perc_diferimento": 0, "incidencia_parc_red": " ", "tabela_cst": "000001", "cst": "70 ", "cst_devolucao": "70 " } }, "regras_aliquota": { "codigo_regra": "ALQ023", "descripcion": "ALICUOTA ESTANDAR DEL 20% }, "TG_00N": { ... }, }, |
Descripción de las propiedades contenidas en el tributo
...
Propiedad
...
Tipo
...
Descripción
...
filial
...
carácter
...
Sucursal de la operación
...
tributo
...
carácter
...
Sigla del tributo
...
codigo_tributo_relacionado
...
carácter
...
Código del tributo relacionado
...
descricao_tributo_relacionado
...
carácter
...
Descripción de los tributos relacionados
...
base_tributo
...
número
...
Valor de la base del tributo
...
aliquota_tributo
...
número
...
Alícuota del tributo
...
valor_tributo
...
número
...
Valor del tributo
...
valor_urf
...
número
...
Valor de la URF
...
mva
...
número
...
Valor de MVA
...
valor_pauta
...
número
...
Valor de la tarifa
...
percentual_majora
...
número
...
Porcentaje aumentado
...
indice_aux_majora
...
número
...
Índice auxiliar de aumento
...
tributo_majora
...
carácter
...
Tributo aumentado
...
aliquota_majora
...
número
...
Alícuota aumentada
...
valor_majora
...
número
...
Valor aumentado
...
ded_dependentes
...
número
...
Deducción por dependientes
...
id_cadastro_regra_tributo
...
carácter
...
Id del registro del tributo
",
"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",
"perc_red_aliquota": 0
},
"regras_escrituracao": {
"codigo_regra": "ESC013",
"descripcion": "ICMS Tributado Reduccion en Exento CST 70 ",
"acao_incidencia": "2",
"acao_total_nf": "6",
"perc_diferimento": 0,
"incidencia_parc_red": " ",
"tabela_cst": "000001",
"cst": "70 ",
"cst_devolucao": "70 ",
"cct": "",
"cclasstrib": ""
}
},
"TG_00N": { ... },
}, |
Descripción de las propiedades contenidas en el tributo
Propiedad | Tipo | Descripción |
|---|---|---|
filial | carácter | Sucursal de la operación |
tributo | carácter | Sigla del tributo |
codigo_tributo_relacionado | carácter | Código del tributo relacionado |
descricao_tributo_relacionado | carácter | Descripción de los tributos relacionados |
| base_tributo | número | *Valor de la base del tributo |
| base_quantidade_tributo | número | *Valor de la base por cantidad del tributo |
aliquota_tributo | número | Alícuota del tributo |
valor_tributo | número | Valor del tributo |
valor_urf | número | Valor de la URF |
mva | número | Valor de MVA |
valor_pauta | número | Valor de la tarifa |
percentual_majora | número | Porcentaje aumentado |
indice_aux_majora | número | Índice auxiliar de aumento |
tributo_majora | carácter | Tributo aumentado |
aliquota_majora | número | Alícuota aumentada |
valor_majora | número | Valor aumentado |
ded_dependentes | número | Deducción por dependientes |
id_cadastro_regra_tributo | carácter | Id del registro del tributo |
dados_escriturados | json | |
regras_base | json | |
regras_aliquota | json | |
regras_escrituracao | json |
| Informações | ||
|---|---|---|
| ||
*El atributo base_tributo puede tener su origen (por valor de la mercadería, valor contable, etc.) verificado en el atributo "acao_origem" (que queda dentro de "regras_base"). La opción de base por cantidad estará siempre en el atributo "base_quantidade_tributo". De acuerdo con la base de cálculo (campo F27_VALORI), los posibles orígenes de una base pueden ser: |
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 | ||
|---|---|---|
| ||
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 | ||
|---|---|---|
| ||
Para más información sobre el contenido de los campos vea la documentación: |
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 | ||
|---|---|---|
| ||
Para más información sobre el contenido de los campos vea la documentación: |
Utilización
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
aIds := {"fd32a6d9-70fa-6b68-18b5-cc17375d15b3"}
cResponse := ""
oDados := |
...
dados_escriturados
...
json
...
regras_base
...
json
...
regras_aliquota
...
json
...
regras_escrituracao
...
json
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
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 | ||
|---|---|---|
| ||
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
| Informações | ||
|---|---|---|
| ||
Para más información sobre el contenido de los campos vea la documentación: |
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
| Informações | ||
|---|---|---|
| ||
Para más información sobre el contenido de los campos vea la documentación: |
Utilización
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
aIds := {"fd32a6d9-70fa-6b68-18b5-cc17375d15b3"}
cResponse := ""
oDados := TCIWritten():New()
oDados:SetId(aIds)
cResponse := oDados:GetDataId() |
Permite incluir a la devolución de GetDataId() detalles de las configuraciones realizadas por el usuario en el Configurador de tributos (FISA170).
Parámetros
...
| title | IMPORTANTE |
|---|
El uso del método setDataItems() solamente es necesario apenas cuando hay la necesidad de obtener datos de registros en el Configurador de tributos (FISA170), no siendo obligatorio para la obtención de los tributos de los ítems.
Si fuera necesario, el método setDataItems() debe activarse antes de GetDataId().
Si los valores informados en el parámetro aContent divergieran de los valores permitidos, se incluirá el objeto erro_propriedade describiendo la propiedad no válida informada:
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
Local oDados := totvs.protheus.backoffice.fiscal.tciclass.TCIWritten():New()
Local aID := {"4201ee25-972f-5840-9feb-2df327f3982d", "69003b5a-c15f-4113-a4b0-e2883d809711"}
Local cRetorno := ""
Local oRetorno := JsonObject():New()
oDados:SetId(aId)
oDados:setDataItems({"regras_b4s3", "regras_al1quot4","regras_escr1tur4c40" })
cRetorno := oDados:GetDataId()
|
La activación anterior devolverá un objeto como este:
{
"dados_Id": {
"4201ee25-972f-5840-9feb-2df327f3982d": {
"erro_propriedade": {
"propriedade_1": "regras_b4s3",
"propriedade_2": "regras_al1quot4",
"propriedade_3": "regras_escr1tur4c40"
},
"TRIB05": {...},
... //otros tributos
}
}
}
Utilización
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
using totvs.protheus.backoffice.fiscal.tciclass
Function Exemplo()
Local oDados as json
Local cRetorno
oDados := TCIWritten():New()
oDados:setDataItems({"regras_base", "regras_aliquota", "regras_escrituracao"})
cRetorno := oDados:GetDataId()
Return cRetorno |
Modifica la devolución de GetDataId(), para devolver un JSON indexado por reglas de cálculo (F2B_REGRA).
*Se puede utilizar en conjunto con el método setTaxRuleFilterList() para filtrar, pasando por el parámetro qué reglas de cálculo se desea en la devolución.
**Se puede utilizar en conjunto con el método setAdditionalFieldsToReturn() para incluir campos en la devolución, pasando por el parámetro qué atributos desea recibir además de la devolución estándar.
| Aviso | ||
|---|---|---|
| ||
Los métodos setTaxRuleFilterList() y setAdditionalFieldsToReturn() solamente funcionarán en el contexto de las devoluciones simplificadas: setReturnByTaxRule() y setReturnByIdTotvs(). Estos no tienen efecto en la devolución estándar de GetDataId(). |
Utilización
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
aData := {"DD227D08-AECE-4F11-BE55-AC5AFCAF013F","A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F","30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F"} aFieldsNeeded := {'dados_escriturados','mva','regras_escrituracao'} aTribs := {'PISTG','COFTG'} oDados := TCIWritten():New() oDados:SetId(aDataaIds) oDados:setReturnByTaxRule() // Modifica la devolución del método cResponse := oDados:GetDataId() oDados:setAdditionalFieldsToReturn( aFieldsNeeded ) // Opcional: Incluir más campos en la devolución del objeto oDados:setTaxRuleFilterList( aTribs ) // Opcional: Filtra la devolución solamente con las reglas de cálculo que se desea CONOUT( oDados:GetDataId() ) /* { "COFTG":{ "items":{ "DD227D08-AECE-4F11-BE55-AC5AFCAF013F":{ "regra_trib":"COFTG", "filial":"XIFIS26", "codigo_tributo_relacionado":"000016", "tributo":"COF", "descricao_tributo_relacionado":"CONTRIBUYE PARA FINANCIACIÓN DE LA SEGURIDAD SOCIAL", "base_tributo":1000, "aliquota_tributo":7.6, "valor_tributo":76, "dados_escriturados":{ }, "mva":0, "regras_escrituracao":"regla no vinculada" }, "A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{ }, "30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{ } } }, "PISTG":{ "items":{ "DD227D08-AECE-4F11-BE55-AC5AFCAF013F":{ }, "A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{ }, "30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{ } } } } */ |
...
Permite incluir a la devolución de GetDataId() detalles de las configuraciones realizadas por el usuario en el Configurador de tributos (FISA170).
Parámetros
| Aviso | |||||||
|---|---|---|---|---|---|---|---|
| |||||||
El uso del método setDataItems() solamente es necesario apenas cuando hay la necesidad de obtener datos de registros en el Configurador de tributos (FISA170), no siendo obligatorio para la obtención de los tributos de los ítems. Si fuera necesario, el método setDataItems() debe activarse antes de GetDataId(). Si los valores informados en el parámetro aContent divergieran de los valores permitidos, se incluirá el objeto erro_propriedade describiendo la propiedad no válida informada:
La activación anterior devolverá un objeto como este: |
Utilización
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
using totvs.protheus.backoffice.fiscal.tciclass
Function Exemplo()
Local oDados as json
Local cRetorno
oDados := TCIWritten():New()
oDados:setDataItems({"regras_base", "regras_aliquota", "regras_escrituracao"})
cRetorno := oDados:GetDataId()
Return cRetorno |
Modifica la devolución de GetDataId(), para devolver un JSON indexado por tributos con ID Totvs (F2C_CODIGOreglas de cálculo (F2B_REGRA).
*Se puede utilizar en conjunto con el método setIdTotvsFilterListsetTaxRuleFilterList() para filtrar, pasando por el por parámetro qué ID Totvs reglas de cálculo se desea en la devolución retorno.
**Se puede utilizar en conjunto con el método setAdditionalFieldsToReturn() para incluir campos en la devolución, pasando por el parámetro qué atributos desea recibir además de la devolución estándar.
| Aviso | ||
|---|---|---|
| ||
Los métodos setIdTotvsFilterListsetTaxRuleFilterList() y setAdditionalFieldsToReturn() solamente funcionarán en el contexto de las devoluciones simplificadas: setReturnByTaxRule() y setReturnByIdTotvs(). Estos no tienen efecto en la devolución estándar de GetDataId(). |
...
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
aData := {"DD227D08-AECE-4F11-BE55-AC5AFCAF013F","A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F","30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F"} aFieldsNeeded := {'mvadados_escriturados','mva','regras_escrituracao'} oDados aTribs := {'PISTG','COFTG'} oDados := TCIWritten():New() oDados:SetId(aData) oDados:setReturnByIdTotvssetReturnByTaxRule() // Modifica la devolución del método :GetDataId() oDados:setAdditionalFieldsToReturn( aFieldsNeeded ) // Opcional: Incluir más campos en la devolución del objeto aTotvsId := {'000021'} // 000021 = ICMS oDados:setIdTotvsFilterListsetTaxRuleFilterList( aTotvsIdaTribs ) // Opcional: Filtra la devolución solamente elcon IDlas totvsreglas quede deseacálculo que se desea CONOUT CONOUT( oDados:GetDataId() ) /* { "000021COFTG":{ "items":{ "DD227D08-AECE-4F11-BE55-AC5AFCAF013F":{ "regra_trib":"ICMSTGCOFTG", "filial":"XIFIS26", "codigo_tributo_relacionado":"000021000016", "tributo":"ICMSCOF", "descricao_tributo_relacionado":"ICMSCONTRIBUYE -PARA ImpuestoFINANCIACIÓN sobreDE circulaciónLA de mercaderías y serviciosSEGURIDAD SOCIAL", "base_tributo":1000, "aliquota_tributo":187.6, "valor_tributo":18076, "mvadados_escriturados":0{ }, "regras_escrituracaomva":{0, "codigoregras_regraescrituracao":"PRUEBAregla no vinculada", }, "descricao":"REGLA DE REGISTRO", A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{ }, "acao_incidencia":"1","30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{ } } }, "acao_total_nf":"5","PISTG":{ "items":{ "perc_diferimento":0, DD227D08-AECE-4F11-BE55-AC5AFCAF013F":{ }, "incidencia_parc_red":" ""A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{ }, "tabela_cst":"000001","30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{ } } } } */ |
Modifica la devolución de GetDataId(), para devolver un JSON indexado por tributos con ID Totvs (F2C_CODIGO).
*Se puede utilizar en conjunto con el método setIdTotvsFilterList() para filtrar, pasando el por parámetro qué ID Totvs desea en la devolución retorno.
**Se puede utilizar en conjunto con el método setAdditionalFieldsToReturn() para incluir campos en la devolución, pasando por el parámetro qué atributos desea recibir además de la devolución estándar.
| Aviso | ||
|---|---|---|
| ||
Los métodos setIdTotvsFilterList() y setAdditionalFieldsToReturn() solamente funcionarán en el contexto de las devoluciones simplificadas: setReturnByTaxRule() y setReturnByIdTotvs(). Estos no tienen efecto en la devolución estándar de GetDataId(). |
Utilización
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
aData := {"DD227D08-AECE-4F11-BE55-AC5AFCAF013F","A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F", "cst":"00", "cst_devolucao":"00" } }, "A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{ }, "30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{ } } } } */ |
El método getAgregTypeByTax( cTipoIncidencia , cCodTribIdTotvs ) permite recibir de manera simple cuál fue el tipo de incidencia sobre el total de la factura (CJ2_STONF) para cada tributo, dentro de cada ítem de un documento.
Parámetros:
cTipoIncidencia: (String) (Opcional) - Busca y filtra la devolución de acuerdo con un tipo válido de incidencia sobre el total de la factura (actualmente de 1 a 8).
cCodTribIdTotvs : (String) (Opcional) - Busca y filtra la devolución de acuerdo con un tipo válido de código de tributo (ID Totvs = F2C_CODIGO en la tabla F2C).
*Si no se informara ningún parámetro, traerá todos los registros encontrados, independientemente del tipo de incidencia y tributo Id Totvs.
*Es obligatoria la activación del método oDados:setDataItems({"regras_escrituracao"}) antes de la activación del getAgregTypeByTax(), para que los datos de registro estén disponibles.
Las opciones de incidencia actualmente son:
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édito |
aFieldsNeeded := {'mva','regras_escrituracao'}
oDados := TCIWritten():New()
oDados:SetId(aData)
oDados:setReturnByIdTotvs() // Modifica la devolución del método :GetDataId()
oDados:setAdditionalFieldsToReturn( aFieldsNeeded ) // Opcional: Incluir más campos en la devolución del objeto
aTotvsId := {'000021'} // 000021 = ICMS
oDados:setIdTotvsFilterList( aTotvsId ) // Opcional: Filtra la devolución solamente el ID totvs que desea CONOUT( oDados:GetDataId() )
/*
{
"000021":{
"items":{
"DD227D08-AECE-4F11-BE55-AC5AFCAF013F":{
"regra_trib":"ICMSTG",
"filial":"XIFIS26",
"codigo_tributo_relacionado":"000021",
"tributo":"ICMS",
"descricao_tributo_relacionado":"ICMS - Impuesto sobre circulación de mercaderías y servicios",
"base_tributo":1000,
"aliquota_tributo":18,
"valor_tributo":180,
"mva":0,
"regras_escrituracao":{
"codigo_regra":"PRUEBA",
"descricao":"REGLA DE REGISTRO",
"acao_incidencia":"1",
"acao_total_nf":"5",
"perc_diferimento":0,
"incidencia_parc_red":" ",
"tabela_cst":"000001",
"cst":"00",
"cst_devolucao":"00"
}
},
"A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{
},
"30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{
}
}
}
}
*/ |
El método getAgregTypeByTax( cTipoIncidencia , cCodTribIdTotvs ) permite recibir de manera simple cuál fue el tipo de incidencia sobre el total de la factura (CJ2_STONF) para cada tributo, dentro de cada ítem de un documento.
Parámetros:
cTipoIncidencia: (String) (Opcional) - Busca y filtra la devolución de acuerdo con un tipo válido de incidencia sobre el total de la factura (actualmente de 1 a 8).
cCodTribIdTotvs : (String) (Opcional) - Busca y filtra la devolución de acuerdo con un tipo válido de código de tributo (ID Totvs = F2C_CODIGO en la tabla F2C).
*Si no se informara ningún parámetro, traerá todos los registros encontrados, independientemente del tipo de incidencia y tributo Id Totvs.
*Es obligatoria la activación del método oDados:setDataItems({"regras_escrituracao"}) antes de la activación del getAgregTypeByTax(), para que los datos de registro estén disponibles.
Las opciones de incidencia actualmente son:
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édito |
Utilización sin transferir parámetros:
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
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 | ||||||
|---|---|---|---|---|---|---|
| ||||||
{
"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 facturaUtilización sin pasar parámetros:
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
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óndevolución
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
{ "data":{ "6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F":{ "COFTGPISTG":{ "acao_tot_nf":"23", "id_totvs":"000016000015" } }, "ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{ "PISTG":{ "acao_tot_nf":"3", "id_totvs":"000015" } } } } |
Utilización con parámetro de código de tributo (Id Totvs):
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
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 | ||||||
|---|---|---|---|---|---|---|
| ||||||
{ "data":{ "ICMSTG":{ "acao_tot_nf":"5", "id_totvs":"000021" } }, "ADE403B0-D7F2"6D76CB61-2AEE-4F11-8E569E56-AC5AFCAF013F":{ "COFTGICMSTG":{ "acao_tot_nf":"25", "id_totvs":"000016" 000021" } }, },"ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{ "PISTGICMSTG":{ "acao_tot_nf":"35", "id_totvs":"000015000021" }, "ICMSTG":{} } |
El Método getAdditionalData() sirve para recibir los datos adicionales. Este hace uso de la classe TCAdditionalData.
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
using totvs.protheus.backoffice.fiscal.tciclass "acao_tot_nf":"5", "id_totvs":"000021" } } } } |
Utilización con parámetro de incidencia sobre total de la factura:
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
oDados := TCIWritten():New() aData := {"6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F","ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F"} Function Exemplo() Local oDados Local cRetorno := "" aIds := {"369ca132-2b3b-ac96-6b78-3247afcc2219","a5dcda40-d145-28d1-c57f-1047e15ce1fe"} // Id do tributo // Configuracao da classe ... oDados := TCIWritten():New() oDados:setDataItems({"regras_escrituracao"}) // Es necesario para recibir los datos 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 |
*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 | ||||||
|---|---|---|---|---|---|---|
| ||||||
{
"data1":{
// Item do documento "6D76CB61-2AEE-4F11-9E56-AC5AFCAF013Ffiscal
"TG_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"
},
}
}
}
} |
Utilización con parámetro de código de tributo (Id Totvs):
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
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 | ||||||
|---|---|---|---|---|---|---|
| ||||||
{ "data":{ "6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F":{ "BASEIPICAL":{ "conteudo":"O" }, "ENQIPICODE":{ "conteudo":"113" }, "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":{} } } } |
Libera los recursos utilizados por la instancia de la clase TCIWritten.
...
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
aIds := {"369ca132-2b3b-ac96-6b78-3247afcc2219","a5dcda40-d145-28d1-c57f-1047e15ce1fe"}
cResponse := ""
oDados := TCIWritten():New()
oDados:SetId(aIds)
cResponse := oDados:GetDataId()
oDados:destroy() |
...
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
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 |
...