Ir para conteúdo
  • Cadastre-se

dev botao

Importação de NFe via XML


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

Recommended Posts

Postado

Olá pessoal, tenho algumas notas que não tem impostos(IPI, PIS, COFINS...), e ao importar o XML delas está sendo informado o CST 00 como padrão.

Teria uma forma de conferir e desconsiderar esses campos na importação quando o mesmo não tem no XML?

 

Ex.: Está sendo passado o CST do IPI para o campo do dataset.

cdsItensID_TBCSTIPI.AsString  := CSTIPIToStr(vNFe.Det.Items[x].Imposto.IPI.CST);

Neste caso, está sendo retornado 'ipi00', mesmo que na nota não tenha IPI.

Postado

o LoadFromFile já passa False por padrão para o segundo parâmetro.

function LoadFromFile(const CaminhoArquivo: String; AGerarNFe: Boolean = False): Boolean;

Tentei passar diretamente no código, mas continua retornando o 00.

 

Percebi que sempre ao utilizar a função CSTIPIToStr vai retornar um CST de acordo o enumerado passado.

  • Moderadores
  • Solution
Postado

A função realmente vai retornar ipi00 mesmo que não tenha IPI no XML.

Isso porque não existe um enumerado pra identificar o CST do IPI vazio.

Na geração do XML a rotina verifica se foi passado valor pra alguma tag, pra identificar como vazio, talvez você possa usar o mesmo conceito:

  //se valores padrão de quando não foi preenchido a TAG IPI
  if ((nfe.Det[i].Imposto.IPI.cEnq  = '') and
      (nfe.Det[i].Imposto.IPI.CST   = ipi00) and
      (nfe.Det[i].Imposto.IPI.vBC   = 0) and
      (nfe.Det[i].Imposto.IPI.qUnid = 0) and
      (nfe.Det[i].Imposto.IPI.vUnid = 0) and
      (nfe.Det[i].Imposto.IPI.pIPI  = 0) and
      (nfe.Det[i].Imposto.IPI.vIPI  = 0)) then
    Exit; //não deve preencher a TAG

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado
1 hora atrás, BigWings disse:

A função realmente vai retornar ipi00 mesmo que não tenha IPI no XML.

Isso porque não existe um enumerado pra identificar o CST do IPI vazio.

Na geração do XML a rotina verifica se foi passado valor pra alguma tag, pra identificar como vazio, talvez você possa usar o mesmo conceito:


  //se valores padrão de quando não foi preenchido a TAG IPI
  if ((nfe.Det[i].Imposto.IPI.cEnq  = '') and
      (nfe.Det[i].Imposto.IPI.CST   = ipi00) and
      (nfe.Det[i].Imposto.IPI.vBC   = 0) and
      (nfe.Det[i].Imposto.IPI.qUnid = 0) and
      (nfe.Det[i].Imposto.IPI.vUnid = 0) and
      (nfe.Det[i].Imposto.IPI.pIPI  = 0) and
      (nfe.Det[i].Imposto.IPI.vIPI  = 0)) then
    Exit; //não deve preencher a TAG

 

Entendi, já estava considerando utilizar esta verificação direto no projeto. Só estava em dúvida se existia algo no ACBr que já tratasse isso.

Já estou implementando esta solução aqui, muito obrigado!

  • Este tópico foi criado há 1455 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.