--- AgentTicketBulk.pm.orig 2005-10-27 15:55:45.000000000 +0200 +++ AgentTicketBulk.pm 2005-10-27 16:27:35.000000000 +0200 @@ -63,6 +63,8 @@ } $Output = $Self->{LayoutObject}->Header(); # process tickets + # tag for merge feature + my $merged = 0; foreach (@TicketIDs) { my %Ticket = $Self->{TicketObject}->TicketGet(TicketID => $_); # check permissions @@ -125,7 +127,7 @@ my $ArticleTypeID = $Self->{ParamObject}->GetParam(Param => 'ArticleTypeID') || ''; my $ArticleType = $Self->{ParamObject}->GetParam(Param => 'ArticleType') || ''; - if (($Subject || $Body) && ($ArticleTypeID||$ArticleType)) { + if (($Subject || $Body) && ($ArticleTypeID||$ArticleType) && ! $merged ) { my $ArticleID = $Self->{TicketObject}->ArticleCreate( TicketID => $_, ArticleTypeID => $ArticleTypeID, @@ -163,6 +165,20 @@ ); } } + # merge + my $MainTicket = $Self->{ParamObject}->GetParam(Param => 'MainTicket') || ''; + my $MainTicketID = $Self->{TicketObject}->TicketIDLookup( TicketNumber => $MainTicket , + UserID => $Self->{UserID} ) || ''; + + if( $MainTicketID ) { + if( $_ == $MainTicketID || !$Self->{TicketObject}->TicketMerge(MainTicketID => $MainTicketID, MergeTicketID => $_, UserID => $Self->{UserID})) { + $Output .= $Self->{LayoutObject}->Notify( Info => + "Can't Merge $_ to $_" ); + } + else { + $merged = 1; + } + } # Should I unlock tickets at user request? if ($Self->{ParamObject}->GetParam(Param => 'Unlock')) { $Self->{TicketObject}->LockSet(