Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Consultores
Postado

Boa tarde a todos,

 

o "-c" no final do nome de alguns arquivos significa: arquivo completo.

 

Note que temos os arquivos *-lista-nfse.xml e o *-lista-nfse-c.xml, este último é completo ou seja é o retorno do webservice sem nenhuma remoção de tags não necessárias.

 

Os arquivos "-c" contem as tags de Envelope, utilizadas no envio e temos elas no retorno também, mas o conteudo relevante fica no que chamamos de area de dados.

 

Fiz algumas alterações, favor atualizar os fontes e testar novamente.

 

O arquivo *-lista-nfse.xml fica dentro da pasta GER, nele podemos ter 1 ou mais NFS-e, o componente tem que extrair e salvar a NFS-e separadamente dentro da pasta NFSe com o seguinte nome: <num>-nfse.xml, onde <num> é o numero da nota.

 

Se esse XML não esta sendo salvo, favor checar se não esta sendo salvo em outro lugar, neste caso trata-se de configuração errada.

Caso contrario temos um erro no componente que ele não esta conseguindo extrair o conteudo da nota.

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

Postado

Italo, anexei o arquivo que tenho com a NF no post #97, é *-lista-nfse.xml, na pasta GER. Não tenho salvo o arquivo com o "-c'. 

 

Vou atualizar os fontes e fazer novo teste.

 

Abs,

Postado (editado)

carlosrosa, também é gerado uma arquivo  *-lista-nfse.xml, mas é um arquivo vazio.

Editado por arce
  • Consultores
Postado

Boa tarde Arce,

 

Vamos a mensagem de erro retornada:

 

