, correção da pagina de gerar romaneio e outros fix
This commit is contained in:
@@ -29,6 +29,9 @@ class Admin::RomaneiosController < ApplicationController
|
||||
@linhas = @romaneio.linhas_vigentes.do_veiculo(@veiculo).to_a if @veiculo
|
||||
@removidas = @romaneio.linhas_removidas.to_a
|
||||
@colunas_ausentes = colunas_ausentes_da_operacao
|
||||
# Mesma lista da tela de criação: o vínculo manual da operação acontece aqui
|
||||
# também, porque é aqui que se descobre que APARELHO saiu vazio.
|
||||
@operacoes_agrupadas = Operacao.agrupadas_por_mes
|
||||
end
|
||||
|
||||
# Caminho A: busca o plano no SimpliRoute (API, com queda para o espelho).
|
||||
@@ -131,6 +134,39 @@ class Admin::RomaneiosController < ApplicationController
|
||||
redirect_to admin_romaneio_path(@romaneio, veiculo: params[:veiculo]), alert: e.message
|
||||
end
|
||||
|
||||
# Vincula a operação do mês à mão e preenche APARELHO/TELEFONES/NOME a partir
|
||||
# dela. É a saída para quando o casamento pelo nome do plano não acontece — sem
|
||||
# isso o único caminho era reimportar, que depende da API responder ou de o
|
||||
# operador ainda ter o .xlsx do plano.
|
||||
def vincular_operacao
|
||||
authorize @romaneio
|
||||
|
||||
resultado = Romaneios::VinculadorDeOperacao.new(romaneio: @romaneio,
|
||||
tabela: params[:operacao_tabela]).aplicar!
|
||||
auditar!(:vincular_operacao, @romaneio,
|
||||
dados_novos: resultado.to_h.merge(operacao_tabela: @romaneio.operacao_tabela))
|
||||
|
||||
# Sem a coluna STATUS a operação não sabe quem é NOVO: o vínculo deu certo e
|
||||
# mesmo assim ninguém recebe aparelho. Dizer isso aqui evita a leitura de que
|
||||
# "vinculei e continua vazio, logo o sistema está errado".
|
||||
aviso = if resultado.colunas_ausentes.include?('status')
|
||||
" Atenção: esta operação não tem a coluna STATUS, então APARELHO continua vazio e precisa ser preenchido à mão."
|
||||
else
|
||||
''
|
||||
end
|
||||
|
||||
redirect_to admin_romaneio_path(@romaneio, veiculo: params[:veiculo]),
|
||||
notice: "Operação #{@romaneio.operacao_label} vinculada — #{resultado.resumo}.#{aviso}"
|
||||
rescue ArgumentError
|
||||
redirect_to admin_romaneio_path(@romaneio, veiculo: params[:veiculo]),
|
||||
alert: 'Selecione uma operação válida.'
|
||||
rescue Romaneios::VinculadorDeOperacao::Conflito => e
|
||||
redirect_to admin_romaneio_path(@romaneio, veiculo: params[:veiculo]),
|
||||
alert: "#{e.message} Abra o romaneio de " \
|
||||
"#{l e.existente.planned_date, format: '%d/%m/%Y'} (#{e.existente.rotulo_plano.presence || 'sem rótulo'}) " \
|
||||
'em vez de duplicar o documento do dia.'
|
||||
end
|
||||
|
||||
# Com ?veiculo= sai INLINE (é a prévia do editor, uma folha só, sub-100ms);
|
||||
# sem veiculo sai o romaneio inteiro como download.
|
||||
def pdf
|
||||
|
||||
Reference in New Issue
Block a user