diff --git a/html/Callbacks/ElapsedBusinessTime/Elements/RT__Ticket/ColumnMap/Once b/html/Callbacks/ElapsedBusinessTime/Elements/RT__Ticket/ColumnMap/Once index b74340d..56a9605 100644 --- a/html/Callbacks/ElapsedBusinessTime/Elements/RT__Ticket/ColumnMap/Once +++ b/html/Callbacks/ElapsedBusinessTime/Elements/RT__Ticket/ColumnMap/Once @@ -1,5 +1,20 @@ <%init> RT->Logger->error("Adding ElapsedBusinessTime to COLUMN_MAP"); +$COLUMN_MAP->{'ElapsedBusinessHours'} = { + title => 'Elapsed Business (Hr)', # loc + attribute => 'Elapsed Business (Hr)', + value => sub { + my $ticket = shift; + + use RT::Extension::ElapsedBusinessTime; + + return RT::Extension::ElapsedBusinessTime->calc( + Ticket => $ticket, + CurrentUser => $session{CurrentUser}, + Units => 'Hour', + ); + } +}; $COLUMN_MAP->{'ElapsedBusinessMinutes'} = { title => 'Elapsed Business (Min)', # loc attribute => 'Elapsed Business (Min)', diff --git a/html/Callbacks/ElapsedBusinessTime/Search/Elements/BuildFormatString/Default b/html/Callbacks/ElapsedBusinessTime/Search/Elements/BuildFormatString/Default index 5527f41..08a4718 100644 --- a/html/Callbacks/ElapsedBusinessTime/Search/Elements/BuildFormatString/Default +++ b/html/Callbacks/ElapsedBusinessTime/Search/Elements/BuildFormatString/Default @@ -1,6 +1,6 @@ <%INIT> -RT->Logger->error("Adding ElapsedBusinessTime to fields"); -push @{$Fields}, 'ElapsedBusinessMinutes', 'ElapsedBusinessTime'; +RT->Logger->error("Adding ElapsedBusiness options to fields"); +push @{$Fields}, 'ElapsedBusinessHours', 'ElapsedBusinessMinutes', 'ElapsedBusinessTime'; <%ARGS> $Fields => undef diff --git a/lib/RT/Extension/ElapsedBusinessTime.pm b/lib/RT/Extension/ElapsedBusinessTime.pm index c1a80e7..6649971 100644 --- a/lib/RT/Extension/ElapsedBusinessTime.pm +++ b/lib/RT/Extension/ElapsedBusinessTime.pm @@ -22,7 +22,7 @@ try { countrycode => $country, ); - $dh->is_holiday(2017, 1, 1); + $dh->is_holiday(year => 2017, month => 1, day => 1); } catch { RT->Logger->error("Unable to instantiate Date::Holidays: $_"); $dh = undef; @@ -30,7 +30,15 @@ try { sub calc { my $class = shift; - my %args = ( Ticket => undef, CurrentUser => undef, DurationAsString => 0, Show => 4, Short => 1, @_); + my %args = ( + Ticket => undef, + CurrentUser => undef, + DurationAsString => 0, + Show => 4, + Short => 1, + Units => 'Minute', + @_ + ); my $elapsed_business_time = 0; my $last_state_change = $args{Ticket}->CreatedObj; @@ -70,7 +78,13 @@ sub calc { Short => $args{Short}, ); } else { - return sprintf("%d:%02d", int($elapsed_business_time / 60), $elapsed_business_time % 60); + if ($args{Units} eq 'Hour') { + return sprintf("%d:%02d", int($elapsed_business_time / 3600), $elapsed_business_time % 3600); + } elsif ($args{Units} eq 'Second') { + return $elapsed_business_time; + } else { + return sprintf("%d:%02d", int($elapsed_business_time / 60), $elapsed_business_time % 60); + } } }