From 1c05afba7ab215e119e896a4405a2d4328a5414b Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Sun, 15 Jun 2025 19:35:02 +0200 Subject: EFA: handle arrival being cancelled after checkin --- lib/Travelynx/Command/work.pm | 19 ++++++++++++++++++- lib/Travelynx/Model/InTransit.pm | 19 ++++++++++--------- 2 files changed, 28 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/Travelynx/Command/work.pm b/lib/Travelynx/Command/work.pm index 877184d..60417b1 100644 --- a/lib/Travelynx/Command/work.pm +++ b/lib/Travelynx/Command/work.pm @@ -229,7 +229,12 @@ sub run { ); } - if ( $found_arr and $found_arr->rt_arr ) { + if ( + $found_arr + and + ( $found_arr->rt_arr or $found_arr->is_cancelled ) + ) + { $self->app->in_transit->update_arrival_efa( uid => $uid, journey => $journey, @@ -239,6 +244,18 @@ sub run { trip_id => $train_id, ); } + if ( $found_arr and $found_arr->is_cancelled ) { + + # check out (adds a cancelled journey and resets journey state + # to destination selection) + $self->app->checkout_p( + station => $arr, + force => 0, + dep_eva => $dep, + arr_eva => $arr, + uid => $uid + )->wait; + } } )->catch( sub { diff --git a/lib/Travelynx/Model/InTransit.pm b/lib/Travelynx/Model/InTransit.pm index e79e822..c1ab284 100644 --- a/lib/Travelynx/Model/InTransit.pm +++ b/lib/Travelynx/Model/InTransit.pm @@ -1258,15 +1258,16 @@ sub update_arrival_efa { $j_stop->full_name, $j_stop->id_num, { - sched_arr => _epoch( $j_stop->sched_arr ), - sched_dep => _epoch( $j_stop->sched_dep ), - rt_arr => _epoch( $j_stop->rt_arr ), - rt_dep => _epoch( $j_stop->rt_dep ), - arr_delay => $j_stop->arr_delay, - dep_delay => $j_stop->dep_delay, - efa_load => $j_stop->occupancy, - lat => $j_stop->latlon->[0], - lon => $j_stop->latlon->[1], + sched_arr => _epoch( $j_stop->sched_arr ), + sched_dep => _epoch( $j_stop->sched_dep ), + rt_arr => _epoch( $j_stop->rt_arr ), + rt_dep => _epoch( $j_stop->rt_dep ), + isCancelled => $j_stop->is_cancelled, + arr_delay => $j_stop->arr_delay, + dep_delay => $j_stop->dep_delay, + efa_load => $j_stop->occupancy, + lat => $j_stop->latlon->[0], + lon => $j_stop->latlon->[1], } ] ); -- cgit v1.2.3