Class: SpreeCmCommissioner::Trip

Inherits:
Base
  • Object
show all
Includes:
RouteType, StoreMetadata
Defined in:
app/models/spree_cm_commissioner/trip.rb

Constant Summary

Constants included from RouteType

RouteType::ROUTE_TYPES

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#hoursObject

Returns the value of attribute hours.



6
7
8
# File 'app/models/spree_cm_commissioner/trip.rb', line 6

def hours
  @hours
end

#minutesObject

Returns the value of attribute minutes.



6
7
8
# File 'app/models/spree_cm_commissioner/trip.rb', line 6

def minutes
  @minutes
end

#secondsObject

Returns the value of attribute seconds.



6
7
8
# File 'app/models/spree_cm_commissioner/trip.rb', line 6

def seconds
  @seconds
end

Instance Method Details

#arrival_timeObject



77
78
79
80
81
# File 'app/models/spree_cm_commissioner/trip.rb', line 77

def arrival_time
  return nil if departure_time.nil? || duration.nil?

  departure_time + duration.seconds
end

#convert_duration_to_secondsObject



62
63
64
65
66
# File 'app/models/spree_cm_commissioner/trip.rb', line 62

def convert_duration_to_seconds
  return if hours.blank? && minutes.blank? && seconds.blank?

  self.duration = (hours.to_i * 3600) + (minutes.to_i * 60) + seconds.to_i
end

#display_nameObject



98
99
100
# File 'app/models/spree_cm_commissioner/trip.rb', line 98

def display_name
  product&.name
end

#duration_in_hmsObject



68
69
70
71
72
73
74
75
# File 'app/models/spree_cm_commissioner/trip.rb', line 68

def duration_in_hms
  return { hours: 0, minutes: 0, seconds: 0 } if duration.nil?

  hours = duration / 3600
  minutes = (duration % 3600) / 60
  seconds = duration % 60
  { hours: hours, minutes: minutes, seconds: seconds }
end

#open_dated?Boolean

Returns:

  • (Boolean)


89
90
91
# File 'app/models/spree_cm_commissioner/trip.rb', line 89

def open_dated?
  is_open_dated == true
end

#open_dated_pairObject

Find the open dated version of this trip’s product



94
95
96
# File 'app/models/spree_cm_commissioner/trip.rb', line 94

def open_dated_pair
  open_dated_product
end

#origin_and_destination_cannot_be_the_sameObject



83
84
85
86
87
# File 'app/models/spree_cm_commissioner/trip.rb', line 83

def origin_and_destination_cannot_be_the_same
  return unless origin_place_id == destination_place_id

  errors.add(:base, 'Origin and destination cannot be the same')
end