Implandação da customização das permissões dos usuarios e das notificaçoes
This commit is contained in:
31
app/services/notificacao/formatador.rb
Normal file
31
app/services/notificacao/formatador.rb
Normal file
@@ -0,0 +1,31 @@
|
||||
# app/services/notificacao/formatador.rb
|
||||
#
|
||||
# Formatação dos valores que entram numa mensagem. Existe porque o mesmo `moeda`
|
||||
# estava copiado em `Notificacao::Gatilhos` e em `NotificacaoService` — e agora o
|
||||
# catálogo de variáveis também precisa dele, o que faria três cópias.
|
||||
#
|
||||
# Métodos de módulo (sem estado): é chamado de model, job, service e view.
|
||||
module Notificacao
|
||||
module Formatador
|
||||
module_function
|
||||
|
||||
# R$ 1.234,56 — separador de milhar incluído (o `number_to_currency` do Rails
|
||||
# depende de locale carregado, e isto roda também dentro de job).
|
||||
def moeda(valor)
|
||||
inteiro, decimais = format('%.2f', valor.to_f).split('.')
|
||||
inteiro = inteiro.reverse.gsub(/(\d{3})(?=\d)/, '\1.').reverse
|
||||
"R$ #{inteiro},#{decimais}"
|
||||
end
|
||||
|
||||
def periodo(inicio, fim)
|
||||
return '' if inicio.blank? || fim.blank?
|
||||
|
||||
"#{inicio.to_date.strftime('%d/%m/%Y')} a #{fim.to_date.strftime('%d/%m/%Y')}"
|
||||
end
|
||||
|
||||
# Números grandes ficam ilegíveis sem separador numa mensagem de WhatsApp.
|
||||
def numero(valor)
|
||||
valor.to_i.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\1.').reverse
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user