Ir para conteúdo
  • Cadastre-se

dev botao

Calculo DAC para Carteira 112 Itaú


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

Recommended Posts

Estava trabalhando com o componente ACBrBoleto para o banco itaú e me deparei com a seguinte situação:

Mandei o arquivo de remessa para o banco com todos os dados corretamente, no retorno o banco disponibilizou um PDF para mim, no qual o DAC do "Nosso Número" veio como 6, e no gerado pelo sistema estava como 8. Consultei o suporte do banco e ele me informou que no caso da carteira '112' (que é o meu caso) a impressão do boleto é pelo banco e não pela empresa e nisso é desconsiderado a agencia e a conta na hora do calculo do DAC.

Tomei a liberdade a alterei o código fonte na parte onde é feito a montagem da string para se fazer o calculo do digito verificador

antes estava assim

function TACBrBancoItau.CalcularDigitoVerificador(const ACBrTitulo: TACBrTitulo ): String;

var

  Docto: String;

begin

   Result := '0';

   Docto := '';


   with ACBrTitulo do

   begin

     Docto := Carteira + padR(NossoNumero,TamanhoMaximoNossoNum,'0');

     if not ((Carteira = '126') or (Carteira = '131') or (Carteira = '146') or

             (Carteira = '150') or (Carteira = '168')) then

         Docto := ACBrBoleto.Cedente.Agencia + ACBrBoleto.Cedente.Conta + docto

     else

       Docto := ACBrTitulo.ACBrBoleto.Cedente.Agencia +

                ACBrTitulo.ACBrBoleto.Cedente.Conta +

                ACBrTitulo.Carteira +

                padR(ACBrTitulo.NossoNumero,TamanhoMaximoNossoNum,'0')

   end;


   Modulo.MultiplicadorInicial := 1;

   Modulo.MultiplicadorFinal   := 2;

   Modulo.MultiplicadorAtual   := 2;

   Modulo.FormulaDigito := frModulo10;

   Modulo.Documento:= Docto;

   Modulo.Calcular;

   Result := IntToStr(Modulo.DigitoFinal);


end;
com minha alteração ficou assim:
function TACBrBancoItau.CalcularDigitoVerificador(const ACBrTitulo: TACBrTitulo ): String;

var

  Docto: String;

begin

   Result := '0';

   Docto := '';


   with ACBrTitulo do

   begin

      Docto := Carteira + padR(NossoNumero,TamanhoMaximoNossoNum,'0');

      if not (Carteira = '112') then

        if not ((Carteira = '126') or (Carteira = '131') or (Carteira = '146') or

               (Carteira = '150') or (Carteira = '168')) then

           Docto := ACBrBoleto.Cedente.Agencia + ACBrBoleto.Cedente.Conta + docto

        else

           Docto := ACBrTitulo.ACBrBoleto.Cedente.Agencia +

                    ACBrTitulo.ACBrBoleto.Cedente.Conta +

                    ACBrTitulo.Carteira +

                    padR(ACBrTitulo.NossoNumero,TamanhoMaximoNossoNum,'0')

   end;


   Modulo.MultiplicadorInicial := 1;

   Modulo.MultiplicadorFinal   := 2;

   Modulo.MultiplicadorAtual   := 2;

   Modulo.FormulaDigito := frModulo10;

   Modulo.Documento:= Docto;

   Modulo.Calcular;

   Result := IntToStr(Modulo.DigitoFinal);


end;

Obrigado pela atenção de vocês!

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Por favor, anexe aqui a sua unit por favor.

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 semanas depois ...
  • 2 semanas depois ...
  • Administradores

Boa tarde.

A alteração foi implementada.

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