class FfcrmExtraDueTimes::Engine

Public Class Methods

due_one_month() click to toggle source
# File lib/ffcrm_extra_due_times/engine.rb, line 10
def self.due_one_month
  where('due_at >= ? AND due_at < ?', (Time.zone.now + 1.month).beginning_of_month.utc, (Time.zone.now + 1.month).end_of_month.utc + 1.day).order('tasks.id DESC')
end
due_three_months() click to toggle source
# File lib/ffcrm_extra_due_times/engine.rb, line 14
def self.due_three_months
  where('due_at >= ? AND due_at < ?', (Time.zone.now + 3.months).beginning_of_month.utc, (Time.zone.now + 3.months).end_of_month.utc + 1.day).order('tasks.id DESC')
end
due_two_weeks() click to toggle source
# File lib/ffcrm_extra_due_times/engine.rb, line 6
def self.due_two_weeks
  where('due_at >= ? AND due_at < ?', (Time.zone.now + 2.weeks).beginning_of_week.utc, (Time.zone.now + 2.weeks).end_of_week.utc + 1.day).order('tasks.id DESC')
end

Public Instance Methods

computed_bucket() click to toggle source
# File lib/ffcrm_extra_due_times/engine.rb, line 30
def computed_bucket
  return self.bucket if self.bucket != "specific_time"
  case
  when overdue?
    "overdue"
  when due_today?
    "due_today"
  when due_tomorrow?
    "due_tomorrow"
  when due_this_week? && !due_today? && !due_tomorrow?
    "due_this_week"
  when due_next_week?
    "due_next_week"
  when due_two_weeks?
    "due_two_weeks"
  when due_one_month?
    "due_one_month"
  when due_three_months?
    "due_three_months"
  else
    "due_later"
  end
end
due_one_month?() click to toggle source
# File lib/ffcrm_extra_due_times/engine.rb, line 22
def due_one_month?
  self.due_at.between?((Time.zone.now + 1.month).beginning_of_month, (Time.zone.now + 1.month).end_of_month)
end
due_three_months?() click to toggle source
# File lib/ffcrm_extra_due_times/engine.rb, line 26
def due_three_months?
  self.due_at.between?((Time.zone.now + 3.months).beginning_of_month, (Time.zone.now + 3.months).end_of_month)
end
due_two_weeks?() click to toggle source
# File lib/ffcrm_extra_due_times/engine.rb, line 18
def due_two_weeks?
  self.due_at.between?((Time.zone.now + 2.weeks).beginning_of_week, (Time.zone.now + 2.weeks).end_of_week)
end
set_due_date() click to toggle source
# File lib/ffcrm_extra_due_times/engine.rb, line 54
def set_due_date
  self.due_at = case self.bucket
  when "overdue"
    self.due_at || Time.zone.now.midnight.yesterday
  when "due_today"
    Time.zone.now.midnight
  when "due_tomorrow"
    Time.zone.now.midnight.tomorrow
  when "due_this_week"
    Time.zone.now.end_of_week
  when "due_next_week"
    Time.zone.now.next_week.end_of_week
  when "due_two_weeks"
    (Time.zone.now + 2.weeks).end_of_week
  when "due_one_month"
    (Time.zone.now + 1.month).end_of_month
  when "due_three_months"
    (Time.zone.now + 3.months).end_of_month
  when "due_later"
    Time.zone.now.midnight + 100.years
  when "specific_time"
    self.calendar ? parse_calendar_date : nil
  else # due_later or due_asap
    nil
  end
end