<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style>.EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; }</style>
</head>
<body>
<font face="Arial, sans-serif" size="2">
<div style="margin-top: 5pt; margin-bottom: 5pt; ">OK … I'm at wits end on this issue. We have a group that we provide change management service for that wants to also keep track of time worked on specific tickets. The first thing that I discovered was that
the value of of $self->TicketObj->TimeWorked is cumulative. This was going to cause a problem because what this user wants to do is send email to the work order desk to report the time worked on a ticket as it is entered (not the total when resolved). So this
meant that everytime I generated an email the work order folks were going to enter a running total each time work was performed which of course would not reflect the total time worked but far more than that.<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">So … since we don't really use time worked for anything else, I decided to mess with the Ticket_Overlay.pm. I changed the pm to do the following:<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">sub _UpdateTimeTaken {<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">my $self = shift;<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">my $Minutes = shift;<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">my ($Total);<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">$Total = $self->SUPER::_Value("TimeWorked");<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">#$Total = ( $Total || 0 ) + ( $Minutes || 0 );<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">#### The original line is remarked out above.<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">#### The following line added.<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; "><b>$Total = ( 0 ) + ( $Minutes || 0 );</b><font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">$self->SUPER::_Set(<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">Field => "TimeWorked",<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">Value => $Total<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">);<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">return ($Total);<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">}<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">Basically this change just keeps the last value entered and stores that as time worked. So great … now I can report the time worked to the work order desk right? Well not exactly. I wanted to do a check to
see what the status of time worked was to determine if I should send email to the work order desk. If $timeworked is 0 then I don't send to the work order desk and if it isn't 0 then I send the email. Here is what I was trying to do:<font face="Times New Roman, serif" size="3">
</font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">Condition: User Defined<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">Action: Notify Other Recipients<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">Template: ukcommwo - test2 (This is a custom template I made to send to this certain group of folks.)<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">Stage: TransactionBatch<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">##################################<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">#SCRIP TO PROCESS FOR TIME WORKED#<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">##################################<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">$RT::Logger->debug("*********** Starting time entry scrip ************\n\n");<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">###############<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">## Set Variables<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">#################<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">###############<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">## Ticket Variables<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">###################<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">my $timeworked = $self->TicketObj->TimeWorked;<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">if ($timeworked == 0) {<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">$RT::Logger->debug("No time worked. Move on to next script.");<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">return 0;<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">} else {<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">$RT::Logger->debug("Time worked: $timeworked");<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">return 1;<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">}<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">In my innocence I thought for sure that this would be all I needed but I ran into a 'gotcha'. So on ticket X I want to enter a comment and some time worked. I click on comment and then I add my time and leave
a comment. It works great. It detects that $timeworked isn't 0 and generates the email. So the next time I want to comment … I click on comment and immediately an email gets generated because the value of Timeworked is not zero. Mind you this is BEFORE I even
put in a comment or add time … this is just upon clicking on comment on the web interface to begin leaving a comment. So … I had an idea that I would run another scrip that would then reset the value back 0 after generating the email to the work order desk.
That works but what I get is an entry on the ticket for every comment that shows the value of timeworked getting reset to 0. Cosmetically annoying and something I would like to avoid.<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">Does anyone have any ideas on how I can check the value of $timeworked but not generate the email when I just click on Comment to start leaving a comment? Any other tips or suggestions on how to do this would
be greatly appreciated. I hoping that I've made this clear but since I'm typing this in a hurry and since I'm so entrenched in the problem I'm bet it is like mud to all of you. I hope not though.<font face="Times New Roman, serif" size="3"> </font></div>
<div style="margin-top: 5pt; margin-bottom: 5pt; ">- John</div>
<div> </div>
<div> </div>
</font>
</body>
</html>