Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia...

Na Unit ACBRBancoBrasil, rotina FormataNossoNumero, 

 

if ((ACBrTitulo.Carteira = '16') or (ACBrTitulo.Carteira = '18')) and
        (Length(AConvenio) = 6) and (wTamNossoNum = 17) then
      ANossoNumero := PadLeft(ANossoNumero, 17, '0')
    else if Length(AConvenio) <= 4 then
      ANossoNumero := PadLeft(AConvenio, 4, '0') + PadLeft(ANossoNumero, 7, '0')
    else if (Length(AConvenio) > 4) and (Length(AConvenio) <= 6) then
      ANossoNumero := PadLeft(AConvenio, 6, '0') + PadLeft(ANossoNumero, 5, '0')
    else if (Length(AConvenio) = 7) then
      ANossoNumero := PadLeft(AConvenio, 7, '0') + RightStr(ANossoNumero, 10);

No meu caso, cairia nessa opção em negrito..

Convenio com 6 digitos..

aNossoNumero  ='0000000039871'
aConvenio = '691329'

o Acbr esta pegando os CINCO PRIMEIROS digitos do nosso numero , ou seja está pegando 5 zeros..
Ele não deveria pegar os 5 últimos pra compor o nosso numero corretamente ? ( RightStr(ANossoNumero, 5) ) ??

 

sds,

 

Postado

sim.. a remessa e o retorno funcionam..pois eu busco as duplicatas pelo numero de controle.. mas eu salvo essa informação do banco de dados.. e está salvando errado..posso alterar e enviar a alteração ?

Postado (editado)

Desta forma abaixo funcionou perfeitamente...

sds,

function TACBrBancoBrasil.FormataNossoNumero(const ACBrTitulo :TACBrTitulo): String;
var
  ANossoNumero, AConvenio: String;
  wTamNossoNum: Integer;
begin
  with ACBrTitulo do
  begin
    AConvenio    := ACBrBoleto.Cedente.Convenio;
    ANossoNumero := NossoNumero;
    wTamNossoNum := CalcularTamMaximoNossoNumero(Carteira,ANossoNumero);

    if ((ACBrTitulo.Carteira = '16') or (ACBrTitulo.Carteira = '18')) and
        (Length(AConvenio) = 6) and (wTamNossoNum = 17) then
      ANossoNumero := PadLeft(ANossoNumero, 17, '0')
    else if Length(AConvenio) <= 4 then
      ANossoNumero := PadLeft(AConvenio, 4, '0') + PadLeft(ANossoNumero, 7, '0')
    else if (Length(AConvenio) > 4) and (Length(AConvenio) <= 6) then
//      ANossoNumero := PadLeft(AConvenio, 6, '0') + PadLeft(ANossoNumero, 5, '0')
      ANossoNumero := PadLeft(AConvenio, 6, '0') + RightStr(ANossoNumero, 5)

    else if (Length(AConvenio) = 7) then
      ANossoNumero := PadLeft(AConvenio, 7, '0') + RightStr(ANossoNumero, 10);
  end;
  Result := ANossoNumero;
end;

Editado por LEANDRODOCOUTO
Postado
7 horas atrás, LEANDRODOCOUTO disse:

Desta forma abaixo funcionou perfeitamente...

sds,

function TACBrBancoBrasil.FormataNossoNumero(const ACBrTitulo :TACBrTitulo): String;
var
  ANossoNumero, AConvenio: String;
  wTamNossoNum: Integer;
begin
  with ACBrTitulo do
  begin
    AConvenio    := ACBrBoleto.Cedente.Convenio;
    ANossoNumero := NossoNumero;
    wTamNossoNum := CalcularTamMaximoNossoNumero(Carteira,ANossoNumero);

    if ((ACBrTitulo.Carteira = '16') or (ACBrTitulo.Carteira = '18')) and
        (Length(AConvenio) = 6) and (wTamNossoNum = 17) then
      ANossoNumero := PadLeft(ANossoNumero, 17, '0')
    else if Length(AConvenio) <= 4 then
      ANossoNumero := PadLeft(AConvenio, 4, '0') + PadLeft(ANossoNumero, 7, '0')
    else if (Length(AConvenio) > 4) and (Length(AConvenio) <= 6) then
//      ANossoNumero := PadLeft(AConvenio, 6, '0') + PadLeft(ANossoNumero, 5, '0')
      ANossoNumero := PadLeft(AConvenio, 6, '0') + RightStr(ANossoNumero, 5)

    else if (Length(AConvenio) = 7) then
      ANossoNumero := PadLeft(AConvenio, 7, '0') + RightStr(ANossoNumero, 10);
  end;
  Result := ANossoNumero;
end;

você passou pegar do a partir do final, será que não seria o caso de desprezar zeros antes?

Ou até mesmo você passar para o componente sem formatar os zeros antes... 

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