Unmarshalling Error: unexpected element (uri:"http://www.abrasf.org.br/nfse.xsd", local:"EnviarLoteRpsEnvio"). Expected elements are <{http://www.abrasf.org.br/nfse.xsd}EnviarLoteRpsSincronoEnvio>,<{}username>,<{}password>
 

A mensagem diz que temos um elemente inesperado no caso o EnviarLoteRpsEnvio.

O elemento esperado é EnviarLoteRpsSincronoEnvio.

 

Você esta usando qual função para envio?

 

o Enviar ou EnviarSincrono?

 

No caso do Provedor Fiorilli, devemos usar o EnviarSincrono.

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

Postado

Italo estou usando a função EnviarSincrono().

 carregar_nfs(cdsNFSNFS_ID.AsInteger); // função carrega os dados da NFSe
 frmPrincipal.ACBrNFSe1.EnviarSincrono(nLote);

Agora mesmo, usei a função Enviar() em outra procudure e funcionou normalmente, fiz o teste para me certificar de que não era problema de conexão com o servidor.

Postado

Agora, configurando para True a propriedade Salvar tenho dois arquivos "*-lista-nfse.xml" e "*-lista-nfse-c.xml". Porém ainda não tenho o arquivo da NFS-e salvo na pasta específica (NFSe).

 

Aproveitando, alguém no grupo preenche uma NF de serviços com mais de um item de serviço? 

 

Abs,

Postado

carlosrosa

 

Eu to com esse problema também... só para testar eu fiz a seguinte mudança e agora ta salvando. 

Abre o arquivo ACBrNFSeWebServices.pas, vai na linha 3900 ve se está assim

 

FRetListaNfse := SeparaDados(FRetWS, Prefixo3 + 'ListaNfse');

 

e muda para 

 

FRetListaNfse := SeparaDados(NotaUtil.RetirarPrefixos(FRetWS), Prefixo3 + 'ListaNfse');

 

Pelo que entendi isso ta acontecendo porque no retorno as tags estão vindo com o prefixo ns2: e nossa classe fiorilli não está configurada para usar o prefixo.

Não sei agora o que seria o mais correto, mudar nossa classe fiorilli para usar os prefixo ou fazer um if nessa linha somente para esse provedor.

Postado

fnietto, rodou.  Não vejo problema em condicionar com um IF essa situação, já que temos em outros pontos situações análogas. 

 

O que diz os responsáveis pelo projeto?

 

Abs,

Postado (editado)

carlosrosa

 

Consegui acertar também para tratar o retorno quando houver algum erro no envio... Testei aqui tentando enviar o mesmo RPS duas vezes e exibiu a mensagem  do erro.

 

Vamos à alteração feita... na classe pnfsGerarNfseResposta.pas na linha 589 tem um if leitor.rExtrai(2, 'ListaMensagemRetorno') <> '' then

Na linha 601 tem o end desse if...

Pulei uma linha e 603 eu adicionei esse código:

 

      if leitor.rExtrai(2, 'ListaMensagemRetornoLote') <> '' then
      begin
        i := 0;
        while Leitor.rExtrai(3, 'MensagemRetorno', '', i + 1) <> '' do
        begin
          ListaNfse.FMsgRetorno.Add;
          ListaNfse.FMsgRetorno.FCodigo   := Leitor.rCampo(tcStr, 'Codigo');
          ListaNfse.FMsgRetorno.FMensagem := Leitor.rCampo(tcStr, 'Mensagem');
          ListaNfse.FMsgRetorno.FCorrecao := Leitor.rCampo(tcStr, 'Correcao');
 
          inc(i);
        end;
      end;
 
 
Me parece que o retorno da Fiorilli não vem na tag ListaMensagemRetorno e sim na ListaMensagemRetornoLote, nesse caso não vejo necessidade do if do provedor pois ou terá uma tag ou a outra.
Editado por fnietto
Postado (editado)

fnietto, essa situação em especial, o envio mais que uma vez de um RPS, já obtive retorno do componente com o erro tratado. Não sei se teria necessidade de modificações.

 

Me enganei, era no Envio e não no EnvioSincrono. Me desculpe ai...

 

Abs

Editado por carlosrosa
Postado

Italo, entrei em contato com a Fiorilli e o arquivo de envio do lote contém tags incorretas. 

 

xml enviado pelo desenvolvedor da Fiorilli (recepcionarLoteRpsSincrono.xml)

xml gerado pelo acbr (*-env-lotS-c.xml)

 

Note que há divergências na linha 6, 7 e 15. 

Na linha 6 está com o nome EnviarLoteRpsEnvio e o correto seria EnviarLoteRpsSincronoEnvio.

No arquivo da Fiorilli, na 7 consta versao "2.01" e na linha 15  consta  xmlns="http://www.abrasf.org.br/nfse.xsd"

 

Creio que seja este o motivo do retorno incorreto.

 

abs.

 

 

613-env-lotS-c.xml

recepcionarLoteRpsSincrono.xml

Postado (editado)

Italo

 

Referente ao post #109, qual seria o correto, mudar a classe Fiorilli para usar os prefixo ou colocar um if só para usar a função NotaUtil.RetirarPrefixos nos retornos  desse provedor ? Segue anexo os arquivos para você dar uma olhada.

 

 

 

carlosrosa

 

Tenta fazer um teste por exemplo não passar o campo Servico.MunicipioIncidencia, verifica se ai vai exibir a menssagem, pois aqui não estava exibindo até eu fazer essa alteração, talvez esse teste do RPS eu fiz depois e me confundi. Mas o primeiro problema foi esse do Servico.MunicipioIncidencia

 

 

 

arce

 

Aguarda o Italo verificar os códigos que estou passando para ele, pois já consegui enviar no método síncrono e até o momento está dando certo. Qualquer coisa baixa esses fontes anexo e faz um teste.

ACBrNFSeWebServices.pas

pnfsGerarNfseResposta.pas

Editado por fnietto
Postado (editado)

fnietto, atualizei as alterações que vc fez e agora o servidor está retornando corretamente a resposta.

Muito obrigado.

Editado por arce
Postado

Verifiquei que existe uma diferença entre a impressão da NFS-e no site da Fiorilli e a impressão do componente, que é a impressão do Id pelo site. Essa informação é obrigatória para a impressão? Ou é possível já usar a impressão sem o Id. No XML ele retorna em <InfNfse Id="15835729OSLV9DIBPWH4ROO8D9SS6004">, nesse caso foi um dos testes que fiz.

 

Abs,

Postado

Não estou conseguindo executar o método LoadFromFile na NFSe já feita para uma impressão local. O erro retorna a seguinte mensagem: " is not a valid integer value.

 

O xml da NFS-e está em anexo. Não consegui resolver. Alguém tem uma dica?

 

Lembrando que também no Demo está ocorrendo o mesmo erro.

 

Abs,

72-nfse.xml

Postado

Italo, qndo uso a função Gerar(), o componente me retorna a seguinte mensagem "A funcionalidade Gerar NFSe não esta disponível para o provedor: Fiorilli".

Postado

Bom dia, para gerar a NFSe em Produção, a URL, conforme a indicação do pessoal da Fiorilli, seria: 

 

Bom dia.
É só trocar o endereço do web service e trocar os dados os dados do contribuinte.
 

 

 

No componente, as URLs são as mesmas. 

 

Seria o caso de ajuste da URL?

 

Abs,

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