Árvore de páginas

Versões comparadas

Chave

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

...

02. Contabilização com Base na Classificação do Tributo

02.1. Nova Abordagem de Contabilização

Com o intuito de aprimorar o processo contábil, foi implementada uma solução que permite que a contabilização utilize a Classificação do Tributo (definida na Regra de Cálculo - Documentos Fiscais) como base, em vez do código da sigla específico do tributo (F2D_TRIB).

Vantagens da Nova Abordagem

Esta implementação possibilita:

      • Configuração de sequências contábeis mais genéricas
      • Maior reutilização de parâmetros
      • Manutenção simplificada das regras contábeis


02.2. Função de Contabilização CTBVLTRIB

📊 Foi desenvolvida uma função de contabilização especializada chamada CTBVLTRIB, que pode ser utilizada diretamente nos lançamentos padrões de contabilização para obter o valor do tributo desejado.

02.2.1. Sintaxe da Função

CTBVLTRIB(<ID_TRIBUTO>,

...

<TRIBUTO>,

...

<OPERACAO>, <LDESDOCENT>)

Onde:

        • <ID_TRIBUTO>: Campo que contém o ID do tributo (SD1->D1_IDTRIB ou SD2->D2_IDTRIB).

        • <TRIBUTO>: String com a sigla do tributo desejado (ex: "ICMSST", "IPI", etc.).

        • <OPERACAO>: Indica se deseja considerar a Operação selecionado para o Tributo.

        • <LDESDOCENT> Indica se retorna o Valor desmembrado da Nota de Entrada quando está para Desmembrar Ativo = Sim, .T. = Sim e .F. = Não (Padrão). Argumento exclusivo para a tabela SD1 do compras.


Nota
titleOPERACAO

A funcionalidade para o parâmetro Operação, apenas estará disponível no release 12.1.2410 em diante.

02.2.2. Exemplo de Uso

CTBVLTRIB(SD2->D2_IDTRIB,

...

"ICMSST")

Informações
titleOperação Default

Caso o terceiro argumento não seja informado, o valor padrão (default) para a operação será falso (.F.). Isso significa que a operação definida para o tributo não será considerada, e a função retornará o valor do tributo, independentemente da operação associada a ele.

A mesma lógica se aplica ao quarto argumento, onde o seu padrão é falso e caso não informado, não considerará a regra de desmembramento do Ativo (F4_BENSATF) e retornará o valor total do tributo.

02.2.3. Funcionamento

A função CTBVLTRIB opera da seguinte forma:

        1. Procura no <ID_TRIBUTO> informado se há uma regra que corresponda ao tributo desejado <TRIBUTO>
        2. Verifica se o valor do tributo encontrado é maior que zero
        3. Em caso positivo, retorna o valor do tributo como resultado da função
        4. Em caso negativo (tributo não encontrado ou valor zero), retorna zero
Nota
titleTributo

O nome do Tributo deve ser informado conforme a Regra de Cálculo - Documentos Fiscais.


Image Modified

Exemplo Configuração do Lançamento Padrão:

Image Modified


A função CTBVLTRIB possui um terceiro parâmetro chamado <OPERACAO>, cujo funcionamento depende da regra de Custo definida para o tributo informado no segundo parâmetro <TRIBUTO>.

O parâmetro <OPERACAO> é do tipo booleano e pode assumir os valores .T. (verdadeiro) ou .F. (falso).

Quando definido como .T., a função considera a operação associada ao tributo informado no segundo parâmetro. O comportamento da função varia conforme a regra de Custo configurada para o tributo:

        • Operação 0 – Sem ação: a função retorna zero.

        • Operação 1 – Somar: a função retorna o valor do tributo.

        • Operação 2 – Subtrair: a função retorna o valor do tributo com sinal negativo.

Informações

Caso a Regra de Cálculo - Documentos Fiscais não tenha o campo Custo preenchido, a função retornará o valor do tributo.

Caso um Custo seja vinculado à Regra de Cálculo - Documentos Fiscais, mas a ação do custo esteja em branco ou não preenchida, a função retornará zero.


O objetivo desse comportamento — especialmente no caso da operação "2 – Subtrair", que retorna o valor negativo — é permitir a criação de lógicas condicionais e cálculos dinâmicos nas rotinas contábeis, utilizando o sinal como critério de decisão.


02.2.4. Exemplo de uso com lógica condicional:

IIF(CTBVLTRIB(SD1->D1_IDTRIB, "ICMS", .T.) < 0, FAÇA_X(), FAÇA_Y())

Neste exemplo, a função verifica se o valor do tributo é negativo, permitindo executar diferentes rotinas conforme o tipo da operação (como crédito ou débito).


02.2.5. Exemplo de cálculo com ajuste automático:

SD1->D1_TOTAL + CTBVLTRIB(SD1->D1_IDTRIB, "ICMS", .T.)

Se CTBVLTRIB retornar -180 e D1_TOTAL for 1000, o resultado será 820.
Esse cálculo representa o valor líquido da operação, considerando automaticamente a dedução do ICMS — viabilizada pelo sinal negativo retornado pela função.

Esse comportamento é especialmente útil para simplificar regras e fórmulas nos lançamentos contábeis, evitando a necessidade de ajustar o sinal manualmente.

Sintaxe:
CTBVLTRIB(<ID_TRIBUTO>, <TRIBUTO>,<OPERACAO>)

Exemplo: CTBVLTRIB(SD1->D1_IDTRIB, "ICMS",.T.)


Cadastro Regra Custo:

Image Modified


Exemplo Cadastros:


Image Modified


Vinculo do Custo a Regra de Cálculo Documentos Fiscais:

Image Modified


 

03. Operação de custo

Abaixo será demonstrado o impacto da configuração do terceiro parâmetro da função CTBVLTRIB — quando o mesmo está definido como .T. (true).

...

Esses exemplos permitirão compreender de forma clara como a configuração da operação impacta os valores lançados, facilitando a correta aplicação da lógica contábil e evitando divergências na apuração dos resultados.

➕ Cenário 1 – Operação de Soma para o Tributo ICMS

...