Sha256: a76c5122be98da9748c274acbaef033f25a60ebdb30d2de112e332bbb65f1937

Contents?: true

Size: 917 Bytes

Versions: 3

Compression:

Stored size: 917 Bytes

Contents

module Susply
  module CreatePayment
    def self.call(subscription, generated_type)
      if subscription.active?
        amount = calculate_amount(subscription, generated_type)
        payment = Susply::Payment.new do |payment|
          payment.owner = subscription.owner
          payment.plan = subscription.plan
          payment.subscription = subscription
          payment.amount = amount
          payment.generated_type = generated_type
          payment.period_start = subscription.current_period_start
          payment.period_end = subscription.current_period_end
          payment.status = 'generated'
        end
        payment.save!
        payment
      end
    end

    private
    def self.calculate_amount(subscription, generated_type)
      if generated_type == "plan_renovation"
        subscription.plan.price
      else
        Susply::Prorate.call(subscription)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

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