Correçoes do campo de busca no mapa e ajustes de interface no dash

This commit is contained in:
2026-06-30 11:25:31 -03:00
parent 4b3f80a2e0
commit a5742d178a
3 changed files with 53 additions and 28 deletions

View File

@@ -146,11 +146,11 @@ module Analytics
}
end
# Pontos [lat, lng] das entregas concluídas para o heatmap.
# Pontos [lat, lng] das entregas ATENDIDAS (sucesso + falhas) para o heatmap.
# Prefere as coordenadas de CHECKOUT (saída); cai para as de CHECKIN.
def pontos_mapa
@pontos_mapa ||= linhas.filter_map do |r|
next unless r['status'] == 'completed'
next unless Entrega::STATUS_ATENDIDO.include?(r['status'])
lat = num(r['checkout_latitude']) || num(r['latitude'])
lng = num(r['checkout_longitude']) || num(r['longitude'])
next if lat.nil? || lng.nil? || (lat.zero? && lng.zero?)
@@ -165,12 +165,13 @@ module Analytics
# Limite de marcadores no modo "Pontos" (Leaflet fica pesado com milhares).
MAX_PONTOS = 2000
# Pontos detalhados (modo "Pontos" do mapa) — um por entrega CONCLUÍDA com
# coordenada de CHECKOUT (onde a entrega foi registrada). Inclui dados para o
# popup (NF, destinatário, endereço, unidade, motorista, data).
# Pontos detalhados (modo "Pontos" do mapa) — um por entrega ATENDIDA
# (sucesso OU insucesso: óbito e demais pilares de falha), com coordenada de
# CHECKOUT (ou planejada como fallback). Inclui dados para o popup (NF,
# destinatário, endereço, unidade, motorista, veículo, data, status, motivo).
def pontos_detalhados
@pontos_detalhados ||= linhas.filter_map do |r|
next unless r['status'] == 'completed'
next unless Entrega::STATUS_ATENDIDO.include?(r['status'])
lat = num(r['checkout_latitude']) || num(r['latitude'])
lng = num(r['checkout_longitude']) || num(r['longitude'])
next if lat.nil? || lng.nil? || (lat.zero? && lng.zero?)
@@ -183,6 +184,8 @@ module Analytics
motorista: r['driver'],
veiculo: r['vehicle'],
checkout: data_de(r['checkout'])&.strftime('%d/%m/%Y'),
sucesso: r['status'] == 'completed',
motivo: r['observation'].presence,
foto: foto_url(r['foto_da_fachada'])
}
end.first(MAX_PONTOS)