12.10. ICMS do CT-e
12.10.4. ICMS cobrado anter.por ST novo
12.10.3. ICMS Isento, não Tributado ou diferido novo
« Anterior
12.10.5. ICMS Outros novo
Próximo »

12.10.4. ICMS cobrado anter.por ST novo

Funcionalidade para gerar o XML do grupo de Tributação pelo ICMS 60

Assinatura

string ImpICMS60_NT2024001(string CST, double vBCSTRet, double pICMSSTRet, double vICMSSTRet, double vCred,double vTotTrib_Opc, string infAdFisco_Opc, string ICMSUFFim_Opc, double vICMSDeson_Opc, string _cBenef_Opc)

Descrição:

Funcionalidade para gerar o XML do grupo de Tributação o ICMS devido na prestação de serviço já tenha sido retido anteriormente pelo responsável pela retenção.

Atualizado para o leiaute da NT2024/001

Parâmetros:

nome tipo tam. obrig. descrição
CST string 2 sim informar a classificação Tributária do Serviço (60 - ICMS cobrado anteriormente por substituição tributária).
vBCSTRet double 13,2 sim informar o valor da BC do ICMS ST retido (15 posições, sendo 13 inteiras e 2 decimais).
vICMSSTRet double 13,2 sim informar o valor do ICMS ST retido (15 posições, sendo 13 inteiras e 2 decimais).
pICMSSTRet double 3,2 sim informar o valor da Alíquota do ICMS (5 posições, sendo 3 inteiras e 2 decimais).
vCred double 13,2 sim informar o valor do Crédito outorgado/presumido(15 posições, sendo 13 inteiras e 2 decimais).
vTotTrib_Opc double 13,2 não informar o valor Total dos Tributos Aproximado previsto na Lei da Transparência - 12.741/12 (15 posições, sendo 13 inteiras e 2 decimais).
infAdFisco_Opc string 1-2000 não informações adicionais de interesse do Fisco.
ICMSUFFim_Opc string - não Informações do ICMSUFFim ICMS devido para a UF de término do serviço de transporte, nas operações interestaduais para consumidor final
vICMSDeson_Opc double 13,2 não informar o valor do ICMS desonerado.
CAMPO NOVO
cBenef_Opc string 1-10 não informar o código do benefício fiscal na UF.
CAMPO NOVO

Diagrama:

DiagramaComponenteValoresPrestação

Retorno:

Um string com o grupo XML de Tributação pelo ICMS 60

XML:

Exemplo de XML

<imp>
    <ICMS>
        <ICMS60>
            <CST>60</CST>
            <vBCSTRet>1000.00</vBCSTRet>
            <vICMSSTRet>12.00</vICMSSTRet>
            <pICMSSTRet>120.00</pICMSSTRet>
            <vCred>0.00</vCred>
        </ICMS60>
    </ICMS>
    <vTotTrib>12.34</vTotTrib>
    <infAdFisco>Informações</infAdFisco>
</imp>

Importante

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.

Exemplos de uso: Visual Basic 6.0

'
'
'======  Dados do Dim Tributação pelo ICMS 60 - ICMS cobrado por substituição tributária==========
'
Dim ImpICMS60 As String
Dim ImpICMS60_CST As String
Dim ImpICMS60_vBCSTRet As Double
Dim ImpICMS60_pICMSSTRet As Double
Dim ImpICMS60_vICMSSTRet As Double
Dim ImpICMS60_vCred As Double
Dim ImpICMS60_vTotTrib_Opc As Double
Dim ImpICMS60_infAdFisco_Opc As String
Dim ImpICMS60_ICMSUFFim_Opc As String
Dim ImpICMS60_vICMSDeson_Opc As Double
Dim ImpICMS60_cBenef_Opc As String
'
'
'====== instancia DLL==================
'
'
' referenciando a DLL em late binding
' não é necessário fazer o reference da DLL
' o intelisense não funciona
'
Dim objCTeUtil As Object
 
Set objCTeUtil = CreateObject("CTe_Util.Util")
 
 
'
'         criação dos grupos
'
'===================grupo de Tributação pelo ICMS60 - ICMS cobrado por substituição tributária=======================
'
'

