Sha256: e1ed057ccee6e3d7f7dff5f05e945d646a5e1ebc3eb58fe73e0e70a84e756730
Contents?: true
Size: 805 Bytes
Versions: 7
Compression:
Stored size: 805 Bytes
Contents
# frozen_string_literal: true require_dependency "spree/calculator" module SolidusFriendlyPromotions module Calculators class FlexiRate < Spree::Calculator include PromotionCalculator preference :first_item, :decimal, default: 0 preference :additional_item, :decimal, default: 0 preference :max_items, :integer, default: 0 preference :currency, :string, default: -> { Spree::Config[:currency] } def compute(object) items_count = object.quantity items_count = [items_count, preferred_max_items].min unless preferred_max_items.zero? return BigDecimal("0") if items_count == 0 additional_items_count = items_count - 1 preferred_first_item + preferred_additional_item * additional_items_count end end end end
Version data entries
7 entries across 7 versions & 1 rubygems