From 9b6b310e2eb10d713f53f413ca5b9f03815b6ebb Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Mon, 28 Oct 2024 20:25:18 +0100 Subject: Use the correct stop instance when checking in to ring lines --- lib/Travelynx.pm | 10 +++++++++- lib/Travelynx/Controller/Traveling.pm | 6 ++++-- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'lib') 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( -- cgit v1.2.3