Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia, iniciei um processo de homologação do banco safra (cobBancoSafra) e me deparei com dois problemas que não estou conseguindo resolver...

1º  o nosso numero gerado no arquivo de remessa esta divergente do impresso pois ele esta adicionando um digito verificador na 9ª posição do NN.

              IfThen(NossoNumero = '000000000', '000000000',
                                 PadLeft(RightStr(NossoNumero,8),8,'0') +
                                 CalcularDigitoVerificador(ACBrTitulo)) + 

não consegui realizar a impressão utilizando esse digito verificador.

2º o banco esta obrigando que não tenha uma logo e esteja escrito 'BANCO SAFRA S/A' em seu lugar, esse eu posso simplesmente alterar para que escreva o texto, mas na próxima vez que o ACBR for atualizado eu teria que alterar novamente.

Screenshot_1.png

Postado
  Em 10/10/2019 at 13:41, Lowry David da Silva Pereira Reis disse:

Bom dia, iniciei um processo de homologação do banco safra (cobBancoSafra) e me deparei com dois problemas que não estou conseguindo resolver...

1º  o nosso numero gerado no arquivo de remessa esta divergente do impresso pois ele esta adicionando um digito verificador na 9ª posição do NN.

              IfThen(NossoNumero = '000000000', '000000000',
                                 PadLeft(RightStr(NossoNumero,8),8,'0') +
                                 CalcularDigitoVerificador(ACBrTitulo)) + 

não consegui realizar a impressão utilizando esse digito verificador.

2º o banco esta obrigando que não tenha uma logo e esteja escrito 'BANCO SAFRA S/A' em seu lugar, esse eu posso simplesmente alterar para que escreva o texto, mas na próxima vez que o ACBR for atualizado eu teria que alterar novamente.

Screenshot_1.png

Expandir  

boa tarde.

fiz alguns ajustes nessa unit, tente usar a que está neste post: 

tenho varios clientes emitindo, inclusive fiz a homologação de mais 1 esta semana.

 

att

Postado
  Em 10/10/2019 at 20:24, Emerson Teixeira disse:

boa tarde.

fiz alguns ajustes nessa unit, tente usar a que está neste post: 

tenho varios clientes emitindo, inclusive fiz a homologação de mais 1 esta semana.

 

att

Expandir  

eu vou testar com a sua Unit :)
mas eu tenho medo de precisar atualizar o ACBR e acabar esquecendo de voltar a unit.... ai causar um stress desnecessário....

  • Administradores
Postado

Boa tarde.

Você tem um manual fornecido do banco com estas exigências documentadas? Vale lembrar que temos outros membros da comunidade emitindo para este banco.

At.

Consultora ACBr Pro

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

Postado
  Em 10/10/2019 at 20:49, Juliana Tamizou disse:

Boa tarde.

Você tem um manual fornecido do banco com estas exigências documentadas? Vale lembrar que temos outros membros da comunidade emitindo para este banco.

At.

Expandir  

eu só tenho o retorno do e-mail com todos os dizeres, alguns eu ja resolvi, ficaram apenas esses dois citados.

NO BOLETO: 

  • alterar campos marcados em vermelho no boleto modelo abaixo:
  • o campo nosso número informado no boleto está divergente do informado na remessa, o mesmo deve ser idêntico contendo 9 números sem cálculo do dígito final;
  • ag e conta deve seguir o formato 05200 / 005834915;
  • o nome do banco não deve conter logo, somente BANCO SAFRA S/A.;
  • alterar mensagem de local de pagamentos;
  • recalcular linha digitável e código de barras conforme orientação abaixo:

1B592555.gif

Postado
  Em 10/10/2019 at 20:59, Lowry David da Silva Pereira Reis disse:

eu só tenho o retorno do e-mail com todos os dizeres, alguns eu ja resolvi, ficaram apenas esses dois citados.

NO BOLETO: 

  • alterar campos marcados em vermelho no boleto modelo abaixo:
  • o campo nosso número informado no boleto está divergente do informado na remessa, o mesmo deve ser idêntico contendo 9 números sem cálculo do dígito final;
  • ag e conta deve seguir o formato 05200 / 005834915;
  • o nome do banco não deve conter logo, somente BANCO SAFRA S/A.;
  • alterar mensagem de local de pagamentos;
  • recalcular linha digitável e código de barras conforme orientação abaixo:

1B592555.gif

Expandir  

bom dia.

esta usando a unit que passei?

  Em 10/10/2019 at 20:49, Juliana Tamizou disse:

Boa tarde.

