Ir para conteúdo
  • Cadastre-se

dev botao

não puxa mais o numero do lote, etc... segue as minhas funções que apresentam erro e não encontrei.


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

Recommended Posts

Postado

função que envia as notas selecionadas do grid

  if cfg.active=false then cfg.Active:=true;
  cfg.First;

  numLote := ObterNumeroDoLote;
  iqtde:=tv1.DataController.GetSelectedCount;
  showmessage(iqtde.ToString+' Registro(s) Selecionado(s). Lote número: '+numlote.ToString);
  // limpando as notas fiscais existentes.

  acbrnfse1.NotasFiscais.Clear;
  for I := 0 to iqtde-1 do begin
      linhatv1:=tv1.DataController.GetSelectedRowIndex(i);
      tv1.DataController.ChangeFocusedRecordIndex(linhatv1);
      alimentarnfse(notascodnota.AsString,numlote.ToString);
  end;

  acbrnfse1.NotasFiscais.Transacao:=true;

  Response := ACBrNFSe1.Emitir(inttostr(NumLote));
  ChecarResposta(Response);

  for t := 0 to iQtde - 1 do
  begin
   // if acbrnfse1.NotasFiscais.Items[t].nfse.Situacao = sLoteNaoRecibo         then resplote:='Não Recibo';
   // if acbrnfse1.NotasFiscais.Items[t].nfse.Situacao = sLoteNaoProcessado     then resplote:='Não Processado';
   // if acbrnfse1.NotasFiscais.Items[t].nfse.Situacao = sLoteProcessadoErro    then resplote:='Processado com Erros';
   // if acbrnfse1.NotasFiscais.Items[t].nfse.Situacao = sLoteProcessadoSucesso then resplote:='Processado com Sucesso';
   // if acbrnfse1.NotasFiscais.Items[t].nfse.Situacao = sLoteProcessadoAviso   then resplote:='Processado com Avisos';

    MemoDados.Lines.Add('RPS Número            : ' + ACBrNFSe1.NotasFiscais.Items[t].NFSe.Numero);
    MemoDados.Lines.Add('Código de Verificação : ' + ACBrNFSe1.NotasFiscais.Items[t].NFSe.CodigoVerificacao);
    MemoDados.Lines.Add('Lote                  : ' + response.InfRetorno.NumeroLote);// ACBrNFSe1.NotasFiscais.Items[t].NFSe.NumeroLote);
    MemoDados.Lines.Add('ID                    : ' + ACBrNFSe1.NotasFiscais.Items[t].NFSe.InfID.ID);
    MemoDados.Lines.Add('protocolo:            : ' + response.InfRetorno.Protocolo);
    MemoDados.Lines.Add('Data/Hora Recebimento : ' + formatdatetime('dd/mm/yyyy - hh:nn',ACBrNFSe1.NotasFiscais.Items[t].NFSe.dhRecebimento));
    MemoDados.Lines.Add('-------------------------------------------------------------------------');

    if notas.Locate('codnota',ACBrNFSe1.NotasFiscais.Items[t].NFSe.InfID.ID,[]) then begin
       notas.Edit;
         notasnfs_numero.Value            := ACBrNFSe1.NotasFiscais.Items[t].NFSe.Numero.ToInteger();
         notasnfs_codigoverificacao.Value := ACBrNFSe1.NotasFiscais.Items[t].NFSe.CodigoVerificacao;
         notasnfs_id.Value                := ACBrNFSe1.NotasFiscais.Items[t].NFSe.InfID.id;
         notasnfs_lote.Value              := response.InfRetorno.NumeroLote.ToInteger;// Lote.ToInteger; //ACBrNFSe1.NotasFiscais.Items[t].NFSe.NumeroLote.ToInteger;
         notasnfs_protocolo.Value         := response.infretorno.Protocolo; // ACBrNFSe1.NotasFiscais.Items[t].NFSe.Protocolo;
         notasnfs_dhrecebimento.Value     := ACBrNFSe1.NotasFiscais.Items[t].NFSe.dhRecebimento;
   //      notasnfs_status.Value            := resplote;
       notas.Post;
    end;
  end;
