Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Pessoal,  boa tarde!

Estou testando a leitura de Retorno da Caixa Federal pelo ACBRBoleto, mas estou com problema para ler alguns campos:

Os campos de valor recebeido e data crédito eu consigo ler, mas os campos nosso numero e número do documento eu não consigo ler....alguém pod eme ajudar?

Anexo está o arquivo que estou lendo se alguém puder dar uma olhada fico agradecido..

Alterei a extensão do arquivo para .txt para poder anexar...mas a extensão original é .retA01021301.txt

 

Att,

 

Nebrio

 

 

  • Administradores
Postado

Boa tarde.

 

A caixa possui duas units diferentes, uma para a cobrança SIGCB  e outra para o SICOB, certifique-se de ter escolhido o tipo de cobrança correto...

 

SIGCB = cobCaixaEconomica,

SICOB = cobCaixaEconomicaSicob

 

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

  • Membros Pro
Postado (editado)

Juliana, bom dia!

Estou usando a cobCaixaEconomica mesmo.....

 

 

 

Dei uma olhada na Unit da CaixaEconomica e vi o seguinte no código de Leitura do Retorno....

 

with Titulo do
begin
{Segmento T}
if Copy(Linha,14,1)= 'T' then
begin
SeuNumero := copy(Linha,59,11);
NumeroDocumento := copy(Linha,59,11);
OcorrenciaOriginal.Tipo := CodOcorrenciaToTipo(StrToIntDef(
copy(Linha,16,2),0));
//05 = Liquidação Sem Registro
Vencimento := StringToDateTimeDef( Copy(Linha,74,2)+'/'+
Copy(Linha,76,2)+'/'+
Copy(Linha,78,2),0, 'DD/MM/YY' );

ValorDocumento := StrToFloatDef(Copy(Linha,82,15),0)/100;
ValorDespesaCobranca := StrToFloatDef(Copy(Linha,199,15),0)/100;
NossoNumero := Copy(Linha,40,11);
Carteira := Copy(Linha,40,2);

end

 

olhando o layout da Caixa http://downloads.cai...240__SIGCB.PDF�

notei que o campo NossoNumero está copiando 11 digitos a partir do 40, mas no layout são 15 digitos a partir do 42....

Não entendo muito disso pessoal é apenas o que estou vendo...se estiver falando besteira alguém me corrija....

E se tiver alguém que já utiliza o retorno da Caixa Federal e puder me auxiliar ficarei grato.....

 
Alterei a unit para Copiar o NossoNumero := Copy(linha,42,15); e me mostrou o número correto....
será que pode estar o layout de leitura com algum problema?

 

Att,

Editado por nebrio
  • Administradores
Postado

Bom dia.

 

Realmente em comparação entre o fonte oque diz o manual, existe a necessidade de um ajuste, se desejar efetue a correção e tente ler novamente seu arquivo de retorno, de ser certo anexe a unit alterada aqui.

 

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

Postado

Olá é o seguinte é que a caixa retorna os retornos em formato SICOB mesmo o boleto tenque ser impresso em caixa eciomica e o retorno lido em SICOB.

Estou com este mesmo problema e em formato SICOB se vc nao colocar tamanho maximo do nosso numeor voltara em branco tb.

  • Administradores
Postado

Boa tarde.

 

Não entendi a questão do voltar em branco se o TamMaximo do nosso número não for especificado...

 

Quanto ao retorno, existem 2 manuais distintos para SICOB e SIGCB, por favor confirme com o banco a questão de um único retorno, pois  é estranho  existirem dois manuais distintos sendo que apenas um é válido.

 

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

  • Membros Pro
Postado

Juliana, quanto aos manuais, até onde sei o SICOB é uma entidade vinculada a Caixa, porém, seus layouts são diferentes mesmo.

Quanto a colocação do colega Maicon, que mesmo que façamos a remessa como SIGCB o retorno vem como SIGCOB não sei dizer....

Essa noite estarei analisando a unit CaixaEconomica a fundo e testarei com os arquivos de retorno que tenho, mas o manual realmente são dois...

Att,

Postado

Bom eu corrigi a unit do retorno caixa com mudado as posições do nosso numero e da data do vencimento... E quanto ao SICOB sim se não colocar o numero maximo do Nosso numero o nosso numero vem embranco devido a uma conta maulca que colocarão la no codigo. veja

 

Que na verdade até agora não descobri pra que esta conta ai!
 
