Ir para conteúdo
  • Cadastre-se

dev botao

Alteração no fonte ACBrBancoSafra.pas para a geração do arquivo de remessa CNAB400.


Ver Solução Respondido por Grupo IN4,

Recommended Posts

  • Membros Pro
Postado

No fonte do ACBrBancoSafra.pas foi necessário fazer a seguinte alteração:

  aAgencia := PadLeft(ACBrBanco.ACBrBoleto.Cedente.Agencia, 5, '0');
  aConta := PadLeft(ACBrBanco.ACBrBoleto.Cedente.Conta, 8, '0') +
              PadLeft(ACBrBanco.ACBrBoleto.Cedente.ContaDigito, 1, '0');

procedure TACBrBancoSafra.GerarRegistroHeader400(NumeroRemessa: integer;
  ARemessa: TStringList);
var wLinha: String;
  aAgencia,
  aConta: String;
begin
  aTotal := 0;
  aCount := 0;
  aAgencia := PadLeft(ACBrBanco.ACBrBoleto.Cedente.Agencia, 5, '0');

  aConta := PadLeft(ACBrBanco.ACBrBoleto.Cedente.Conta, 8, '0') +
              PadLeft(ACBrBanco.ACBrBoleto.Cedente.ContaDigito, 1, '0');

  FNumeroRemessa := NumeroRemessa;
  with ACBrBanco.ACBrBoleto.Cedente do
  begin
    wLinha := '0'                             + // ID do Registro Header
              '1'                             + // ID do Arquivo de Remessa
              'REMESSA'                       + // Literal de Remessa
              '01'                            + // Código do Tipo de Serviço
              PadRight('COBRANCA', 15)        + // Descrição do tipo de serviço + "brancos"
              aAgencia + aConta               + // Codigo da Empresa no Banco
              Space(6)                        + // "brancos"
              PadRight(Nome, 30)              + // Nome da Empresa
              IntToStr(Numero)                + // Código do Banco - 237
              PadRight('BANCO SAFRA', 15)     + // Nome do Banco - BANCO SAFRA + "brancos"
              FormatDateTime('ddmmyy', Now)   + // Data de geração do arquivo
              Space(291)                      + // "brancos"
              IntToStrZero(NumeroRemessa, 3)  + // Nr. Sequencial de Geração do Arquivo
              IntToStrZero(1, 6);               // Nr. Sequencial do Registro no Arquivo

    ARemessa.Text := ARemessa.Text + UpperCase(wLinha);
  end;

end;
  
Ajuste necessário porque o lay-out pede que na posição 27 a 40 (CNAB400 do Banco Safra) seja preenchido com a agência com 5 dígitos (zeros à frente) e Conta com 8 dígitos mais o Digito Verificador da conta, ou seja, totalizando 14 dígitos.

Solicito validação, homologação e inclusão no projeto para atualizações futuras.
image.thumb.png.cae4184b9dfc176540ed60c3625bcc42.png

ACBrBancoSafra.pas

  • Consultores
Postado

@Grupo IN4
Bom dia vc só alterou isso ?
Pq vi que tem mais alterações como linha digitavel , função para nossonumeroin4, isso é alguma alteração local q vc tem ai.
faz um favor.
Faca backup desta unit q vc modificou.
E atualize com os fontes do safra original (reverta a unit q ve tem alterada ai, mas faca backup antes) e aplique suas modificações em cima desta unit;


 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Membros Pro
  • Solution
Postado

Atualizei o ACBR e o desenvolvimento que fiz já existia.

Por favor, desconsiderar minha solicitação.

Muito obrigado 

  • Curtir 1
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.