Wikia

Request Tracker Wiki

OnQueueChangeResetPriorityAndDueDate

Comments0
860pages on
this wiki

On Queue Change Set Priority And DueDateEdit

This Scrip will reset the priority and due dates to the default queue values on a ticket when the queue is change.

  • Description: On Queue Change Set Priority and DueDate
  • Condition: On Queue Change
  • Action: User Defined
  • Template: Global template: Blank
  • Stage: TransactionBatch

Custom Condition:Edit

# blank

Custom action preparation code:Edit

return 1;

Custom action cleanup code:Edit

my $queue_id = $self->TransactionObj->NewValue;
my $queue = RT::Queue->new( $RT::SystemUser );
$queue->Load( $queue_id );

# Reset Priority
unless ( $self->TicketObj->Priority == $queue->InitialPriority ) {
  $RT::Logger->info("On Queue Change set ticket #". $self->TicketObj->id ." priority to ". $queue->InitialPriority );
  my ( $status, $msg ) = $self->TicketObj->SetPriority( $queue->InitialPriority );
  unless ( $status ) {
    $RT::Logger->error( "Unable to assign priority to ". $queue->InitialPriority );
    $RT::Logger->error( "Message: $msg" );
  }
}
# Reset Final Priority
unless ( $self->TicketObj->FinalPriority == $queue->FinalPriority ) {
  $RT::Logger->info("On Queue Change set ticket #". $self->TicketObj->id ." final priority to ". $queue->FinalPriority );
  my ( $status, $msg ) = $self->TicketObj->SetFinalPriority( $queue->FinalPriority );
  unless ( $status ) {
    $RT::Logger->error( "Unable to assign final priority to ". $queue->FinalPriority );
    $RT::Logger->error( "Message: $msg" );
  }
}  

# Reset Due Date
my $due_date = RT::Date->new( $RT::SystemUser );
$due_date->Set( Format => 'ISO', Value => $self->TicketObj->Due );

# If queue doesn't specify due date, then clear this tickets due date.
# Otherwise, add that many days.
if ( $queue->DefaultDueIn == 0 ) {
  $due_date->Set( Format => 'ISO', Value => 0 );
} else {
  $due_date->SetToNow;
  $due_date->AddDays( $queue->DefaultDueIn );
}

$RT::Logger->info("On Queue Change set ticket #". $self->TicketObj->id ." due date to ". $due_date->ISO );
my ( $status, $msg ) = $self->TicketObj->SetDue( $due_date->ISO );
unless ( $status ) {
  $RT::Logger->error( "Unable to assign due date to ". $due_date->ISO );
}
return 1;

Around Wikia's network

Random Wiki