, Correçoes na busca da API para ver os ultimos planos

This commit is contained in:
2026-08-28 17:24:05 -03:00
parent 3e51d0e03b
commit 2bdad2a45b
4 changed files with 210 additions and 34 deletions

View File

@@ -126,15 +126,47 @@ module Pdf
end
def self.logo_escolhido
caminho, = logo_configurado
caminho
end
# O logo escolhido E o motivo de ele não estar valendo — os dois juntos,
# porque quem chama precisa saber a diferença entre "ninguém escolheu logo"
# e "o logo que o operador subiu SUMIU do disco".
#
# ⚠️ ISTO ERA UM `File.exist?(x) ? x : nil` MUDO, e foi um bug real
# (relatado em 28/08/2026): o operador subiu outro logo, a tela disse "Logo
# atualizado", e o PDF continuou saindo com o logo antigo — porque o arquivo
# não estava mais na pasta e o método caía no padrão sem dizer nada a
# ninguém. Falha silenciosa em cima de documento que vai IMPRESSO para o
# cliente é o pior tipo: ninguém procura o que não reclama.
#
# A causa mais provável do arquivo sumir: `storage/` é gitignorado
# (`/storage/*`) e o deploy é cópia de pasta pelo share SMB do NAS — a cópia
# leva junto a pasta vazia da máquina de quem publicou. Se acontecer de
# novo, o log e a tela agora dizem.
#
# Devolve [caminho, problema]:
# [nil, nil] -> ninguém escolheu logo (usa o da GADE, normal)
# [caminho, nil] -> logo escolhido e presente
# [nil, :sumiu] -> escolhido MAS o arquivo não está lá
# [nil, :sem_banco] -> sem Rails/tabela (o container pelado do layout)
def self.logo_configurado
nome = Configuracao.valor('romaneio_logo').to_s
return nil if nome.strip.empty?
return [nil, nil] if nome.strip.empty?
caminho = pasta_logos.join(nome).to_s
File.exist?(caminho) ? caminho : nil
return [caminho, nil] if File.exist?(caminho)
if defined?(Rails) && Rails.respond_to?(:logger) && Rails.logger
Rails.logger.error("[romaneio] logo '#{nome}' configurado mas AUSENTE em #{pasta_logos}" \
'o PDF saiu com o logo padrão')
end
[nil, :sumiu]
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
[nil, :sem_banco]
end
def render