Romaneio: lista de veículos visível, busca com contador e logo escolhível
Traz para a tela as funções do programa original (Romaneiro PDF), na linha de
design do projeto:
- Veículos deixam de ser um <select> e viram lista visível com a contagem de
paradas de cada carro — que é a conferência feita antes de imprimir e ficava
invisível mostrando um veículo por vez. Cada item é link (?veiculo=), então
sobrevive ao 'voltar' e ao F5. No celular vira faixa horizontal.
- Na mesma coluna: motorista do veículo, 'PDF deste veículo' e 'PDF de TODOS'.
- Busca ganha 'Limpar busca' e contador vivo ('4 de 31 paradas'). A contagem
saiu do cabeçalho da tabela: dois números para a mesma coisa, um atualizando e
o outro não, é a divergência que a diretriz 1 proíbe.
- Logo do cabeçalho escolhível (Configuracao 'romaneio_logo', separado do
empresa_logo — o romaneio é documento do cliente). PNG/JPG até 2MB, gravado em
storage/logos/ e não em public/, com nome gerado pelo sistema.
This commit is contained in:
@@ -105,12 +105,36 @@ module Pdf
|
||||
@max_linhas_folha = (sobra / @linha_h).floor
|
||||
end
|
||||
|
||||
# O logo é ESCOLHÍVEL na tela (Configuracao 'romaneio_logo') porque o romaneio é
|
||||
# documento do CLIENTE: quando a operação muda de contratante, trocar o
|
||||
# cabeçalho não pode exigir deploy. Sem escolha, cai no logo da GADE que está
|
||||
# no repositório.
|
||||
def self.logo_padrao
|
||||
if defined?(Rails) && Rails.respond_to?(:root) && Rails.root
|
||||
Rails.root.join('public', 'logo-gade.png').to_s
|
||||
else
|
||||
File.expand_path('../../../public/logo-gade.png', __dir__)
|
||||
end
|
||||
return File.expand_path('../../../public/logo-gade.png', __dir__) unless dentro_do_rails?
|
||||
|
||||
logo_escolhido || Rails.root.join('public', 'logo-gade.png').to_s
|
||||
end
|
||||
|
||||
# Pasta dos logos enviados pela tela. Fora de public/ de propósito: o que o
|
||||
# operador sobe não vira arquivo servido pela web sem passar por autorização.
|
||||
def self.pasta_logos
|
||||
Rails.root.join('storage', 'logos')
|
||||
end
|
||||
|
||||
def self.dentro_do_rails?
|
||||
defined?(Rails) && Rails.respond_to?(:root) && !Rails.root.nil?
|
||||
end
|
||||
|
||||
def self.logo_escolhido
|
||||
nome = Configuracao.valor('romaneio_logo').to_s
|
||||
return nil if nome.strip.empty?
|
||||
|
||||
caminho = pasta_logos.join(nome).to_s
|
||||
File.exist?(caminho) ? caminho : nil
|
||||
rescue StandardError
|
||||
# Sem banco (a conferência de layout roda num container Ruby pelado) ou
|
||||
# tabela ainda não migrada: o PDF continua saindo, com o logo padrão.
|
||||
nil
|
||||
end
|
||||
|
||||
def render
|
||||
|
||||
Reference in New Issue
Block a user