Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Membros Pro
Postado

Boa tarde.

Estou gerando a NFSe para o provedor Assessor Público para cidade de Penápolis. A NFSe é gerada sem erros mas não consigo capturar os dados de retorno:

procedure TNFSeX.EmitirAssessorPublico;
var
 vProtocolo: string;
 iTentativas: Integer;
begin
  DmNFSeX.ACBrNFSeX.Emitir(FdsNFSe.DataSet.FieldByName('ID').AsString, meAutomatico, False);
  Sleep(1000);
  ChecarResposta(tmGerar);
  vProtocolo:= DmNFSeX.ACBrNFSeX.WebService.Emite.Protocolo;
  If vProtocolo = EmptyStr then
    raise Exception.Create(memoLog.Text);

  for iTentativas := 1 to 7 do begin
    Sleep(1000);
    DmNFSeX.ACBrNFSeX.ConsultarLoteRps(vProtocolo, FdsNFSe.DataSet.FieldByName('ID').AsString);
    DmNFSeX.ACBrNFSeX.ConsultarNFSe;
    if DmNFSeX.ACBrNFSeX.NotasFiscais.Items[0].NFSe.Numero <> '' then begin
      FdsNFSe.DataSet.Edit;
      FdsNFSe.DataSet.FieldByName('NUMNFISCAL').AsString:= DmNFSeX.ACBrNFSeX.NotasFiscais.Items[0].NFSe.Numero;
      FdsNFSe.DataSet.FieldByName('RPS_SERIE').AsString:= DmNFSeX.ACBrNFSeX.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Serie;
      FdsNFSe.DataSet.FieldByName('PROTOCOLO').AsString:= DmNFSeX.ACBrNFSeX.WebService.Emite.Protocolo;
      FdsNFSe.DataSet.FieldByName('CODIGOVERIFICACAO').AsString:= vProtocolo;
      FdsNFSe.DataSet.FieldByName('STATUS').AsString:= 'A';
      FQryNFSe.EntidadeBase.Salva;
      GravaXmlNoBanco(0);
      DmNFSeX.ACBrNFSeX.NotasFiscais.Imprimir;
      Break;
    end;
  end;
  if iTentativas = 8 then
    raise Exception.Create('Erro desconhecido');
end;

Tentei emitir e capturar as informações diretamente, depois consulta por RPS passando o protocolo e lote e também a consulta por NFSe.

Não consigo capturar o número da NFSe e a serie da RPS, aparentemente o objeto esta vazio.

  • Consultores
Postado

Bom dia !
Chegou abrir o xml de retorno p ver se tem algum conteúdo ?
Se vc testar com o programa exemplo o comportamento é o mesmo ?

 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

  • Membros Pro
Postado

Boa tarde. 

Agradeço pelo retorno Daniel. 

Sim, recebo normalmente o xml (segue em anexo) e se colocar para imprimir automaticamente mostra o Danfe na tela.

Somente ao tentar capturar as informações do DmNFSeX.ACBrNFSeX.NotasFiscais.Items[0].NFSe.Numero ou qquer outra informação vem sempre vazio.

Pelo programa exemplo pelo q vi não tem a opção de capturar essas informações.

Alguma idéia ?

822-nfse.xml

  • Consultores
Postado

Boa tarde Marcello,

Para fazer a leitura dos campos como o seu exemplo ler o campo Numero, primeiro você tem que carregar o XML e depois ler os campos.

Se você observar o botão Imprimir DANFSE do programa exemplo, primeiro ele carregar o XML usando o LoadFromFile e depois é executado o Imprimir.

Se não carregar o XML primeiro não vai aparecer nada na impressão.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Boa tarde.

Estou ficando maluco com esse provedor - simplesmente agora não gera mais notas, sempre me retorna o erro "Lote não Encontrado".

O erro já retorna logo após o comando DmNFSeX.ACBrNFSeX.Emitir(FdsNFSe.DataSet.FieldByName('ID').AsString, meAutomatico, False);

Estou enviando em anexo os xmls gerados.

Tentei também utilizar o Programa Exemplo para testar mas apesar de estar configurado corretamente para o provedor Assessor Público esta gerando o xml de envio diferente e dai retorna erro de usuário.

image.png.0c23b7777fc13b2c3d2027a3e1d9b518.png

image.png.36599dd672e458632d95e2a3179f6174.png

 

NFSe.zip

  • Consultores
Postado

Bom dia @marcellocainelli,

Usando o XML da nota que você anexou na sua postagem anterior para imprimir o DANFSE usando o programa exemplo, veja o resultado:

image.png

Dica:

Ao carregar o XML de uma nota define o segundo parâmetro do LoadFromFile como False.

    ACBrNFSeX1.NotasFiscais.LoadFromFile(OpenDialog1.FileName, False);
 

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • 2 semanas depois ...
  • Membros Pro
Postado

Bom dia Italo.