Unit ACBrCaixaEconomicaSICOB
 
            NossoNumero := Copy(Copy(Linha,47,10), // sem o DV
                                Length(Copy(Linha,47,10))-TamanhoMaximoNossoNum ,
                                TamanhoMaximoNossoNum);
  • Administradores
Postado

Bom dia.

 

Olhando rapidamente no manual realmente a conta é desnecessária, se desejar, efetue os ajustes e anexe aqui o fonte corrigido.

 

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

Postado

Aproveitando o tópico segue as correções que fiz para ajustar a leitura do arquivo de retorno SIGCB:

 

unit ACBrCaixaEconomica;

 

procedure TACBrCaixaEconomica.LerRetorno240(ARetorno: TStringList);

 

 

 
         {Segmento T}
         if Copy(Linha,14,1)= 'T' then
          begin
            SeuNumero                   := copy(Linha,59,11);
            NumeroDocumento             := copy(Linha,59,11);
            OcorrenciaOriginal.Tipo     := CodOcorrenciaToTipo(StrToIntDef(
                                        copy(Linha,16,2),0));
 
             //05 = Liquidação Sem Registro
             Vencimento := StringToDateTimeDef( Copy(Linha,74,2)+'/'+
                                                Copy(Linha,76,2)+'/'+
-                                               Copy(Linha,78,2),0, 'DD/MM/YY' );
+                                               Copy(Linha,80,2),0, 'DD/MM/YY' );
 
             ValorDocumento       := StrToFloatDef(Copy(Linha,82,15),0)/100;
             ValorDespesaCobranca := StrToFloatDef(Copy(Linha,199,15),0)/100;
-            NossoNumero          := Copy(Linha,40,11);
+            NossoNumero          := Copy(Linha,42,15);
             Carteira             := Copy(Linha,40,2);
 
           end
  • Administradores
Postado

Bom dia.

 

Por favor anexe a unit alterada aqui.

 

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

  • 3 semanas depois ...
  • Administradores
Postado

Boa tarde.

 

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

  • 10 meses depois ...
Postado

Obrigado!

Sou iniciante no Delphi. Nos meus estudos eu achei bem interessante trabalhar com arquivos de retorno.

 

Alguem poderia me ensinar como eu utilizo esse arquivo "ACBrCaixaEconomica.pas" em uma aplicação?

 

Eu irei utilizar somente como uma função?

 

Se sim... como irei fazer esses chamos para receber as informação dos arquivos de retorno?

 

 

Caso alguém possa tirar minha duvida, eu fico grato!!

  • Curtir 1
Postado

No método alterado no tópico acima, você não tem acesso a ele e sim só o componente acbrboleto...

 

Baixe o projeto todo, e veja os exemplos que estão prontos la...

---------------------------------------------------------

Att. 

Oneide Luiz Schneider
Analista/Desenvolvedor de Software
Itapiranga/Maravilha - SC
(49) 99367442
  • 2 anos depois...
Postado

Boa tarde Galera

Recentemente fui integrar o retorno da caixa padrão SICOB e tive que fazer alguns ajustes. Vou detalhar o que fiz para que ficasse correto o retorno.

Primeiramente eu comentei a linha: 1224 e 1225 poi o tamanho máximo do nosso número já vem preenchido quando se aponta o tipo de cobrança: "ACBrBanco.TamanhoMaximoNossoNum := CalcularTamMaximoNossoNumero(Carteira, '', ACBrBanco.ACBrBoleto.Cedente.Convenio);" o campo "Carteira" vinha com valor 0 e zerava o tamanho máximo (que na minha opinião já que esta vindo preenchido pelo fato de definirmos o banco não precisaria fazer novos cálculos).

Na linha 1230 (como nosso amigo Maicon Luis Ferreira mencionou) também não vi necessidade de se fazer cálculo para pegar o nosso número; então comentei e substituir por: NossoNumero      := Copy(Linha,46,12); // com o DV

E por fim o valor Recebido estava vindo com o mesmo valor do título. Ajustei para: ValorRecebido := StrToFloatDef(Copy(Linha,93,15),0)/100;  e agora está acrescentando o juros e descontando os custos do valor do boleto.

Vou anexar 2 arquivos de retorno e a unit alterada para sua validação Juliana.

Espero ter contribuído. 

cob2501000.ret

ret1585.ret

ACBrBancoCaixaSICOB.pas

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