diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Travel/Routing/DE/HAFAS/Connection.pm | 10 | ||||
-rw-r--r-- | lib/Travel/Routing/DE/HAFAS/Connection/Section.pm | 13 |
2 files changed, 22 insertions, 1 deletions
diff --git a/lib/Travel/Routing/DE/HAFAS/Connection.pm b/lib/Travel/Routing/DE/HAFAS/Connection.pm index 1eee1bd..9a9e28b 100644 --- a/lib/Travel/Routing/DE/HAFAS/Connection.pm +++ b/lib/Travel/Routing/DE/HAFAS/Connection.pm @@ -89,6 +89,16 @@ sub new { ); } + my $prev; + for my $sec (@sections) { + if ( $sec->type eq 'JNY' ) { + if ($prev) { + $sec->set_transfer_from_previous_section($prev); + } + $prev = $sec; + } + } + my $tco = {}; for my $tco_id ( @{ $connection->{dTrnCmpSX}{tcocX} // [] } ) { my $tco_kv = $opt{common}{tcocL}[$tco_id]; diff --git a/lib/Travel/Routing/DE/HAFAS/Connection/Section.pm b/lib/Travel/Routing/DE/HAFAS/Connection/Section.pm index 9120e69..a31f57a 100644 --- a/lib/Travel/Routing/DE/HAFAS/Connection/Section.pm +++ b/lib/Travel/Routing/DE/HAFAS/Connection/Section.pm @@ -13,7 +13,7 @@ use Travel::Routing::DE::HAFAS::Utils; our $VERSION = '0.00'; Travel::Routing::DE::HAFAS::Connection::Section->mk_ro_accessors( - qw(type schep_dep rt_dep sched_arr rt_arr dep_datetime arr_datetime arr_delay dep_delay journey distance duration dep_loc arr_loc + qw(type schep_dep rt_dep sched_arr rt_arr dep_datetime arr_datetime arr_delay dep_delay journey distance duration transfer_duration dep_loc arr_loc operator id name category category_long class number line line_no load delay direction) ); @@ -132,6 +132,17 @@ sub new { # }}} +# {{{ Private + +sub set_transfer_from_previous_section { + my ( $self, $prev_sec ) = @_; + + my $delta = $self->dep_datetime - $prev_sec->arr_datetime; + $self->{transfer_duration} = $delta; +} + +# }}} + # {{{ Accessors sub messages { |