Páginas filhas
  • DDVENDAS-43185 - DT - 514 - Calculo do ST, usar IVA após Calculo da PAUTA Zerar


01. DADOS GERAIS

Produto:

TOTVS Distribuição e Varejo

Linha de Produto:

Linha Winthor 

Segmento:

Distribuição TOTVS Goiânia 

Módulo:5 - PROCESSAMENTOS
Função:514 - CADASTRAR TIPO DE TRIBUTAÇÃO
Ticket:17820183
Requisito/Story/Issue (informe o requisito relacionado) :DDVENDAS-43185


02. 
SITUAÇÃO/REQUISITO

Criar uma fórmula de cálculo do ST para que quando o ST calculado por pauta zerar ou negativar pegar a base do IVA para calcular o ST.

03. SOLUÇÃO

Criada nova fórmula na rotina 514 em que caso o valor do ST calculado por pauta retornar zero ou menor que zero, utilizar a base do IVA para calcular o valor do ST.


Saiba como utilizar

Atualize a rotina abaixo a partir da versão indicada ou versão superior:

  • Rotina 300 - Atualização de funções de venda - Versão 34.0.0.120 ou superior.

Passo a passo:

  • Abra a rotina 300 e selecione as opções 12, 13, 14 e 27:

  • Após finalizar abra a rotina 514, selecione a figura tributária marque o parâmetro Utilizar Motor de Cálculo de Impostos :


  • Clique na aba Substituição Tributária e selecione a fórmula no campo fórmula:
    • Importante As fórmulas selecionadas na rotina 514 são as seguintes:

PVENDA_ST_COMPBASE_PAUTA_IVA Preço de venda com valor do ST comparando o valor de IVA com a Base do ST

PVENDA_ST_COMPBASE_PAUTA_IVA_BASE_RED_ICMS  Preço de venda com valor do ST comparando o valor de IVA com a Base do ST com redução base de ICMS

PVENDA_ST_COMPBASE_PAUTA_IVA_RED_ICMS  Preço de venda com valor do ST comparando o valor de IVA com a Base do ST com redução base de ST


  • Abra a rotina 316 e verifique o valor do ST:

  • Calculando o ST com a tratativa da base do IVA x valor de Pauta tem um range de valor matematicamente impossível de chegar, pois  quando o valor de pauta zera e o ST passa a calcular por VA o preço sem imposto fica menor que o valor de pauta e tecnicamente teria que calcular por pauta.
    Essa é uma falha na lógica matemática dessa fórmula da SEFAZ para tratar a exceção do preço sem imposto da PKG_TRIBUTAÇÃO nós inserimos uma mensagem na rotina 316 para ela alertar o intervalo de preço que não é possível por conta da falha na lógica matemática dessa fórmula da SEFAZ:

Atualmente o sistema calcula o ST da seguinte maneira:


  • Calculo do valor do ST por pauta sem utilizar o motor de fórmula:

Pvenda: 141,5

Valor de Pauta ST: 188,7

Aliq ICMS INT: 18%

Aliq ICMS EXT: 18%

ST1: (Pauta * Aliq1) = 188,7 * 0,18 = 33,966

ST2: (Pvenda * Aliq2) = 141,5 * 0,18 = 25,47

Valor do ST: (ST1 - ST2) = 33,966  -  25,47 = 8,496


  • Porém o preço de venda pode ser alterado e ser maior que o valor de pauta do produto:

Pvenda: 191,00

Valor de Pauta ST: 188,7

Aliq ICMS INT: 18%

Aliq ICMS EXT: 18%

ST1: (Pauta * Aliq1) = 188,7 * 0,18 = 33,966

ST2: (Pvenda * Aliq2) = 191 * 0,18 = 34,38

Valor do ST: (ST1 - ST2) = 33,966 - 34,38 = -0,414


  • Nesse caso o valor do ST deu negativo, atualmente o sistema irá levar 0 para o valor do ST, pois o calculo do ST deu negativo. Com a alteração caso o valor do ST dê zerado ou negativo no cálculo por pauta o sistema irá calcular o valor ST pela base do IVA:


Pvenda: 191,00

IVA: 46%

Aliq ICMS INT: 18%

Aliq ICMS EXT: 18%

Base ST: (Pvenda * (1+IVA/100)) = 278,86

