Class: Spree::Calculator::Shipping::FlexiRate
- Inherits:
-
ShippingCalculator
- Object
- ActiveRecord::Base
- Base
- Spree::Calculator
- ShippingCalculator
- Spree::Calculator::Shipping::FlexiRate
- Defined in:
- app/models/spree/calculator/shipping/flexi_rate.rb
Instance Method Summary collapse
Methods inherited from ShippingCalculator
Methods inherited from Spree::Calculator
#available?, #compute, description, #description, #to_s
Methods inherited from Base
Methods included from Spree::Core::Permalinks
#generate_permalink, #save_permalink
Instance Method Details
#compute_from_quantity(quantity) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/models/spree/calculator/shipping/flexi_rate.rb', line 18 def compute_from_quantity(quantity) sum = 0 max = preferred_max_items.to_i quantity.times do |index| # check max value to avoid divide by 0 errors if (max == 0 && index == 0) || (max > 0) && (index % max == 0) sum += preferred_first_item.to_f else sum += preferred_additional_item.to_f end end sum end |
#compute_package(package) ⇒ Object
14 15 16 |
# File 'app/models/spree/calculator/shipping/flexi_rate.rb', line 14 def compute_package(package) compute_from_quantity(package.contents.sum(&:quantity)) end |