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

@@ -19,7 +19,9 @@ class ConsolidacaoEntrega < ApplicationRecord
'desconto' => { bg: 'bg-gray-900', text: 'text-white', label: 'Desconto' }
}.freeze
validates :tracking_id, presence: true, uniqueness: { scope: :consolidacao_id }
# Uma entrega pode ter vários pilares (Normal + Bônus + Retirada…),
# mas não o mesmo pilar repetido.
validates :tracking_id, presence: true, uniqueness: { scope: %i[consolidacao_id tipo] }
validates :motorista_nome, presence: true
validates :tipo, presence: true
validates :valor_aplicado, presence: true, numericality: { greater_than_or_equal_to: 0 }