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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Greg Evans Sent: Friday, February 08, 2008 2:09 PM To: rt-users@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 _______________________________________________ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users 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