Ir para conteúdo
  • Cadastre-se

dev botao

Código de Verificação da NFSe no componente NFSeX em branco


Ver Solução Respondido por Aggille Sistemas de Gestão,
  • Este tópico foi criado há 612 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Fiz a migração para o NFSeX e após emitir a NFSe no Preview o Código de Verificação está lá mas no XML não aparece e nem no ACBrNFSeX1.NotasFiscais.Items[0].NFSe.CodigoVerificacao ficando em branco.

Fiz algo de errado?

  ConfigurarComponente;

  ACBrNFSeXDANFSeRL1.MostraPreview := True;
  ACBrNFSeXDANFSeRL1.MostraSetup   := False;
  ACBrNFSeXDANFSeRL1.MostraStatus  := True;

  ACBrNFSeX1.NotasFiscais.Clear;
  vNumRPS   := IntToStr(DM.dbEMPRESA.FieldByName('P_NOTA').AsInteger+1);
  AlimentarNFSe(vNumRPS, vNumRPS);


  // meUnitario: Ajusta o Emitir para enviar somente um Rps
  ACBrNFSeX1.Emitir(vNumRPS, meUnitario, True);

  if ACBrNFSeX1.NotasFiscais.Items[0].NomeArqRps <> '' then
    memoLog.Lines.Add('Arquivo Carregado de: ' + ACBrNFSeX1.NotasFiscais.Items[0].NomeArqRps)
  else
    memoLog.Lines.Add('Arquivo Carregado de: ' + ACBrNFSeX1.NotasFiscais.Items[0].NomeArq);

  memoLog.Lines.Add('Nota Numero..........: ' + ACBrNFSeX1.NotasFiscais.Items[0].NFSe.Numero);
  memoLog.Lines.Add('Código de Verificação: ' + ACBrNFSeX1.NotasFiscais.Items[0].NFSe.CodigoVerificacao);
  memoLog.Lines.Add('Data de Emissão......: ' + DateToStr(ACBrNFSeX1.NotasFiscais.Items[0].NFSe.DataEmissao));
  memoLog.Lines.Add('Prestador............: ' + ACBrNFSeX1.NotasFiscais.Items[0].NFSe.Prestador.RazaoSocial);
  memoLog.Lines.Add('Tomador..............: ' + ACBrNFSeX1.NotasFiscais.Items[0].NFSe.Tomador.RazaoSocial);

Log:

Arquivo Carregado de: D:\OneDrive\Documentos\GERADOR MONITORAMENTO\\NFSE_GER\2023\03\Recibos\5223033045148500010956000000000000447-rps.xml
Nota Numero..........: 447
Código de Verificação: 
Data de Emissão......: 17/03/23
Prestador............: DAVI DE SOUSA CALIXTO 95349227149
Tomador..............: EXCELSO PRESTACAO DE SERVICOS EIRELI
Arquivo Carregado de: D:\OneDrive\Documentos\GERADOR MONITORAMENTO\\NFSE_GER\2023\03\Recibos\5223033045148500010956000000000000447-rps.xml
Nota Numero..........: 447
Código de Verificação: 
Data de Emissão......: 17/03/23
Prestador............: DAVI DE SOUSA CALIXTO 95349227149
Tomador..............: EXCELSO PRESTACAO DE SERVICOS EIRELI

O sistema esta usando Schema Goiânia em Produção como TESTE o que da no mesmo de Homologação!

 

NFE TESTE.png

5223033045148500010956000000000000447-rps.xml

  • Consultores
Postado

Boa noite,

Coloque um ponto de parada no tratamento do retorno e veja se consegue identificar o motivo da propriedade não estar preenchida.

../trunk2/Fontes/ACBrDFe/ACBrNFSeX/Provedores/ISSGoiania.Provider.pas

procedure TACBrNFSeProviderISSGoiania200.TratarRetornoEmitir(
  Response: TNFSeEmiteResponse);
var
  Document: TACBrXmlDocument;
  AErro: TNFSeEventoCollectionItem;
  ANode, AuxNode: TACBrXmlNode;
  ANodeArray: TACBrXmlNodeArray;
  NumRps: String;
  ANota: TNotaFiscal;
  I: Integer;
