diff options
| author | Xinhui | 2017-06-01 17:11:35 +0200 |
|---|---|---|
| committer | Xinhui | 2017-06-01 17:11:46 +0200 |
| commit | 81da8717b726e98d40e3ebf5a2a56d3a9703d8c6 (patch) | |
| tree | 0e213489f6e5b29210cca8179d8119e25cd6cda1 /app | |
| parent | 2c2988b6ba0cf36254fdec4696da14f7103fa503 (diff) | |
| download | chouette-core-81da8717b726e98d40e3ebf5a2a56d3a9703d8c6.tar.bz2 | |
Wip validate vjas departure_time must be before next stop arrival_time
Refs #3418
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/chouette/vehicle_journey.rb | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb index 61d62378f..24de88015 100644 --- a/app/models/chouette/vehicle_journey.rb +++ b/app/models/chouette/vehicle_journey.rb @@ -28,13 +28,24 @@ module Chouette has_and_belongs_to_many :time_tables, :class_name => 'Chouette::TimeTable', :foreign_key => "vehicle_journey_id", :association_foreign_key => "time_table_id" has_many :stop_points, -> { order("stop_points.position") }, :through => :vehicle_journey_at_stops - validates :vehicle_journey_at_stops, + validates :vehicle_journey_at_stops, :vjas_departure_time_must_be_before_next_stop_arrival_time, vehicle_journey_at_stops_are_in_increasing_time_order: true validates_presence_of :number before_validation :set_default_values, :calculate_vehicle_journey_at_stop_day_offset + def vjas_departure_time_must_be_before_next_stop_arrival_time + vehicle_journey_at_stops.each_with_index do |current_stop, index| + next_stop = vehicle_journey_at_stops[index + 1] + next unless next_stop + + if next_stop[:arrival_time] <= current_stop[:departure_time] + current_stop.errors.add(:departure_time, 'departure time must be before next stop arrival time') + end + end + end + def set_default_values if number.nil? self.number = 0 |