end;

aqui da um erro de '' is not a valid integer value... como não retorna o lote a função a seguir faz uma consulta pelo numero do lote, acaba não encontrando nada pq não retorna o lote.

  Protocolo := ''; //notasnfs_protocolo.asstring;
  lote      := notasnfs_lote.AsString;
  Response := ACBrNFSe1.ConsultarLoteRps(Protocolo, Lote);
  ChecarResposta(Response);
  MemoDados.Lines.Clear;

  for i := 0 to ACBrNFSe1.NotasFiscais.Count -1 do
  begin

    if acbrnfse1.NotasFiscais.Items[i].NFSe.Status = srnormal then begin
      MemoDados.Lines.Add('Status Nfe      : Normal');
      sstat:='N';
    end else begin
      MemoDados.Lines.Add('Status Nfe      : Cancelada');
      sstat:='C';
    end;

    MemoDados.Lines.Add('RPS Numero......: ' + ACBrNFSe1.NotasFiscais.Items[i].NFSe.IdentificacaoRps.Numero);
    MemoDados.Lines.Add('Série RPS.......: ' + ACBrNFSe1.NotasFiscais.Items[i].NFSe.IdentificacaoRps.Serie);
    MemoDados.Lines.Add('NFS-e Numero....: ' + ACBrNFSe1.NotasFiscais.Items[i].NFSe.Numero);
    MemoDados.Lines.Add('Cod. Verificacao: ' + ACBrNFSe1.NotasFiscais.Items[i].NFSe.CodigoVerificacao);
    MemoDados.Lines.Add('Nome do arquivo.: ' + ACBrNFSe1.NotasFiscais.Items[i].NomeArq);
    memodados.Lines.Add('----------------------------------------------------------------------');

    if notas.Locate('codnota',ACBrNFSe1.NotasFiscais.Items[i].NFSe.IdentificacaoRps.Numero,[]) then begin
        notas.Edit;
        notasnfs_numero.Value            := ACBrNFSe1.NotasFiscais.Items[i].NFSe.Numero.ToInteger();
        notasnfs_codigoverificacao.value := ACBrNFSe1.NotasFiscais.Items[i].NFSe.CodigoVerificacao;
        notasnfs_arquivo.Value           := ACBrNFSe1.Configuracoes.Arquivos.GetPathNFSe() + '\' + ACBrNFSe1.NotasFiscais.Items[i].NomeArq;
        notasnfs_cstat.Value             := sstat;
//        notasnfs_lote.Value              := ACBrNFSe1.NotasFiscais.Items[i].NFSe.NumeroLote.ToInteger;
        notasnfs_dhrecebimento.Value     := ACBrNFSe1.NotasFiscais.Items[i].NFSe.DataEmissao;
        notas.Post;
        geralink();
    end;

  end;
end;

a função de consulta pelo RPS funciona, mas não tras mais o numero do lote, que antes trazia também.

  NumeroRps := notascodnota.asstring;
  SerieRps := '85';
  TipoRps := '1';

  // Provedor ISSDSF e Siat
  if ACBrNFSe1.Configuracoes.Geral.Provedor in [proISSDSF, proSiat] then
  begin
    // Utilizado como serie da prestação
    SerieRps := '99';
  end;

  // Provedor SigEp o Tipo do RPS é diferente
  if ACBrNFSe1.Configuracoes.Geral.Provedor = proSigep then
  begin
    iTipoRps := StrToIntDef(TipoRps, 1);
    case iTipoRps of
      1: TipoRps := 'R1';
      2: TipoRps := 'R2';
      3: TipoRps := 'R3';
    end;
  end;

  // Provedor Agili o Tipo do RPS é diferente
  if ACBrNFSe1.Configuracoes.Geral.Provedor = proAgili then
  begin
    iTipoRps := StrToIntDef(TipoRps, 1);
    case iTipoRps of
      1: TipoRps := '-2';
      2: TipoRps := '-4';
      3: TipoRps := '-5';
    end;
  end;
  codverificacao:='';

  Response := ACBrNFSe1.ConsultarNFSeporRps(NumeroRps, SerieRps, TipoRps, //NumeroLote,
    CodVerificacao);

  ChecarResposta(Response);

  MemoDados.Lines.Clear;

