aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorZog2018-01-10 16:39:08 +0100
committerZog2018-01-10 16:56:53 +0100
commit5c3abf69c50f00e0caab1517be2beccca10e635b (patch)
tree1bc56181320dcad4b091ca6a57e5ef49153881fa /app
parent71614a19f62ed3f9ca3068e149dcd60471bef27d (diff)
downloadchouette-core-5c3abf69c50f00e0caab1517be2beccca10e635b.tar.bz2
Refs #5535 @0.25h; Adds a `full_schedule?` on `JourneyPattern`
To know if all the costs between the stops of the pattern are set.
Diffstat (limited to 'app')
-rw-r--r--app/models/chouette/journey_pattern.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/models/chouette/journey_pattern.rb b/app/models/chouette/journey_pattern.rb
index 1ddf7c9fb..53ff363a2 100644
--- a/app/models/chouette/journey_pattern.rb
+++ b/app/models/chouette/journey_pattern.rb
@@ -150,5 +150,23 @@ module Chouette
def costs
read_attribute(:costs) || {}
end
+
+ def costs_between start, finish
+ key = "#{start.id}-#{finish.id}"
+ costs[key]&.symbolize_keys || {}
+ end
+
+ def full_schedule?
+ full = true
+ stop_points.inject(nil) do |start, finish|
+ next finish unless start.present?
+ costs = costs_between(start, finish)
+ full = false unless costs.present?
+ full = false unless costs[:distance] && costs[:distance] > 0
+ full = false unless costs[:time] && costs[:time] > 0
+ finish
+ end
+ full
+ end
end
end