diff --git a/app/assets/javascripts/admin/spree/orders/variant_autocomplete.js.erb b/app/assets/javascripts/admin/spree/orders/variant_autocomplete.js.erb index a8a96ec36b..001055417e 100644 --- a/app/assets/javascripts/admin/spree/orders/variant_autocomplete.js.erb +++ b/app/assets/javascripts/admin/spree/orders/variant_autocomplete.js.erb @@ -50,11 +50,11 @@ $(document).ready(function() { if (quantity > maxQuantity) { quantity = maxQuantity; save.parents('tr').find('input.line_item_quantity').val(maxQuantity); - ofnAlert(t("js.admin.orders.quantity_adjusted")); + ofnAlert(t("js.admin.orders.quantity_unavailable")); + } else { + adjustItems(shipment_number, variant_id, quantity, true); } - toggleItemEdit(); - adjustItems(shipment_number, variant_id, quantity, true); return false; } $('a.save-item').click(handle_save_click); diff --git a/config/locales/en.yml b/config/locales/en.yml index 583a2962f7..1927079a11 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -3440,7 +3440,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using processing: "processing" void: "void" invalid: "invalid" - quantity_adjusted: "Insufficient stock available. Line item updated to maximum available quantity." + quantity_unavailable: "Insufficient stock available. Line item unsaved!" quantity_unchanged: "Quantity unchanged from previous amount." cancel_the_order_html: "This will cancel the current order.
Are you sure you want to proceed?" cancel_the_order_send_cancelation_email: "Send a cancellation email to the customer" diff --git a/spec/system/admin/order_spec.rb b/spec/system/admin/order_spec.rb index bc398e7673..1a94f4ca0f 100644 --- a/spec/system/admin/order_spec.rb +++ b/spec/system/admin/order_spec.rb @@ -339,24 +339,27 @@ describe ' login_as_admin visit spree.edit_admin_order_path(order) - quantity = order.line_items.first.quantity - max_quantity = 0 + item = order.line_items.first + quantity = item.quantity + max_quantity = quantity + item.variant.on_hand total = order.display_total within("tr.stock-item", text: order.products.first.name) do find("a.edit-item").click expect(page).to have_input(:quantity) - max_quantity = find("input[name='quantity']")["max"].to_i fill_in(:quantity, with: max_quantity + 1) find("a.save-item").click end - click_button("OK") - expect(page).to_not have_content "Loading..." - within("tr.stock-item", text: order.products.first.name) do - expect(page).to have_text(max_quantity.to_s) + within(".modal") do + expect(page).to have_content "Insufficient stock available" + click_on "OK" end - expect(order.reload.line_items.first.quantity).to eq(max_quantity) + + within("tr.stock-item", text: order.products.first.name) do + expect(page).to have_field :quantity, with: max_quantity.to_s + end + expect { item.reload }.to_not change { item.quantity } end it "there are infinite items available (variant is on demand)" do