Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Tenho um cliente da cidade de Erechim-RS que utiliza provedor SystemPro para emissão de Nota de Serviço.

Acontece que não estamos recebendo retorno do Código de Verificação.

Debugando fonte, verifiquei que na TACBrNFSeX.Emitir, FWebService.Emite.ModoEnvio recebe meLoteSincrono, e este não é verificado, assim não retornando o Código de Verificação.

Vocês conseguem verificar se é possível realizar este ajuste e se isto está realmente correto?

Desde já, grato!

  • Consultores
Postado

Não estamos recebendo seus e-mails, confirmei com os colegas aqui.

Por favor veja se está recebendo o retorno do provedor por alguma eventual rejeição.

Se não identificar o problema, pode enviar por mensagem privada para análise.

  • Consultores
Postado

Bom dia!

Arquivos recebidos e anexados na #TK-5399 que foi criada para análise do caso e parecer por parte da equipe de consultores.

  • Curtir 1
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
  • Solution
Postado

Bom dia @Adriano Wolff,

Checando os fontes do componente, mais precisamente a unit ACBrNFSeXProviderABRASFv2 responsável pela leitura do XML retornado ao executar o método Emitir (procedure TratarRetornoEmitir).

Consta sim a leitura da tag CodigoVerificacao e essa informação é armazenada tanto em Response.CodigoVerificacao quanto em AResumo.CodigoVerificacao 

Você pode ler essa informação da seguinte forma:

ACBrNFSeX1.WebService.Emite.CodigoVerificacao

ou

ACBrNFSeX1.WebService.Emite.Resumos[ x ].CodigoVerificacao   (onde x varia de 0 até Resumos.Count -1 

Vide o programa exemplo, procedure ChecarResposta.

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

image.thumb.png.384aa0156e7b1fe41dab17fa8671ea22.png

Então, usando programa exemplo, CodigoVerificacao fica vazio.
na procedure TACBrNFSeX.Emitir(const aLote: String; aModoEnvio: TmodoEnvio; aImprimir: Boolean);
não entra em  if Configuracoes.Geral.ConsultaLoteAposEnvio and
     (FWebService.Emite.ModoEnvio = meLoteAssincrono) then, pois o ModoEnvio é meLoteSincrono.
Quando adiciono meLoteSincrono na rotina, recebe CodigoVerificacao no checarResposta.

  • Consultores
Postado

Boa tarde @Adriano Wolff,

Não ficou claro para mim como você esta executando o método Emitir.

Segundo o programa exemplo temos:

  {
     O método Emitir possui os seguintes parâmetros:
     aNumLote (String)
     aModEnvio [meAutomatico, meLoteAssincrono, meLoteSincrono, meUnitario, meTeste]
     aImprimir (Boolean) Valor Padrão = True, portanto imprime o DANFSE
  }
  // como não foi informado o segundo parâmetro o método assume o valor
  // meAutomatico, isso faz com que ele se ajusta ao provedor selecionado
  ACBrNFSeX1.Emitir(vNumLote);

O provedor SystemPro segue a versão 2.01 do Layout da ABRASF.

Na unit ACBrNFSeXProviderABRASFv2 define que o modo de envio padrão para o provedores que seguem a versão 2.xx do layout da ABRASF é meLoteSincrono.

Sendo assim ao usar o método Emitir somente com o primeiro parâmetro (Numero do Lote) o segundo parâmetro que defini o modo de envio é assumido como sendo meAutomatico, neste caso é usado o modo de envio da configuração apresentado acima.

Veja na unit ACBrNFSeXProviderBase:

procedure TACBrNFSeXProvider.Emite;
var
  AService: TACBrNFSeXWebservice;
  AErro: TNFSeEventoCollectionItem;
begin
  EmiteResponse.Erros.Clear;
  EmiteResponse.Alertas.Clear;
  EmiteResponse.Resumos.Clear;

  TACBrNFSeX(FAOwner).SetStatus(stNFSeRecepcao);

  if EmiteResponse.ModoEnvio = meAutomatico then
    EmiteResponse.ModoEnvio := ConfigGeral.ModoEnvio;

(...)

 

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

  • Consultores
Postado

Bom dia @Adriano Wolff,

O Código de Verificação só é retornado quando o RPS é processo com sucesso e transformado em uma NFS-e.

Esse RPS que você enviou foi rejeitado e os motivos estão listados ai na lista de erros.

São 4 erros:

Opção Simples Nacional que não confere com o cadastro do contribuinte;

O CNPJ/CNPJ do tomador invalido;

Regime Especial de Tributação inválido;

Item da Lista de Serviços 09.01 inválido para o contribuinte informado.

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

Realmente, realizei testes, ajustei valores para validar teste corretamente, e CodigoVerificacao retorna corretamente quando a nota é validada com sucesso.
Com isso, consegui identificar onde estava o problema no meu sistema e resolver.
Obrigado pelo tempo em me ajudar a entender meu problema.
Até mais!

  • Curtir 1
  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

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

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