Jump to content

Compre o Delphi
Com até 30% de desconto
e parcelado em até 12x sem juros

Saiba Mais

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Recommended Posts

15 horas atrás, ssouzaacbr disse:

percebi que vc alterou essa linha (a baixo), sendo que no manual pede que o nosso numero tenha 9 posições, é isso mesmo?  

fpTamanhoMaximoNossoNum := 8; // 9 posicoes com o digito pagina 20 do manual ex: (XXX XXXXX X);

poderia citar o trecho de código que você alterou para resolver essa questão do numero a mais no arquivo de remessa?

 

Obrigado Lowry...

essa linha não fui eu que alterei, já herdei essa Unit alterada nesse ponto :)
minhas alterações foram para os campos da agencia que no meu caso começavam com 0...

aconselho a pegar essa Unit e tentar a homologação.

Share this post


Link to post
Share on other sites

Bom dia Lowry, usei a sua Unit mas mesmo assim, ele adiciona um número a mais na posição 71, nas posições 63 a 71 deveria ser usada pelo Nosso Número, vou tentar descobrir o motivo..

Share this post


Link to post
Share on other sites
11 minutos atrás, ssouzaacbr disse:

Bom dia Lowry, usei a sua Unit mas mesmo assim, ele adiciona um número a mais na posição 71, nas posições 63 a 71 deveria ser usada pelo Nosso Número, vou tentar descobrir o motivo..

no final do nosso numero o componente gera o digito verificador, estou trabalhando utilizando ele, então nas minhas configurações eu comecei com o nosso numero setado em 1.

Edited by Lowry David da Silva Pereira Reis

Share this post


Link to post
Share on other sites

você alterou alguma coisa no arquivo ACBrBoleto.pas?

se eu alterar o tamanho do nosso numero para 8 ele para nesse trecho:

 

procedure TACBrTitulo.SetNossoNumero ( const AValue: String ) ;
var
   wTamNossoNumero: Integer;
   wNossoNumero: String;
begin
   wNossoNumero:= OnlyNumber(AValue);
   with ACBrBoleto.Banco do
   begin
      wTamNossoNumero:= CalcularTamMaximoNossoNumero(Carteira, wNossoNumero,
                                                     ACBrBoleto.Cedente.Convenio);

      if Length(trim(wNossoNumero)) > wTamNossoNumero then
         raise Exception.Create( ACBrStr('Tamanho Máximo do Nosso Número é: '+ IntToStr(wTamNossoNumero) ));

      fNossoNumero := PadLeft(wNossoNumero,wTamNossoNumero,'0');
   end;
end;
 

 

Share this post


Link to post
Share on other sites
17 minutos atrás, ssouzaacbr disse:

você alterou alguma coisa no arquivo ACBrBoleto.pas?

se eu alterar o tamanho do nosso numero para 8 ele para nesse trecho:

 

procedure TACBrTitulo.SetNossoNumero ( const AValue: String ) ;
var
   wTamNossoNumero: Integer;
   wNossoNumero: String;
begin
   wNossoNumero:= OnlyNumber(AValue);
   with ACBrBoleto.Banco do
   begin
      wTamNossoNumero:= CalcularTamMaximoNossoNumero(Carteira, wNossoNumero,
                                                     ACBrBoleto.Cedente.Convenio);

      if Length(trim(wNossoNumero)) > wTamNossoNumero then
         raise Exception.Create( ACBrStr('Tamanho Máximo do Nosso Número é: '+ IntToStr(wTamNossoNumero) ));

      fNossoNumero := PadLeft(wNossoNumero,wTamNossoNumero,'0');
   end;
end;
 

 

não mexi no acbrboleto, apenas no ACBrBancoSafra, como tenho clientes em vários bancos, não posso fazer uma alteração no acbrboleto, isso pode provocar erros nos outros.

Edited by Lowry David da Silva Pereira Reis

Share this post


Link to post
Share on other sites

para ele não acrescentar mais o digito verificador na posição 71, seria só alterar essa linha:

              IfThen(NossoNumero = '000000000', '000000000',
                                 PadLeft(RightStr(NossoNumero,8),8,'0') +
                                 CalcularDigitoVerificador(ACBrTitulo)) +                      //  63 a  71 - Número do título no banco
 

se remover esse  CalcularDigitoVerificador(ACBrTitulo)) deve funcionar preciso só ver qual o impacto dessa remoção..

Share this post


Link to post
Share on other sites

