mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Reinstate old logic for adjustments controller
Certain types of adjustments (eg enterprise fees) cannot really be changed arbitrarily; when the order is saved and "recalculated" the values will be reset. The adjustments are still shown in the main order edit tab, but are not editable in the adjustments tab.
This commit is contained in:
@@ -18,7 +18,12 @@ module Spree
|
||||
end
|
||||
|
||||
def collection
|
||||
parent.all_adjustments.eligible
|
||||
order_adjustments = parent.adjustments.where.not(originator_type: 'EnterpriseFee')
|
||||
admin_adjustments = parent.adjustments.admin
|
||||
payment_fees = parent.all_adjustments.payment_fee.eligible
|
||||
shipping_fees = parent.all_adjustments.shipping
|
||||
|
||||
order_adjustments.or(admin_adjustments) | payment_fees.or(shipping_fees)
|
||||
end
|
||||
|
||||
def find_resource
|
||||
|
||||
@@ -9,20 +9,37 @@ module Spree
|
||||
before { controller_login_as_admin }
|
||||
|
||||
describe "index" do
|
||||
let!(:order) { create(:order) }
|
||||
let!(:order) { create(:completed_order_with_totals) }
|
||||
let!(:adjustment1) {
|
||||
create(:adjustment, originator_type: "Spree::ShippingMethod", order: order)
|
||||
create(:adjustment, originator_type: "Spree::ShippingMethod", order: order,
|
||||
adjustable: order.shipment)
|
||||
}
|
||||
let!(:adjustment2) {
|
||||
create(:adjustment, originator_type: "Spree::PaymentMethod", eligible: true, order: order)
|
||||
}
|
||||
let!(:adjustment3) {
|
||||
create(:adjustment, originator_type: "Spree::PaymentMethod", eligible: false, order: order)
|
||||
}
|
||||
let!(:adjustment3) { create(:adjustment, originator_type: "EnterpriseFee", order: order) }
|
||||
let!(:adjustment4) { create(:adjustment, originator_type: "EnterpriseFee", order: order) }
|
||||
let!(:adjustment5) { create(:adjustment, originator: nil, adjustable: order, order: order) }
|
||||
|
||||
it "loads all eligible adjustments" do
|
||||
it "displays eligible adjustments" do
|
||||
spree_get :index, order_id: order.number
|
||||
|
||||
expect(assigns(:collection)).to include adjustment1, adjustment3
|
||||
expect(assigns(:collection)).to_not include adjustment2
|
||||
expect(assigns(:collection)).to include adjustment1, adjustment2
|
||||
expect(assigns(:collection)).to_not include adjustment3
|
||||
end
|
||||
|
||||
it "displays admin adjustments" do
|
||||
spree_get :index, order_id: order.number
|
||||
|
||||
expect(assigns(:collection)).to include adjustment5
|
||||
end
|
||||
|
||||
it "does not display enterprise fee adjustments" do
|
||||
spree_get :index, order_id: order.number
|
||||
|
||||
expect(assigns(:collection)).to_not include adjustment4
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user