Method: SolidusSubscriptions::Subscription#skip

Defined in:
app/models/solidus_subscriptions/subscription.rb

#skip(check_skip_limits: true) ⇒ Object



166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'app/models/solidus_subscriptions/subscription.rb', line 166

def skip(check_skip_limits: true)
  check_invalid_skip_states

  if check_skip_limits
    check_successive_skips_exceeded
    check_total_skips_exceeded
  end

  return if errors.any?

  increment(:skip_count)
  increment(:successive_skip_count)
  save!

  advance_actionable_date.tap do
    create_and_emit_event(type: 'subscription_skipped')
  end
end