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

This commit is contained in:
2026-08-28 17:03:37 -03:00
parent bfa474262f
commit 3e51d0e03b
6 changed files with 603 additions and 36 deletions

View File

@@ -70,10 +70,51 @@
authenticity_token: form_authenticity_token,
data: { turbo: false }, class: 'space-y-4' do %>
<div class="grid grid-cols-1 sm:grid-cols-3 gap-3">
<%# ── Plano ────────────────────────────────────────────────────────
Antes aqui se pedia a DATA do plano, e era o passo que mais errava:
o operador pensa por operação ("lançou a UBS Sudeste"), e a data
nem estava ao alcance dele — o plano tem uma JANELA e o dia das
rotas ora é o começo dela, ora o fim (EMAD SETEMBRO 2026 vai de
31/08 a 08/09 e roda em 31/08; UBS OESTE AGOSTO vai de 18 a 20/08 e
roda em 20/08). Agora ele escolhe pelo NOME e quem descobre o dia é
a API.
Cinco planos porque a ferramenta é usada logo depois de lançar uma
operação — o que ele quer está sempre entre os últimos.
A lista vazia (API fora, token vencido) NÃO tranca a tela: cai no
campo de data, que é o comportamento antigo inteiro. %>
<div>
<label class="block text-sm font-medium text-gray-300 mb-1.5">Data do plano</label>
<input type="date" name="planned_date" required value="<%= @data_padrao %>"
class="w-full bg-[#1a1a1a] border border-white/10 rounded-xl px-3 py-3 text-white
<label class="block text-sm font-medium text-gray-300 mb-1.5">Plano</label>
<% if @planos.present? %>
<select name="plano_id"
class="w-full bg-[#1a1a1a] border border-white/10 rounded-xl px-3 py-3 text-white
focus:outline-none focus:border-orange-500 min-h-[48px]">
<% @planos.each_with_index do |pl, i| %>
<option value="<%= pl['id'] %>" <%= 'selected' if i.zero? %>>
<%= pl['name'] %> · <%= Array(pl['routes']).size %> veículos
</option>
<% end %>
<%# Escape para plano mais antigo que os 5, ou para refazer um
romaneio de um dia específico: valor vazio faz o controller
usar o campo de data abaixo, como sempre fez. %>
<option value="">— usar uma data específica —</option>
</select>
<p class="text-xs text-gray-500 mt-1.5">
Os 5 planos mais recentes do SimpliRoute. O dia é descoberto pelo plano.
</p>
<% else %>
<p class="text-xs text-orange-400/80 mb-1.5">
Não consegui listar os planos do SimpliRoute agora — informe a data.
</p>
<% end %>
<%# Continua existindo sempre: é o caminho do "— usar uma data
específica —" e a rede quando a API não responde. %>
<input type="date" name="planned_date" value="<%= @data_padrao %>"
<%= 'required' unless @planos.present? %>
class="w-full mt-2 bg-[#1a1a1a] border border-white/10 rounded-xl px-3 py-3 text-white
focus:outline-none focus:border-orange-500 min-h-[48px]">
</div>
@@ -103,12 +144,18 @@
<label class="block text-sm font-medium text-gray-300 mb-1.5">
PLANO <span class="text-gray-500 font-normal">(canto direito do PDF)</span>
</label>
<input type="text" name="rotulo_plano" placeholder="Ex.: ENTREGAS EMAD 09.2026"
<input type="text" name="rotulo_plano" placeholder="<%= @planos.present? ? 'Deixe em branco — vem do plano' : 'Ex.: ENTREGAS EMAD 09.2026' %>"
class="w-full bg-[#1a1a1a] border border-white/10 rounded-xl px-3 py-3 text-white
placeholder-gray-600 focus:outline-none focus:border-orange-500 min-h-[48px]">
<p class="text-xs text-gray-500 mt-1.5">
Cole o nome do plano como está no SimpliRoute — é por ele que a
operação do mês (quem é <strong>NOVO</strong>) é encontrada.
<% if @planos.present? %>
Em branco, usa o nome do plano escolhido — é por ele que a operação
do mês (quem é <strong>NOVO</strong>) é encontrada. Preencha só para
imprimir um texto diferente no canto do PDF.
<% else %>
Cole o nome do plano como está no SimpliRoute — é por ele que a
operação do mês (quem é <strong>NOVO</strong>) é encontrada.
<% end %>
</p>
</div>
</div>