{
NFS-e Numero....: 705
Cod. Verificacao: ZKTUTSMR
Nome do arquivo.: C:\Users\RAO Sistemas\Desktop\RAO NFSe\respostas\3521060844908000017956000000000000705-nfse.xml
Link            :
Autenticador    :
Lote            : 724937746
Protocolo       : 724937746
Data hora Rec.  : 06/07/2021
cNFS-e          : 0
}

  for i := 0 to ACBrNFSe1.NotasFiscais.Count -1 do
  begin
    if acbrnfse1.NotasFiscais.Items[i].NFSe.Status = srnormal then begin
      MemoDados.Lines.Add('Status Nfe      : Normal');
      sstat:='N';
    end else begin
      MemoDados.Lines.Add('Status Nfe      : Cancelada');
      sstat:='C';
    end;



    MemoDados.Lines.Add('NFS-e Numero....: ' + ACBrNFSe1.NotasFiscais.Items[i].NFSe.Numero);
    MemoDados.Lines.Add('Cod. Verificacao: ' + ACBrNFSe1.NotasFiscais.Items[i].NFSe.CodigoVerificacao);
    MemoDados.Lines.Add('Nome do arquivo.: ' + ACBrNFSe1.Configuracoes.Arquivos.GetPathNFSe() + '\' +
                                               ACBrNFSe1.NotasFiscais.Items[i].NomeArq);
    MemoDados.Lines.Add('Link            : ' + ACBrNFSe1.NotasFiscais.Items[i].NFSe.Link);
    MemoDados.Lines.Add('Autenticador    : ' + ACBrNFSe1.NotasFiscais.Items[i].NFSe.Autenticador);
    MemoDados.Lines.Add('Lote            : ' + response.InfRetorno.NumeroLote); // InformacoesLote.NumeroLote);// ACBrNFSe1.NotasFiscais.Items[i].NFSe.NumeroLote);
    MemoDados.Lines.Add('situação Lote   : ' + SituacaoLoteRPSToStr(ACBrNFSe1.NotasFiscais.Items[i].NFSe.Situacao));
    MemoDados.Lines.Add('Data hora Rec.  : ' + datetostr(ACBrNFSe1.NotasFiscais.Items[i].NFSe.DataEmissao));
    MemoDados.Lines.Add('cNFS-e          : ' + ACBrNFSe1.NotasFiscais.Items[i].NFSe.cNFSe.ToString);
    memodados.Lines.Add('---------------------------------------------------------------------');


    if notas.Locate('codnota',acbrnfse1.NotasFiscais.Items[i].NFSe.IdentificacaoRps.Numero,[]) then begin
        notas.Edit;
        notasnfs_numero.Value            := strtoint(ACBrNFSe1.NotasFiscais.Items[i].NFSe.Numero);
        notasnfs_codigoverificacao.value := ACBrNFSe1.NotasFiscais.Items[i].NFSe.CodigoVerificacao;
        notasnfs_arquivo.Value           := ACBrNFSe1.Configuracoes.Arquivos.GetPathNFSe() + '\' + ACBrNFSe1.NotasFiscais.Items[i].NomeArq;
        notasnfs_cstat.Value             := sstat;
//        notasnfs_lote.Value              := ACBrNFSe1.NotasFiscais.Items[i].NFSe.NumeroLote.ToInteger;
        notasnfs_dhrecebimento.Value     := ACBrNFSe1.NotasFiscais.Items[i].NFSe.DataEmissao;
        notas.Post;
        geralink();
    end;

  end;
end;

 

  • Consultores
Postado

Boa tarde,

Vamos enviar para o SVN uma alteração no que diz respeito ao retorno dos métodos.

Foi mudado muita coisa.

Infelizmente vai ocorrer quebra de código.

Algumas dessas informações como Numero do Lote, Protocolo que esta na classe NFSe foram removidas e passadas para a classe de resposta.

Por favor aguarde mais um pouco.

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

  • Administradores
Postado

Boa tarde.

Veja esta noticia 

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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á 1175 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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...