Implantação da geração de mensagem de forma livre e mudança na engine de mensagem
This commit is contained in:
@@ -118,6 +118,15 @@ class Admin::EdicaoLancamentosController < ApplicationController
|
||||
request: request
|
||||
)
|
||||
|
||||
# Mudança na operação feita POR DENTRO do sistema. A maioria das mudanças
|
||||
# vem de fora e é pega pelo DetectarMudancasOperacaoJob; esta chega na hora
|
||||
# e sabe exatamente qual NF e o que mudou.
|
||||
Notificacao::Gatilhos.operacao_alterada(
|
||||
operacao: anterior['title'].presence || 'SimpliRoute',
|
||||
o_que_mudou: descrever_mudanca(anterior, atualizada, attrs.keys),
|
||||
nf: anterior['reference']
|
||||
)
|
||||
|
||||
respond_to do |format|
|
||||
format.json do
|
||||
render json: { ok: true, campos: attrs.keys, visita: atualizada.slice(*CAMPOS_EDITAVEIS) }
|
||||
@@ -157,6 +166,18 @@ class Admin::EdicaoLancamentosController < ApplicationController
|
||||
|
||||
private
|
||||
|
||||
# "status: pending → completed; observação: … → ÓBITO" — o texto que vai para
|
||||
# a variável {{o_que_mudou}} do editor de blocos.
|
||||
def descrever_mudanca(anterior, atualizada, campos)
|
||||
Array(campos).filter_map do |campo|
|
||||
de = anterior[campo].to_s.strip
|
||||
para = atualizada[campo].to_s.strip
|
||||
next if de == para
|
||||
|
||||
"#{campo}: #{de.presence || '(vazio)'} → #{para.presence || '(vazio)'}"
|
||||
end.join('; ').presence || 'lançamento atualizado'
|
||||
end
|
||||
|
||||
def client
|
||||
@client ||= SimpliRoute::Client.new
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user