begin
  Document := TACBrXmlDocument.Create;
.
.
.
  
  for I := Low(ANodeArray) to High(ANodeArray) do
        begin
          ANode := ANodeArray[I];

          AuxNode := ANode.Childrens.FindAnyNs('Nfse');
          if not Assigned(AuxNode) or (AuxNode = nil) then Exit;

          AuxNode := AuxNode.Childrens.FindAnyNs('InfNfse');
          if not Assigned(AuxNode) or (AuxNode = nil) then Exit;

          with Response do
          begin
            NumeroNota := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('Numero'), tcStr);
            CodigoVerificacao := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('CodigoVerificacao'), tcStr);
          end;
  

Teste também se o método ConsultaNFSeporRps retorna o código de verificação.

  • Curtir 2
Postado
Em 17/03/2023 at 21:59, Renato Rubinho disse:

Boa noite,

Coloque um ponto de parada no tratamento do retorno e veja se consegue identificar o motivo da propriedade não estar preenchida.

../trunk2/Fontes/ACBrDFe/ACBrNFSeX/Provedores/ISSGoiania.Provider.pas

procedure TACBrNFSeProviderISSGoiania200.TratarRetornoEmitir(
  Response: TNFSeEmiteResponse);
var
  Document: TACBrXmlDocument;
  AErro: TNFSeEventoCollectionItem;
  ANode, AuxNode: TACBrXmlNode;
  ANodeArray: TACBrXmlNodeArray;
  NumRps: String;
  ANota: TNotaFiscal;
  I: Integer;
begin
  Document := TACBrXmlDocument.Create;
.
.
.
  
  for I := Low(ANodeArray) to High(ANodeArray) do
        begin
          ANode := ANodeArray[I];

          AuxNode := ANode.Childrens.FindAnyNs('Nfse');
          if not Assigned(AuxNode) or (AuxNode = nil) then Exit;

          AuxNode := AuxNode.Childrens.FindAnyNs('InfNfse');
          if not Assigned(AuxNode) or (AuxNode = nil) then Exit;

          with Response do
          begin
            NumeroNota := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('Numero'), tcStr);
            CodigoVerificacao := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('CodigoVerificacao'), tcStr);
          end;
  

Teste também se o método ConsultaNFSeporRps retorna o código de verificação.

Quando coloco o mouse em cima da variável CodigoVerificacao nada aparece usando inspecionar com CTRL + SHIFT + Botão esquerdo do mouse vem esse erro!

Mudei para ACBrNFSeX1.WebService.Emite.CodigoVerificacao e nele aparece corretamente o Codigo de Verficação!

erro.png

Postado

Fiz uma debug completo e percebi que está sendo criado 2 notas ACBrNFSeX1.NotasFiscais.Items[0].NFSe.CodigoVerificacao e ACBrNFSeX1.NotasFiscais.Items[1].NFSe.CodigoVerificacao sendo que somente no ACBrNFSeX1.NotasFiscais.Items[1].NFSe.CodigoVerificacao tem os dados do Codigo de Verficação conforme imagens

erro2.png

erro3.png

  • Consultores
Postado
Em 19/03/2023 at 13:59, Davi De Sousa Calixto disse:

está sendo criado 2 notas 

Boa tarde,

Teste com o programa de exemplo e veja se ocorre a mesma situação.

Veja que no tratamento do retorno, a rotina alimenta os valores na nota localizada pelo número do RPS.

procedure TACBrNFSeProviderISSGoiania200.TratarRetornoEmitir(
  Response: TNFSeEmiteResponse);
.
.
.
  ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByRps(NumRps);

          ANota := CarregarXmlNfse(ANota, ANode.OuterXml);
          SalvarXmlNfse(ANota);

Se este problema acontecer apenas na sua aplicação, veja se falta limpar o componente antes do envio (ACBrNFSeX1.NotasFiscais.Clear) ou se você está adicionando um item a mais.

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