Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado (editado)

Recebi uma reclamação do cliente que realmente parece que esta aconteçendo. No caso, se o usuário assina 5 notas e transmite as mesmas e elas são autorizadas, no retorno com o protocolo vão constar as 5 notas e seus respectivos protocolos. Aconteçe que na impressão do DANFE esta puxando o protocolo da primeira nota do lote, ou seja, 4 vão imprimir o protocolo errado e somente 1 o certo.

Alguem confirma isso? Já tem solução?

Editado por gutopmc
Postado

Verifique se os protocolos estão corretos no XML.

 

No exemplo dados os protocolos de cada nota estão corretos, só que no danfe  imprime sempre o primeiro.

Postado

Outra situação que pode ocorrer é cancelar a nota errada. Quando vou cancelar , carrego no componente o xml da nota e o xml do protocolo. No comando de cancelamento vai a chave correta da nota , porém o protocolo errado, o que faz com que a nota do primeiro protocolo seja cancelada e  a da chave não. Uma solução temporária que criei é enviar uma nota por lote, porém fica lento o envio quando são muitas notas e a reclamação ja veio!

Postado

Eu visualizei 7 XML's de uma só vez no Danfe Rave Arquivo e no Danfe Rave CB.

A impressão dos protocolos está correta em ambos.

Poste a sua rotina de visualização dos Danfes e de cancelamento para serem analisadas.

Peterson de Cerqueira Matos
[email protected]
Vivo: (11) 97197-1474 / Oi: (11) 98059-4055

Postado

Rotina de impressão.

 

 

procedure TDMNFe.Imprimir;
    function StringToStream(const ANFe, ANFeProt: WideString): TStringStream;
    var
      vXml: WideString;
    begin
      if ANFeProt <> '' then
      begin
        vXml := '<?xml version="1.0" encoding="UTF-8" ?>'+
                '<nfeProc versao="1.10" xmlns="http://www.portalfiscal.inf.br/nfe">'+
                  ANFe+
                  '<protNFe versao="1.10">'+
                  ANFeProt+
                  '</protNFe>'+
                '</nfeProc>';
      end
      else
        begin
          vXml := ANFe;
        end;
      Result := TStringStream.Create(vXml);
    end;
var
  vXML, vXMLProt, vXMLDPEC: WideString;
begin
    cdNotasFiscais.DisableControls;
 

  ACBrNFe1.NotasFiscais.Clear;
  ACBrNFeDANFERaveCB1.Logo    := NotaFiscalEletronica1.Configuracoes.Report.Logo;
  FChecado.Clear;
  try
    try
      cdNotasFiscais.First;
      while not(cdNotasFiscais.Eof) do
      begin
        if not(cdNotasFiscais.FieldByName('NFE_SITUACAO').AsString = 'Em Digitacao') then
        begin
          if cdNotasFiscais.FieldByName('CHECK').AsBoolean then
          begin
 

            //-Na linha abaixo é carregado o xml da nf23035

            vXML := LoadXML(cdNotasFiscais.FieldByName('NFE_XML_ID').AsInteger);
            

            //-Na linha abaixo é carregado o xml do protocolo

            if not(cdNotasFiscais.FieldByName('NFE_PROT_ID').AsInteger = 0) then
              vXMLProt := LoadXML(cdNotasFiscais.FieldByName('NFE_PROT_ID').AsInteger);

           

             //Na linha abaixo o componente recebe os xml

             ACBrNFe1.NotasFiscais.LoadFromStream(StringToStream(vXML, vXMLProt));

 

            FChecado.Add(cdNotasFiscais.FieldByName('NUMNOTA').AsString);
          end;
        end;
        cdNotasFiscais.Next;
      end;

      if not(ACBrNFe1.NotasFiscais.Count = 0) then
      begin

  
        ACBrNFe1.DANFE.ProtocoloNFe := ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.nProt +' '+ DateTimeToStr

(ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.dhRecbto); //Ja removi essa linha para teste e imprimiu da mesma forma

        ACBrNFe1.NotasFiscais.Imprimir; // Impressão da(s) nota(s)
 

        cdNotasFiscais.Refresh;
      end;
    except
      on E: Exception do
        begin
          MessageDlg('Erro Ler XML Nota '+cdNotasFiscais.FieldByName('NUMNOTA').AsString+sLineBreak+
                     'Original: '+E.Message , mtError,[mbOk], 0);
        end;
    end;
  finally
    cdNotasFiscais.EnableControls;
  end;
end;

protocolo.xml

nf23035.xml

Postado

Para imprimir os Danfes, você deve carregar os XML's no componente e mandar imprimir:

// Antes de mais nada, limpe o componente
ACBrNFe1.NotasFiscais.Clear;

// Repita isso para cada nota
ACBrNFe1.NotasFiscais.LoadFromFile('C:\NOTA.XML');

// Depois mande imprimir
ACBrNFe1.NotasFiscais.Imprimir;

Peterson de Cerqueira Matos
[email protected]
Vivo: (11) 97197-1474 / Oi: (11) 98059-4055

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