Ir para conteúdo
  • Cadastre-se

dev botao

Retorno NFSe do Provedor GovDigital


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

Recommended Posts

Boa tarde!

Estamos finalizando a atualização dos componentes ACBr, e estamos na atualização do  ACBrNFSe.

Trabalhamos com provedor GovDigital, e não estamos obtendo as informações de retorno da nota, isto é os campos Numero da Nota, Código Verificação e etc.

Em anexo temos o xml de retorno 476-recS.xml e o arquivo ini utilizado GovDigital.INI

Abaixo rotina para obter dados com todos os campos em vermelho retornando em branco:

    if ACBrNFSe.EnviarSincrono(W_NrLote, false) then
      begin
        W_Status       := '03';
        W_Nr_Lote      := StrToFloat(ACBrNFSe.WebServices.EnviarSincrono.NumeroLote);
        W_Dt_Protocolo := ACBrNFSe.WebServices.EnviarSincrono.DataRecebimento;
        W_Nr_Protocolo := ACBrNFSe.WebServices.EnviarSincrono.Protocolo;
        W_Msg          := 'Autorizado o uso da NFS-e';
        GravaResultadoLote(W_Nr_Lote, W_Dt_Protocolo, W_Nr_Protocolo, W_Msg, W_Status);
        for W_I := 0 to ACBrNFSe.NotasFiscais.Count-1 do
           begin
             W_Nr             := StrToInt(ACBrNFSe.NotasFiscais.Items[W_I].NFSe.Numero);                                          
             W_Nr_RPS      := StrToFloat(ACBrNFSe.NotasFiscais.Items[W_I].NFSe.IdentificacaoRps.Numero);
             W_Serie          := ACBrNFSe.NotasFiscais.Items[W_I].NFSe.IdentificacaoRps.Serie;
             W_CD_Verificacao := ACBrNFSe.NotasFiscais.Items[W_I].NFSe.CodigoVerificacao;
             W_ChaveAcesso    := Mascarar('00',ACBrNFSe.NotasFiscais.Items[W_I].NFSe.Prestador.cUF) +
                                 FormatDateTime('YYMM',ACBrNFSe.NotasFiscais.Items[W_I].NFSe.DataEmissao) +
                                 ACBrNFSe.NotasFiscais.Items[W_I].NFSe.Prestador.Cnpj + '56'+
                                 Mascarar('000000000',StrToInt64(ACBrNFSe.NotasFiscais.Items[W_I].NFSe.Numero));

             BuscaDadosNota(W_Nr_RPS,W_NR_Pedido,W_Cliente, W_NM_Cliente);
             SQLDS_AuxNotaUpdate.Close;
             SQLDS_AuxNotaUpdate.Params[00].AsInteger  := W_Nr; // NOT_NR
             SQLDS_AuxNotaUpdate.Params[01].AsDateTime := StrToDate(FormatDateTime('DD/MM/YYYY',ACBrNFSe.NotasFiscais.Items[W_I].NFSe.DataEmissao)); // NOT_DT_EMISSAO
             SQLDS_AuxNotaUpdate.Params[02].AsString   := W_CD_Verificacao; // NOT_CD_VERIFICACAO_NFSE
             SQLDS_AuxNotaUpdate.Params[03].AsString   := W_Nr_Protocolo;   // NOT_NR_PROTOCOLO_AUT_NFE
             SQLDS_AuxNotaUpdate.Params[04].AsDateTime := W_Dt_Protocolo;   // NOT_DT_HORA_PROC_NFE
             SQLDS_AuxNotaUpdate.Params[05].AsString   := W_Status;         // NOT_STATUS_NFSE
             SQLDS_AuxNotaUpdate.Params[06].AsString   := W_Msg;            // NOT_MSG_STATUS_NFE
             SQLDS_AuxNotaUpdate.Params[07].AsString   := '100';            // NOT_STATUS_RETORNO_NFE
             SQLDS_AuxNotaUpdate.Params[08].AsString   := '02';             // NOT_TIPO_SITUACAO
             SQLDS_AuxNotaUpdate.Params[09].AsFloat    := W_Nr_Lote;        // Numero do Lote
             SQLDS_AuxNotaUpdate.Params[10].AsString   := W_ChaveAcesso;    // Chave de Acesso
             SQLDS_AuxNotaUpdate.Params[11].AsDateTime := W_Dt_Transmissao; // Data da Nota
             SQLDS_AuxNotaUpdate.Params[12].AsFloat    := StrToFloat(ACBrNFSe.NotasFiscais.Items[W_I].NFSe.IdentificacaoRps.Numero); // Nr. RPS
             SQLDS_AuxNotaUpdate.ExecSQL;
             GravaNFSeLote(W_Nr_Lote,W_Nr_RPS,W_Nr,W_NR_Pedido,W_Cliente,W_NM_Cliente, W_Serie,W_CD_Verificacao,W_Msg,W_Status);

             if CheckBoxGerarPDFNFSe.Checked then
               ACBrNFSe.DANFSE.ImprimirDANFSePDF;

           end;
        W_Flag_Transmitido := True;
      end
 

Certo de vossa atenção de sempre, antecipamos agradecimentos.

 

 

______________________________________________________

Nilton Olher Serafim
Analista de Sistema - Inovação Tecnologia 
Skype: nolher
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Nilton,

Já analisei o código por diversas vezes e não encontrei nada que pudesse não capturar as informações do XML.

Sugiro que você realize um "debugue" ao realizar o envio para descobrir o que esta ocorrendo.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Bom dia, Italo!

Finalmente consegui encontrar a falha:

na classe ACBrNFSeWebServices a função abaixo:

function TNFSeEnviarSincrono.TratarResposta: Boolean;
var
  i: Integer;
begin
  FPMsg := '';
  FaMsg := '';

  FPRetWS := ExtrairRetorno(FPConfiguracoesNFSe.Geral.ConfigGrupoMsgRet.GrupoMsg);

//  FNotaRetornada := (Pos(FPRetWS, 'CompNfse') > 0);                // Original não consegue localizar a tag "CompNfse" simplismente sempre volta em zero.
  FNotaRetornada := (SeparaDados(FPRetWS, 'Comp2Nfse') <> '');  // Solução troquei a função "Pos" pela nossa conhecida "SeparaDados"

Dá pra implementar daí?

 

Desde já agradeço a atenção.

______________________________________________________

Nilton Olher Serafim
Analista de Sistema - Inovação Tecnologia 
Skype: nolher
Link para o comentário
Compartilhar em outros sites

Bom dia, Juliomar!

Você é o cara!

Nossa, como não percebi isso!

Me senti até envergonhado agora!

Valeu mesmo!

Dá pra corrigir aí pra gente?

Mais uma vez obrigado por sua atenção e a do Italo!

Atenciosamente, 

 

______________________________________________________

Nilton Olher Serafim
Analista de Sistema - Inovação Tecnologia 
Skype: nolher
Link para o comentário
Compartilhar em outros sites

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