aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorXinhui2017-06-01 17:11:35 +0200
committerXinhui2017-06-01 17:11:46 +0200
commit81da8717b726e98d40e3ebf5a2a56d3a9703d8c6 (patch)
tree0e213489f6e5b29210cca8179d8119e25cd6cda1 /app
parent2c2988b6ba0cf36254fdec4696da14f7103fa503 (diff)
downloadchouette-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.rb13
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