Do not delete shipping method referenced by a product distribution

This commit is contained in:
Rohan Mitchell
2012-10-02 11:58:18 +10:00
parent 473b4e9adc
commit 7430fc9bdd
2 changed files with 18 additions and 1 deletions

View File

@@ -9,6 +9,13 @@ module Spree
flash[:error] = "That shipping method cannot be deleted as it is referenced by an order: #{order.number}."
redirect_to collection_url
end
product_distribution = ProductDistribution.where(:shipping_method_id => @object).first
if product_distribution
p = product_distribution.product
flash[:error] = "That shipping method cannot be deleted as it is referenced by a product distribution: #{p.id} - #{p.name}."
redirect_to collection_url
end
end
end
end

View File

@@ -25,6 +25,16 @@ feature 'shipping methods' do
Spree::ShippingMethod.find(@sm.id).should_not be_nil
end
scenario "deleting a shipping method referenced by a product distribution"
scenario "deleting a shipping method referenced by a product distribution" do
p = create(:product)
d = create(:distributor)
create(:product_distribution, product: p, distributor: d, shipping_method: @sm)
visit_delete spree.admin_shipping_method_path(@sm)
page.should have_content "That shipping method cannot be deleted as it is referenced by a product distribution: #{p.id} - #{p.name}."
Spree::ShippingMethod.find(@sm.id).should_not be_nil
end
scenario "deleting a shipping method referenced by a line item"
end