diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index 19d4094..f1f5ed3 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -633,6 +633,10 @@ sub startup { # mustn't be called during a transaction if ( not $opt{in_transaction} ) { $self->run_hook( $uid, 'checkin' ); + if ( $journey->class <= 16 ) { + $self->app->add_wagonorder( $uid, 1, $journey->id, + $found->sched_dep, $journey->number ); + } } $promise->resolve($journey); @@ -1232,7 +1236,7 @@ sub startup { my $db = $self->pg->db; - if ($sched_departure) { + if ( $sched_departure and $train_no ) { $self->dbdb->has_wagonorder_p( $sched_departure, $train_no ) ->then( sub { diff --git a/lib/Travelynx/Command/work.pm b/lib/Travelynx/Command/work.pm index eea6d1b..5787c47 100644 --- a/lib/Travelynx/Command/work.pm +++ b/lib/Travelynx/Command/work.pm @@ -60,7 +60,7 @@ sub run { return; } - if ( $found_dep->{rt_dep} ) { + if ( $found_dep->rt_dep ) { $self->app->in_transit->update_departure_hafas( uid => $uid, journey => $journey, @@ -68,9 +68,15 @@ sub run { dep_eva => $dep, arr_eva => $arr ); + if ( $journey->class <= 16 + and $found_dep->rt_dep->epoch > $now->epoch ) + { + $self->app->add_wagonorder( $uid, 1, $train_id, + $found_dep->sched_dep, $journey->number ); + } } - if ( $found_arr and $found_arr->{rt_arr} ) { + if ( $found_arr and $found_arr->rt_arr ) { $self->app->in_transit->update_arrival_hafas( uid => $uid, journey => $journey, @@ -78,6 +84,12 @@ sub run { dep_eva => $dep, arr_eva => $arr ); + if ( $journey->class <= 16 + and $now->epoch - $found_dep->rt_arr->epoch > 600 ) + { + $self->app->add_wagonorder( $uid, 0, $train_id, + $found_dep->sched_dep, $journey->number ); + } } } )->catch(