Ir para conteúdo
  • Cadastre-se

dev botao

Dúvida Cobrança 101 Santander Cnab 240


Ver Solução Respondido por aocampioni,
  • Este tópico foi criado há 2851 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia a todos, estou tentando gerar arquivo remessa para o banco Santander carteira 101 mas o número/dígito do cedente e também a carteira nunca aparecem dentro do arquivo gerado como aparecia quando eu usava o CobreBem, alguém pode me dizer onde estou errando? Já li diversos tópicos no fórum e as vezes o pessoal comenta que é necessário usar o código de transmissão Santander, outras vezes código do cedente + dígito num total de 7 posições. Estou informando as propriedades problemáticas assim:

 

...
...
ACBrBOLETO.LayoutRemessa := c240;
ACBrBOLETO.Cedente.TipoCarteira  := tctRegistrada;
ACBrBOLETO.Cedente.ResponEmissao := tbBancoEmite;
ACBrBOLETO.Cedente.CaracTitulo   := tcSimples;
ACBrBOLETO.Cedente.Modalidade    := '101';         //número da carteira ECR2 no CobreBem
ACBrBOLETO.Cedente.CodigoCedente := '145025' + '1'; //código e dígito do cedente
...
with vACBrTitulo do
begin
  ...
  Carteira := '101';  //número da carteira ECR2 no CobreBem
  ...
end;
...
...
 
Grato por qualquer ajuda/dica, minha versão do ACBr é de 08/04/2015 e acompanhando de lá pra cá não vi mudanças na rotina do Santander.

 

 

  • Membros Pro
  • Solution
Postado

Boa noite GAC,

 

Eu faço dessa maneira:

    // na hora de configurar
    ACBrBoleto.Banco.TipoCobranca    := cobSantander ;
    ACBrBoleto.Banco.Numero          := 33;
    ACBrBoleto.Banco.Digito          := 7;
    ACBrBoleto.Banco.Nome            := 'Santander';
    ACBrBoleto.Banco.TamanhoMaximoNossoNum := 12;

    ACBrBoleto.Cedente.Agencia          := '0000';
    ACBrBoleto.Cedente.AgenciaDigito    := '0';
    ACBrBoleto.Cedente.CaracTitulo      := tcSimples;

    ACBrBoleto.Cedente.CNPJCPF          := '00000000000000';
    ACBrBoleto.Cedente.CodigoCedente    := '0000000';
    ACBrBoleto.Cedente.CodigoTransmissao:= agencia+digito+000+codcedente;
    ACBrBoleto.Cedente.Conta            := '000000000';
    ACBrBoleto.Cedente.ContaDigito      := '0';

    ACBrBoleto.Cedente.Convenio         := '';
    ACBrBoleto.Cedente.Modalidade       := '101';
    ACBrBoleto.Cedente.Nome             := 'NOME';
    ACBrBoleto.Cedente.Logradouro       := 'ENDERECO';
    ACBrBoleto.Cedente.Complemento      := '';
    ACBrBoleto.Cedente.Bairro           := 'BAIRRO';
    ACBrBoleto.Cedente.CEP              := 'CEP';
    ACBrBoleto.Cedente.Cidade           := 'CIDADE';
    ACBrBoleto.Cedente.NumeroRes        := '';
    ACBrBoleto.Cedente.Telefone         := 'FONE';
    ACBrBoleto.Cedente.UF               := 'UF';

    ACBrBoleto.Cedente.ResponEmissao    := tbBancoEmite;
    ACBrBoleto.Cedente.TipoInscricao    := pJuridica;
    ACBrBoleto.Cedente.TipoCarteira     := tctRegistrada;

    ACBrBoleto.DataArquivo              := Date;
    ACBrBoleto.NomeArqRemessa           := FormatDateTime('DDMMYYYYHHMMSS',Now)+'.TXT';
    ACBrBoleto.DirArqRemessa            := 'x:\';
    ACBrBoleto.DirArqRetorno            := 'x:\';
    ACBrBoleto.ImprimirMensagemPadrao   := False;
    ACBrBoleto.LayoutRemessa            := c240;
    ACBrBoleto.LeCedenteRetorno         := false;


    // na hora de gerar
var
    TituloACBr : TACBrTitulo;
    AStringList: TStrings;
    ContadorRemessa : Integer;
