Class: SolidusSubscriptions::Installment

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/solidus_subscriptions/installment.rb

Instance Method Summary collapse

Instance Method Details

#failed!(order) ⇒ SolidusSubscriptions::InstallmentDetail

Mark this installment as a failure

Parameters:

  • order (Spree::Order)

    The order generated for this processing attempt

Returns:



74
75
76
77
78
79
80
81
82
# File 'app/models/solidus_subscriptions/installment.rb', line 74

def failed!(order)
  advance_actionable_date!

  details.create!(
    success: false,
    order: order,
    message: I18n.t('solidus_subscriptions.installment_details.failed')
  )
end

#fulfilled?Boolean

Had this installment been fulfilled by a completed order

Returns:

  • (Boolean)


94
95
96
# File 'app/models/solidus_subscriptions/installment.rb', line 94

def fulfilled?
  details.where(success: true).exists?
end

#line_item_builderSolidusSubscriptions::LineItemBuilder

Get the builder for the subscription_line_item. This will be an object that can generate the appropriate line item for the subscribable object



33
34
35
# File 'app/models/solidus_subscriptions/installment.rb', line 33

def line_item_builder
  subscription.line_item_builder
end

#out_of_stockSolidusSubscriptions::InstallmentDetail

Mark this installment as out of stock.

Returns:



41
42
43
44
45
46
47
48
# File 'app/models/solidus_subscriptions/installment.rb', line 41

def out_of_stock
  advance_actionable_date!

  details.create!(
    success: false,
    message: I18n.t('solidus_subscriptions.installment_details.out_of_stock')
  )
end

#payment_failed!(order) ⇒ SolidusSubscriptions::InstallmentDetail

Mark this installment as having a failed payment

Parameters:

  • order (Spree::Order)

    The order generated for this processing attempt

Returns:



105
106
107
108
109
110
111
112
113
# File 'app/models/solidus_subscriptions/installment.rb', line 105

def payment_failed!(order)
  advance_actionable_date!

  details.create!(
    success: false,
    order: order,
    message: I18n.t('solidus_subscriptions.installment_details.payment_failed')
  )
end

#success!(order) ⇒ SolidusSubscriptions::InstallmentDetail

Mark this installment as a success

Parameters:

  • order (Spree::Order)

    The order generated for this processing attempt

Returns:



57
58
59
60
61
62
63
64
65
# File 'app/models/solidus_subscriptions/installment.rb', line 57

def success!(order)
  update!(actionable_date: nil)

  details.create!(
    success: true,
    order: order,
    message: I18n.t('solidus_subscriptions.installment_details.success')
  )
end

#unfulfilled?Boolean

Does this installment still need to be fulfilled by a completed order

Returns:

  • (Boolean)


87
88
89
# File 'app/models/solidus_subscriptions/installment.rb', line 87

def unfulfilled?
  !fulfilled?
end