Ir para conteúdo
  • Cadastre-se

dev botao

Adicionar Novo Provedor (Fiorilli)


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

Recommended Posts

  • Consultores

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 / 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

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 / 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

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.

Link para o comentário
Compartilhar em outros sites

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,

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia fnietto,

 

Por favor post como anexo a unit alterada, para que eu possa fazer um merge e mandar para o SVN.

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

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
Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia fnietto,

 

Por favor atualize os fontes e teste novamente.

 

Muito obrigado pela colaboração.

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

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,

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Carlos,

 

Favor atualizar os fontes e testar novamente.

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

Boa tarde Arce,

 

Desulpe, você se refere a qual provedor?

 

Pois, o tópico se refere ao provedor Fiorilli e este já esta implementado a opção GerarNFSe.

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, 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,

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...