From e129e991e497037913ad43fea62edf088aa30188131c7d6a7da2ff81fdd0a241 Mon Sep 17 00:00:00 2001 From: victor Date: Wed, 15 Jul 2026 09:53:46 -0300 Subject: [PATCH] =?UTF-8?q?Corre=C3=A7=C3=A3o=20LAT=20E=20LONG=20=20mudand?= =?UTF-8?q?o=20a=20,=20para=20ponto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/simpli_route/planilha_carga.rb | 6 +++--- app/services/simpli_route/planilha_carga_xlsx.rb | 14 ++++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/services/simpli_route/planilha_carga.rb b/app/services/simpli_route/planilha_carga.rb index 68d8d5e..579e60e 100644 --- a/app/services/simpli_route/planilha_carga.rb +++ b/app/services/simpli_route/planilha_carga.rb @@ -146,9 +146,9 @@ module SimpliRoute [base, cep].compact.join('|') end - # Coordenada como Float (com PONTO). O rastreio pode trazer texto com vírgula - # decimal ("-23,62"); coordenadas não usam separador de milhar, então trocar - # a vírgula por ponto é seguro e garante a saída numérica (ponto) no .xlsx. + # Coordenada como Float. O rastreio pode trazer texto com vírgula decimal + # ("-23,62"); coordenadas não usam separador de milhar, então trocar a + # vírgula por ponto é seguro — o Float#to_s do xlsx sai sempre com PONTO. def to_coord(valor) Float(valor.to_s.strip.tr(',', '.')) rescue ArgumentError, TypeError diff --git a/app/services/simpli_route/planilha_carga_xlsx.rb b/app/services/simpli_route/planilha_carga_xlsx.rb index 79ead25..0c74d5d 100644 --- a/app/services/simpli_route/planilha_carga_xlsx.rb +++ b/app/services/simpli_route/planilha_carga_xlsx.rb @@ -59,8 +59,10 @@ module SimpliRoute private - # Monta [valores, tipos] de uma linha (A..Z). Lat/long numéricos quando há - # match; D/E como texto ("08:00"/"18:00"); NF/ref como texto (igual ao exemplo). + # Monta [valores, tipos] de uma linha (A..Z). Lat/long como TEXTO com ponto + # 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) lat = l[:latitude] lng = l[:longitude] @@ -72,8 +74,8 @@ module SimpliRoute l[:janela_fim], # E l[:tempo], # F l[:anotacoes].to_s, # G - (lat.nil? ? '' : lat), # H - (lng.nil? ? '' : lng), # I + lat.to_s, # H + lng.to_s, # I l[:referencia].to_s, # J '', '', # K, L l[:contato].to_s, # M @@ -82,8 +84,8 @@ module SimpliRoute ] tipos = [ :string, :string, :integer, :string, :string, :integer, :string, - (lat.nil? ? :string : :float), # H - (lng.nil? ? :string : :float), # I + :string, # H + :string, # I :string, :string, :string, :string, :string, *Array.new(VAZIAS_FINAIS.size, :string) ]