Funcionalidade para gerar o grupo XML das informações do grupo de Totais do ICMS e tributos federais [ICMSTotal]
string totalICMS400(double vBC, double vICMS, double vBCST, double vST, double vProd, double vFrete, double vSeg, double vDesc, double vII, double vIPI, double vPIS, double vCOFINS, double vOutro, double vNF, double vTotTrib, double vICMSDeson, double vICMSUFDest_Opc, double vICMSUFRemet_Opc, double vFCPUFDest_Opc, double vFCP, double vFCPST, double vFCPSTRet, double vIPIDevol)
Funcionalidade para gerar o XML do grupo de informações de Totais do ICMS e tributos federais.
A DLL não acumula os valores totais do item, a responsabilidade de acumular os valores e informa-los nos campos respectivos é do usuário
A SEFAZ passou a fazer a verificação do somatório dos valores informados nos itens com o valor informado no total a partir da versão 2.00 do leiaute da NF-e, assim qualquer divergência de valor ocasiona a rejeição da NF-e.
Os valores relacionados com o ISSQN não devem ser informados neste grupo, com exceção do Valor da NF (vNF) que deve considerar o valor informado no grupo do ISSQN em nota fiscal conjugada.
nome | tipo | tam. | obrig. | descrição |
---|---|---|---|---|
vBC | double | 15,2 | sim | informar o somatório da BC do ICMS (vBC) informado nos itens |
vICMS | double | 15,2 | sim | informar o somatório de ICMS (vICMS) informado nos itens |
vBCST | double | 15,2 | sim | informar o somatório da BC ST (vBCST) informado nos itens |
vST | double | 15,2 | sim | informar o somatório do ICMS ST (vICMSST)informado nos itens |
vProd | double | 15,2 | sim | informar o somatório de valor dos produtos (vProd) dos itens que tenham indicador de totalização = 1 (indTot) Os valores dos itens sujeitos ao ISSQN não devem ser acumulados neste campo. |
vFrete | double | 15,2 | sim | informar o somatório de valor do Frete (vFrete) informado nos itens |
vSeg | double | 15,2 | sim | informar o somatório valor do Seguro (vSeg) informado nos itens |
vDesc | double | 15,2 | sim | informar o somatório do Desconto (vDesc) informado nos itens |
vII | double | 15,2 | sim | informar o somatório de II (vII) informado nos itens |
vIPI | double | 15,2 | sim | informar o somatório de IPI (vIPI) informado nos itens |
vPIS | double | 15,2 | sim | informar o somatório de PIS (vPIS) informado nos itens sujeitos ao ICMS |
vCOFINS | double | 15,2 | sim | informar o somatório de COFINS (vCOFINS) informado nos itens sujeitos ao ICMS |
vOutro | double | 15,2 | sim | informar o somatório de vOutro (vOutro) informado nos itens |
vNF | double | 15,2 | sim | informar o valor total a NF Acrescentar o valor dos Serviços informados no grupo do ISSQN |
vTotTrib | double | 15,2 | não | informar o somatório do valor total aproximado dos tributos (vTotTrib) informado nos itens, deve considerar valor de itens sujeitos ao ISSQN também. |
vICMSDeson | double | 15,2 | sim | informar o somatório do Valor do ICMS desonerado (vICMSDeson) informado nos itens. |
vICMSUFDest_Opc | double | 15,2 | não | informar o somatório do Valor do ICMS Interestadual para a UF de destino (vICMSUFDest) informado nos itens. |
vICMSUFRemet_Opc | double | 15,2 | não | informar o somatório do Valor total do ICMS Interestadual para a UF do remetente vICMSUFRemet) informado nos itens. Nota: A partir de 2019, este valor será zero. |
vFCPUFDest_Opc | double | 15,2 | não | informar o somatório do Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP) da UF de destino. Corresponde ao total da soma dos campos vFCP informado nos itens. |
vFCP | double | 15,2 | não | informar o somatório do Valor do FCP (Fundo de Combate à Pobreza) (vFCP) informado nos itens. (campo novo) |
vFCPST | double | 15,2 | não | informar o somatório do Valor do FCP retido anteriormente por Substituição. Corresponde ao total da soma dos campos vFCPST informado nos itens. (campo novo) |
vFCPSTRet | double | 15,2 | não | informar o somatório do Valor do FCP retido anteriormente por Substituição. Corresponde ao total da soma dos campos vFCPSTRet informado nos itens. (campo novo) |
vIPIDevol | double | 15,2 | não | informar o somatório do Valor do IPI devolvido. Deve ser informado quando preenchido o Grupo Tributos Devolvidos na emissão de nota finNFe=4 (devolução) nas operações com não contribuintes do IPI. Corresponde ao total da soma dos campos vIIPIDevol do item. (campo novo) |
Os campos com contorno tracejado podem ser omitidos se a operação não exigir a informação.
Os campos em verde são tags novas ou tags que sofreram alteração na definição do leiaute.
Um string com o grupo XML da NF-e referenciada.
<NFref>
<ICMSTot>
<vBC>100.00</vBC>
<vICMS>18.00</vICMS>
<vICMSDeson>0.00</vICMSDeson>
<vFCPUFDest>1.00</vFCPUFDest>
<vICMSUFDest>2.40</vICMSUFDest>
<vICMSUFRemet>3.60</vICMSUFRemet>
<vFCP>0.00</vFCP>
<vBCST>0.00</vBCST>
<vST>0.00</vST>
<vFCPST>0.00</vFCPST>
<vFCPSTRet>0.00</vFCPSTRet>
<vProd>100.00</vProd>
<vFrete>0.00</vFrete>
<vSeg>0.00</vSeg>
<vDesc>0.00</vDesc>
<vII>0.00</vII>
<vIPI>0.00</vIPI>
<vIPIDevol>0.00</vIPIDevol>
<vPIS>0.00</vPIS>
<vCOFINS>0.00</vCOFINS>
<vOutro>0.00</vOutro>
<vNF>100.00</vNF>
</ICMSTot>
O trecho do XML foi formatado para uma melhor visualização, a mensagem original não tem formatação.
Vale observar que a formatação pode corromper a assinatura digital, além de ocupar espaço e ser desnecessária, pois os browser exibem formatado.
Visual Basic 6.0
' inicializar variáveis
'...............................................
Dim objNFeUtil As Object
Set objNFeUtil = CreateObject("NFe_Util_2G.Util")
totalICMS = "" ' variável para receber o string com o XML gerado
'
' variáveis para informar os parâmetros da chamada da DLL
'
totalICMS_vBC = 100
totalICMS_vICMS = 18
totalICMS_vBCST = 0
totalICMS_vST = 0
totalICMS_vProd = 100
totalICMS_vFrete = 0
totalICMS_vSeg = 0
totalICMS_vDesc = 0
totalICMS_vII = 0
totalICMS_vIPI = 0
totalICMS_vPIS = 0
totalICMS_vCOFINS = 0
totalICMS_vOutro = 0
totalICMS_vNF = 100
totalICMS_vTotTrib = 0
totalICMS_vICMSDeson = 0
totalICMS_vICMSUFDest = 2.4 ' tag nova
totalICMS_vICMSUFRemet = 2.6 ' tag nova
totalICMS_vFCPUFDest = 1 ' tag nova
'
totalICMS_vFCP = 0 ' tag nova 4.00
totalICMS_vFCPST = 0 ' tag nova 4.00
totalICMS_vFCPSTRet = 0 ' tag nova 4.00
totalICMS_vIPIDevol = 0 ' tag nova 4.00
'
' gera grupo do Total do ICMS
'
totalICMS = objNFeUtil.totalICMS400(totalICMS_vBC, _
totalICMS_vICMS, _
totalICMS_vBCST, _
totalICMS_vST, _
totalICMS_vProd, _
totalICMS_vFrete, _
totalICMS_vSeg, _
totalICMS_vDesc, _
totalICMS_vII, _
totalICMS_vIPI, _
totalICMS_vPIS, _
totalICMS_vCOFINS, _
totalICMS_vOutro, _
totalICMS_vNF, _
totalICMS_vTotTrib, _
totalICMS_vICMSDeson, _
totalICMS_vICMSUFDest, _
totalICMS_vICMSUFRemet, _
totalICMS_vFCPUFDest, _
totalICMS_vFCP, _
totalICMS_vFCPST, _
totalICMS_vFCPUSTRet, _
totalICMS_vIPIDevol)
MsgBox totalICMS, vbInformation, "Informação"