Ir para conteúdo
  • Cadastre-se

dev botao

Ajuste na baixa da CEF CNAB 240


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

Recommended Posts

Pessoal, eu abri este tópico para a gente discutir uma melhoria no retorno da CEF, referente a posição 214 do tipo T, no padrão CNAB 240.
O arquivo do layout podem pegar aqui http://www.caixa.gov.br/downloads/cobranca-caixa-manuais/LEIAUTE_CNAB_240_SIGCB_COBRANCA_CAIXA.pdf

O campo na posição 214 serve é para Motivo da Ocorrência Identificação para Rejeições, Tarifas, Custas, Liquidação e Baixas, tem 10 posições e a tabela referência dele é a *C047.
Porém o ACBR utiliza os valores de forma genérica, para o código de Liquidação não validando o Código de movimento retorno, que vem na posição 16.

O correto seria validar os valores da C047, conforme o registro 07.3T, da posição 16.

Exemplo:
No meu arquivo vem: 020102, e o item na posição 16 é 06
Atualmente o resultado do ACBR é: 02-Casa Lotérica,01 - Outros Motivos,02-Casa Lotérica
Entendo que deveria ser: 02-Casa Lotérica,01 - Dinheiro

Pois o segundo item está vinculado C047, item D, que diz:

D - Para as liquidações associadas aos códigos 02, 03 e 08 (posição 216)
Somente não sei para que serve o último 02.

Meu raciocino está certo, ou estou entendendo errado? 

Fonte abaixo aonde é verificado este itens:

CodigoLiquidacao     := Copy(Linha,214,02);
CodigoLiquidacaoDescricao := CodigoLiquidacao_Descricao( StrToIntDef(CodigoLiquidacao,0) );

// prevenir quando o seunumero não vem informado no arquivo
wSeuNumero := StringReplace(SeuNumero, '0','',[rfReplaceAll]);
if (AnsiSameText(wSeuNumero, EmptyStr)) then
begin
  SeuNumero := NossoNumero;
  NumeroDocumento := NossoNumero
end;            

MotivoLinha := 214;

for I := 0 to 4 do
begin
  CodMotivo := StrToIntDef(IfThen(Copy(Linha, MotivoLinha, 2) = '00', '00', Copy(Linha, MotivoLinha, 2)), 0);

  if CodMotivo <> 0 then
  begin
	MotivoRejeicaoComando.Add(IfThen(Copy(Linha, MotivoLinha, 2) = '00', '00', Copy(Linha, MotivoLinha, 2)));
	DescricaoMotivoRejeicaoComando.Add(CodMotivoRejeicaoToDescricao(OcorrenciaOriginal.Tipo, CodMotivo));
  end;

  MotivoLinha := MotivoLinha + 2; // Incrementa a coluna dos motivos.
end;

 

Link para o comentário
Compartilhar em outros sites

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