Ir para conteúdo
  • Cadastre-se

dev botao

Chave incorreta ao carregar Nfe Avulsa


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

Recommended Posts

Olá! Sei que este problema já havia sido tratado no passado, mas nos meus testes com trunk2 ao carregar o componente com uma Nfe Avulsa a chave de acesso é trocada pelo cnpj da empresa ao invés do cnpj do sefaz.

Exemplo: Nfe com chave de acesso: 43150987958674000181558900091201771274610356
 

<emit><CNPJ>01885252000108</CNPJ>
...
<avulsa><CNPJ>87958674000181</CNPJ>
...

O componente recalcula a chave de acesso para: 43150901885252000108558900091201771274610355

Analisando os fontes acredito que seja necessário modificar o arquivo pcnNfeW função GerarXML na linha 222:

function TNFeW.GerarXml: Boolean;
var
  chave: AnsiString;
  Gerar: Boolean;
  xProtNFe : String;
  xCNPJCPF : string; //Add
begin

  Usar_tcDe4 := (NFe.infNFe.Versao >= 3.10);
  Versao     := Copy(NFe.infNFe.VersaoStr, 9, 4);

  chave := '';
  if NFe.infNFe.Versao >= 2 then
   begin
     xCNPJCPF := nfe.emit.CNPJCPF;  //Add
     if nfe.Avulsa.CNPJ <> '' then  //Add
       xCNPJCPF := nfe.Avulsa.CNPJ; //Add
       
     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, xCNPJCPF) then
       Gerador.wAlerta('A01', 'infNFe', DSC_CHAVE, ERR_MSG_GERAR_CHAVE);
   end
  else
   begin
     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;
   ...

Peço aos que tem maior familiaridade com os fontes verifiquem se isso é suficiente!

Abraço!

pcnNFeW.pas

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...