Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Ola.

 

Tenho um XML que foi emitido por pessoa Física (CPF) no modo NFe avulsa. Segundo a SEFAZ, na chave da NFe, no lugar do CNPJ vai o CNPJ da SEFAZ autorizadora (nesse caso SEFAZ SC), pois o emissor não é obrigado a ter certificado digital.

 

Blz.

 

O problema é que ao abrir essa nota no TACBrNFe (NotasFiscais.LoadFromFile(arquivo)), a chave da NFe é modificada, pegando o CPF do emissor, desajustando a chave da nfe (chave está na tag infNFe id="NFe......")

 

Provavelmente o ACBrNFe ao abrir a nota refaz a chave.

Penso que o correto seria só ler esse campo sem refazer, ou então considerar essa questão de NFe Avusa, onde a chave da NFe é composta pelo CNPJ da SEFAZ Autorizadora, e não o CPF do emissor

 

Anexo está o arquivo XML (chave = 42130782951310000156558910000525421391622058)

Quando carregado (LoadFromFile) a tag infNFe.id é lida como "42130735181311920000558910000525421391622059"

 

Vejam que a chave é trocada formando o CPF do emissor.

 

Vejam a citação do site da Sefaz RS sobre essa questão da Chave quando Nota Avulsa:

 

 

Por definição, a NF-e Avulsa dispensa o uso de certificado digital por parte do contribuinte remetente e é emitida usando a certificação digital da SEFAZ. Por esse motivo, todas as NF-es Avulsas saem com o CNPJ da SEFAZ na chave de acesso.

Fonte: https://www.sefaz.rs.gov.br/site/MontaDuvidas.aspx?al=l_nfe_faq_outrasInfo

 

 

  • 2 semanas depois ...
Postado

Ola,

 

O problema ocorre no arquivo pcnNFeW.pas

Linha 209:

chave := '';
  if NFe.infNFe.Versao >= 2 then
   begin
     FSchema := TsPL006;
     if not GerarChave(Chave, nfe.ide.cUF, nfe.ide.cNF, nfe.ide.modelo, nfe.ide.serie,
       nfe.ide.nNF, StrToInt(TpEmisToStr(nfe.ide.tpEmis)), nfe.ide.dEmi, nfe.emit.CNPJCPF) then
       Gerador.wAlerta('A01', 'infNFe', DSC_CHAVE, ERR_MSG_GERAR_CHAVE);
   end
  else
   begin
     FSchema := TsPL005c;
     if not GerarChaveCTe(chave, nfe.ide.cUF, nfe.ide.cNF, nfe.ide.modelo, nfe.ide.serie,
       nfe.ide.nNF, nfe.ide.dEmi, nfe.emit.CNPJCPF) then
       Gerador.wAlerta('A01', 'infNFe', DSC_CHAVE, ERR_MSG_GERAR_CHAVE);
   end;

  if (Trim(nfe.infNFe.ID) = '') or (not ValidarChave(nfe.infNFe.ID)) then
     nfe.infNFe.ID := chave
  else
   begin
     NFe.infNFe.ID := StringReplace( UpperCase(NFe.infNFe.ID), 'NFE', '', [rfReplaceAll] ) ;;
     NFe.infNFe.ID := 'NFe'+NFe.infNFe.ID;
   end;

Ao chamar o LoadFromFile do ACBrNFe, ele roda essa função, sobrescrevendo a chave original do arquivo lido.

 

Pessoal desenvolvedor do ACBr... poderiam dar uma verificada? (Alterar na geração da chave ou então não gerar nova chave ao abrir arquivo xml ... )

Obrigado.

Postado

A inicialização da variável na linha 209 é necessária mesmo em outras situações onde essa função é chamada. Eu já havia dado uma solução em que é só adicionar isso daqui antes da linha 225:

if (copy(nfe.infNFe.ID, 1, 3) <> 'NFe') then    
NFe.infNFe.ID := 'NFe'+NFe.infNFe.ID;

Experimente fazer isso e teste com o XML que você tem e ai reporte o resultado aqui - eu também tive o mesmo problema e funcionou certinho, bem como com o XML desse tópico do Daniel-FC. Essa alteração acabou caindo no esquecimento.

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