Ir para conteúdo
  • Cadastre-se

dev botao

Ler Xml, Tag <Ipi>


Ver Solução Respondido por André Ferreira de Moraes,
  • Este tópico foi criado há 4125 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá! Estou usando o componente a unit pcnNFeR.pas para ler um XML e importar as informações para o meu sistema. 

Verifiquei que o XML possui informações de IPI nos itens, mas o componente não me retorna essas informações, como base de cálculo, alíquota e valor do IPI.

 

o trecho é esse:

 

if Leitor.rExtrai(3, 'IPI') <> '' then
    begin
      (*O02*)NFe.Det[i].Imposto.IPI.clEnq := Leitor.rCampo(tcStr, 'clEnq');
      (*O03*)NFe.Det[i].Imposto.IPI.CNPJProd := Leitor.rCampo(tcStr, 'CNPJProd');
      (*O04*)NFe.Det[i].Imposto.IPI.cSelo := Leitor.rCampo(tcStr, 'cSelo');
      (*O05*)NFe.Det[i].Imposto.IPI.qSelo := Leitor.rCampo(tcInt, 'qSelo');
      (*O06*)NFe.Det[i].Imposto.IPI.cEnq := Leitor.rCampo(tcStr, 'cEnq');


      // Inicializa CST com sendo Não tributada e conforme o TIPO entrada ou saida
      // Caso a Tag não seja informada sera gravada com sendo não tributada
      if NFe.ide.tpNF = tnEntrada then
        NFe.Det[i].Imposto.IPI.CST := ipi53;
      if NFe.ide.tpNF = tnSaida then
        NFe.Det[i].Imposto.IPI.CST := ipi03;

      if Leitor.rExtrai(3, 'IPITrib') <> '' then
      begin
        (*O09*)NFe.Det[i].Imposto.IPI.CST := StrToCSTIPI(ok, Leitor.rCampo(tcStr, 'CST'));
        (*O10*)NFe.Det[i].Imposto.IPI.vBC := Leitor.rCampo(tcDe2, 'vBC');
        (*O11*)NFe.Det[i].Imposto.IPI.qUnid := Leitor.rCampo(tcDe4, 'qUnid');
        (*O12*)NFe.Det[i].Imposto.IPI.vUnid := Leitor.rCampo(tcDe4, 'vUnid');
        (*O13*)NFe.Det[i].Imposto.IPI.pIPI := Leitor.rCampo(tcDe2, 'pIPI');
        (*O14*)NFe.Det[i].Imposto.IPI.vIPI := Leitor.rCampo(tcDe2, 'vIPI');
      end;
      if Leitor.rExtrai(3, 'IPINT') <> '' then
      begin
        (*O09*)NFe.Det[i].Imposto.IPI.CST := StrToCSTIPI(ok, Leitor.rCampo(tcStr, 'CST'));
      end;

Como possui valor de IPI, ele deveria entrar na condição " (...) if Leitor.rExtrai(3, 'IPITrib') <> '' then (...)" certo? Porém ele só faz esse:

"(...)

if NFe.ide.tpNF = tnEntrada then
    NFe.Det.Imposto.IPI.CST := ipi53;
if NFe.ide.tpNF = tnSaida then
    NFe.Det.Imposto.IPI.CST := ipi03;

" (..)

 

Alguém sabe o motivo disso ou já teve esse problema?

 

Postado

Oi Kamila, eu testei a importação desse XML e está lendo as informações da tag IPI normalmente, exceto o 1º item pelo fato dele não ter IPI mesmo. Na tua rotina não está trazendo essas informações de nenhum item? Caso não esteja, os fontes estão atualizados conforme essas instruções:

  • Moderadores
  • Solution
Postado

Pelo demo está funcionando normalmente a leitura desse XML, apenas mudei a linha "if (IPI.vBC > 0) then" para "if (IPI.cEnq <> '') then".

 

O estranho no seu arquivo é q tem alíquota e valor de IPI mas não tem base de cáculo do IPI.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.xpos.com.br
Postado

Sim Astrogildo82, meus fontes estão atualizados... excepcionalmente nesse XML, não traz o valor do IPI de nenhum dos itens.

E realmente, as bases de calculo dos itens no XML estão zeradas, conforme observado o anfm. Testei outros XML's nas mesmas condições e estes foram importados corretamente. 

 

Então o problema é no próprio XML, pessoal. Mesmo assim, muito obrigada pela prontidão e pela ajuda! Abraços!

  • Este tópico foi criado há 4125 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.