Você tem um manual fornecido do banco com estas exigências documentadas? Vale lembrar que temos outros membros da comunidade emitindo para este banco.

At.

Expandir  

Bom dia Juliana.

para fazer as alterações que estão na unit do outro post, segui o manual que esta no repositório do acbr, estas alterações estão comentadas na unit, informei a pagina em cada mudança.

att.

 

  • Obrigado 1
Postado
  Em 11/10/2019 at 10:56, Emerson Teixeira disse:

bom dia.

esta usando a unit que passei?

Bom dia Juliana.

para fazer as alterações que estão na unit do outro post, segui o manual que esta no repositório do acbr, estas alterações estão comentadas na unit, informei a pagina em cada mudança.

att.

 

Expandir  

Bom dia, ainda não, vou enviar uma remessa de teste utilizando ela ainda hoje

  • Curtir 1
Postado

Bom dia amigos, podem me dizer se existe uma propriedade para mostrar a quantidade de parcelas na  impressão do tipo carnê? no meu caso, quando defino que é do tipo carnê ele só mostra duas parcelas em cada página.

Obrigado...

Postado
  Em 11/10/2019 at 12:50, ssouzaacbr disse:

Bom dia amigos, podem me dizer se existe uma propriedade para mostrar a quantidade de parcelas na  impressão do tipo carnê? no meu caso, quando defino que é do tipo carnê ele só mostra duas parcelas em cada página.

Obrigado...

Expandir  

bom dia

@ssouzaacbr a unit que esta no repositório está errada, pois após atualizar o acbr tive problemas com vários clientes que usavam o boleto banco safra a tempos, por isso tive que ajusta-la novamente.

se quiser comparar as units, as alterações que fiz estão documentadas, está bem fácil de entender.

att. 

 

  • Administradores
Postado

@ssouzaacbr

 

2.2 - Permaneça no assunto - Quando tiver uma dúvida diferente do assunto no tópico, poste em novo tópico. Não use algo equivalente a "aproveitando o gancho... [dúvida não relacionada com o tópico aqui]". Favor leia as regras do fórum.

Consultora ACBr Pro

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

Postado
  Em 11/10/2019 at 11:39, Lowry David da Silva Pereira Reis disse:

Bom dia, ainda não, vou enviar uma remessa de teste utilizando ela ainda hoje

Expandir  

Enviei a remesse utilizando a sua Unit, e eles me questionaram as seguintes coisas:
 

  • alterar campos marcados em vermelho no boleto modelo abaixo:
  • o campo nosso número informado no boleto está divergente do informado na remessa, o mesmo deve ser idêntico contendo 9 números sem cálculo do dígito final; -- (ou seja, o nosso numero deve conter 9 digitos + o digito verificador, na Unit do ACBR ele imprime 9 dígitos sem o digito verificar e preenche na remessa 9 dígitos contando com o dígito verificador)
  • ag e conta deve seguir o formato 05200 / 005834915 ; -- (na Unit do ACBR ele escreveu correto)
  • o nome do banco não deve conter logo, somente BANCO SAFRA S/A.; -- (em nenhuma das duas units saiu escrito)

Screenshot_2.png

unnamed.gif

Postado

Bom dia, estou mantendo esse tópico pois ainda não consegui terminar as validações, mesmo com a Unit do companheiro acima, que esta validada e em produção e eu continuo tendo problemas...
agora o dilema esta na linha digitável, a agencia do meu meu cliente é 05200 porem a agencia esta sendo informada na linha digitável sem o 0 a esquerda (apenas 5200), conforme a imagem abaixo.

13566094.gif

Postado
  Em 21/10/2019 at 14:44, Lowry David da Silva Pereira Reis disse:

Bom dia, estou mantendo esse tópico pois ainda não consegui terminar as validações, mesmo com a Unit do companheiro acima, que esta validada e em produção e eu continuo tendo problemas...
agora o dilema esta na linha digitável, a agencia do meu meu cliente é 05200 porem a agencia esta sendo informada na linha digitável sem o 0 a esquerda (apenas 5200), conforme a imagem abaixo.

13566094.gif

Expandir  

conforme a página 23 do manual CNAB400, a agencia é representada pelos 4 primeiros dígitos, então deveria estar 0520.

 

 

link manual: https://www.safra.com.br/data/files/92/E1/A0/49/B7C39510FDF7C195181808FF/Leiaute de Arquivos - Cobranca CNAB 400.pdf

Screenshot_5.png

Postado
  Em 21/10/2019 at 15:00, Lowry David da Silva Pereira Reis disse:

