diff options
| -rw-r--r-- | lib/Travelynx/Command/work.pm | 19 | ||||
| -rw-r--r-- | lib/Travelynx/Model/InTransit.pm | 19 | 
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],  				}  			]  		); | 
