DueDateinBusinessHours
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Description: set ticket to be due in a specified number of business hours (so that weekends and nights are excluded)
Uses Jesse Vincent's Business::Hours library, available from CPAN
Condition: On Ticket Creation Template: Global template: Blank Action: User Defined Custom Action Preparation Code: return 1; Custom Action Cleanup Code: my $duedate = RT::Date->new($RT::SystemUser); my $hoursuntildue = 4; use Business::Hours; my $hours = Business::Hours->new(); my $curtime = time; my $bus_hours_duetime = $hours->add_seconds ($curtime, ($hoursuntildue*60*60)); $duedate->Set(Format=>'unix', Value=>$bus_hours_duetime); $self->TicketObj->SetDue($duedate->ISO); return(1);
This takes care of the case in which TimeLeft is modified after ticket creation:
Description: Upon editing, convert TimeLeft into business days Condition: User Defined Action: User Defined Template: Global template: Blank Stage: TransactionCreate Custom Condition: if ($self->TransactionObj->Field eq 'TimeLeft') { return(1); } else { return(undef); } Custom Action Preparation Code: return 1; Custom action cleanup code: my $duedate = RT::Date->new($RT::SystemUser); my $hoursperday = 9; my $hoursuntildue = $self->TransactionObj->NewValue()*$hoursperday; use Business::Hours; my $hours = Business::Hours->new(); my $curtime = time; my $bus_hours_duetime = $hours->add_seconds ($curtime, ($hoursuntildue*60*60)); $duedate->Set(Format=>'unix', Value=>$bus_hours_duetime); $self->TicketObj->SetDue($duedate->ISO); return(1);