Ir para conteúdo
  • Cadastre-se

dev botao

Segmento S - Santander e Banco do Brasil - Mensagem C 200


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

Recommended Posts

Postado

Boa tarde,

Estou precisando enviar a mensagem do Segmento S, onde possui 200 colunas, para envio no Santander e no Banco do Brasil.

Fiz uma análise do fonte da Caixa. Temos no Segmento R - de 40 colunas o campo mensagem 3 (Coluna 100 a 139 - Mensagem 3) - é enviado em branco.

 

      {SEGMENTO R}
      Result:= Result + #13#10 +
               IntToStrZero(ACBrBanco.Numero, 3)   
...
               PadRight('', 40, ' ')                                                           + // 100 a 139 - Mensagem 3

No segmento S é enviado Mensagem 5, 6, 7, 8 e 9, totalizando 200 colunas de mensagem 

    {SEGMENTO S}
    if (Mensagem.Count > 0) then
    begin
      Result := Result + #13#10 +
...
                MontarInstrucoes2                                                           + // 019 - 058 / Mensagem 5
                                                                                              // 059 - 098 / Mensagem 6
                                                                                              // 099 - 138 / Mensagem 7
                                                                                              // 139 - 178 / Mensagem 8
                                                                                              // 179 - 218 / Mensagem 9

 

No Banco do Brasil e no Santander, não temos a programação das mensagens no segmento S.

 

No Santander, no segmento S temos a rotina MontarInstrucoes2, mas gera as 200 colunas em branco.

Seguindo o exemplo da Caixa, talvez mudando de:

  function MontarInstrucoes2: string;
  begin
    with ACBrTitulo do
    begin
      if Mensagem.Count <= 2 then
      begin
        // Somente duas linhas, foi montado o MonarInstrucoes1
        Result := PadRight('', 200, ' '); // 5 registros
        Exit;
      end;

Para: 

  function MontarInstrucoes2: string;
  begin
    with ACBrTitulo do
    begin
      if (Mensagem.Count <= 2) then
      begin
        if (Mensagem.Count = 2) then
          Result := Copy(PadRight(Mensagem[0] +' / '+ Mensagem[1], 200, ' '), 1, 200)
        else
          Result := Copy(PadRight(Mensagem[0], 200, ' '), 1, 200);
        Exit;
      end;

 

Já no Banco do Brasil, não é gerado nem a Mensagem 3 e nem a mensagem 5, 6, 7, 8 e 9, vejamos o Segmento R:

     {SEGMENTO R}
     Result:= Result + #13#10 +
...
              PadRight('',110,' ')                                                    + // 90 - 199

Obs.: Segmento S não tem.

Então a sugestão de alteração seria mudar os 110 em branco para 10, 40 e 60: 

No segmento S:

     {SEGMENTO R}
     Result:= Result + #13#10 +
...
              PadRight('',10,' ')                                                     + // 90 - 99  - Informação ao Sacado
              PadRight(AMensagem,40,' ')                                              + // 100 - 139  - Mensagem 3
              PadRight('',60,' ')                                                     + // 140 - 199  - Não tratado

Se no segmento S a nova programação: 

     {SEGMENTO S}
     if (Mensagem.Count > 0) then
     begin
       Result := Result + #13#10 +
                IntToStrZero(ACBrBanco.Numero, 3)                                           + // 001 a 003 - Código do banco
                '0001'                                                                      + // 004 - 007 - Numero do lote remessa
                '3'                                                                         + // 008 - 008 - Tipo de registro
                IntToStrZero((3 * ACBrBoleto.ListadeBoletos.IndexOf(ACBrTitulo))+ 4 ,5) +     // 009 - 013 - Número seqüencial do registro no lote - Cada título tem 2 registros (P e Q)
                'S'                                                                         + // 014 - 014 - Cód. Segmento do registro detalhe
                Space(1)                                                                    + // 015 - 015 - Reservado (uso Banco)
                ATipoOcorrencia                                                             + // 016 - 017 - Código de movimento remessa
                ifthen( (Mensagem.Count <= 2), '0', '8' )                                   + // 018 - 018 - Identificação da impressão
                ifthen( (Mensagem.Count <= 2), '00', '' )                                   + // 019 - 020 - Reservado (uso Banco) para tipo de impressão 1 e 2
                MontarInstrucoes2                                                           + // 019 - 058 - Mensagem 5
                                                                                              // 059 - 098 - Mensagem 6
                                                                                              // 099 - 138 - Mensagem 7
                                                                                              // 139 - 178 - Mensagem 8
                                                                                              // 179 - 218 - Mensagem 9
                ifthen( (Mensagem.Count <= 2), '00' + Space(78) ,Space(22));                  // 219 - 240 - Reservado (uso Banco) para tipo de impressão 3
     end;                                                                                     // 161 - 240 - Reservado (uso Banco) para tipo de impressão 1 e 2
     {SEGMENTO S - FIM}

 

Segue os arquivos modificados, para verificar a possibilidade de alteração para o envio das Obs no Segmento S do Banco Santander e Banco do Brasil.

 

Obrigado,

Rodrigo

 

ACBrBancoSantanderCorrecao.pas

ACBrBancoBrasilCorrecao.pas

  • Curtir 1

Rodrigo ®¿®

Curitiba-PR

  • 3 semanas depois ...
  • Moderadores
  • Solution
Postado

Bom dia

Foi adicionado o Segmento S no Banco do Brasil com mais algumas correções.

O banco Santander, já existe o tratamento "MontarInstrucao1" Por isso o mesmo não é passado no segmento "S" nos casos da mensagem 1 e 2. Portanto não foi alterado para não quebrar compatibilidade da forma que já funciona...

Favor atualizar os fontes realizar os testes. Obrigado!

  • Curtir 1
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

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

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