13.4. Utilidadades
13.4.8. calcICMSUFDest400
13.4.7. Gerar PDF do DANFE
« Anterior
13.5. CriaProcNFe2G
Próximo »

13.4.8. calcICMSUFDest400 [10-01-18]

Funcionalidade para calcular as tags do grupo XML de informações do grupo de Tributação do ICMS para a UF de destino, de acordo com a alteração do leiaute promovido pela NT 2016/002.

Assinatura

string calcICMSUFDest400(int formaCalculo, double valorBase, double aliqDestino, double aliqInterestadual, double valorBaseFCP, double aliqFCP, int anoOperacao, out double vBCUFDest, out double pFCPUFDest, out double pICMSUFDest, out double pICMSInter, out double pICMSInterPart, out double vFCPUFDest, out double vICMSUFDest, out double vICMSUFRemet, out double vBCOpeInter, out double vICMSOpeInter, out int cResultado, out string msgResultado, out double vBCFCPUFDest)

Descrição:

Funcionalidade para calcular as tags do grupo XML das informações do grupo de Tributação do ICMS para a UF de destino nas operações interestaduais de venda para consumidor final.

NOVIDADE

Base Única para DIFAL de vendas não presenciais

Novo convênio do CONFAZ (152/15) altera o convênio ICMS 93/2015, definindo a utilização de base de cálculo única para o diferencial de alíquota (DIFA) em operações interestaduais para vendas não presenciais (e-commerce, telefone). A decisão simplifica a gestão tributária dos contribuintes e foi defendida por Santa Catarina, Rio Grande do Sul, Paraná e São Paulo.

Origem das informações: SEF/SC

Parâmetros:

nome tipo tam. descrição
formaCalculo inteiro entrada informar a forma de cálculo dos valores:
1 - Base de Cálculo dupla (orientação COTEPE), cálculo a partir do valor da operação;(obsoleto)
2 - Base de Cálculo dupla (orientação COTEPE), cálculo a partir do valor da mercadoria sem ICMS;(obsoleto)
3 - Base de Cálculo única (orientação da CONFAZ), cálculo a partir do valor da operação.
valorBase double entrada informar o valor que será utilizado para cálculo das tags.
aliqDestino double entrada informar o valor da alíquota interna da UF de destino.
aliqInterestadual double entrada informar o valor da alíquota interestadual (4%, 7% ou 12%).
valorBaseFCP double entrada NOVO informar o Valor da Base de Cálculo do FCP da UF de destino caso exista.
aliqFCP double entrada informar o valor da alíquota do FCP da UF de destino caso exista.
anoOperacao inteiro entrada informar o ano da operação (2016, 2017, 2018, 2019, 2020, ...), será utilizado para cálcular o percentual da partilha.
vBCUFDest double saída retorna o Valor da Base de Cálculo do ICMS na UF de destino.
pFCPUFDest double saída retorna o valor informado em aliqFCP.
pICMSUFDest double saída retorna o valor informado em aliqDestino.
pICMSInter double saída retorna o valor informado em aliqInterestadual.
pICMSInterPart double saída retorna Percentual de ICMS Interestadual para a UF de destino:
- 40% em 2016;
- 60% em 2017;
- 80% em 2018;
- 100% a partir de 2019.
vFCPUFDest double saída retorna o Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP) da UF de destino.
vICMSUFDest double saída retorna o Valor do ICMS Interestadual (partilha do DIFAL) para a UF de destino , já considerando o valor do ICMS relativo ao Fundo de Combate à Pobreza naquela UF. [30-12-15]
vICMSUFRemet double saída retorna o Valor do ICMS Interestadual (partilha do DIFAL) para a UF do remetente.
Nota: A partir de 2019, este valor será zero.
vBCOpeIntert double saída retorna o Valor da BC ICMS da operação própria (ICMS interestadual devido para a origem) do remetente.
vICMSOpeInter double saída retorna o Valor do ICMS da operação própria (ICMS interestadual devido para a origem) do remetente.
cResultado inteiro saída retorna o código do resultado da chamada da DLL
msgResultado string saída retorna a literal do resultado da chamada da DLL
vBCFCPUFDest double saída retorna o Valor da BC do ICMS relativo ao Fundo de Combate à Pobreza (FCP) da UF de destino.

