Ir para conteúdo
  • Cadastre-se

dev botao

NFSeX - Provedor Infisc - Caxias do Sul/RS


TiagoTecchio
Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 930 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Bom dia Italo,

Obrigado pelo esclarecimento.

Então terei que modificar o processo de autorização - até então eu pensava que poderia capturar as exceções/rejeições/etc durante o envio da mesma forma como nos componentes acbrNFE, acbrMDFE e o antigo acbrNFSE.

Também pelo fato de eu ativar a propriedade ConsultaLoteAposEnvio fiquei na dúvida se o componente iria executar a Consulta logo após ter Enviado.

Se você me diz que agora o processo deve ser feito em duas etapas (1- envio e 2- consulta), OK vou adicionar um controle com loop para esperar as respostas.

Grato.

Editado por TiagoTecchio
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Tiago,

Analisando os fontes do componente se atribuir o valor True a propriedade ConsultaLoteAposEnvio é para executar automaticamente o método ConsultarLote.

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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Italo,

Este é o ponto, eu passei True para a propriedade ConsultaLoteAposEnvio mas o resultado da consulta é este XML:

<sit>100</sit>
<NFSe>
     <sit>217</sit>
      <motivos>
         <mot>NFS-e(s) já recebida(s) e ainda não processada(s).</mot>
      </motivos>
</NFSe>

As rejeições vieram somente após eu acionar manualmente o método ConsultaLoteRps (a imagem anexa)

capture_003_05032022_080538.jpg.45f0f16cc0fe168a3ecd73eb3d110609.jpg

20220304112511-lista-nfse-con-lot.xml

Link para o comentário
Compartilhar em outros sites

  • Consultores

Tiago,

A primeira mensagem será que não é o retorno do método Emitir?

Porque o método Consultar Lote sendo executado de forma automática ou manual não traria informações diferentes.

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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Italo,

Fiz um novo teste agora usando o método Emitir.

Veja que pela sequência o componente enviou a NFSe, recebeu a resposta, em seguida solicitou o status do Lote ao webservice e a resposta veio no arquivo 20220308171136-lista-nfse-con-lot.xml

O que deve estar ocorrendo é que a lista de rejeições só vem depois de alguns segundos, a mensagem abaixo é uma fase intermediária.

1340213314_Anotao2022-03-08171323_1.thumb.jpg.696d9ff9b3ea14ded696ed94ab48aae7.jpg

Anotação 2022-03-08 171323.jpg

20220308171136-con-lot.xml 20220308171136-lista-nfse-con-lot.xml 1-env-lot.xml 1-rec.xml

Editado por TiagoTecchio
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Tiago,

Favor atualizar os fontes e faça novos testes.

Nesse novo teste faça a seguinte configuração:

ConsultaLoteAposEnvio = True

AguardarConsultaRet = 5000  (isso vai fazer com que o componente espere 5 segundos entre o envio e a consulta).

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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia Italo,

Agora consegui obter a lista de rejeições acessando a lista ACBrNFSeX1.WebService.ConsultaLoteRps.Erros logo após o envio.

Contudo não consigo realizar a Consulta sobre uma NFSe já emitida. Analisando o arquivo Infisc.Provider vi que a consulta é feita através do método pedidoLoteNFSe, porém uma exceção é levantada ao assinar o XML

Método Executado: ConsultarNFSePorFaixa
 
Parâmetros de Envio
Num. Ini. NFSe: 5
Num. Fin. NFSe: 5
Data Inicial  : 30/12/1899
Data Final    : 30/12/1899
 
Parâmetros de Retorno
Sucesso       : False
 
Erro(s):
Código  : X801
Mensagem: Erro ao Assinar: Nenhum elemento encontrado
Correção:

 

O erro é disparado nesta linha (função TDFeSSLXmlSignLibXml2.Assinar dentro de ACBrDFeXsLibXml2.pas)

image.thumb.png.2d29ce88fa503b0bcbf98d0f383837b3.png

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia Italo,

Atualizado os fontes e novas tentativas.

Alguns pontos que precisariam de ajuste.

O webservice valida o nome da cidade, portanto não pode ser "Caxias do Sul/RS" somente "Caxias do Sul" - tanto no endereço do tomador quando do emitente.

Eu ajustei manualmente o arquivo ACBrNFSeXConversao.pas, não sei se ali é o melhor lugar para o ajuste - pessoalmente prefiro passar o nome da cidade manualmente ao invés do componente fazer isso, mas creio que essa é uma decisão sua.

Outro questão: a propriedade cNFSe não está sendo carregada quando leio o XML (via arquivo ou stream) - está sendo enviada para outro campo que o provedor não utiliza.

image.thumb.png.49c68f880f2fb96681160a9f7067e386.png

A versão do XML não pode ser 1.10 mas 1.1 - fiz um cast no provider para ajustar em tempo de execução assim :

TACBrNFSeProviderInfisc101(a.acbrNFServX.Provider).ConfigWebServices.VersaoDados := '1.1';

Por fim, ao iterar sobre o resultado da consulta de lote logo após a chamada do método Emitir, a NFSe é autorizada com sucesso porém a mensagem de que a nota foi aceita é listada como se fosse um erro:

// Meu teste

if vNFSe.WebService.ConsultaLoteRps.Erros.Count > 0 then

//  vNFSe.WebService.ConsultaLoteRps.Erros[i].Descricao => Nota fiscal 8 aceita. Protocolo nr. 222481

 

Obrigado pela ajuda.

20220311102608-lista-nfse-con-lot.xml

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Tiago,

Ao Consultar o Lote, se tratando desse provedor leia o conteúdo de:  Response.Situacao

Se for 100 significa que a nota foi processada com sucesso, neste caso leita também o conteúdo de: Response.idNota.

Este campo vai trazer a chave de acesso da nota.

Na mensagem de "erro" vai conter o numero do protocolo.

Infelizmente esse provedor tem um retorno um tanto quanto fora dos demais provedores.

Favor atualizar os fontes e faça novos testes.

Fiz alguns ajustes no que se refere a descrição do nome da cidade bem como a versão e o cNFSe.

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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Italo,

Grato pelo retorno.

Fiz as adaptações necessárias para emissão, cancelamento e consulta e parece que está OK.

Somente notei um detalhe ao carregar o XML: a propriedade OutrasInformacoes não é alimentada com as tags infAdic no médoto TNFSeR_Infisc.LerInformacoesAdic:

image.thumb.png.21b361354dc9af4ce485ad208b858bae.png

A parte destacada não retorna nenhum elemento porém a tag existe no xml (ANodes é um array maior que 0).

 

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia Italo,

Anexo o arquivo Infisc.LerXml.pas com um ajuste para carregar corretamente o nome do país do endereço da transportadora.

Sem isso o webservice do Provedor retorna esta linda mensagem:

E232 Ocorreu um erro no processamento do arquivo. (Validation failed for classes [br.com.gif.nfse.model.nfse.TransportadoraNotaFiscal] during persist time for groups [javax.validation.groups.Default, ]
List of constraint violations:[
    ConstraintViolationImpl{interpolatedMessage='tamanho deve estar entre 1 e 60', propertyPath=nomePaisTransportadora, rootBeanClass=class br.com.gif.nfse.model.nfse.TransportadoraNotaFiscal, messageTemplate='{javax.validation.constraints.Size.message}'}
])

 

Infisc.LerXml.pas

Link para o comentário
Compartilhar em outros sites

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