summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Travelynx/Command/work.pm19
-rw-r--r--lib/Travelynx/Model/InTransit.pm19
2 files changed, 28 insertions, 10 deletions
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],
}
]
);