Índice
...
...
A classe La clase TCIWritten (Tax Configurator Integration Written) foi desenvolvida para viabilizar o acesso aos dados gravados nas tabelas se desarrolló para hacer viable el acceso a los datos grabados en las tablas F2D (Tributos Genéricos Calculadosgenéricos calculados)e y CJ3 (Tabela Escrituracao Tabla Registro por itemítem) do del Configurador de Tributostributos (FISA170) de uma una forma dinâmica dinámica e intuitiva.
Este documento tem o objetivo de demonstrar o funcionamento da classe TCIWritten e seus os tiene el objetivo de mostrar el funcionamiento de la clase TCIWritten y sus métodos.
| 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ónTodos 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. |
...
A classe La clase TCIWritten facilita a recuperação la recuperación de dados específicos das tabelas F2D e datos específicos de las tablas F2D y CJ3 utilizando métodos que permitem o acesso aos permiten el acceso a los registros por meio medio de IDs. O retorno dos dados é estruturado no ID. La devolución de los datos se estructura en el formato JSON, tornando-o quedando fácil de manipular manejar e integrar com outras con otras partes de uma aplicaçãouna aplicación.
...
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.
Por exemplo:
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
// 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 |
A função ChkTrbGen responsável por efetuar algumas validações para utilização dos tributos genéricos.
Parâmetros
A função MaFisTG é responsável pela gravação e exclusão dos tributos calculados pelo 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 |
|---|
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 | |||||||
|---|---|---|---|---|---|---|---|
| |||||||
| Bloco de código |
| TLPP | |||||
#include 'tlpp-core.th'
using NameSpace totvs.protheus.backoffice.fiscal.tciclass
Function Teste()
Local oDados as object
oDados := TCIWritten():New()
Return |
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
#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 |
O construtor da classe. Inicializa um novo objeto da classe TCIWritten.
Utilização
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
oDados := TCIWritten():New() |
Define os IDs dos registros que se deseja obter os dados. Pode ser um único ID ou uma lista de IDs.
Parâmetros
Utilização
| |
// 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:
| |||||||||
| Bloco de código | |||||||||
| |||||||||
// Definindo um único ID
aData := {"369ca132-2b3b-ac96-6b78-3247afcc2219"}
|
Recupera os dados dos registros informados em 𝚜𝚎𝚕𝚏:𝚊𝙸𝚍𝚁𝚎𝚚𝚞𝚎𝚜𝚝
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"}
oDados := | ||||||
| Aviso | ||||||
| ||||||
Para o correto funcionamento do método GetDataId() é imprescindível informar o(s) ID(s) que deseja os dados através do método SetId(), caso contrário será retornado uma mensagem: "erro - Necessita informar Id" Quando um id inválido é informado em SetId(aIds as Array), GetDataId() retornará um objeto JSON com a chave "Aviso" e o valor "Id não calculado pelo configurador de tributos". Exemplo: Bloco de código | | |||||
|
...
A chamada acima retornará um objeto como este:
{
"dados_Id": {
"4201ee25-972f-5840-9feb-2df327f3982d": {
"Aviso": "Id não calculado pelo 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": { |
Retorno
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
{ "dados_Id": { "fd32a6d9-70fa-6b68-18b5-cc17375d15b3": { "TG_001": { "filial": "XIFIS26", "tributo": "TG0002", "codigo_tributo_relacionado": "", "descricao_tributo_relacionado": "", "baseTG_tributo001": 0,{ "aliquota_tributosucursal": 10"XIFIS26", "valor_tributo": 80"TG0002", "valorcodigo_tributo_urfrelacionado": 10"", "mvadescricao_tributo_relacionado": 0"", "valorbase_quantidade_pautatributo": 0, "percentualbase_majoratributo": 0, "indicealiquota_aux_majoratributo": 010, "valor_tributo_majora": ""80, "aliquotavalor_majoraurf": 010, "valor_majoramva": 0, "dedvalor_dependentespauta": 0, "id_cadastro_regra_tributo": "4201ee25-972f-5840-9feb-2df327f3982d" "dadospercentual_escrituradosmajora": {0, "filialindice_aux_majora": ""0, "codigotributo_tributomajora": "", "valoraliquota_tributadomajora": 0, "cstvalor_majora": ""0, "valorded_isentodependentes": 0, "valor_outrosid_cadastro_regra_tributo": 0, "4201ee25-972f-5840-9feb-2df327f3982d" "valordados_nao_tributadoescriturados": 0,{ "valor_diferidosucursal": 0"", "valorcodigo_majoradotributo": 0"", "percvalor_majoradotributado": 0, "perc_diferidocst": 0"", "percvalor_reducaoisento": 0, "valor_pautaoutros": 0, "mvavalor_nao_tributado": 0, "indvalor_aux_mvadiferido": 0, "Indvalor_aux_majoramajorado": 0, "codigoperc_tab_cstmajorado": ""0, "valorperc_base_originaldiferido": 0, }, "regras_base": { "codigo_regra "perc_reducao": "BAS021"0, "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, ", "acao_origem": "11", "acao_desconto"perc_red_aliquota": 0, "perc_aliquota_original": 0, "cct": "1", "acao_frete "cclasstrib": "1", "acao_seguro": "1", "acao_despesa" }, "regras_base": { "codigo_regra": "1BAS021", "acao_icms_desonerado "descripcion": "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_desconto": "1", ", "acao_origem "acao_frete": "041", "acao_tiposeguro": "1", "perc_aliquota "acao_despesa": 20, "codigo_urf": ""1", ", "perc_urfacao_icms_desonerado": 0, "formula_aliquota"1", "acao_icms_retido": "201", "id_formula": "9d86e6bc-6a3c-9ea8-8053-57b2eb7eb045", "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", "codigo_formula": "B:BAS021" }, ", "acao_incidencia"regras_aliquota": "2", "acao_total_nf{ "codigo_regra": "6ALQ023", "perc_diferimento": 0, "incidencia_parc_red": " ", "tabela_cst": "000001", "cst "descripcion": "70 ", "cst_devolucao": "70 " } ALICUOTA ESTANDAR DEL 20% }, "TG_00N": { ... }, }, |
Descrição das propriedades contidas no tributo
...
Objeto dados_escriturados
...
Objeto regras_base
...
",
"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 := 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
| 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 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
| Informações | ||
|---|---|---|
| ||
Para mais informações sobre o conteúdo dos campos verificar a documentação: CFGTRIB - Configurador de Tributos (Regras de base de cálculo) |
Objeto regras_aliquota
...
| Informações | ||
|---|---|---|
| ||
Para mais informações sobre o conteúdo dos campos verificar a documentação: |
Objeto regras_escrituracao
...
| Informações | ||
|---|---|---|
| ||
Para mais informações sobre o conteúdo dos campos verificar a documentação: |
Utilização
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
aIds := {"fd32a6d9-70fa-6b68-18b5-cc17375d15b3"}
cResponse := ""
oDados := TCIWritten():New()
oDados:SetId(aIds)
cResponse := oDados:GetDataId() |
Permite adicionar ao retorno de GetDataId() detalhes das configurações realizadas pelo usuário no Configurador de Tributos (FISA170).
Parâmetros
...
| title | IMPORTANTE |
|---|
O uso do método setDataItems() se faz necessário apenas quando há a necessidade obter dados de cadastros no Configurador de Tributos (FISA170), não sendo obrigatório para a obtenção dos tributos dos itens.
Quando necessário, o método setDataItems() deve ser chamado antes de GetDataId().
...
| 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()
|
A chamada acima retornará um 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": {...},
... //demais tributos
}
}
}
Utilização
| 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 |
Altera o o retorno do GetDataId(), para retornar um JSON indexado por regras de cálculo (F2B_REGRA).
*Pode-se utilizar em conjunto com o método setTaxRuleFilterList() para filtrar, passando por parâmetro quais regras de cálculo se deseja no retorno.
**Pode-se utilizar em conjunto com o método setAdditionalFieldsToReturn() para adicionar campos no retorno, passando por parâmetro quais atributos se deseja receber além do retorno padrão;
| Aviso | ||
|---|---|---|
| ||
Os métodos setTaxRuleFilterList() e setAdditionalFieldsToReturn() irão apenas funcionar no contexto dos retornos simplificados: setReturnByTaxRule() e setReturnByIdTotvs(). Eles não tem efeito no retorno padrão do GetDataId(). |
Utilização
| 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(aData)
oDados:setReturnByTaxRule() // Altera o retorno do método :GetDataId()
oDados:setAdditionalFieldsToReturn( aFieldsNeeded ) // Opcional: Adicionar mais campos no retorno do objeto
oDados:setTaxRuleFilterList( aTribs ) // Opcional: Filtra o retorno somente com as regras de cálculo que se deseja
CONOUT( oDados:GetDataId() )
/*
{
"COFTG":{
"items":{
"DD227D08-AECE-4F11-BE55-AC5AFCAF013F":{
"regra_trib":"COFTG",
"filial":"XIFIS26",
"codigo_tributo_relacionado":"000016",
"tributo":"COF",
"descricao_tributo_relacionado":"CONTRIBUI O PARA FINANCIAMENTO DA SEGURIDADE SOCIAL",
"base_tributo":1000,
"aliquota_tributo":7.6,
"valor_tributo":76,
"dados_escriturados":{
},
"mva":0,
"regras_escrituracao":"regra nao 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":{
}
}
}
}
*/ |
Altera o o retorno do GetDataId(), para retornar um JSON indexado por tributos com ID Totvs (F2C_CODIGO).
*Pode-se utilizar em conjunto com o método setIdTotvsFilterList() para filtrar, passando por parâmetro quais ID Totvs se deseja no retorno.
**Pode-se utilizar em conjunto com o método setAdditionalFieldsToReturn() para adicionar campos no retorno, passando por parâmetro quais atributos se deseja receber além do retorno padrão;
| Aviso | ||
|---|---|---|
| ||
Os métodos setIdTotvsFilterList() e setAdditionalFieldsToReturn() irão apenas funcionar no contexto dos retornos simplificados: setReturnByTaxRule() e setReturnByIdTotvs(). Eles não tem efeito no retorno padrão do GetDataId(). |
Utilização
| 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'} oDados aTribs := {'PISTG','COFTG'} oDados := TCIWritten():New() oDados:SetId(aData) oDados:setReturnByIdTotvssetReturnByTaxRule() // AlteraModifica ola retornodevolución dodel método :GetDataId() oDados:setAdditionalFieldsToReturn( aFieldsNeeded ) // Opcional: AdicionarIncluir maismás campos noen retornola devolución dodel objeto aTotvsId := {'000021'} // 000021 = ICMS oDados:setIdTotvsFilterListsetTaxRuleFilterList( aTotvsIdaTribs ) // Opcional: Filtra la devolución osolamente retornocon somentelas oreglas IDde totvscálculo que se desejadesea CONOUT( oDados:GetDataId() ) /* { "000021COFTG":{ "items":{ "DD227D08-AECE-4F11-BE55-AC5AFCAF013F":{ "regra_trib":"ICMSTGCOFTG", "filial":"XIFIS26", "codigo_tributo_relacionado":"000021", "tributo":"ICMS", "descricao_tributo_relacionado":"ICMS - Imposto sobre Circula o de Mercadorias e Servi os", "base_tributo":1000, "aliquota_tributo":18, "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":{ } } } } */ |
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","30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F"}
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":{ "valor_tributoCOFTG":180,{ "mvaacao_tot_nf":0"2", "regrasid_escrituracaototvs":{"000016" "codigo_regra":"TESTE"}, "descricao":"REGRA DE ESCRITURACAO", "PISTG":{ "acao_tot_incidencianf":"13", "acaoid_total_nftotvs":"5000015", }, "perc_diferimentoICMSTG":0,{ "incidenciaacao_parctot_rednf":" 5", "tabelaid_csttotvs":"000001000021", } "cst":"00"}, "ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{ "cst_devolucaoCOFTG":"00"{ } "acao_tot_nf":"2", }, "A7A15DCF-C1B8-4F11-9E54-AC5AFCAF013F":{ }, "id_totvs":"000016" "30DE92B8-C9B8-4F11-8E54-AC5AFCAF013F":{ }}, } } } */ |
O método getAgregTypeByTax( cTipoIncidencia , cCodTribIdTotvs ) permite receber de forma simples qual foi o tipo de incidência sobre o total da NF (CJ2_STONF) para cada tributo, dentro de cada item de um documento.
Parâmetros:
cTipoIncidencia: (String) (Opcional) - Busca e filtra o retorno de acordo com um tipo válido de incidência sobre total da NF (atualmente de 1 à 8).
cCodTribIdTotvs : (String) (Opcional) - Busca e filtra o retorno de acordo com um tipo válido de código de tributo (ID Totvs = F2C_CODIGO na tabela F2C).
*Caso não seja informado nenhum parâmetro, irá trazer todos os registros encontrados, independente de tipo de incidência e tributo Id Totvs.
*Obrigatório a chamada do método oDados:setDataItems({"regras_escrituracao"}) antes da chamada do getAgregTypeByTax(), para os dados de escrituração estarem disponíveis.
As opções de incidência atualmente são:
| 1 | Sem Ação |
| 2 | Subtrai somente do total da nota |
| 3 | Subtrai do total da nota e da duplicata |
| 4 | Subtrai somente do total da duplicata |
| 5 | Soma somente no total da nota |
| 6 | Soma no total da nota e da duplicata |
| 7 | Soma somente no total da duplicata |
| 8 | Gross up no total da duplicata |
"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 facturaUtilização sem passar 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'}) //obrigatorioobligatorio
oDados:GetDataId() // opcional
cResponse := oDados:getAgregTypeByTax("3") |
Exemplo RetornoEjemplo devolución
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
{ "data":{ "6D76CB61-2AEE-4F11-9E56-AC5AFCAF013F":{ "COFTGPISTG":{ "acao_tot_nf":"23", "id_totvs":"000016" 000015" } }, "ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{ "PISTG":{ "acao_tot_nf":"3", "id_totvs":"000015" }, } "ICMSTG":{ "acao_tot_nf":"5"} } |
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":{, "id_totvs":"000021" } }, "ADE403B06D76CB61-D7F22AEE-4F11-8E569E56-AC5AFCAF013F":{ "COFTGICMSTG":{ "acao_tot_nf":"25", "id_totvs":"000016000021" }, "PISTG":{ "acao_tot_nf":"3"}, "id_totvs":"000015" },"ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{ "ICMSTG":{ "acao_tot_nf":"5", "id_totvs":"000021" } } } } |
...
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 Function Exemplo() Local oDados Local cRetorno := "" aIds oDados := TCIWritten():New() aData := {"6D76CB61369ca132-2AEE2b3b-4F11ac96-9E566b78-AC5AFCAF013F3247afcc2219","ADE403B0a5dcda40-D7F2d145-4F1128d1-8E56c57f-AC5AFCAF013F1047e15ce1fe"} // Id do tributo // Configuracao da classe ... oDados:SetId(aData := TCIWritten():New() oDados:setDataItems({'"regras_escrituracao'"}) //obrigatorio oDados:GetDataId() // opcional cResponse := oDados:getAgregTypeByTax("3") Es necesario para recibir los datos adicionales dentro de la propiedad de donde vinieron, en este caso, regla de registro oDados:SetId(aIds) 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.Exemplo Retorno
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
{
"data1":{
// Item do documento fiscal
"6D76CB61-2AEE-4F11-9E56-AC5AFCAF013FTG_001":{ // Tributo
"PISTGregra escrituracao":{
"acao_tot_nfid":"3e118b167-a462-0bb0-1a11-08991d2ff2c2",
// Identificador único de la regla de registro
"id_totvs":"000015"
}
},
"ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{
"dados adicionais":{ // Contiene todos los datos adicionales y sus respectivos valores
"PISTGAGCREDPRES":{
"acao_tot_nf "conteudo":"31",
"id_totvs":"000015"
},
}
"BASEIPICAL":{
}
}
} |
Utilização com 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'}) //obrigatorio oDados:GetDataId() // opcional cResponse := oDados:getAgregTypeByTax( , "000021") |
Exemplo Retorno
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
{ "data":{ "conteudo":"O" }, "ENQIPICODE":{ "6D76CB61-2AEE-4F11-9E56-AC5AFCAF013Fconteudo":{"113" "ICMSTG":{ }, "acao_tot_nfTRIBPREF":"5", { "id_totvsconteudo":"000021" "99" } }, "ADE403B0-D7F2-4F11-8E56-AC5AFCAF013F":{} "ICMSTG":{}, "perfil "acao_tot_nf":"5"de operacao":{}, "regra de "id_totvscalculo":"000021" {} } } } |
Libera os los recursos utilizados pela instância da classe por la instancia de la clase TCIWritten.
UtilizaçãoUtilización
| 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 |
...