ST1: (BaseST * Aliq1) = 50,19

ST2: (Pvenda * Aliq2) = 34,38

Valor do ST: (ST1 - ST2) = 15,8148


As fórmulas criadas são as seguintes:

Fórmula comparativa entre valor do ST calculado por pauta e Base do ST.

ST_COMPBASE_PAUTA_IVA Retorna o valor do ST comparando o valor de IVA com a Base do ST


CASE WHEN (([PAUTATAB] * ([ALIQICMS1TAB] / 100)) -
              (([PTABELASEMIMPOSTO1] + [VLFRETE] + [VLOUTRASDESP]) * ([ALIQICMS2TAB] / 100))) <= 0
THEN           GREATEST((#BASE_ST# * ([ALIQICMS1TAB] / 100)) -           (([PTABELASEMIMPOSTO1] + [VLFRETE] + [VLOUTRASDESP]) *           ([ALIQICMS2TAB] / 100)), 0)          ELSE           (([PAUTATAB] * ([ALIQICMS1TAB] / 100)) -               (([PTABELASEMIMPOSTO1] + [VLFRETE] + [VLOUTRASDESP])* ([ALIQICMS2TAB] / 100)))        END

Fórmula comparativa entre valor do ST calculado por pauta e Base do ST com redução na Base do ICMS.

ST_COMPBASE_PAUTA_IVA_BASE_RED_ICMS  Retorna o valor do ST comparando o valor de IVA com a Base do ST com redução base de ICMS


CASE
         WHEN (([PAUTATAB] * ([ALIQICMS1TAB] / 100)) -
              (([PTABELASEMIMPOSTO1] + [VLFRETE] + [VLOUTRASDESP]) *
              ([ALIQICMS2TAB] / 100))) <= 0 
THEN           GREATEST((#BASE_ST_BASE_RED_ICMS# * ([ALIQICMS1TAB] / 100)) -           (([PTABELASEMIMPOSTO1] + [VLFRETE] + [VLOUTRASDESP]) *           ([PERCBASEREDST2TRANSF] / 100) * ([ALIQICMS2TAB] / 100)),                    0)          ELSE           (([PAUTATAB] * ([ALIQICMS1TAB] / 100)) -               (([PTABELASEMIMPOSTO1] + [VLFRETE] + [VLOUTRASDESP]) *               ([ALIQICMS2TAB] / 100)))        END


Fórmula comparativa entre valor do ST calculado por pauta e Base do ST com redução na Base do ICMS.

ST_COMPBASE_PAUTA_IVA_RED_ICMS Retorna o valor do ST comparando o valor de IVA com redução de ICMS na segunda parte

CASE
         WHEN (([PAUTATAB] * ([ALIQICMS1TAB] / 100)) -
              (([PTABELASEMIMPOSTO1] + [VLFRETE] + [VLOUTRASDESP]) *
              ([ALIQICMS2TAB] / 100))) <= 0 THEN
              
          GREATEST((#BASE_ST#*([ALIQICMS1TAB]/100))-
          (([PTABELASEMIMPOSTO1]+[VLFRETE]+[VLOUTRASDESP])*([PERCBASEREDST2TRANSF]/100)*
          ([PERCBASERED]/100)*([ALIQICMS2TAB]/100)),0)
          
         ELSE        (([PAUTATAB] * ([ALIQICMS1TAB] / 100)) -
              (([PTABELASEMIMPOSTO1] + [VLFRETE] + [VLOUTRASDESP]) *
              ([ALIQICMS2TAB] / 100)))
END

Para cada fórmula acima foi criada a fórmula do PVENDA para calcular o Preço de venda: 


PVENDA_ST_COMPBASE_PAUTA_IVA (ST_COMPBASE_PAUTA_IVA)

PVENDA_ST_COMPBASE_PAUTA_IVA_BASE_RED_ICMS (ST_COMPBASE_PAUTA_IVA_BASE_RED_ICMS)

PVENDA_ST_COMPBASE_PAUTA_IVA_RED_ICMS (ST_COMPBASE_PAUTA_IVA_RED_ICMS)




04. DEMAIS INFORMAÇÕES

 

IMPORTANTE!

As versões estarão disponíveis para download no CCW. Mantenha suas rotinas sempre atualizadas!