[rt-users] Scrip question...Getting there slowly...Time Worked
Greg Evans
gevans at hcc.net
Fri Feb 8 18:57:33 EST 2008
following up on my own post to the list...The following code is *mostly*
working but there is a GLARING ERROR that makes it unusable
Please NOTE THE ABOVE because if you use it as is, it will require a restart
of httpd each time you try to update a ticket.
#code begin
if ($self->TicketObj->Type eq "Correspond" || $self->TicketObj->Type eq
"Comment" || $self->TicketObj->Type eq "ticket")
# Why it has to be "ticket" to work I don't understand yet
{
# Saw something similar somewhere that I was looking at RT stuff.
# Looked like it may work, it does.
my $date_update=$self->TicketObj->LastUpdatedObj->Unix;
my $date_create=$self->TicketObj->CreatedObj->Unix;
my $ticket_check = $self->TicketObj->TimeWorked; #tells us the current value
of TimeWorked
my $ticket_Worked = (($date_update - $date_create)/60); #time in minutes
#this was the problem before and seems to be the problem again!!!
$self->TicketObj->SetTimeWorked($ticket_Worked);
return 1;
} else {
return undef;
}
Here is what happens when I run it as is just a quick copy/paste job of the
ticket:
Fri Feb 08 15:39:22 2008 gevans - Comments added [Reply] [Comment]
Download (untitled) [text/plain 1.2k] On Fri Feb 08 15:37:16 2008, gevans
wrote:
[snipped]
# Fri Feb 08 15:39:23 2008 RT_System - TimeWorked changed from (no value)
to '19.1'
# Fri Feb 08 15:39:23 2008 RT_System - TimeWorked changed from '19' to ''
# Fri Feb 08 15:39:23 2008 RT_System - TimeWorked changed from (no value)
to '21.2166666666667'
# Fri Feb 08 15:39:23 2008 RT_System - TimeWorked changed from '21' to ''
# Fri Feb 08 15:39:23 2008 RT_System - TimeWorked changed from (no value)
to '21.2166666666667'
# Fri Feb 08 15:39:23 2008 RT_System - TimeWorked changed from '21' to ''
# Fri Feb 08 15:39:23 2008 RT_System - TimeWorked changed from (no value)
to '21.2166666666667'
# Fri Feb 08 15:39:23 2008 RT_System - TimeWorked changed from '21' to ''
...
...
# Fri Feb 08 15:42:39 2008 RT_System - TimeWorked changed from (no value)
to '24.4833333333333'
# Fri Feb 08 15:42:39 2008 RT_System - TimeWorked changed from '24' to ''
# Fri Feb 08 15:42:39 2008 RT_System - TimeWorked changed from (no value)
to '24.4833333333333'
# Fri Feb 08 15:42:40 2008 RT_System - TimeWorked changed from '24' to ''
# Fri Feb 08 15:42:40 2008 RT_System - TimeWorked changed from (no value)
to '24.4833333333333'
# Fri Feb 08 15:42:40 2008 RT_System - TimeWorked changed from '24' to ''
# Fri Feb 08 15:42:40 2008 RT_System - TimeWorked changed from (no value)
to '24.5'
# Fri Feb 08 15:42:40 2008 RT_System - TimeWorked changed from '24' to ''
# Fri Feb 08 15:42:40 2008 RT_System - TimeWorked changed from (no value)
to '24.5'
# Fri Feb 08 15:42:40 2008 RT_System - TimeWorked changed from '24' to ''
# Fri Feb 08 15:42:40 2008 RT_System - TimeWorked changed from (no value)
to '24.5'
# Fri Feb 08 15:42:40 2008 RT_System - TimeWorked changed from '24' to ''
# Fri Feb 08 15:42:40 2008 RT_System - TimeWorked changed from (no value)
to '24.5'
# Fri Feb 08 15:42:40 2008 RT_System - TimeWorked changed from '24' to ''
# Fri Feb 08 15:42:40 2008 RT_System - TimeWorked changed from (no value)
to '24.5'
It will continue adding time until you kill httpd. This has got to be
something simple that I am missing. At least I think so... Ideas?
Thanks,
Greg Evans
________________________________
From: rt-users-bounces at lists.bestpractical.com
[mailto:rt-users-bounces at lists.bestpractical.com] On Behalf Of Greg Evans
Sent: Friday, February 08, 2008 2:09 PM
To: rt-users at lists.bestpractical.com
Subject: [rt-users] Scrip question...Getting there slowly...Time
Worked
As has been mentioned I am working on trying to get a time worked
scrip up and running. So far everything is going well except for one thing,
I can retrieve dates from the ticket without problem and they come through
like:
2008-02-08 21:24:49
This seems like a fine format, but once I have 2 of them, I can't
figure out how to calculate the difference. It was suggest that I might need
to convert them to unix time and back, but I am not sure how to do that. I
see that Time::Local could possibly be used or maybe Date::Manip but my
admittedly novice Perl skills don't particularly help me out here.
Here is the scrip as it sits, and after using RT::Logger->debug it
appears that all I need is to get the date difference calculation to work
if ($self->TicketObj->Type eq "Correspond" || $self->TicketObj->Type
eq "Comment" || $self->TicketObj->Type eq "ticket")
{
#This is the part that is not working.
my $ticket_Worked = ($self->TicketObj->LastUpdated -
$self->TicketObj->Created);
#End part that is not working
$self->TicketObj->SetTimeWorked($ticket_Worked);
} else {
return undef;
}
The other thing that I thought was weird when I looked in my rt.log
was that when I would comment on the ticket, the returned result of the if
test that I start with was "ticket" which seems strange to me, but what do I
know. Maybe someone could explain that to me as well?
Greg Evans
Internet Support
Hood Canal Communications
(360) 898-2481 ext.212
More information about the rt-users
mailing list