conforme a página 23 do manual CNAB400, a agencia é representada pelos 4 primeiros dígitos, então deveria estar 0520.

 

 

link manual: https://www.safra.com.br/data/files/92/E1/A0/49/B7C39510FDF7C195181808FF/Leiaute de Arquivos - Cobranca CNAB 400.pdf

Screenshot_5.png

Expandir  

Lowry, também presenciei um problema semelhante com a agência. Realizei algumas modificações na unit do Emerson e logo foram homologadas pelo banco.

ACBrBancoSafra.pasFetching info...

Postado
  Em 22/10/2019 at 11:09, Murilo Neves disse:

Lowry, também presenciei um problema semelhante com a agência. Realizei algumas modificações na unit do Emerson e logo foram homologadas pelo banco.

ACBrBancoSafra.pas 71 kB · 3 downloads

Expandir  

Testei com a sua Unit e o problema infelizmente é o mesmo, no meu caso a agencia é 05200 e deve ter o 0 a esquerda.

Postado
  Em 22/10/2019 at 11:09, Murilo Neves disse:

Lowry, também presenciei um problema semelhante com a agência. Realizei algumas modificações na unit do Emerson e logo foram homologadas pelo banco.

ACBrBancoSafra.pas 71 kB · 3 downloads

Expandir  

bom dia @Murilo Neves.

quais foram as alterações que você fez?

Pelo que vi aqui, vc mudou a ordem o campo SeuNumero/NumeroDocumento, apagou os comentários que fiz, aparentemente não vai resolver o problema do @Lowry David da Silva Pereira Reis

o que pude observar é que o no caso da agencia 05200 e a função de montar o codigo de barras esta removendo este zero a esquerda, no meu caso a agencia nao tinha esse zero a esquerda.

Ajustei a unit novamente, favor passar a agencia = 052

se funcionar, me avise...

att

 

ACBrBancoSafra.pasFetching info...

  • Obrigado 1
Postado
  Em 22/10/2019 at 12:40, Emerson Teixeira disse:

bom dia @Murilo Neves.

quais foram as alterações que você fez?

Pelo que vi aqui, vc mudou a ordem o campo SeuNumero/NumeroDocumento, apagou os comentários que fiz, aparentemente não vai resolver o problema do @Lowry David da Silva Pereira Reis

o que pude observar é que o no caso da agencia 05200 e a função de montar o codigo de barras esta removendo este zero a esquerda, no meu caso a agencia nao tinha esse zero a esquerda.

Ajustei a unit novamente, favor passar a agencia = 052

se funcionar, me avise...

att

 

ACBrBancoSafra.pas 71 kB · 0 downloads

Expandir  

Muito obrigado pela atenção :)

testei novamente com a sua Unit e agora ela escreve corretamente a agencia na impressão e na remessa.

só precisei alterar a function abaixo para poder gerar a linha digitável corretamente.

function TACBrBancoSafra.MontarCodigoBarras(const ACBrTitulo: TACBrTitulo): string;
var
  CodigoBarras, FatorVencimento, DigitoCodBarras ,
  valorDocumento, agencia, agenciaDigito, conta,
  ContaDigito, NossoNumero: string;
begin
  with ACBrTitulo.ACBrBoleto do
  begin
    FatorVencimento  := CalcularFatorVencimento(ACBrTitulo.Vencimento);
    valorDocumento   := IntToStrZero(Round(ACBrTitulo.ValorDocumento * 100), 10);
    agencia          := PadRight(RightStr(Cedente.Agencia, 5), 5, '0'); //***ALTERADO DE 4 PARA 5****// aqui 4 posicoes da agencia + 1 posicao do digito pagina 23
    agenciaDigito    := PadLeft(Cedente.AgenciaDigito, 1, '0');
    conta            := PadLeft(Cedente.Conta, TamanhoConta, '0');
    ContaDigito      := PadLeft(Cedente.ContaDigito, 1, '0');
    NossoNumero      := PadLeft(RightStr(ACBrTitulo.NossoNumero,TamanhoMaximoNossoNum),TamanhoMaximoNossoNum,'0')  + CalcularDigitoVerificador(ACBrTitulo);

    CodigoBarras := IntToStr(Banco.Numero) + '9' + FatorVencimento +   valorDocumento +
                    '7' + agencia + trim(agenciaDigito) + trim(conta) + ContaDigito + NossoNumero + '2';

    DigitoCodBarras := CalcularDigitoCodigoBarras(CodigoBarras);
  end;

  Result := IntToStr(Numero) + '9' + DigitoCodBarras + Copy(CodigoBarras, 5, 39);