Desculpe pela demora no retorno mas na semana passada estava na Autocom e somente estou conseguindo retomar os testes agora.

Meu problema mudou, não esta mais gerando a nota, esta sempre retornando "Lote não Encontrado".

Por favor veja meu post de 08/04, anexei os xmls q estão retornando agora.

Tentei também utilizar o Programa Exemplo para testar mas apesar de estar configurado corretamente para o provedor Assessor Público esta gerando o xml de envio diferente e dai retorna erro de usuário.

  • Membros Pro
Postado

Bom dia Italo.

Atualizei todos os fontes de todas as pastas e reinstalei o ACBr.

O erro mudou, agora a nota esta sendo salva no site:

image.thumb.png.b0c8ac953a88aa737a94a89a3687b911.png

Mas nem ao enviar o comando emitir e nem ao consultar traz o xml da nota. Tentei consultar pelo Lote e Por NFSe em um loop de 7 tentativas.

Segue anexo os novos xmls

 

NFSe.zip

  • Consultores
Postado

Boa tarde @marcellocainelli,

Se você analisar as procedures: TratarRetornoConsultaLoteRps TratarRetornoConsultaNFSeporNumero da unit AssessorPublico.Provider vai notar que esta previsto a leitura dos dados da Nota e a gravação do XML da mesma em disco.

Agora se o provedor não esta retornando o grupo <NFSE> e dentro dele o grupo <NOTA> com as demais tags que compõe o XML da nota eu não sei lhe dizer.

Pode ser que se faça necessário via Portal da prefeitura ativar alguma opção para que isso ocorra.

Caso não tenha, favor entrar em contato com o provedor e expor o problema.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Um detalhe Italo é que esse cliente esta utilizando ACBRNFSe (antigo) e esta por ele emite normalmente.

procedure TNFSe.EnviaAssessorPublico;
var
 vCodigoVerificacao: string;
begin
  Try
    DmNFSe.ACBrNFSe.Enviar(DmNFSe.CDSNFSeID.AsInteger);
  except
    on E:Exception do begin
      If E.Message = '' then begin
        Sleep(3000);
        DmNFSe.ACBrNFSe.NotasFiscais.Clear;
        DmNFSe.ACBrNFSe.ConsultarLoteRps(DmNFSe.CDSNFSeID.AsString, vCodigoVerificacao);
        vCodigoVerificacao:= DmNFSe.ACBrNFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao;
        If vCodigoVerificacao = EmptyStr then
          raise Exception.Create('O Código de verificação de envio retornou em branco - não foi possível enviar a NFSe.');
        //Salva o Num NFse, Protocolo e Cod Verificacao
        DmNFSe.CDSNFSe.Edit;
        DmNFSe.CDSNFSeNUMNFISCAL.AsString:= DmNFSe.ACBrNFSe.NotasFiscais.Items[0].NFSe.Numero;
        DmNFSe.CDSNFSeRPS_SERIE.AsString:= DmNFSe.ACBrNFSe.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Serie;
        DmNFSe.CDSNFSeCODIGOVERIFICACAO.AsString:= DmNFSe.ACBrNFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao;
        DmNFSe.CDSNFSePROTOCOLO.AsString:= DmNFSe.ACBrNFSe.NotasFiscais.Items[0].NFSe.Protocolo;
        DmNFSe.CDSNFSeSTATUS.AsString:= 'A';
        DmNFSe.CDSNFSe.Post;
        DmNFSe.CDSNFSe.ApplyUpdates(0);
        DmNFSe.ACBrNFSe.NotasFiscais.Imprimir;
      end else
        raise Exception.Create(E.Message);
    end;
  End;
end;

Esse é o código de como estou fazendo pelo ACBRNFSe. 

Como esta funcionando por ele acredito que não seja com a Prefeitura a questão.

Somente estou tentando migrar todos os meus clientes para o novo componente  e nesse deu enrosco total. 

Tem mais alguma idéia ? 

 

  • Consultores
Postado
1 hora atrás, marcellocainelli disse:

Tem mais alguma idéia ? 

Boa tarde!

O componente antigo também tem a opção para gerar os arquivos de envelope(é a mesma configuração do novo).

Tente comparar os arquivos -soap gerados pelo novo componente com os gerados pelo antigo usando uma ferramenta como o WinMerge, por exemplo e veja se ele acusa algum erro.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado

@marcellocainelli,

O problema é que no retorno da consulta ao lote temos somente:

<?xml version="1.0" encoding="ISO-8859-1">
<NFSE>
	<IMPORTACAO>
		<CODIMPORTACAO>247698</CODIMPORTACAO>
		<STATUS>Validando</STATUS>
	</IMPORTACAO>
</NFSE>

Note que na tag STATUS consta a mensagem "Validando" que no meu entendimento significa que a o RPS enviado não foi processo ainda.

Não vejo outra solução você entrar em contato com o provedor e questionar sobre isso.

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

×
×
  • 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.