diff options
| -rwxr-xr-x | lib/Travelynx.pm | 10 | ||||
| -rwxr-xr-x | lib/Travelynx/Controller/Traveling.pm | 6 | 
2 files changed, 13 insertions, 3 deletions
| diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index f9199a5..e154e8d 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -441,6 +441,7 @@ sub startup {  			my $station  = $opt{station};  			my $train_id = $opt{train_id}; +			my $ts       = $opt{ts};  			my $uid      = $opt{uid} // $self->current_user->{id};  			my $db       = $opt{db}  // $self->pg->db;  			my $hafas; @@ -534,6 +535,7 @@ sub startup {  			my $station  = $opt{station};  			my $train_id = $opt{train_id}; +			my $ts       = $opt{ts};  			my $uid      = $opt{uid} // $self->current_user->{id};  			my $db       = $opt{db}  // $self->pg->db;  			my $hafas; @@ -553,7 +555,13 @@ sub startup {  							or $stop->loc->eva == $station )  						{  							$found = $stop; -							last; + +							# Lines may serve the same stop several times. +							# Keep looking until the scheduled departure +							# matches the one passed while checking in. +							if ( $ts and $stop->sched_dep->epoch == $ts ) { +								last; +							}  						}  					}  					if ( not $found ) { diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index 3151d42..bbd85b6 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -650,7 +650,8 @@ sub travel_action {  				return $self->checkin_p(  					hafas    => $params->{hafas},  					station  => $params->{station}, -					train_id => $params->{train} +					train_id => $params->{train}, +					ts       => $params->{ts},  				);  			}  		)->then( @@ -789,7 +790,8 @@ sub travel_action {  		$self->checkin_p(  			hafas    => $params->{hafas},  			station  => $params->{station}, -			train_id => $params->{train} +			train_id => $params->{train}, +			ts       => $params->{ts},  		)->then(  			sub {  				$self->render( | 
