spree/spree — pull request #1322 by alekseydem (2012-03-28 18:07:03+00:00)
Title: Fixed bug with squared variant on_hand after cancel/resume order

InventoryUnit.decrease calls per each inventory_unit when you cancel an order. As result, we get squared Variant count_on_hand (e.g., 25 instead 5) when track_inventory_levels and create_inventory_units are true.
The same thing occurs with Order#resume.

Why are you iterate through shipments in Order#restock_items! ?