Correção do relatório que é gerado para envio gade
This commit is contained in:
@@ -66,6 +66,9 @@ module Analytics
|
||||
# Cabeçalho da ENTREGAS
|
||||
@cab_azul = st.add_style(bg_color: '1155CC', fg_color: 'FFFFFF', b: true)
|
||||
@cab_verm = st.add_style(bg_color: 'C00000', fg_color: 'FFFFFF', b: true)
|
||||
|
||||
# Hiperlink (fotos/comprovantes do SimpliRoute) — azul sublinhado padrão.
|
||||
@link = st.add_style(fg_color: '0563C1', u: true)
|
||||
end
|
||||
|
||||
# ── RESUMO ───────────────────────────────────────────────────
|
||||
@@ -183,19 +186,38 @@ module Analytics
|
||||
# Dump cru do rastreio (todas as visitas das NFs da operação), com o
|
||||
# cabeçalho exato do modelo — sem estilo, como no original; cabeçalho sem
|
||||
# coluna correspondente sai vazio.
|
||||
#
|
||||
# As colunas de foto (Nota Fiscal, Termo de Recebimento, Foto da Fachada,
|
||||
# Relatório de visita) guardam URLs do S3 do SimpliRoute: viram HIPERLINK
|
||||
# clicável (azul sublinhado), para o cliente abrir o comprovante direto do
|
||||
# Excel em vez de copiar e colar a URL.
|
||||
def aba_simpliroute(wb)
|
||||
colunas = @planilha.colunas_rastreio
|
||||
linhas = @planilha.linhas_rastreio
|
||||
wb.add_worksheet(name: 'SimpliRoute') do |sheet|
|
||||
sheet.add_row(colunas.keys)
|
||||
linhas.each do |r|
|
||||
sheet.add_row(colunas.values.map { |col| col ? texto(r[col]) : '' },
|
||||
types: Array.new(colunas.size, :string))
|
||||
valores = colunas.values.map { |col| col ? texto(r[col]) : '' }
|
||||
sheet.add_row(valores, types: Array.new(colunas.size, :string))
|
||||
linkar_urls(sheet, valores)
|
||||
end
|
||||
sheet.auto_filter = "A1:#{Axlsx.col_ref(colunas.size - 1)}#{linhas.size + 1}"
|
||||
end
|
||||
end
|
||||
|
||||
# Transforma em hiperlink toda célula da linha recém-adicionada cujo valor
|
||||
# seja uma URL http(s) — mesma checagem do foto_url do OperacaoMetricas,
|
||||
# para não jogar lixo dentro do <hyperlink> do arquivo.
|
||||
def linkar_urls(sheet, valores)
|
||||
linha = sheet.rows.size
|
||||
valores.each_with_index do |valor, i|
|
||||
next unless valor.to_s.match?(%r{\Ahttps?://\S+\z}i)
|
||||
|
||||
sheet.add_hyperlink(location: valor, ref: "#{Axlsx.col_ref(i)}#{linha}")
|
||||
sheet.rows.last.cells[i].style = @link
|
||||
end
|
||||
end
|
||||
|
||||
def texto(valor)
|
||||
valor.respond_to?(:strftime) ? valor.strftime('%d/%m/%Y %H:%M') : valor.to_s
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user