Sha256: 20a5811ac6c2dfd811c2c1e75585da9aab5d285d28629febf27aa9011035206b

Contents?: true

Size: 571 Bytes

Versions: 3

Compression:

Stored size: 571 Bytes

Contents

module Susply
  module Prorate
    def self.call(subscription)
      return 0 unless subscription.active?
      plan = subscription.plan
      days = used_days(subscription)
      calculate_used_amount(plan, days)
    end

    def self.used_days(subscription)
      (Time.zone.today.to_date - subscription.current_period_start.to_date).to_i
    end

    def self.calculate_used_amount(plan, used_days)
      if plan.interval == "yearly"
        (plan.price * 1.2 * used_days / 365).ceil
      else
        (plan.price * used_days / 30.0).ceil
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
susply-1.0.0 app/services/susply/prorate.rb
susply-0.0.2 app/services/susply/prorate.rb
susply-0.0.1 app/services/susply/prorate.rb