Hi,

Searching on past threads, I couldn't find how to set the "TimeWorked" 
automatically when a ticket was resolved, taking into account the "Started" and 
the "Resolved" dates. This prompted me to developed the following Scrip, which 
uses Date::Calc to find the date difference and update the TimeWorked field. 
Does RT already provide such an option?

Thanks,

Miguel

Condition: On Resolve
Action: User Defined
Template: Global template: Blank
Stage: TransactionCreate
Custom action preparation code: 1;
Custom action cleanup code:
---------------
use Date::Calc qw(Delta_DHMS);

my $time_elapsed = "0";

my $date_started_string = $self->TicketObj->Started;
my $date_resolved_string = $self->TicketObj->Resolved;

my (@date_started,@date_resolved);

if ($date_started_string =~ /(\d+)\-(\d+)\-(\d+)\s(\d+)\:(\d+)\:(\d+)/) {
        @date_started = ($1, $2, $3, $4, $5, $6);
}

if ($date_resolved_string =~ /(\d+)\-(\d+)\-(\d+)\s(\d+)\:(\d+)\:(\d+)/) {
        @date_resolved = ($1, $2, $3, $4, $5, $6);
}

my @diff = Delta_DHMS(@date_started, @date_resolved);

my $day_to_minutes = $diff[0] * 1440;
my $hour_to_minutes = $diff[1] * 60;

my $time_elapsed_sum = $day_to_minutes + $hour_to_minutes + $diff[2];

if($time_elapsed_sum > 0){
        $time_elapsed = qq($time_elapsed_sum\.$diff[3]);
}

$RT::Logger->debug("Setting TimeWorked to: $time_elapsed");

$self->TicketObj->SetTimeWorked( $time_elapsed );
---------------

_______________________________________________
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

SAVE THOUSANDS OF DOLLARS ON RT SUPPORT:

If you sign up for a new RT support contract before December 31, we'll take
up to 20 percent off the price. This sale won't last long, so get in touch 
today. 
    Email us at [EMAIL PROTECTED] or call us at +1 617 812 0745.


Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com

Reply via email to