Ir para conteúdo
  • Cadastre-se

dev botao

Boleto SICOOB posição 221 - Código de protesto: Protestar em XX dias corridos


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

Recommended Posts

Em 04/05/2017 at 09:38, Cesar Balbinott disse:

Fiz uma homologação de boletos do sicoob hoje e me passaram que a posição 221 do arquivo CNAB 240 deveria passar de 1 para 3, isto está fixo no código da unit ACBrBancoBancoob o valor 1.

A mesma situação comigo. Irei realizar uma alteração nesta unit e testar, caso for homologado eu anexo a unit com as alterações.

Editado por Luciano Jr. Mattiello
Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...

Boa tarde @Juliomar Marchetti

Preciso homologar um cliente com a opção "2" (dias úteis) na posição 221 (tipo de protesto), e isso até foi programado já por você mesmo na revisão 13287 do dia 09/05/2017, porém, usando a opção 2, a variável "DiasProtesto" fica errada, pois ela usa a função DaysBetween entre a data de protesto e vencimento.

Exemplo: se o nr. de dias de protesto for 7 dias úteis por exemplo, e no meio tiver um final de semana, o componente já calculou o vencimento levando em consideração apenas os dias úteis lá na função "AtualizaDatasProtesto", dessa forma, usando o DaysBetween a variável "DiasProtesto" fica 9 ao invés de 7, só que como já estamos mandando o tipo de baixa como dias úteis na posição 221, o banco sabe que esse 7 é dias úteis, não precisa ser enviado 9 dias para o vencimento, dessa forma a remessa não está validando afirmando que "Quantidade de dias para protesto diferente da informada no layout".

Eu fiz uma alteração no fonte apenas calculando a variável DiasProtesto com a função "WorkingDaysBetween" quando o tipo de protesto é dias úteis. Por gentileza se puder verificar se é realmente necessário ou se tem outra forma já programada.

Atual:

     if (DataProtesto > 0) then
     begin
        DiasProtesto  := IntToStrZero(DaysBetween(DataProtesto,Vencimento),2);
        case TipoDiasProtesto of 
          diCorridos : ProtestoBaixa := '1';
          diUteis    : ProtestoBaixa := '2';
        end;
     end
     else
     begin
        DiasProtesto := '00';
        ProtestoBaixa:= '3'; //NÃO PROTESTA
     end;

Nova:

     if (DataProtesto > 0) then
     begin
        case TipoDiasProtesto of
          diCorridos :
          begin
            ProtestoBaixa := '1';
            DiasProtesto  := IntToStrZero(DaysBetween(DataProtesto,Vencimento),2);
          end;
          diUteis :
          begin
           ProtestoBaixa := '2';
           DiasProtesto := IntToStrZero(WorkingDaysBetween(Vencimento, DataProtesto),2);
          end;
        end;
     end
     else
     begin
        DiasProtesto := '00';
        ProtestoBaixa:= '3'; //NÃO PROTESTA
     end;

ACBrBancoBancoob.pas

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia

Realmente o componente já calcula o campo DiasDeProtesto retornando total de dias corretos tanto para o tipo "diUteis" quanto para "diCorridos"...

Desta forma poderia informar apenas o campo "DiasDeProtesto":

        DiasProtesto  := IntToStrZero(DiasDeProtesto,2);
                  

Vamos fazer estes ajustes para subir no SVN, assim que possível, obrigado...

Consultor SAC ACBr

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

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

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
  • Este tópico foi criado há 2018 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.