Erro Remessa Santander

Delphi

Automação Comercial

26/02/2016

Galera, estou tentando gerar a remessa para o Santander mas esta dando algumas inconsistências:


Campo inválido na linha 3. Tipo de registro [Detalhe - Segmento P]. O campo [Tipo de cobrança], posição 58 a 58, deve ser [5. Definido em Cadastros > Empresas]. Valor atual [1].
Campo inválido na linha 3. Tipo de registro [Detalhe - Segmento P]. O campo [Nº do documento], posição 63 a 77, deve ser [Diferente de brancos]. Valor atual [ ].



Não consegui identificar no Componente as Tags para preenchimento.

No manual tem 058 - 058 Tipo de cobrança ja coloquei cobSantander porém ele gera o código 1, e seu colocar codigo 5 ele da erro ao gerar a remessa. 063 - 077 Nº do documento já preencho a tag NumeroDocumento mas mesmo assim ele informa que esta vazio.

Será que são essas tags mesmo?

var
   i,iTitulo:integer;
   vrMulta,vrJuros,vrDoc:Currency;
   Para : String;
   CC: Tstrings;
   SMTP,PORTA,LOGIN,SENHA,EMAIL:string;
begin
try
  with DmBoleto do
  begin
    while not CdsBoleto.Eof do
    begin
      iTitulo := 1;
      vrDoc   := vrDoc + i;

      Boleto.ListadeBoletos.Clear;
      Titulo:= Boleto.CriarTituloNaLista;
      Boleto.Cedente.Nome          := CdsBancoBoletoCEDENTE.AsString;
      Boleto.Cedente.TipoInscricao := pJuridica;
      Boleto.Cedente.CNPJCPF       := QryInfoEmpresaLOJ_CNPJ.AsString;
      Boleto.Cedente.Agencia       := CdsBancoBoletoNUMERO_AGENCIA.AsString;
      Boleto.Cedente.AgenciaDigito := CdsBancoBoletoDIGITO_AGENCIA.AsString;
      Boleto.Cedente.Conta         := CdsBancoBoletoNUMERO_CONTA.AsString;
      Boleto.Cedente.ContaDigito   := CdsBancoBoletoDIGITO_CONTA.AsString;
      Boleto.Cedente.CodigoCedente := CdsBancoBoletoCOD_CEDENTE.AsString;
      Boleto.Cedente.Logradouro    := QryInfoEmpresaENDERECO.AsString;
      Boleto.Cedente.CodigoTransmissao := '396200007597045';
      Boleto.Cedente.TipoCarteira  := tctRegistrada;

      {Correção do Bug do Componente para pegar o numero da carteira}
      Boleto.Cedente.Modalidade := CdsBoletoConfigCARTEIRA.AsString;

      if Trim(CdsBancoBoletoNUMERO_BANCO.AsString) = '033' then
         Boleto.Banco.TipoCobranca := cobSantander
      else
      if Trim(CdsBancoBoletoNUMERO_BANCO.AsString) = '237' then
        Boleto.Banco.TipoCobranca := cobBradesco
      else
      if Trim(CdsBancoBoletoNUMERO_BANCO.AsString) = '341' then
         Boleto.Banco.TipoCobranca := cobItau;

      vrJuros := TruncaValor((((EdtValorBoleto.Value*CdsBoletoConfigJUROS.AsFloat)/100)/30),2);
      vrMulta := TruncaValor((((EdtValorBoleto.Value*CdsBoletoConfigMULTA.AsFloat)/100)),2);


      with Titulo do
      begin
        //Cliente
        Sacado.NomeSacado := CdsBoletoCLI_RAZAO.AsString;
        Sacado.Pessoa     := pJuridica;
        Sacado.CNPJCPF    := '18523351000142';
        Sacado.Logradouro := 'Rua tres, 254';
        Sacado.Bairro     := 'Bairro';
        Sacado.Cidade     := 'Fortaleza';
        Sacado.UF         := 'Ce';
        Sacado.CEP        := '60000000';
        Sacado.Email      := '7master@7mater.com.br';

        NumeroDocumento   := CdsBoletoBOL_NUMER_DOC.AsString;
        LocalPagamento    := CdsBoletoConfigLOCAL_PAGTO.AsString;
        Vencimento        := now;
        DataDocumento     := now;
        EspecieDoc        := CdsBoletoConfigESPECIE.AsString;
        Aceite            := atNao;
        DataProcessamento := Now;
        DataProtesto      := Now + CdsBoletoConfigDIAS_PROTESTO.AsInteger;

        if Trim(CdsBancoBoletoNUMERO_BANCO.AsString) = '341' then
           NossoNumero       := IntToStrZero(iTitulo,8)
        else
        NossoNumero       := IntToStrZero(iTitulo,10);
        Carteira          := CdsBoletoConfigCARTEIRA.AsString;

        //ValorMoraJuros    := CdsBoletoConfigJUROS.AsFloat;
       // DataMoraJuros     := Vencimento;
        ValorDocumento    := CdsBoletoBOL_VALOR.AsFloat;
        ValorAbatimento   := 0;
        DataAbatimento    := 0;
        Instrucao1        := '';
        Instrucao2        := '';
        Mensagem.Text     := CdsBoletoConfigMENSAGEM.AsString+
                             chr(13)+chr(10)+
                             'Após o vencimento cobrar multa de R$'+FloatToStr(vrMulta)+
                             ' e juros de R$ '+FloatToStr(vrJuros)+' ao dia.';
      end;
      inc(iTitulo);
      CdsBoleto.Next;
    end;
    end;

     Boleto.LayoutRemessa := c240;
     Boleto.DirArqRemessa := 'C:\REMESSA\';
     Boleto.GerarRemessa(1);

   except
      MessageDlg('Erro ao gerar arquivo de remessa. Verifique!',mtWarning,[mbOK],0);
   end;
Sidney Abreu

Sidney Abreu

Curtidas 0

Respostas

Marco Antônio

Marco Antônio

26/02/2016

Sidney, bom dia.
Vc está usando ACBR?

Posição 58 é a carteira utilizada. Neste caso vc está enviando '1' e na conta do seu cliente esta configurado para carteira '5'.
Neste caso precisa que vc confirme se realmente é carteira '1'. Caso seja, o seu cliente deverá entra em contato com o gerente
para solicitar alteração de carteira nas configurações da conta dele. Agora se realmente for '5' ae vc tem que alterar a carteira
nas configurações do seu sistema.

Não utilizo ACBR, mas acredito que nele vc deve ter o parâmetro que deve receber o código da carteira.

Abc
GOSTEI 0
POSTAR