Ir para conteúdo
  • Cadastre-se

dev botao

Homologação Sete Lagoas-MG


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

Recommended Posts

  • Respostas 83
  • Created
  • Última resposta

Top Posters In This Topic

  • Consultores

Boa noite ALA,

Pelas suas imagens estou entendendo que você esta carregando o XML do RPS para realizar a consulta, até ai tudo OK.

Coloque um break point na linha 1323 (Nivel := 0;) da unit pnfsNFSeR.pas para dar inicio ao debug, note que algumas linhas abaixo são as responsáveis por ler o XML as informações que você deseja.

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

  • 2 semanas depois ...

Italo, não encontrei problema na linha que vc mencionou. Mas para resolver o problema estou procurando o Codigo Verificacao no indice 1. Quando utilizou indice 0, o codigo de verificacao esta vazio.  Nfe.ACBrNFSe.NotasFiscais.Items[1].NFSe.CodigoVerificacao

           // Sete Lagoas //
          if ( Trim( utst_Prefeitura ) = Trim( utco_Codigo_PSA_IBGE )) or     // Sete Lagoas  - MG -  //
             ( Trim( utst_Prefeitura ) = Trim( utco_Codigo_PCU_IBGE )) or     // Curvelo = MG //
             ( Trim( utst_Prefeitura ) = Trim( utco_Codigo_PVE_IBGE )) then   // Vespasiano - MG //
          begin
                 Nfe.ACBrNFSe.ConsultarNFSeporRps( Nfe.ACBrNFSe.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Numero,
                                                   Nfe.ACBrNFSe.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Serie,
                                                   TipoRPSToStr( Nfe.ACBrNFSe.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Tipo));
                 mem_Retorno.Lines.Text   := UTF8Encode(Nfe.ACBrNFSe.WebServices.ConsNfseRps.RetWS);
                 mem_RetornoWS.Lines.Text := UTF8Encode(Nfe.ACBrNFSe.WebServices.ConsNfseRps.RetWS);

                 // ala 12/06/2018 if Trim( Nfe.ACBrNFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao ) <> EmptyStr then
                 if Trim( Nfe.ACBrNFSe.NotasFiscais.Items[1].NFSe.CodigoVerificacao ) <> EmptyStr then
                 begin
                       if fMostrarMsg then
                       begin
                          //ShowMessage( 'Código de Verificação: ' + Nfe.ACBrNFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao );
                          ShowMessage( 'Código de Verificação: ' + Nfe.ACBrNFSe.NotasFiscais.Items[1].NFSe.CodigoVerificacao );
                       end;
                       lcst_Arquivo := nfe.ACBrNFSe.NotasFiscais.Items[0].NomeArq;
                       if not FileExists( lcst_Arquivo ) then
                       begin
                          lcst_Arquivo := nfe.ACBrNFSe.NotasFiscais.Items[1].NomeArq;
                          if not FileExists( lcst_Arquivo ) then
                             lcst_Arquivo  := NFe.ACBrNFSe.Configuracoes.Arquivos.PathNFSe + '\' + FormatDateTime( 'yyyymm', Date ) + '\NFSe\' + Nfe.ACBrNFSe.NotasFiscais.Items[0].NFSe.Numero + '-nfse.xml';
                       end;

                      { // GRAVAR O PROTOCOLO NO BD }
                       NFe.ACBrNFSe.NotasFiscais.Clear;
                       NFe.ACBrNFSe.NotasFiscais.LoadFromFile( lcst_Arquivo );
                       // GERAR PDF //
                       NFe.AcbrNFSe.NotasFiscais.ImprimirPDF;

                       // SE A DATA DE EMISSÃO DO RPS DIFERENTE DA DATA RETORNADA PELO WS, //
                       // UTILIZA A DATA DE EMISSÃO DO RPS GRAVADO NO BD ... ///
                       if lcdt_Data_RPs = 0 then
                       begin
                          //lcdt_Data_RPs := NFe.ACBrNFSe.NotasFiscais.Items[0].NFSe.DataEmissaoRps
                          lcdt_Data_RPs := NFe.ACBrNFSe.NotasFiscais.Items[0].NFSe.DataEmissaoRps
                       end;


                       // BUSCA O XML DA NFE E GRAVA OS DADOS ABAIXO //     ACBrNFSe.WebServices.ConsSitLoteRPS.Protocolo
                       if DM_GERALNFE.AtualizarNotaFiscal( NFe.ACBrNFSe.NotasFiscais.Items[0].NFSe.Numero,     // numero da nfe gerado pela prefeitura
                                                           EmptyStr, // não retorna o numero do protocoloNFe.ACBrNFSe.NotasFiscais.Items[0].NFSe.Protocolo,  //NFe.ACBrNFSe.WebServices.ConsSitLoteRPS.Protocolo, // ala 16/06/2019  EmptyStr,  // numero/ protocolo
                                                           EmptyStr,  // pk
                                                           NFe.ACBrNFSe.NotasFiscais.Items[0].XML,
                                                           utco_ArquivoGerado,
                                                           EmptyStr,
                                                           EmptyStr,
                                                           NFe.ACBrNFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao,
                                                           utco_NFe_Autorizada,
                                                           lcst_Arquivo,
                                                           lcdt_Data_RPs,                                          // alaterado em 11/06/2018, NFe.ACBrNFSe.NotasFiscais.Items[0].NFSe.DataEmissaoRps, // data de emissao da nfe do Dygnus
                                                           lcst_Numero_RPS,                                        // número da NF no Dygnus
                                                           EmptyStr,                                               // Protocolo EPEC
                                                           EmptyStr,                                               // Codigo do Tipo de Cancelametno da NFSe
                                                           NFe.ACBrNFSe.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Serie,
                                                           0,
                                                           NFe.ACBrNFSe.NotasFiscais.items[ 0 ].NomeArqRps,
                                                           DS_EMPRESA.DataSet.FieldByName( 'EMP_CODIGO_EMPRESAMASTER' ).AsString,
                                                           DS_EMPRESA.DataSet.FieldByName( 'EMP_codigo'               ).AsString, '' ) then
                       begin
                          if fMostrarMsg then
                          begin
                              if Application.MessageBox( PChar( 'A Nota Fiscal ' + LeftZeroFill( StrToInt64( NFe.ACBrNFSe.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Numero) , 6 ) +' foi atualizada com sucesso. Deseja Imprimir o DANFE ?' ) ,'Confirmação', MB_YESNO+MB_ICONQUESTION ) = idYes then
                              begin
                                 NFe.ACBrNFSe.NotasFiscais.Clear;
                                 NFe.ACBrNFSe.NotasFiscais.LoadFromFile( lcst_Arquivo );
                                 if FileExists( lcst_Arquivo ) then
                                    Imprimir_DANFSe( False )
                                 else
                                    ShowMessage( 'Arquivo não encontrado para impressão do DANFSe: ' + lcst_Arquivo );
                              end;
                          end
                          else
                          begin
                             NFe.ACBrNFSe.NotasFiscais.Clear;
                             NFe.ACBrNFSe.NotasFiscais.LoadFromFile( lcst_Arquivo );
                             if FileExists( lcst_Arquivo ) then
                                Imprimir_DANFSe( False )
                             else
                                ShowMessage( 'Arquivo não encontrado para impressão do DANFSe: ' + lcst_Arquivo );
                          end;
                          pc_Principal.ActivePageIndex  := 0;
                       end;
                       // ***** //
                       Result := True;
                 end; // if
          end // SETE LAGOAS //
 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia ALA,

Se os dados da nota estão no índice 1 em vez de zero isso significa que esta faltando alguma informação no XML de retorno que faz com que ele não encontre o RPS que já esta na lista (índice zero) e acaba ADD mais um item na lista e coloca os dados nesse novo índice.

Normalmente no XML da NFS-e tem que constar o Numero e Série do RPS para que seja possível fazer a comparação com o RPS carregado ao realizar a consulta.

Se no XML da NFS-e não for retornado por exemplo a Série do RPS, ao procurar na lista não vai achar e consequentemente vai colocar os dados da nota em um novo elemento, dai o motivo de você esta encontrando as informações desejadas no índice 1.

Favor anexar o XML do RPS a ser consultado e o XML de retorno da consulta.

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

  • Consultores

Bom dia ALA,

É preciso checar o valor da seguinte linha que se encontra em ACBrNFSeWebService:

 CondicaoNovoRetorno :=

(StrToInt64Def(FNotasFiscais.Items[ l ].NFSe.IdentificacaoRps.Numero, 0) = StrToInt64Def(FRetornoNFSe.ListaNFSe.CompNFSe.Items[ i ].NFSe.IdentificacaoRps.Numero, 0)) and
              (FNotasFiscais.Items[ l ].NFSe.IdentificacaoRps.Serie = FRetornoNFSe.ListaNFSe.CompNFSe.Items[ i ].NFSe.IdentificacaoRps.Serie) and
              ((FNotasFiscais.Items[ l ].NFSe.IdentificacaoRps.Tipo = FRetornoNFSe.ListaNFSe.CompNFSe.Items[ i ].NFSe.IdentificacaoRps.Tipo) or
              (FNotasFiscais.Items[ l ].NFSe.InfID.ID = FRetornoNFSe.ListaNFSe.CompNFSe.Items[ i ].NFSe.InfID.ID));

Se o valor de CondicaoNovoRetorno for False será criado um novo item na lista.

Condições para o teste:

Enviar o RPS, não limpar o componente ao realizar a consulta ao Lote.
 

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

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