alterei assim:

    wLinha := '1'                                                                            + //   1 a   1 - Identificação do Registro de Transação
              tipoInscricao                                                                  + //   2 a   3 - Tipo de Inscrição da Empresa
              PadLeft(OnlyNumber(ACBrBoleto.Cedente.CNPJCPF), 14, '0')                       + //   4 a  17 - Número da Inscrição da Empresa
              aAgencia + aConta                                                              + //  18 a  31 - Identificação da Empresa no Banco
              Space(6)                                                                       + //  32 a  37 - "Brancos"
              PadRight(NumeroDocumento,25)                                                   + //  38 a  62 - Uso exclusivo da Empresa
              IfThen(NossoNumero = '000000000', '000000000',
                                 PadLeft(RightStr(NossoNumero,TamanhoMaximoNossoNum),TamanhoMaximoNossoNum,'0')) +
                                 //CalcularDigitoVerificador(ACBrTitulo)) +                      //  63 a  71 - Número do título no banco
              Space(30)                                                                      + //  72 a 101 - "Brancos"
              '0'                                                                            + // 102 a 102 - Código de IOF sobre Operações de Seguro
              '00'                                                                           + // 103 a 104 - Identificação do Tipo de Moeda, 00=Real
              Space(1)                                                                       + // 105 a 105 - "Branco"
              IntToStrZero(StrToIntDef(Instrucao3,0), 2)                                     + // 106 a 107 - Terceira Instrução de Cobrança. Utilizar somente quando Instrução2 é igual a 10
              Carteira                                                                       + // 108 a 108 - Identificação do Tipo de Carteira
              Ocorrencia                                                                     + // 109 a 110 - Identificação do Tipo de Ocorrência
 

Conseguiu preencher corretamente, vou enviar para homologação..

ficou assim: 001143055, ele removeu o digito verificador e inseriu o zero a esquerda

Share this post


Link to post
Share on other sites

Boa noite, conseguiu concluir a sua homologação?  no meu caso já estou nos últimos ajustes, o boleto já está ok, só falta um ajuste na remessa, eles pediram para armazenar o percentual da multa e não o valor na posição 212 a 2016 ainda não descobri aonde posso alterar mas amanhã bato mais cabeça....se souber de alguma coisa e puder compartilhar te agradeço...

Share this post


Link to post
Share on other sites
Em 23/10/2019 at 17:14, Lowry David da Silva Pereira Reis disse:

Conforme prometi, acabo de receber a mensagem de Homologação, acabo de recebe-la, estou enviando a Unit que foi alterada para esse caso aonde a agencia começa com 0.

Screenshot_1.png

ACBrBancoSafra.pas 71 kB · 5 downloads

Olá pessoal!

Estou com o mesmo problema aqui, peguei essa unit, irei testar.

Informarei se o banco aprovou.

Desde já agradeço.

Share this post


Link to post
Share on other sites
Em 23/10/2019 at 17:51, Sidney_Souza disse:

Estou com dois problemas iguais ao seu, 1: nosso numero divergente, resolvi assim:

function TACBrBancoSafra.MontarCampoCodigoCedente(const ACBrTitulo: TACBrTitulo): string;
begin
  with ACBrTitulo.ACBrBoleto.Cedente do
  begin
        //Result := PadLeft(RightStr(Agencia,4), 4, '0') + PadLeft(AgenciaDigito, 1, '0') + ' / ' + PadLeft(ACBrBoleto.Cedente.Conta, 8, '0') + PadLeft(ACBrBoleto.Cedente.ContaDigito, 1, '0');
        Result := PadLeft(RightStr(Agencia,5), 5, '0') + ' / ' + PadLeft(ACBrBoleto.Cedente.Conta, 8, '0') + PadLeft(ACBrBoleto.Cedente.ContaDigito, 1, '0');
  end;
end;

Quanto ao digito que ele inclui no final do nosso numero na remessa ainda estou batendo cabeça...

Tenho um cliente na mesma situação do Lowry David:

agência: 6500 conta corrente: 580375 Dv: 1;

A agência não tem dígito verificador, eles indicam colocar 0(zero).

O dígito da agência não entra nos cálculos.

O tamanho do número da agência é de 5 dígitos. Quando for menor, "COLOCAR ZERO À ESQUERDA".

A conta corrente de oito dígitos. Quando for menor, "COLOCAR ZERO À ESQUERDA".

Obs: O tamanho da conta corrente, eles consideram com o dígito verificador, ou seja, 8+1=9.

Ficaria assim:

(06500/005803751)

da mesma forma que o Lowry David colocou.

 

Com relação à função, fiz assim:

function TACBrBancoSafra.MontarCampoCodigoCedente(
  const ACBrTitulo: TACBrTitulo): string;
begin
  with ACBrTitulo.ACBrBoleto.Cedente do Result:=Agencia+'/'+Conta+ContaDigito;

                                                                                          (06500/005803751)

end;

Na remessa ficou correto.

Share this post


Link to post
Share on other sites
Em 29/10/2019 at 09:22, DouglasGV disse:

Olá pessoal!

Estou com o mesmo problema aqui, peguei essa unit, irei testar.

Informarei se o banco aprovou.

Desde já agradeço.

Boa tarde!

Só passando para agradecer, e indicar que com essa unit funcionou, homologou remessa e boleto no layout CNAB 400.

Agradeço  novamente o auxílio de todos.

  • Like 1

Share this post


Link to post
Share on other sites

Bom dia,

Estamos com divergências quanto ao layout deste banco, para realizar as alterações solicitadas. Por isso estamos centralizando o assunto em um único tópico.

Favor acompanhar em: 

 

  • Like 1

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...