Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde,

Um cliente está solicitando que saia no corpo do boleto a multa em porcentagem e não em reais, estou alimentando o campo PercentualMulta mas na hora de imprimir ele calcula com o valor total e imprime no corpo o valor.

Tem alguma maneira de sair impresso a multa em porcentagem e não em valor?

"A arte de programar consiste em organizar e dominar a complexidade." 🤖

-Edsger W. Dijkstra

  • Administradores
Postado

Boa noite.

Basta você informar na propriedade Titulo.CodigoMora o valor "2".

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

Postado

Bom dia Juliana,

Informando o CódigoMora '2' muda apenas o juro, a multa continua sendo informada o percentual e imprimindo o valor calculado no boleto, a partir do PercentualMulta e do ValorDocumento. 

Obrigado.

"A arte de programar consiste em organizar e dominar a complexidade." 🤖

-Edsger W. Dijkstra

  • 3 meses depois ...
  • 3 semanas depois ...
  • Membros Pro
Postado

Olá,

Boa tarde. Sei que o tópico já tem um tempo mas no meu sistema eu faço da seguinte maneira:

// configura nos parâmetros pro ACBr não emitir as mensagens pois você mesmo o fará
ACBrBoleto.ImprimirMensagemPadrao   := False;

.....
var
    AStringList: TStrings;
begin
    ....
    AStringList := TStringList.Create;

    for ....... do
    begin
        ......
        AStringList.Clear;
        ......
 
        TituloACBr.CodigoMora            := '1';  // OU 2 se você quiser que saia em %
        TituloACBr.ValorMoraJuros        := 0;
        TituloACBr.DataMoraJuros         := 0;

        if njuromensal>0 then
            TituloACBr.PercentualMulta   := njuromensal;

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

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

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

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

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

        TituloACBr.Mensagem.Text  := AStringList.Text + 'mais suas instruções personalizadas';
    ....
    end;
    ......
end;

No mais, os campos devem ser preenchidos normalmente caso você envie remessa tá ok. Desse jeito aí, onde tem o texto //mensagens personalizadas, dali pra frente você mexe como bem entender.

Até mais,

 

 

-- 

Alexandre de Oliveira

Diretor de T.I.

xx16 3811 0155

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

image.png.744a897bbf36127e428c6e687ef05731.png

 

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

The popup will be closed in 10 segundos...