Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado (editado)

Olá Amigos.

Recebi algumas solicitação de clientes na geração de boleto e arquivos de remessa pela ACBrBancoCaixa

(240 posições), mais para que boleto possa atualizado pelo cedente do boleto após o vencimento pelo

link abaixo

(https://bloquetoexpresso.caixa.gov.br/bloquetoexpresso/index.jsp) estaria com algumas divergentes contido arquivo de remessa com o boleto da Caixa .

Nos seguintes campos.

No segmento R

Campo 14.3R> Nome Código da Multa>Posição 066 > contém o valor 1, deve conter o valor 2

(Código da multa: 1- Valor fixo, 2- Percentual)

Porem quando o valor de multa for  fixo de ser informado código de multa "1" e campo 16.3R  Valor/Percentual Ser Aplicado , Posição 75 até 89

Preencher de acordo com a informação do campo 14.3R (Código da Multa),

utilizando duas casas decimais: Se 14.3R = '0', preencher com zeros; Se = ‘1’, informar Valor;

 Se = ‘2’, informar percentual; Como não havia implementação para esse caso no fontes  ACBrBancoCaixa

tive realizar algumas alteração fontes ACBrBoleto e ACBrBancoCaixa.

Caso não esteja no padrão do ACBr fico grato que seja analisando,

pois fiz algumas alterações para poder recebe valor 1 no campo código multa 1 e para recebe valor fixo da multa igual o valor contido campo observação 

no boleto gerado pelo Acbr.

Seguir as alterações dos arquivos abaixo.

 Na Classe TACBrTitulo  property CodigoMulta : String read fCodigoMulta write SetCodigoMulta;

 procedure TACBrTitulo.SetCodigoMulta(const AValue: String);

 begin

   if fCodigoMulta = AValue then

      exit;

   fCodigoMulta := AValue;

 end;

Na ACBrBancoCaixa alteração feitas

      {Multa}

      if (PercentualMulta > 0) then

        ADataMulta := IfThen(DataMoraJuros > 0,

                             FormatDateTime('ddmmyyyy', DataMoraJuros),

                             FormatDateTime('ddmmyyyy', Vencimento + 1))

      else

      begin

        ADataMulta := PadLeft('', 8, '0');

        CodigoMulta  := '0';

      end;

               IfThen(CodigoMulta  = '1' ,'1',

               IfThen((PercentualMulta <> null) and (PercentualMulta > 0), '2', '0'))         + //  66 a 66  - Código da Multa

               ADataMulta                                                                     + //  67 a 74  - Data da Multa

               IfThen(CodigoMulta  = '1',IntToStrZero(round(ValorDocumento * PercentualMulta),15),

               IfThen(PercentualMulta > 0, IntToStrZero(round(PercentualMulta * 100), 15),

                      PadRight('', 15, '0')))                                                   + //  75 a 89  - Valor/Percentual a ser aplicado

 

ACBrBancoCaixa.pas

ACBrBoleto.pas

Editado por Pablo Gimenez
laytout do topic
  • Administradores
Postado

Boa tarde.

No ACBrBancoCaixa.pas anexo a popriedade CodigoMulta não é utilizada em nenhum momento.

Att.

  • Curtir 1
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 !!

Postado (editado)

 Bom Dia 

Juliana

a propriedade CodigoMulta é utilizada no segmento R para informa que valor da multa é fixo conforme documentação SIGCB_Cobranca_Caixa_Manual_de_Leiaute_CNAB240_SIGCB_outubro_2015.pdf

pagina 30

Segmento R 

A cobrança de multa por atraso no pagamento do título pelo Pagador  no campo 14.3R posição 66 

dever : ‘0’ (Sem Multa); ou '1' (Valor Fixo); ou '2' (Percentual)

Esse Alteração permite que o valor 1 possa ser informado no momento da criação do arquivo de remessa pelo  ACBrBancoCaixa.pas

Mais foi do meu jeito a alteração , podendo ter outras formulas  de ser feito.

qualquer duvidas me avisar

 

Editado por Pablo Gimenez
  • Administradores
Postado

Boa tarde.

 O ideal seria tratar como é feito com o código de mora, observe o uso da propriedade CodigoMora nas classe do componente. Seria interessante colocar a mesma validação por classe de forma que os usuários possam informar somente códigos válidos.

Att.

  • Curtir 1
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 !!

Postado (editado)

Entendo a validação do código Mora  e fiz as alterações semelhantes no código Multa .

Só  atribuir o valor fixo da string como '12' o mesmo para código Mora

na create da classe TACBrBancoClass  na linha 2027

ACBrBoleto.pas

Editado por Pablo Gimenez
  • Administradores
Postado

Bom dia.

48 minutos atrás, Pablo Gimenez disse:

Bom dia, Pessoal ,Algumas novidades !!!

Ainda não foi anallisado.

Att.

  • Curtir 1
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 !!

  • 2 semanas depois ...
  • 4 semanas depois ...
  • Administradores
Postado

Boa tarde

Vc fez novos ajustes?

Att.

  • Curtir 1
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 !!

Postado

No fonte ACBrBoleto.pas está implementado os CodigoMulta e CodigosMultaAceitos 

, Mais do fontes ACBrBancoCaixa.pas alterei para recebe o valor do CodigoMulta direto , caso contrario 3

IfThen (ValorMoraJuros > 0, CodigoMora ,'3')+ //118 - Código de juros de mora: Valor por dia

Acho que agora não será necessário colocar o valor de zero  para CodigoMulta  , Conforme linhas abaixo no fontes ACBrBancoCaixa.pas

  {Multa}
      if (PercentualMulta > 0) then
        ADataMulta := IfThen(DataMoraJuros > 0,
                             FormatDateTime('ddmmyyyy', DataMoraJuros),
                             FormatDateTime('ddmmyyyy', Vencimento + 1))
      else
      begin
        ADataMulta := PadLeft('', 8, '0');
        CodigoMulta  := '0';
      end;

Para 
      if (PercentualMulta > 0) then
        ADataMulta := IfThen(DataMoraJuros > 0,
                             FormatDateTime('ddmmyyyy', DataMoraJuros),
                             FormatDateTime('ddmmyyyy', Vencimento + 1))
      else
        ADataMulta := PadLeft('', 8, '0');
      end;

 

 

  • Administradores
Postado

Bom dia.

A propriedade CodigosMultaAceitos tem por finalidade garantir que sejam informados valores válidos para o banco, não entendi sua explicação da alteração.

Att.

  • Curtir 1
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 !!

Postado

Desculpa , não fiz alteração no  CodigosMultaAceitos   , somente na linha

aonde era  

IfThen(ValorMoraJuros > 0, '1', '3') + //118 - Código de juros de mora: Valor por dia

Ficou 

IfThen (ValorMoraJuros > 0, CodigoMora ,'3')+ //118 - Código de juros de mora: Valor por dia

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

The popup will be closed in 10 segundos...