Múltiplos pilares por entrega + tela de preços só com pilares de preço

Consolidação — multi-pilar:
- Uma entrega pode ter vários pilares ao mesmo tempo (Normal + Bônus +
  Retirada…), somando os valores. Toggles viraram multi-seleção (liga/desliga
  por pilar; classificar agora faz toggle, em massa só adiciona).
- migration: unicidade passa de [consolidacao_id, tracking_id] para
  [consolidacao_id, tracking_id, tipo].
- classificadas_count/resumo contam entregas distintas (≥1 pilar).

Configurações:
- /admin/configuracoes lista só os pilares de PREÇO (empresa/notificações
  não são preço e saíram da tela).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-16 03:05:15 -03:00
parent a40cb29b96
commit 19a72c066f
8 changed files with 102 additions and 39 deletions

View File

@@ -0,0 +1,24 @@
# Permite múltiplos pilares por entrega (ex.: Normal + Bônus + Retirada na mesma
# entrega). Antes a unicidade era [consolidacao_id, tracking_id] (um tipo por
# entrega); agora é [consolidacao_id, tracking_id, tipo] (um por pilar).
class AllowMultipleTiposPerEntrega < ActiveRecord::Migration[7.1]
def up
if index_name_exists?(:consolidacao_entregas, 'idx_consolidacao_entrega_unique')
remove_index :consolidacao_entregas, name: 'idx_consolidacao_entrega_unique'
end
unless index_name_exists?(:consolidacao_entregas, 'idx_consolidacao_entrega_tipo_unique')
add_index :consolidacao_entregas, %i[consolidacao_id tracking_id tipo],
unique: true, name: 'idx_consolidacao_entrega_tipo_unique'
end
end
def down
if index_name_exists?(:consolidacao_entregas, 'idx_consolidacao_entrega_tipo_unique')
remove_index :consolidacao_entregas, name: 'idx_consolidacao_entrega_tipo_unique'
end
unless index_name_exists?(:consolidacao_entregas, 'idx_consolidacao_entrega_unique')
add_index :consolidacao_entregas, %i[consolidacao_id tracking_id],
unique: true, name: 'idx_consolidacao_entrega_unique'
end
end
end