Implantação da criação de romaneios
This commit is contained in:
@@ -234,6 +234,24 @@ class Admin::RomaneiosController < ApplicationController
|
||||
return nil
|
||||
end
|
||||
|
||||
# Sem operação escolhida, tenta deduzi-la do NOME DO PLANO ("ENTREGAS EMAD
|
||||
# 09.2026" → gade_entregas_emad_set_2026).
|
||||
#
|
||||
# POR QUE ISSO É IMPORTANTE E NÃO CONVENIÊNCIA: é a operação que diz quem é
|
||||
# paciente NOVO. Importar sem ela produz um romaneio de aparência normal com a
|
||||
# coluna APARELHO vazia para TODOS — o erro só aparece no papel, com aparelho
|
||||
# não entregue. A operação não é campo opcional na prática; era só difícil de
|
||||
# acertar, porque o nome do plano e o nome da tabela nunca são iguais.
|
||||
#
|
||||
# Empate/nenhum casamento devolve nil e segue sem operação: vincular a errada
|
||||
# preencheria APARELHO e TELEFONE com dados de OUTRO mês, sem ninguém
|
||||
# desconfiar. A tela avisa quando ficou sem.
|
||||
@operacao_deduzida = nil
|
||||
if tabela.blank? && params[:rotulo_plano].present?
|
||||
tabela = Romaneios::CasadorDeOperacao.casar(params[:rotulo_plano]).to_s
|
||||
@operacao_deduzida = tabela.presence
|
||||
end
|
||||
|
||||
data = Date.parse(data)
|
||||
Romaneio.find_or_create_by!(planned_date: data, operacao_tabela: tabela) do |r|
|
||||
r.rotulo_plano = params[:rotulo_plano].presence || Romaneio.rotulo_sugerido(tabela, data)
|
||||
@@ -247,8 +265,18 @@ class Admin::RomaneiosController < ApplicationController
|
||||
def importar(linhas, origem:)
|
||||
resultado = aplicar(linhas, origem: origem)
|
||||
auditar!(:criar, @romaneio, dados_novos: resultado.to_h)
|
||||
|
||||
# Dizer que a operação foi deduzida, e qual: dedução silenciosa que acerta é
|
||||
# invisível, mas dedução silenciosa que erra é indefensável — o operador
|
||||
# precisa ver de qual mês vieram os dados de APARELHO.
|
||||
aviso = if @operacao_deduzida
|
||||
" Operação #{Operacao.label(@operacao_deduzida)} vinculada pelo nome do plano."
|
||||
else
|
||||
''
|
||||
end
|
||||
|
||||
redirect_to admin_romaneio_path(@romaneio),
|
||||
notice: "Plano importado — #{resultado.resumo}."
|
||||
notice: "Plano importado — #{resultado.resumo}.#{aviso}"
|
||||
end
|
||||
|
||||
def aplicar(linhas, origem:)
|
||||
|
||||
Reference in New Issue
Block a user