Sha256: 468d4c5748fd40a47ca85d6b0508bf12f1b599d46c29992fc4855585cc27312d

Contents?: true

Size: 449 Bytes

Versions: 1

Compression:

Stored size: 449 Bytes

Contents

module Shopper
  module OrderArithmeticHelpers
    def delivery_price
      delivery&.price || 0
    end

    def coupon_discount
      coupon&.discount || 0
    end

    def subtotal
      order_items.inject(0) { |sum, item| sum + item.subtotal }
    end

    def saved_by_coupon
      return 0 unless coupon_discount
      subtotal * coupon_discount / 100
    end

    def total
      subtotal - saved_by_coupon + delivery_price
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shoppper-0.1.0 app/models/concerns/shopper/order_arithmetic_helpers.rb