.....

    ACBrBoleto.ListadeBoletos.Clear;
    AStringList := TStringList.Create;
    TituloACBr := ACBrBoleto.CriarTituloNaLista;
    AStringList.Clear;

    // dias de protestos e carteira de envio
    TituloACBr.TipoDiasProtesto := diCorridos;
    TituloACBr.CarteiraEnvio    := tceBanco;

    with TituloACBr do
    begin
            Sacado.Avalista       := '';
            Sacado.NomeSacado     := 'Fulano de Tal ';
            Sacado.CNPJCPF        := '111.111.111-1';
            Sacado.Pessoa         := pJuridica;

            Sacado.Logradouro     := 'Rua do Sacado ';
            Sacado.Numero         := ' 123';
            Sacado.Complemento    := '';
            Sacado.Bairro         := 'Bairro do Sacado ';
            Sacado.Cidade         := 'Cidade do Sacado';
            Sacado.UF             := 'SP';
            Sacado.CEP            := '01001-001';
            Sacado.Email          := '[email protected]';
            Sacado.Fone           := '11 1111 1111';

            Vencimento            := StrToDate('13/04/2015');
            DataDocumento         := StrToDate('13/04/2015');
            DataProcessamento     := StrToDate('13/04/2015');
            NumeroDocumento       := 1;
            SeuNumero             := 1;
            EspecieDoc            := 'DM';
            NossoNumero           := FormatFloat('000000000000',1);
            Carteira              := '101';
            LocalPagamento        := 'NA REDE BANCARIA';
            Aceite                := atNao;

            ValorDocumento        := 1.90;

            ValorDesconto         := 0;
            DataDesconto          := 0;

            ValorAbatimento       := 0;
            DataAbatimento        := 0;

            ValorDescontoAntDia   := 0;

            if txtJuroMensal.Value>0 then
                PercentualMulta   := txtJuroMensal.Value;

            CodigoMora            := '1';
            ValorMoraJuros        := 0;
            DataMoraJuros         := 0;

            if txtMoraDiaria.Value>0 then
            begin
               nValorMora:=(ValorDocumento*(txtMoraDiaria.Value/30))/100;
               if(nValorMora >= 0.01) then
               begin
                   ValorMoraJuros := nValorMora;
                   DataMoraJuros  := Vencimento+1;
               end;
            end;

            if(txtDiasProtesto.AsInteger = 0) then
                DataProtesto      := 0
            else
                DataProtesto      := StrToDate(FormatDateTime('dd/mm/yyyy', Vencimento+txtDiasProtesto.AsInteger) );

            // mensagens padrão, se for o banco a emitir
            if(TituloACBr.CarteiraEnvio = tceBanco) then
            begin
                if DataProtesto <> 0 then
                begin
                   if TipoDiasProtesto = diCorridos then
                      AStringList.Add(ACBrStr('Protestar em ' + IntToStr(DaysBetween(Vencimento, DataProtesto))+ ' dias corridos após o vencimento'))
                   else
                      AStringList.Add(ACBrStr('Protestar no ' + IntToStr(DaysBetween(Vencimento, DataProtesto))+ ' dia útil após o vencimento'));
                end;

                if ValorMoraJuros <> 0 then
                begin
                   if DataMoraJuros <> 0 then
                      AStringList.Add(ACBrStr('Cobrar Juros de '                        +
                                      ifthen(CodigoMora = '2', FloatToStr(ValorMoraJuros) + '%',
                                             FormatCurr('R$ #,##0.00',ValorMoraJuros))         +
                                       ' por dia de atraso para pagamento a partir de ' +
                                       FormatDateTime('dd/mm/yyyy',ifthen(Vencimento = DataMoraJuros,
                                                                          IncDay(DataMoraJuros,1),DataMoraJuros))))
                   else
                      AStringList.Add(ACBrStr('Cobrar Juros de '                +
                                              ifthen(CodigoMora = '2', FloatToStr(ValorMoraJuros) + '%',
                                                     FormatCurr('R$ #,##0.00',ValorMoraJuros))         +
                                       ' por dia de atraso'));
                end;

                if PercentualMulta <> 0 then
                   AStringList.Add(ACBrStr('Cobrar Multa de ' +
                                   FormatCurr('R$ #,##0.00',ValorDocumento*( 1+ PercentualMulta/100)-ValorDocumento) +
                                   ' após o vencimento.'));

                Mensagem.Text         := AStringList.Text + txtInstrucaoCob1.Text + #13+#10 + txtInstrucaoCob2.Text;
            end else
                Mensagem.Text         := '';

            OcorrenciaOriginal.Tipo:= toRemessaRegistrar;
            Instrucao1            := '00';
            Instrucao2            := '00';
            Parcela               := 1;
    end;

    ContadorRemessa := 1;
    ACBrBoleto.GerarRemessa(ContadorRemessa);

Tem alguns edit's no meio mas deve servir pra você adaptar aí. 

 

Até mais,

-- 

Alexandre de Oliveira

Diretor de T.I.

xx16 3811 0155

www.consultatec.com.br - [email protected]

image.png.744a897bbf36127e428c6e687ef05731.png

 

  • 1 ano depois...
Postado

Comparando um nosso numero gerado pelo sistema do santander , nosso numero = 138 o digito de controle deveria ser 8 e o acbrmonitorplus está calculando como 4.

Olhando o arquivo AcbrSantander.pas percebi que não está sendo feita a inversao do nosso numero antes de aplicar o multiplicador por isso fica como 4.

 Modulo.MultiplicadorFinal := 9;

se mudar para

 Modulo.MultiplicadorFinal := 5

 

imagino que funcione

 

 

 

  • Administradores
Postado

Bom dia.

Existem diversos usuários utilizando este banco sem problemas, a forma correta de verificar se o DV está correto é comparando com o manual e não com o boleto emitido pelo sistema do banco.

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

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