Ir para conteúdo
  • Cadastre-se

dev botao

Retornar Listagem Com Os Tipos De Ocorrências Remessa/retorno


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

Recommended Posts

Bom dia,

 

Gostaria de saber como se tem como eu recuperar a lista com os tipos de ocorrências (remessa/retorno).

 

Na parte de código abaixo, retirada do fonte "ACBrBoleto" existe as constantes, entretanto eu precisaria das descrições da mesma para disponibilizar ao usuário, assim ele escolhendo o que deseja fazer. É possível?

{Tipos de ocorrências permitidas no arquivos remessa / retorno}
  TACBrTipoOcorrencia =
  (
    {Ocorrências para arquivo remessa}
    toRemessaRegistrar,
    toRemessaBaixar,
    ... 
Editado por webjoel
Link para o comentário
Compartilhar em outros sites

Mas isto me retornará a descrição do retorno e não da remessa.

 

No momento de geração do arquivo, os classes dos bancos fazem isso (exemplo Bradesco):

{Pegando Código da Ocorrencia}
case OcorrenciaOriginal.Tipo of
    toRemessaBaixar : Ocorrencia := '02'; {Pedido de Baixa}
...

Eu queria uma forma de ter acesso a lista com as ocorrências e suas respectivas descrições de remessa. No caso ali no exemplo, tem um comentário dizendo o que ela é.

 

Neste momento estou implementando isso nos meus fontes, irei adaptar para o ACBrBoleto e disponibilizarei neste espaço para análise e inserção no fonte oficial.

Link para o comentário
Compartilhar em outros sites

Segue em anexo a alteração que fiz no fonte "ACBrBoleto.pas".

 

Eu criei uma nova classe ("TACBrOcorrenciaRemessa"), a populei, e criei um método que retorna um array da mesma.

 

Com isso tem como ser retornando pela função "GetOcorrenciasRemessa" as ocorrências disponíveis para remessa, com seu tipo e descrição.

 

Favor Administrador, validar e disponibilizar no fonte oficial se assim for aprovado.

 

Estou a disposição.

ACBr.rar

ACBr.rar

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa noite.

 

Para pegar a lista de ocorrências disponíveis basta implementar algo semelhante ao código abaixo em seu sistema

 

for I:= 0 bto High(TACBrTipoOcorrencia) - 1 do
    StringList1.Items.Add(GetEnumName(TypeInfo(TACBrTipoOcorrencia), integer(I)));
    
 

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

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa Noite.

 

Neste caso bastaria você mesmo colocar a descrição correta na função que você criar para ler os tipos de ocorrência.

 

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

Link para o comentário
Compartilhar em outros sites

Bom dia,

 

Sim, concordo, mas você chegou a conferir a alteração que sugeri no anexo do primeiro post? Assim disponibilizando no código fonte do componente e assim disponível para todos? Assim não necessitando de ser implementando nas aplicações.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa noite.

 

Após analisar seu código identifiquei que a implementação está gerando Memory Leak,  não seria mais simples devolver somente um StringList ou algo semelhante com as descrições das ocorrências?

 

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

Link para o comentário
Compartilhar em outros sites

Bom dia,

 

Realmente a implementação estava gerando memory leak, uma stringlist resolveria somente parte do problema, ou seja, me traria em formato string, entretanto acho mais interessante que fosse retornando um objeto com o tipo e a descrição.

 

Fiz uma nova implementação, segue em anexo para análise.

ACBr.rar

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Administradores

Suas alterações estão na fila para análise, favor observar as regras do fórum e evitar posts deste tipo.

 

 

^^

 

 

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

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Bom dia Juliana,

 

Tinha colocado como Resolvido este tópico sem testar, olhei o código fonte e compilei mentalmente, entretanto ao atualizar o componente e utilizar no meu sistema encontrei um problema, na função "GetOcorrenciasRemessa", linhas você deixou fixo no Result da array:

for I:= 1 to 38 do
begin
   Result[0].Tipo := TACBrTipoOcorrencia(I);
   Result[0].descricao := cACBrTipoOcorrenciaDecricao[i];
end;

enquanto que o correto deveria ser:

for I:= 1 to 38 do
begin
  Result[i-1].Tipo := TACBrTipoOcorrencia(I);
  Result[i-1].descricao := cACBrTipoOcorrenciaDecricao[i];
end;
Editado por webjoel
Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

 

Você tem razão, irei subir o ajuste no próximo comit.

 

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

Link para o comentário
Compartilhar em outros sites

  • Administradores
  • Solution

Boa noite.

 

Correção disponível no svn.

 

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

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...

Amigos, bom dia!

Tem mais uma correção para ser feita:

function TACBrBoleto.GetOcorrenciasRemessa: TACBrOcorrenciasRemessa;
var I: Integer;
begin
  SetLength(Result, 38);

  for I:= 1 to 38 do
  begin
    Result[I-1].Tipo := TACBrTipoOcorrencia(I-1);
    Result[I-1].descricao := cACBrTipoOcorrenciaDecricao;
  end;
end;

O array com os tipos de ocorrência começa do zero, então não estava batendo com as descrições. 

Disponibilize no SVN por favor 

Abraço.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá webjoel,

Aproveitando para alertar, os arquivos postados estão errados, não compila. O nr de elementos no array é 179 mas vc baixou o nr na declaração dele para 178.

Eu estava vendo uma questão no Sicred e esbarrei neste post... então não validei o restante da lógica pois não estou usando no momento. 


Abraço!

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Olá webjoel,

Aproveitando para alertar, os arquivos postados estão errados, não compila. O nr de elementos no array é 179 mas vc baixou o nr na declaração dele para 178.

Eu estava vendo uma questão no Sicred e esbarrei neste post... então não validei o restante da lógica pois não estou usando no momento. 


Abraço!

Com certeza a juliana vai testar e validar antes de subir ao svn

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Já inicie os testes com esse código e conforme relatado pelo Thiago não está sendo possível compilar, falta somente identificar o problema.

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

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Este tópico foi criado há 3110 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...