Ir para conteúdo
  • Cadastre-se

dev botao

Retorno Santander c400


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

Recommended Posts

  • Membros Pro

Boa tarde, gerei um arquivo de remessa do santander, onde o componente no método GerarRegistroHeader400,

Citar

procedure TACBrBancoSantander.GerarRegistroHeader400(NumeroRemessa : Integer; aRemessa: TStringList);
var
  wLinha: String;
begin
   vTotalTitulos:= 0;
   with ACBrBanco.ACBrBoleto.Cedente do
   begin
      wLinha:= '0'                                        + // ID do Registro
               '1'                                        + // ID do Arquivo( 1 - Remessa)
               'REMESSA'                                  + // Literal de Remessa
               '01'                                       + // Código do Tipo de Serviço
               PadRight( 'COBRANCA', 15 )                     + // Descrição do tipo de serviço
               PadLeft( CodigoTransmissao, 20, '0')          + // Codigo da Empresa no Banco
               PadRight( Nome, 30)                            + // Nome da Empresa
               '033'+ PadRight('SANTANDER', 15)               + // Código e Nome do Banco(237 - Bradesco)
               FormatDateTime('ddmmyy',Now)               + // Data de geração do arquivo + brancos
               StringOfChar( '0', 16)                     +
               Space(275)+ '000'                          + // Nr. Sequencial de Remessa + brancos
               IntToStrZero(1,6);                           // Nr. Sequencial de Remessa + brancos + Contador

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

onde  "engessa" o '033' no código do banco (077-079), que segundo o layout aceita 033/353, o banco validou o arquivo de remessa, porém no arquivo de retorno, o código do banco retornou 353, e no método LerRetorno400,   tem esta validação 

Citar

Procedure TACBrBancoSantander.LerRetorno400 ( ARetorno: TStringList );
var
  Titulo : TACBrTitulo;
  ContLinha, CodOcorrencia, CodMotivo : Integer;
  Linha, rCedente, rAgencia, rConta, rDigitoConta, rCNPJCPF : String;
begin
   ContLinha := 0;

   if StrToIntDef(copy(ARetorno.Strings[0],77,3),-1) <> Numero then
      raise Exception.Create(ACBrStr(ACBrBanco.ACBrBoleto.NomeArqRetorno +
                             'não é um arquivo de retorno do '+ Nome));

e não consigo processar o arquivo de retorno, mesmo informando o código do banco correto no componente.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa noite.

Alteração disponível no svn.

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

  • 1 ano depois...

 

Conta Santader Pessoa Fisica

Boa tarde! Estou com problema ao carregar o retorno, a variável rCNPJCPF recebe o CPF com 14 digitos e quando o campo Cedente.CNPJCPF vai recebe-lo, ao validar da o seguinte erro: CPF deve ter 11 dígitos. (Apenas Números).

Estou passando: // frmDM.ACBrBoleto1.Cedente.TipoInscricao :=pFisica; 

// frmDM.ACBrBoleto1.Cedente.CNPJCPF := (CPF 11 Digitos);

 

Procedure TACBrBancoSantander.LerRetorno400 ( ARetorno: TStringList );

rCNPJCPF := OnlyNumber( Copy(ARetorno[1],04,14) ); // recebe 000 + CPF 11 Digitos.

   ACBrBanco.ACBrBoleto.DataCreditoLanc :=
     StringToDateTimeDef(Copy(ARetorno[0], 95, 2) + '/' +
                         Copy(ARetorno[0], 97, 2) + '/' +
                         Copy(ARetorno[0], 99, 2), 0, 'dd/mm/yy');

   with ACBrBanco.ACBrBoleto do
   begin
      if (not LeCedenteRetorno) and (rCNPJCPF <> OnlyNumber(Cedente.CNPJCPF)) then
         raise Exception.Create(ACBrStr('CNPJ\CPF do arquivo inválido'));

      if (not LeCedenteRetorno) and ((rAgencia <> OnlyNumber(Cedente.Agencia)) or
          (rConta <> OnlyNumber(Cedente.Conta))) then
         raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido'));

      Cedente.Nome    := rCedente;
      Cedente.CNPJCPF := rCNPJCPF; // Erro ao validar.
      Cedente.Agencia := rAgencia;
      Cedente.AgenciaDigito:= '0';
      Cedente.Conta   := rConta;
      Cedente.ContaDigito:= rDigitoConta;

 

Editado por thribeiro
Link para o comentário
Compartilhar em outros sites

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