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:
@@ -84,8 +84,10 @@ class Consolidacao < ApplicationRecord
|
||||
)
|
||||
end
|
||||
|
||||
# Entrega conta como classificada se tiver ≥1 pilar (distinct por tracking_id,
|
||||
# já que agora pode haver vários pilares por entrega).
|
||||
def classificadas_count(motorista)
|
||||
consolidacao_entregas.where(motorista_nome: motorista).count
|
||||
consolidacao_entregas.where(motorista_nome: motorista).distinct.count(:tracking_id)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -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 }
|
||||
|
||||
Reference in New Issue
Block a user