Correção LAT E LONG mudando a , para ponto

This commit is contained in:
2026-07-15 09:53:46 -03:00
parent 1837a02ec9
commit e129e991e4
2 changed files with 11 additions and 9 deletions

View File

@@ -146,9 +146,9 @@ module SimpliRoute
[base, cep].compact.join('|') [base, cep].compact.join('|')
end end
# Coordenada como Float (com PONTO). O rastreio pode trazer texto com vírgula # Coordenada como Float. O rastreio pode trazer texto com vírgula decimal
# decimal ("-23,62"); coordenadas não usam separador de milhar, então trocar # ("-23,62"); coordenadas não usam separador de milhar, então trocar a
# a vírgula por ponto é seguro e garante a saída numérica (ponto) no .xlsx. # vírgula por ponto é seguro — o Float#to_s do xlsx sai sempre com PONTO.
def to_coord(valor) def to_coord(valor)
Float(valor.to_s.strip.tr(',', '.')) Float(valor.to_s.strip.tr(',', '.'))
rescue ArgumentError, TypeError rescue ArgumentError, TypeError

View File

@@ -59,8 +59,10 @@ module SimpliRoute
private private
# Monta [valores, tipos] de uma linha (A..Z). Lat/long numéricos quando há # Monta [valores, tipos] de uma linha (A..Z). Lat/long como TEXTO com ponto
# match; D/E como texto ("08:00"/"18:00"); NF/ref como texto (igual ao exemplo). # decimal — se fossem numéricas, Excel/LibreOffice em pt-BR exibiria vírgula
# (locale) e o cliente subiria "-23,57" pro SimpliRoute; D/E como texto
# ("08:00"/"18:00"); NF/ref como texto (igual ao exemplo).
def linha(l) def linha(l)
lat = l[:latitude] lat = l[:latitude]
lng = l[:longitude] lng = l[:longitude]
@@ -72,8 +74,8 @@ module SimpliRoute
l[:janela_fim], # E l[:janela_fim], # E
l[:tempo], # F l[:tempo], # F
l[:anotacoes].to_s, # G l[:anotacoes].to_s, # G
(lat.nil? ? '' : lat), # H lat.to_s, # H
(lng.nil? ? '' : lng), # I lng.to_s, # I
l[:referencia].to_s, # J l[:referencia].to_s, # J
'', '', # K, L '', '', # K, L
l[:contato].to_s, # M l[:contato].to_s, # M
@@ -82,8 +84,8 @@ module SimpliRoute
] ]
tipos = [ tipos = [
:string, :string, :integer, :string, :string, :integer, :string, :string, :string, :integer, :string, :string, :integer, :string,
(lat.nil? ? :string : :float), # H :string, # H
(lng.nil? ? :string : :float), # I :string, # I
:string, :string, :string, :string, :string, :string, :string, :string, :string, :string,
*Array.new(VAZIAS_FINAIS.size, :string) *Array.new(VAZIAS_FINAIS.size, :string)
] ]