Ir para conteúdo
  • Cadastre-se

dev botao

Motivo da Ocorrencia CNAB400


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

Recommended Posts

Olá a todos venho aqui mais uma vez solicitar uma ajuda.

Eu estou implementando o ACBrBoleto e detectei um problema, segundo os manuais do CNAB400 de alguns bancos como Itaú e Bradesco para cada Ocorrência pode existir Bradesco(até 5 motivos) e Itaú(até 4 motivos) e o ACBrBoleto só pega o 1º motivo.

Eu fiz a seguinte alteração no ACBrBoleto:

Eu mudei o tipo do atributo MotivoRejeicaoComando e DescricaoMotivoRejeicaoComando de String para TStrings para poder armazenar mais de um motivo.

Na implementação eu esbarrei em um outro problema, no arquivo de retorno quando um registro não possui ocorrência é informado zeros (00) para a coluna motivos, e existe ocorrências que possuem motivos '00' como as ocorrências do Bradesco 02, 09, 10, 15, 17, as outras ocorrências não possuem.

Logo o valor '00' tem duas funções:

Para registros sem ocorrencias não existirá motivos então ele preenche com '00' os motivos;

Para os registros com ocorrências que existam motivos 00 ele informa '00'.

Para as outras ocorrências que houver pelo menos um motivo ele informara o primeiro motivo e os outros 4 motivos que não vai existir ele vai colocar como '00'.

Exemplo: Uma ocorrencia 32 do bradesco que existe 3 motivos ele informará desta forma (3948500000) sendo motivo 39,48 e 50 e para completar os outros motivos que não existem ele informa '00' duas vezes assim completando o campo de 10 digitos dos motivos.

Ai que esta a bagunça, no componente isso esta virando uma bagunça para controlar.

O trecho do código da implementação é o seguinte:

MotivoLinha := 319; //Muda o valor da coluna do motivo para pegar todos os motivos.

for i := 0 to 4 do

begin

//MotivoRejeicaoComando.Add(copy(Linha,MotivoLinha,2));

MotivoRejeicaoComando.Add(IfThen(copy(Linha,MotivoLinha,2) = '00',

'00',copy(Linha,MotivoLinha,2)));

if MotivoRejeicaoComando <> '00' then

begin

CodOCorrencia:= StrToIntDef(MotivoRejeicaoComando,0) ;

DescricaoMotivoRejeicaoComando.Add(CodMotivoRejeicaoToDescricao(

OcorrenciaOriginal.Tipo,CodOCorrencia));

end

else

DescricaoMotivoRejeicaoComando.Add('');

MotivoLinha := MotivoLinha + 2;

end;

Alguem tem alguma sugestão, uma forma melhor de controlar?

Obrigado.

Att.

Carlos Fitl

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Administradores

Boa tarde Carlos.

Estive consultando o manual do Bradesco como base para sua questão, e nas posições 109 e 110 estão os códigos de ocorrência que serão 00 caso não seja nenhum da lista do manual do banco.

Podemos confirmar com o suporte do bradesco, porém acredito que se nas posições 319 a 318 se as posições com "00" estiverem no final é pq não correspondem a motivo nenhum...como no seu exemplo.

Eu acredito que vc deveria checar apenas as posições da coluna 109 e 110 se elas forem diferente de "00" então faz operação para pegar as descrições.

MotivoRejeicaoComando := copy(Linha,319,2);

if MotivoRejeicaoComando <> '00' then

MotivoLinha := 319; //Muda o valor da coluna do motivo para pegar todos os motivos.

for i := 0 to 4 do

begin

//MotivoRejeicaoComando.Add(copy(Linha,MotivoLinha,2));

MotivoRejeicaoComando.Add(IfThen(copy(Linha,MotivoLinha,2) = '00',

'00',copy(Linha,MotivoLinha,2)));

....

Ainda preciso olhar os manuais dos outros bancos...mas para o Bradesco eu acho que isso resolve

At

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

  • Solution

Ok Juliana, eu implementei o ACBrBoleto desta forma como você descreveu, eu fiz a implementação no ACBrBancoBradesco e ACBrBancoItau para receberem mais de um motivo.

E eu postei no Mantis e aqui no fórum no post viewtopic.php?f=11&t=585 é o último post.

Att.

Carlos Fitl.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia Carlos.

Hoje mesmo estarei analisando as alterações e assim que acabar postarei 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

  • Administradores

Olá novamente Carlos.

Vc fez a alteração nas propriedades do ACBrBoleto também para a propriedade MotivoRejeicaoComando?...acredito que faltou vc anexar nos fontes a unit acbrboleto.pas...

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

Olá Carlos.

Os arquivos que vc me enviou são .cdu ...

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

Sem problemas Carlos...já estou implementando as alterações restantes.

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

Já estão no svn as alterações enviadas por vc.

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

Olá Juliana, eu acabei de atualizar o componente e via as alterações, mas meu sobrenome é FITL e não FITTI, rsrsrs.

Eu estou acompanhando outro usuário que esta implementando o retorno do Banco do Brasil e assim que terminar as alterações vou solicitar para ele enviar aqui no fórum ou no mantis.

Obrigado.

Att.

Carlos Fitl.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Ok Carlos...

Me desculpe pelo erro no seu sobrenome...rs...já estou corrigindo.

Quanto as alterações do BB estarei aguardando.

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

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