- 0 Talk
-
OpenTicketOnAllMemberResolve
Another ScripAction from RuslanZakirov:
Description: open tickets which has link on resolved ticket as member if all members resoved
Condition: On Status Change
Custom Condition:
Template: Global template: Blank
Action: User defined
Custom action preparation code: return 1;
Custom action cleanup code:
return 1 if ($self->TransactionObj->NewValue !~ /^(?:resolved|deleted|rejected)$/);
# current ticket is memeber of(child of some parents)
my $MemberOf = $self->TicketObj->MemberOf;
while( my $l = $MemberOf->Next ) {
# we can't check non local objects
next unless( $l->TargetURI->IsLocal );
# if parent ticket is not in active state then scrip can skip it
next unless( $l->TargetObj->Status =~ /^(?:new|open|stalled)$/ );
# the parent ticket has members(current ticket is one of them)
my $ms = $l->TargetObj->Members();
my $flag = 0;
while( my $m = $ms->Next ) {
next unless( $m->BaseURI->IsLocal );
next unless( $m->BaseObj->Status =~ /^(?:new|open|stalled)$/ );
$flag = 1;
last;
}
# shouldn't open parent if some children is active
next if( $flag );
# Uncomment this string if you want open ticket
# and comment next code down to END word
# $l->TargetObj->SetStatus('open');
# This code adds comment to the ticket
my $id = $self->TicketObj->id;
my $status = $self->TicketObj->Status;
$l->TargetObj->Comment(Content => <<END);
Last member(\#$id) of this ticket was $status.
END
# end of code that adds comment
}
return 1;
705617733494428679213672_test_num_