Retorno:

Um string com o grupo XML das informações do grupo de Tributação do ICMS para a UF de destino nas operações interestaduais de venda para consumidor final.

Exemplo de retorno para:

formaCalculo = 3 - Base de Cálculo única
ValorBase = 1.000,00
aliqDestino = 17,00
aliqInterestadual = 12,00
ValorBaseFCP = 0,00
aliqFCP =0,00
anoOperacao = 2016

<ICMSUFDest>
  <vBCUFDest>1000.00</vBCUFDest>
  <pFCPUFDest>0.00</pFCPUFDest>
  <pICMSUFDest>17.00</pICMSUFDest>
  <pICMSInter>12.00</pICMSInter>
  <pICMSInterPart>40.00</pICMSInterPart>
  <vFCPUFDest>0.00</vFCPUFDest>
  <vICMSUFDest>20.00</vICMSUFDest>
  <vICMSUFRemet>30.00</vICMSUFRemet>
</ICMSUFDest>

Exemplo de retorno para:

formaCalculo = 3 - Base de Cálculo única
ValorBase = 1.000,00
aliqDestino = 17,00
aliqInterestadual = 12,00
ValorBaseFCP = 1.000,00
aliqFCP =2,00
anoOperacao = 2016

<ICMSUFDest>
  <vBCUFDest>1000.00</vBCUFDest>
  <vBCFCPUFDest>1000.00</vBCFCPUFDest>
  <pFCPUFDest>2.00</pFCPUFDest>
  <pICMSUFDest>17.00</pICMSUFDest>
  <pICMSInter>12.00</pICMSInter>
  <pICMSInterPart>40.00</pICMSInterPart>
  <vFCPUFDest>20.00</vFCPUFDest>
  <vICMSUFDest>20.00</vICMSUFDest>
  <vICMSUFRemet>30.00</vICMSUFRemet>
</ICMSUFDest>

Exemplo de uso da função calcICMSUFDest400

Dim objNFeUtil As Object
 
Set objNFeUtil = CreateObject("NFe_Util_2G.Util")
 
Dim formaCalculo As Long
Dim valorBase As Double
Dim aliqDestino As Double
Dim aliqInterestadual As Double
Dim valorBaseFCP As Double
Dim aliqFCP As Double
Dim anoOperacao As Long
Dim vBCUFDest As Double
Dim pFCPUFDest As Double
Dim pICMSUFDest As Double
Dim pICMSInter As Double
Dim pICMSInterPart As Double
Dim vFCPUFDest As Double
Dim vICMSUFDest As Double
Dim vICMSUFRemet As Double
Dim vBCOpeInter As Double
Dim vICMSOpeInter As Double
Dim cResultado As Long
Dim msgResultado As String
Dim vBCFCPUFDest As Double
Dim ICMSUFDest As String
 
formaCalculo = 3
valorBase = 1000
aliqDestino = 18
aliqInterestadual = 12
valorBaseFCP = 1000
aliqFCP = 0
anoOperacao = 2018
vBCUFDest = 0
pFCPUFDest = 0
pICMSUFDest = 0
pICMSInter = 0
pICMSInterPart = 0
vFCPUFDest = 0
vICMSUFDest = 0
vICMSUFRemet = 0
vBCOpeInter = 0
vICMSOpeInter = 0
cResultado = 0
msgResultado = ""
vBCFCPUFDest = 0
 
ICMSUFDest = objNFeUtil.calcICMSUFDest400(formaCalculo, valorBase, aliqDestino, aliqInterestadual, _
                                    valorBaseFCP, aliqFCP, anoOperacao, _
                                    vBCUFDest, pFCPUFDest, pICMSUFDest, pICMSInter, pICMSInterPart, _
                                    vFCPUFDest, vICMSUFDest, vICMSUFRemet, vBCOpeInter, _
                                    vICMSOpeInter, cResultado, msgResultado, vBCFCPUFDest)
 
MsgBox ICMSUFDest, vbInformation, "Informação"
13.4.8. calcICMSUFDest400
13.4. Utilidadades
« Anterior
13.4.7. Gerar PDF do DANFE
Próximo »
13.5. CriaProcNFe2G