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:
@@ -14,13 +14,20 @@ RSpec.describe ConsolidacaoEntrega, type: :model do
|
||||
expect(build(:consolidacao_entrega, valor_aplicado: -1)).not_to be_valid
|
||||
end
|
||||
|
||||
it 'exige tracking_id único por consolidação' do
|
||||
it 'não permite o mesmo tracking_id com o MESMO tipo na consolidação' do
|
||||
consolidacao = create(:consolidacao)
|
||||
create(:consolidacao_entrega, consolidacao: consolidacao, tracking_id: 'TRK-1')
|
||||
dup = build(:consolidacao_entrega, consolidacao: consolidacao, tracking_id: 'TRK-1')
|
||||
create(:consolidacao_entrega, consolidacao: consolidacao, tracking_id: 'TRK-1', tipo: :entrega_normal)
|
||||
dup = build(:consolidacao_entrega, consolidacao: consolidacao, tracking_id: 'TRK-1', tipo: :entrega_normal)
|
||||
expect(dup).not_to be_valid
|
||||
end
|
||||
|
||||
it 'permite o mesmo tracking_id com pilares DIFERENTES (multi-pilar)' do
|
||||
consolidacao = create(:consolidacao)
|
||||
create(:consolidacao_entrega, consolidacao: consolidacao, tracking_id: 'TRK-1', tipo: :entrega_normal)
|
||||
outro = build(:consolidacao_entrega, consolidacao: consolidacao, tracking_id: 'TRK-1', tipo: :bonus)
|
||||
expect(outro).to be_valid
|
||||
end
|
||||
|
||||
it 'permite o mesmo tracking_id em consolidações diferentes' do
|
||||
create(:consolidacao_entrega, tracking_id: 'TRK-X')
|
||||
outra = build(:consolidacao_entrega, tracking_id: 'TRK-X')
|
||||
|
||||
Reference in New Issue
Block a user