Ir para conteúdo
  • Cadastre-se

dev botao

TACBrCaixaEconomica implementação retorno c240


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

Recommended Posts

Olá Juliana,

Implementei o método TACBrCaixaEconomica.LerRetorno240 na classe TACBrCaixaEconomica.

ACBrCaixaEconomica.rar

Exemplo de uso:

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;

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

 

 

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Obrigada pela contribuição. Em breve estaremos disponibilizando 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

  • 2 meses depois ...

Olá Juliana,

Não sei quem alterou a função que eu fiz LerRetorno240, contudo parou de funcionar alguns pontos.

Refiz as correções, segue abaixo a função funcionando, testei agora:

ACBrCaixaEconomica.rar


procedure TACBrCaixaEconomica.LerRetorno240(ARetorno: TStringList);

var

  ContLinha: Integer;

  Titulo   : TACBrTitulo;

  Linha,

  rCedente,

  rCNPJCPF,

  rAgencia, rConta: String;

begin

   ContLinha := 0;


   if (copy(ARetorno.Strings[0],143,1) <> '2') then

      raise Exception.Create(ACBrStr(ACBrBanco.ACBrBoleto.NomeArqRetorno +

                             'não é um arquivo de retorno do '+ Nome));


   rCedente := trim(Copy(ARetorno[0],73,30));

   rAgencia := trim(Copy(ARetorno[0],53,5));

   rConta   := trim(Copy(ARetorno[0],59,6));




   ACBrBanco.ACBrBoleto.DataArquivo   := StringToDateTimeDef(Copy(ARetorno[1],192,2)+'/'+

                                                             Copy(ARetorno[1],194,2)+'/'+

                                                             Copy(ARetorno[1],198,2),0, 'DD/MM/YY' );


   ACBrBanco.ACBrBoleto.DataCreditoLanc := StringToDateTimeDef(Copy(ARetorno[1],200,2)+'/'+

                                                               Copy(ARetorno[1],202,2)+'/'+

                                                               Copy(ARetorno[1],204,2),0, 'DD/MM/YY' );

{

Tipo de Inscrição da Empresa ou Pessoa Física

Código que identifica o tipo de inscrição da Empresa ou Pessoa Física perante uma Instituição

governamental:

‘0’ = Não informado

‘1’ = CPF

‘2’ = CGC / CNPJ

‘9’ = Outros

}


   rCNPJCPF := trim( Copy(ARetorno[0],19,14)) ;


   case StrToIntDef(Copy(ARetorno[1],18,1),0) of

      1 : rCNPJCPF:= trim( Copy(ARetorno[1],19,14));

      2 : rCNPJCPF:= trim( Copy(ARetorno[0],19,14));

   else

      rCNPJCPF:= trim( Copy(ARetorno[0],19,14));

   end;



   with ACBrBanco.ACBrBoleto do

   begin

      Cedente.CNPJCPF       := rCNPJCPF;

      Cedente.Agencia       := rAgencia;

      Cedente.Conta         := rConta;


      if (not LeCedenteRetorno) and (rCNPJCPF <> OnlyNumber(Cedente.CNPJCPF)) then

         raise Exception.Create(ACBrStr('CNPJ\CPF do arquivo inválido: '+ rCNPJCPF + ' <> '+ Cedente.CNPJCPF));


      //if (not LeCedenteRetorno) and ((rAgencia <> OnlyNumber(Cedente.Agencia))) then

         //raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido '+rAgencia));



      Cedente.Nome          := rCedente;

      Cedente.AgenciaDigito := '0';


      case StrToIntDef(Copy(ARetorno[1],18,1),0) of

         1: Cedente.TipoInscricao:= pFisica;

         2: Cedente.TipoInscricao:= pJuridica;

         else

            Cedente.TipoInscricao := pOutras;

      end;


      ACBrBanco.ACBrBoleto.ListadeBoletos.Clear;

   end;


   for ContLinha := 1 to ARetorno.Count - 2 do

   begin

      Linha := ARetorno[ContLinha] ;


      if Copy(Linha,14,1)= 'T' then //segmento T - Só cria após passar pelo seguimento T depois U

      Titulo := ACBrBanco.ACBrBoleto.CriarTituloNaLista;


      with Titulo do

      begin


      if Copy(Linha,14,1)= 'T' then //segmento T

        begin

         SeuNumero                   := copy(Linha,59,11);

         NumeroDocumento             := copy(Linha,48,9);

         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;

         ValorRecebido        := StrToFloatDef(Copy(Linha,82,15),0)/100;

         NossoNumero          := copy( Copy(Linha,48,9),Length( Copy(Linha,48,9) )-TamanhoMaximoNossoNum  ,TamanhoMaximoNossoNum);

         Carteira             := Copy(Linha,40,2);


         end //if segmento

         else

      if Copy(Linha,14,1)= 'U' then //segmento U

        begin


         if StrToIntDef(Copy(Linha,138,6),0) <> 0 then

            DataOcorrencia := StringToDateTimeDef( Copy(Linha,138,2)+'/'+

                                                Copy(Linha,140,2)+'/'+

                                                Copy(Linha,142,4),0, 'DD/MM/YYYY' );


         if StrToIntDef(Copy(Linha,146,6),0) <> 0 then

            DataCredito:= StringToDateTimeDef( Copy(Linha,146,2)+'/'+

                                               Copy(Linha,148,2)+'/'+

                                               Copy(Linha,150,4),0, 'DD/MM/YYYY' );



         ValorIOF             := StrToFloatDef(Copy(Linha,63,15),0)/100;

         ValorAbatimento      := StrToFloatDef(Copy(Linha,48,15),0)/100;

         ValorDesconto        := StrToFloatDef(Copy(Linha,33,15),0)/100;

         ValorMoraJuros       := StrToFloatDef(Copy(Linha,18,15),0)/100;

         ValorOutrosCreditos  := StrToFloatDef(Copy(Linha,123,15),0)/100;

         ValorDespesaCobranca := StrToFloatDef(Copy(Linha,108,15),0)/100;

         ValorOutrasDespesas  := StrToFloatDef(Copy(Linha,108,15),0)/100;


        end;//if Copy(Linha,14,1)= 'U' then //segmento U



      end; //with



   end; //for


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

 

 

Link para o comentário
Compartilhar em outros sites

  • Administradores

OK Douglas...

Em breve suas correções estaram 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

  • 1 mês depois ...
  • Administradores

Bom dia.

Já estão no svn as correções enviadas por você.

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á 4706 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...