Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Olá Juliana,

Implementei o método TACBrBancoob.LerRetorno400 na classe TACBrBancoob.

ACBrBancoob.rar

Necessário alteração na unit ACBrBoleto.pas em:

procedure TACBrBoleto.LerRetorno( ) ;

400 :

begin

//Alterado de if Copy(SlRetorno.Strings[0],1,9) <> '02RETORNO01COBRANCA' then para o abaixo, sicoob coloca cobrança com Ç

if Copy(SlRetorno.Strings[0],1,9) <> '02RETORNO' then

Raise Exception.Create( ACBrStr( NomeArq + sLineBreak +

'Não é um arquivo de Retorno de cobrança com layout CNAB400'));

LayoutRemessa := c400 ;

end;

ACBrBoleto.rar

Exemplo do uso:


procedure TFPRetorno.butLerRetornoClick(Sender: TObject);

var oRetorno  : Tretorno_banco;

    oParcela  : Tparcelas;

    I        : Integer;

begin


     txtRelatorioRetorno.Clear;

     //Configurar banco

     ACBrBoleto1.Banco.Numero := DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger;


     with ACBrBoleto1.Cedente do

       begin

         Nome                 := DMEmpresa.ClientDataSet1EMPRESA.AsString;

         Agencia              := DMEmpresa.ClientDataSet2AGENC_BANCO.AsString;

         AgenciaDigito        := DMEmpresa.ClientDataSet2DIGITO_AGENC_BANCO.AsString;

         CodigoCedente        := DMEmpresa.ClientDataSet2COD_CEDENTE.AsString;

         Conta                := DMEmpresa.ClientDataSet2NUM_CONTA_BANCO.AsString;

         ContaDigito          := DMEmpresa.ClientDataSet2DIGITO_CONTA_BANCO.AsString;


         if ( Length(DMEmpresa.ClientDataSet2MODALIDADE.AsString) > 0) then

         Modalidade           := DMEmpresa.ClientDataSet2MODALIDADE.AsString;


         if ( Length(DMEmpresa.ClientDataSet2CONVENIO.AsString) > 0) then

         Convenio             := DMEmpresa.ClientDataSet2CONVENIO.AsString;


       end;

      ACBrBoleto1.NomeArqRetorno := txtNomeArquivoRetorno.Text;

      ACBrBoleto1.LerRetorno;

      for I := 0 to ACBrBoleto1.ListadeBoletos.Count-1 do

      begin


        try

        oParcela              := Tparcelas.Create;

        oParcela.NOSSO_NUMERO := ACBrBoleto1.ListadeBoletos.Objects[I].NossoNumero;

        if ( Length(oParcela.NOSSO_NUMERO) > 0) then

        oParcela.Consultar;

        finally

        oParcela.Free;

        end;

        if (DMParcela.ClientDataSet1.IsEmpty) then

        txtRelatorioRetorno.Lines.Add(ACBrBoleto1.ListadeBoletos.Objects[I].NossoNumero + ' -  Não encontrado')

        else

        begin


        try

        oRetorno                      := Tretorno_banco.Create;

        oRetorno.COD_PARCELA          := DMParcela.ClientDataSet1COD_PARCELA.AsInteger;

        oRetorno.VALOR_DESPESA        := ACBrBoleto1.ListadeBoletos.Objects[I].ValorDespesaCobranca;

        oRetorno.VALOR_DOC            := ACBrBoleto1.ListadeBoletos.Objects[I].ValorDocumento;

        oRetorno.VALOR_CREDITO        := ACBrBoleto1.ListadeBoletos.Objects[I].ValorRecebido;

        oRetorno.DAT_OCORRENCIA       := FormatDateTime('dd/mm/yyyy',  ACBrBoleto1.ListadeBoletos.Objects[I].DataOcorrencia );

        oRetorno.TIPO_OCORRENCIA      := 'Liquidação Sem Registro';

        oRetorno.OCORRENCIA_ORIGINAL  := '05';

        oRetorno.NOSSO_NUMERO         := StrToInt(ACBrBoleto1.ListadeBoletos.Objects[I].NossoNumero);

        oRetorno.SITUACAO             := 'Lido';

        oRetorno.Cadastrar;

        ORetorno.Consultar;


        finally

        oRetorno.Free;

        end;


        end; //else



      end;


end;

Douglas Tybel
______________________________

Analista de Sistemas

Engenharia Sistemas + Docencia Ensino Sup.
(027) 9937-9892

[email protected]

www.efetivavirtual.com.br

http://lattes.cnpq.br/3773737072791368

http://www.facebook.com/EfetivaServicosTecnologia

 

 

  • Administradores
Postado

Bom dia Douglas.

Obrigada pela contribuição, assim que possivel, disponibilizaremos sua atualização.

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

  • 2 semanas depois ...
  • Administradores
Postado

Bom dia Douglas.

Estava trabalhando em outras alterações no ACBrBoleto e também vou aproveitar para aacrescentar as alterações envidas recentemente, porém esta semana ja estará disponivel 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 !!

  • 1 mês depois ...
Postado

Caro, amigo.

Estou tentando usar teu exemplo para ler arquivo de retorno do banco itau, e tive alguns problemas, criei um projeto novo

e add os componentes acbrboleto, porem tenho tido erro nas linhas: oretorno : Tretorno_banco; tem como me explicar mais detalhadamente?

abraços.

Thiago Gobatti

Postado

depois de muito quebrar a cabeça estou tendo o seguinte problema:

quando vou ler o arquivo de retorno tenho problema nesta linha

Result := StringToDateTime( DateTimeString, Format ) ;

o programa esta lendo o campo data recebimento 00/00/0000

o cnpj no componente formata com ponto e barra na validação de dados pede apenas numeros.

function TACBrValidador.Validar : Boolean;

tive que desativar esta funcao para pode ler normalmente o arquivo de retorno.

abraços

Postado

Caro, amigo.

Estou tentando usar teu exemplo para ler arquivo de retorno do banco itau, e tive alguns problemas, criei um projeto novo

e add os componentes acbrboleto, porem tenho tido erro nas linhas: oretorno : Tretorno_banco; tem como me explicar mais detalhadamente?

abraços.

Thiago Gobatti

Essa classe Tretorno_banco é uma que eu criei para representar minha tabela onde guardo os registros de retorno do banco.

No seu caso vc pode ir alimentando sua tabela de retorno, não precisa usar essa classe que cada um terá diferenciado.

Entendeu ?

UCLretorno_banco.pas

Douglas Tybel
______________________________

Analista de Sistemas

Engenharia Sistemas + Docencia Ensino Sup.
(027) 9937-9892

[email protected]

www.efetivavirtual.com.br

http://lattes.cnpq.br/3773737072791368

http://www.facebook.com/EfetivaServicosTecnologia

 

 

Postado

Obrigado Douglas.

Consegui depois de muito tentar, criei uma variavel e joguei os dados em uma tabela temp depois de formatar os dados

e pedir a aceitação do usuario, ai sim grava os boletos pagos no banco de dados.

agora estou com um problemao, o campo data baixa vem zerado assim 00/00/00 e o cnpj o componente de boleto quando

vc informa o cnpj ele formata e o validador que tem no campo nao aceita formataçao so numeros.

quando vou ler o arquivo de retorno tenho problema nesta linha

Result := StringToDateTime( DateTimeString, Format ) ;
o programa esta lendo o campo data recebimento 00/00/0000 o cnpj no componente formata com ponto e barra na validação de dados pede apenas numeros.
function TACBrValidador.Validar : Boolean; 

tive que desativar esta funcao para pode ler normalmente o arquivo de retorno.

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