ImpICMS60_CST = "60"                         ' Classificação Tributária do Serviço (60 - ICMS cobrado anteriormente por substituição tributária)
ImpICMS60_vBCSTRet = 1000#                   ' Valor da BC do ICMS ST retido (15 posições, sendo 13 inteiras e 2 decimais)
ImpICMS60_pICMSSTRet = 12#                   ' Valor do ICMS ST retido (15 posições, sendo 13 inteiras e 2 decimais)
ImpICMS60_vICMSSTRet = 120#                  ' Alíquota do ICMS (5 posições sendo 3 inteiras e 2 decimais)
ImpICMS60_vCred = 0                          ' Valor do Crédito outorgado/Presumido (15 posições, sendo 13 inteiras e 2 decimais)
ImpICMS60_vTotTrib_Opc = 12.34               ' valor Total dos Tributos Aproximado
ImpICMS60_infAdFisco_Opc = "Informações"     ' Informações adicionais de interesse do Fisco (Norma referenciada, informações complementares, etc)
ImpICMS60_ICMSUFFim_Opc = ""                ' Informações do ICMS devido para a UF de término do serviço de transporte, nas operações interestaduais para consumidor final
ImpICMS60_vICMSDeson_Opc = 100               ' valor o ICMS desonerado
ImpICMS60_cBenef_Opc = "SP12345678"          ' código do benefício fiscal na UF

'
ImpICMS60 = objCTeUtil.ImpICMS60_NT2024001(ImpICMS60_CST, ImpICMS60_vBCSTRet, ImpICMS60_pICMSSTRet, ImpICMS60_vICMSSTRet, ImpICMS60_vCred, ImpICMS60_vTotTrib_Opc, ImpICMS60_infAdFisco_Opc, ImpICMS60_ICMSUFFim_Opc, ImpICMS60_vICMSDeson_Opc, ImpICMS60_cBenef_Opc)
 
MsgBox "Tributação pelo ICMS60 - ICMS cobrado por substituição tributária" + ImpICMS60, vbInformation, "Resultado"

Exemplos de uso: Delphi

procedure TForm1.Button11Click(Sender: TObject);
var
 
Util: OleVariant;                       // declarar a interface da DLL
 
resultado : integer;
msgResultado : widestring;
 
ImpICMS60  : widestring;
ImpICMS60_CST : widestring;
ImpICMS60_vBCSTRet : currency;
ImpICMS60_vICMSSTRet : currency;
ImpICMS60_pICMSSTRet : currency;
ImpICMS60_vCred_Opc : currency;
ImpICMS60_vTotTrib_Opc : currency;
ImpICMS60_infAdFisco_Opc : widestring;
ImpICMS60_ICMSUFFim_Opc : widestring;
ImpICMS60_vICMSDeson_Opc : currency;
ImpICMS60_cBenef_Opc : widestring;
 
 
begin
 
ImpICMS60_CST := '60';                       // Classificação Tributária do Serviço
ImpICMS60_vBCSTRet := 1000;
ImpICMS60_vICMSSTRet := 120;
ImpICMS60_pICMSSTRet := 12;
ImpICMS60_vCred_Opc := 80;
ImpICMS60_vTotTrib_Opc := 12.34;             // valor Total dos Tributos Aproximado
ImpICMS60_infAdFisco_Opc := 'Informações';    // Informações adicionais de interesse do Fisco (Norma referenciada, informações complementares, etc)
ImpICMS60_ICMSUFFim_Opc := ' ';
ImpICMS60_vICMSDeson_Opc :=100;
ImpICMS60_cBenef_Opc :='SP2345678';
 
Util := CreateOleObject('CTe_Util.util');                 // instância a DLL
 
ImpICMS60  := Util.ImpICMS60_NT2024001(ImpICMS60_CST,
                                       ImpICMS60_vBCSTRet,
                                       ImpICMS60_vICMSSTRet,
                                       ImpICMS60_pICMSSTRet,
                                       ImpICMS60_vCred_Opc,
                                       ImpICMS60_vTotTrib_Opc,
                                       ImpICMS60_infAdFisco_Opc,
                                       ImpICMS60_ICMSUFFim_Opc,
                                       ImpICMS60_vICMSDeson_Opc,
                                       ImpICMS60_cBenef_Opc);
resultado :=0;
msgResultado :=' ';
 
Memo1.Text := Util.IdentaXML(ImpICMS60, resultado, msgResultado);
 
MessageDlg( 'ICMS60: ' + chr(13) + ImpICMS60, mtInformation, [mbOk], 0);
 
 
end;
12.10.4. ICMS cobrado anter.por ST novo
12.10. ICMS do CT-e
« Anterior
12.10.3. ICMS Isento, não Tributado ou diferido novo
Próximo »
12.10.5. ICMS Outros novo