end;

Postado
  Em 22/10/2019 at 13:03, Lowry David da Silva Pereira Reis disse:

Muito obrigado pela atenção :)

testei novamente com a sua Unit e agora ela escreve corretamente a agencia na impressão e na remessa.

só precisei alterar a function abaixo para poder gerar a linha digitável corretamente.

function TACBrBancoSafra.MontarCodigoBarras(const ACBrTitulo: TACBrTitulo): string;
var
  CodigoBarras, FatorVencimento, DigitoCodBarras ,
  valorDocumento, agencia, agenciaDigito, conta,
  ContaDigito, NossoNumero: string;
begin
  with ACBrTitulo.ACBrBoleto do
  begin
    FatorVencimento  := CalcularFatorVencimento(ACBrTitulo.Vencimento);
    valorDocumento   := IntToStrZero(Round(ACBrTitulo.ValorDocumento * 100), 10);
    agencia          := PadRight(RightStr(Cedente.Agencia, 5), 5, '0'); //***ALTERADO DE 4 PARA 5****// aqui 4 posicoes da agencia + 1 posicao do digito pagina 23
    agenciaDigito    := PadLeft(Cedente.AgenciaDigito, 1, '0');
    conta            := PadLeft(Cedente.Conta, TamanhoConta, '0');
    ContaDigito      := PadLeft(Cedente.ContaDigito, 1, '0');
    NossoNumero      := PadLeft(RightStr(ACBrTitulo.NossoNumero,TamanhoMaximoNossoNum),TamanhoMaximoNossoNum,'0')  + CalcularDigitoVerificador(ACBrTitulo);

    CodigoBarras := IntToStr(Banco.Numero) + '9' + FatorVencimento +   valorDocumento +
                    '7' + agencia + trim(agenciaDigito) + trim(conta) + ContaDigito + NossoNumero + '2';

    DigitoCodBarras := CalcularDigitoCodigoBarras(CodigoBarras);
  end;

  Result := IntToStr(Numero) + '9' + DigitoCodBarras + Copy(CodigoBarras, 5, 39);

end;

Expandir  

olha o que diz o manual sobre o tamanho da agencia... 

Sao 5 digitos = 4 da agencia + 1 do digito,  no seu codigo ficaria 6 digitos.

confirma se sua conta esta sendo informada com o tamanho correto 8 posicoes da conta + 1 posicao do digito da conta = 9 posicoes com digito  = pagina 4 manual.

att

image.png.0492d9d862b1e7f3645b2284f147ba79.png

image.thumb.png.0d235fe02376a6c89d1bad8c4914d937.png

Postado
  Em 22/10/2019 at 14:16, Emerson Teixeira disse:

olha o que diz o manual sobre o tamanho da agencia... 

Sao 5 digitos = 4 da agencia + 1 do digito,  no seu codigo ficaria 6 digitos.

confirma se sua conta esta sendo informada com o tamanho correto 8 posicoes da conta + 1 posicao do digito da conta = 9 posicoes com digito  = pagina 4 manual.

att

image.png.0492d9d862b1e7f3645b2284f147ba79.png

image.thumb.png.0d235fe02376a6c89d1bad8c4914d937.png

Expandir  

verifique que na verdade não existe digito da agencia e ele utiliza apenas os 4 primeiros dígitos para escrever a linha digitável, ou seja, se é 05200 ele vai escrever apenas 0520...

não foi a melhor forma de alterar, mas a linha digitável ficou exatamente igual ao que eles estão pedindo, agora estou esperando a resposta do banco, caso ela seja de homologado, vou fazer uma alteração "decente".

Postado
  Em 22/10/2019 at 14:44, Lowry David da Silva Pereira Reis disse:

verifique que na verdade não existe digito da agencia e ele utiliza apenas os 4 primeiros dígitos para escrever a linha digitável, ou seja, se é 05200 ele vai escrever apenas 0520...

não foi a melhor forma de alterar, mas a linha digitável ficou exatamente igual ao que eles estão pedindo, agora estou esperando a resposta do banco, caso ela seja de homologado, vou fazer uma alteração "decente".

Expandir  

mas nesse caso recomendo passar 0 como digito da agencia, pois pode quebrar a compatibilidade com quem esta usando esta unit.

  • Curtir 1
Postado

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

Postado
  Em 23/10/2019 at 20:51, ssouzaacbr 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...

Expandir  

você baixou essa Unit para testar?

Postado (editado)

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

Editado por ssouzaacbr
  • Este tópico foi criado há 1941 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...