Ir para conteúdo
  • Cadastre-se

Leitura de XML - Dificuldade em acessar o campo CST do ICMS


Ver Solução Respondido por Francielle Herling De Oliveira,
  • Este tópico foi criado há 125 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá, boa tarde, tudo bem?

Em minha aplicação em Delphi 7. Estamos trabalhando com importação de XML usando os componentes do ACBR

Na parte dos itens, dentro de um laço, eu pego as informações desses itens e gravo em um ClientDataSet 

{Aqui lê todos os produtos e joga no ClientDataSet para depois fazer as verificações}
        for iContItens := 0 to NotasFiscais.Items[0].NFe.Det.Count - 1 do
        begin
          cdsXML.Append;
          cdsXMLcodProd.AsString  := NotasFiscais.Items[0].NFe.Det.Items[icontitens].Prod.cProd;
          cdsXMLdescProd.AsString := NotasFiscais.Items[0].NFe.Det.Items[icontitens].Prod.xProd;
          cdsXMLqtde.AsFloat := NotasFiscais.Items[0].NFe.Det.Items[icontitens].Prod.qCom;
          cdsXMLvunit.AsFloat := NotasFiscais.Items[0].NFe.Det.Items[icontitens].Prod.vUnCom;
          cdsXMLvipi.AsFloat := NotasFiscais.Items[0].NFe.Det.Items[icontitens].Imposto.IPI.vBC;
          cdsXMLvprod.AsFloat := NotasFiscais.Items[0].NFe.Det.Items[iContItens].Prod.vProd;
          cdsXMLBaseICMS.AsFloat := NotasFiscais.Items[0].NFe.Det.Items[iContItens].Imposto.ICMS.vBC;
          cdsXMLpicms.AsFloat :=  NotasFiscais.Items[0].NFe.Det.Items[iContItens].Imposto.ICMS.pICMS;
          cdsXMLvaloricms.AsFloat := NotasFiscais.Items[0].NFe.Det.Items[iContItens].Imposto.ICMS.vICMS;
          cdsXMLcfop.AsString := NotasFiscais.Items[0].NFe.Det.Items[iContItens].Prod.CFOP;
          //cdsXMLcst.AsString := cst

          cdsXML.Post;
        end;

Só que estou com dificuldades em conseguir pegar o CST do ICMS.. Eu vi nos foruns que tem a função CSTICMStostr, mas para mim isso não está disponivel

 

image.png.e4d96e58843cbb5d882f85091c77e2f3.png

 

Eu precisaria configurar algo a mais nos componentes instalados na minha máquina?

Eu não estou com a versão mais atual instalada aqui, o ideal seria atualizar.

 

Desde já agradeço a ajuda.

Postado

if ( ACBrNFe.NotasFiscais.Items[0].NFe.Det.Items[idAcbr].Imposto.ICMS.CST <> cstVazio ) then
          qrItenscst_csosn.AsString := CSTICMSToStr(ACBrNFe.NotasFiscais.Items[0].NFe.Det.Items[idAcbr].Imposto.ICMS.CST)
        else
          qrItenscst_csosn.AsString := CSOSNIcmsToStr(ACBrNFe.NotasFiscais.Items[0].NFe.Det.Items[idAcbr].Imposto.ICMS.CSOSN);

Eu utilizo assim.

Tenta importar pcnConversao ou pcnConversaoNFe.

Postado
18 horas atrás, Francielle Herling De Oliveira disse:

Olá, boa tarde, tudo bem?

Em minha aplicação em Delphi 7. Estamos trabalhando com importação de XML usando os componentes do ACBR

Na parte dos itens, dentro de um laço, eu pego as informações desses itens e gravo em um ClientDataSet 

{Aqui lê todos os produtos e joga no ClientDataSet para depois fazer as verificações}
        for iContItens := 0 to NotasFiscais.Items[0].NFe.Det.Count - 1 do
        begin
          cdsXML.Append;
          cdsXMLcodProd.AsString  := NotasFiscais.Items[0].NFe.Det.Items[icontitens].Prod.cProd;
          cdsXMLdescProd.AsString := NotasFiscais.Items[0].NFe.Det.Items[icontitens].Prod.xProd;
          cdsXMLqtde.AsFloat := NotasFiscais.Items[0].NFe.Det.Items[icontitens].Prod.qCom;
          cdsXMLvunit.AsFloat := NotasFiscais.Items[0].NFe.Det.Items[icontitens].Prod.vUnCom;
          cdsXMLvipi.AsFloat := NotasFiscais.Items[0].NFe.Det.Items[icontitens].Imposto.IPI.vBC;
          cdsXMLvprod.AsFloat := NotasFiscais.Items[0].NFe.Det.Items[iContItens].Prod.vProd;
          cdsXMLBaseICMS.AsFloat := NotasFiscais.Items[0].NFe.Det.Items[iContItens].Imposto.ICMS.vBC;
          cdsXMLpicms.AsFloat :=  NotasFiscais.Items[0].NFe.Det.Items[iContItens].Imposto.ICMS.pICMS;
          cdsXMLvaloricms.AsFloat := NotasFiscais.Items[0].NFe.Det.Items[iContItens].Imposto.ICMS.vICMS;
          cdsXMLcfop.AsString := NotasFiscais.Items[0].NFe.Det.Items[iContItens].Prod.CFOP;
          //cdsXMLcst.AsString := cst

          cdsXML.Post;
        end;

Só que estou com dificuldades em conseguir pegar o CST do ICMS.. Eu vi nos foruns que tem a função CSTICMStostr, mas para mim isso não está disponivel

Tente assim.
 

{Aqui lê todos os produtos e joga no ClientDataSet para depois fazer as verificações}
// Na cláusula uses:
//  Vide Demo do ACBrNFe.
{  ACBrUtil.XMLHTML,
  ACBrNFe.Classes,
  ACBrNFe.EnvEvento,
  ACBrNFe.EventoClass,
  ACBrDFe.Conversao,
  pcnConversao, pcnConversaoNFe,
  ACBrNFe.XmlReader...}

        for iContItens := 0 to NotasFiscais.Items[0].NFe.Det.Count - 1 do
        begin
          cdsXML.Append;
           (...)          

          With AcbrNFe1.NotasFiscais.Items[0].NFe.Det.Items[icontitens] do
          begin
                With Imposto do
                begin

                    { Tags dos impostos }
                    With ICMS do
                    begin
                        if ACBrNFe1.NotasFiscais.Items[0].NFe.Emit.CRT in [crtSimplesExcessoReceita, crtRegimeNormal] then
                        cdsXMLcst.AsString :=  CSTICMSToStr(CST)
                        else
                        cdsXMLcst.AsString :=  CSOSNToStr(CSOSN);

                       {demais campos do ICMS}
                    end;
                end;
          end;

          cdsXML.Post;
        end;

Prates, Agnaldo

  • Este tópico foi criado há 125 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...