Method: SolidusSubscriptions::Subscription#failing_since

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

#failing_sinceObject



279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
# File 'app/models/solidus_subscriptions/subscription.rb', line 279

def failing_since
  failing_details = installment_details.failed.order('solidus_subscriptions_installment_details.created_at ASC')

  last_successful_detail = installment_details
                           .succeeded
                           .order('solidus_subscriptions_installment_details.created_at DESC')
                           .first
  if last_successful_detail
    failing_details = failing_details.where(
      'solidus_subscriptions_installment_details.created_at > ?',
      last_successful_detail.created_at,
    )
  end

  first_failing_detail = failing_details.first

  first_failing_detail&.created_at
end