Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- my $CFName = 'Debug';
- my $DefaultValue = '1';
- $self->TicketObj->AddCustomFieldValue(
- Field => $CFName,
- Value => $DefaultValue,
- );
- return 1 unless $self->TicketObj->Owner == $RT::Nobody->id;
- my @owners;
- my $users = RT::Users->new(RT->SystemUser);
- my $ticket = $self->TicketObj;
- my $transaction = $self->TransactionObj;
- my $derivedGroupName;
- if ( ($self->TicketObj->CustomFieldValuesAsString ( 'Country' ) eq 'Germany' ) && ( $self->TicketObj->CustomFieldValuesAsString ( 'Case' ) eq 'Post-Sale' ) ){
- $users->MemberOfGroup(49);
- $derivedGroupName = 'Tier 1 Germany Service';
- $DefaultValue = '49';
- }
- if ( ($self->TicketObj->CustomFieldValuesAsString ( 'Country' ) eq 'Germany' ) && ( $self->TicketObj->CustomFieldValuesAsString ( 'Case' ) eq 'Pre-Sale' ) ){
- $users->MemberOfGroup(64);
- $derivedGroupName = 'Tier 1 Germany Sales';
- $DefaultValue = '64';
- }
- if ( ($self->TicketObj->CustomFieldValuesAsString ( 'Country' ) eq 'Belgium' ) && ( $self->TicketObj->CustomFieldValuesAsString ( 'Case' ) eq 'Post-Sale' ) ){
- $users->MemberOfGroup(63);
- $derivedGroupName = 'Tier 1 Belgium Service';
- $DefaultValue = '63';
- }
- if ( ($self->TicketObj->CustomFieldValuesAsString ( 'Country' ) eq 'Belgium' ) && ( $self->TicketObj->CustomFieldValuesAsString ( 'Case' ) eq 'Pre-Sale' ) ){
- $users->MemberOfGroup(29);
- $derivedGroupName = 'Tier 1 Belgium Sales';
- $DefaultValue = '29';
- }
- if ( ($self->TicketObj->CustomFieldValuesAsString ( 'Country' ) eq 'USA' ) && ( $self->TicketObj->CustomFieldValuesAsString ( 'Case' ) eq 'Post-Sale' ) ){
- $users->MemberOfGroup(743);
- $derivedGroupName = 'Tier 2 NA';
- $DefaultValue = '743B';
- }
- if ( ($self->TicketObj->CustomFieldValuesAsString ( 'Country' ) eq 'USA' ) && ( $self->TicketObj->CustomFieldValuesAsString ( 'Case' ) eq 'Pre-Sale' ) ){
- $users->MemberOfGroup(743);
- $derivedGroupName = 'Tier 2 NA';
- $DefaultValue = '743A';
- }
- $self->TicketObj->AddCustomFieldValue(
- Field => $CFName,
- Value => $DefaultValue,
- );
- my $LowestTicketID = $self->TicketObj->id;
- my $x;
- my $i = 0;
- my $SelectedUser;
- while( my $user = $users->Next ) {
- push @owners, $user->Name;
- if (scalar ( $user-> FirstCustomFieldValue ( 'LastTicketID' ) ) < scalar ( $LowestTicketID ) ){
- $LowestTicketID = $user-> FirstCustomFieldValue ( 'LastTicketID' );
- $x = $i;
- $SelectedUser = $user;
- }
- $i=$i+1;
- }
- my $owner = $owners[$x];
- $RT::Logger->info("Auto assign ticket ". $self->TicketObj->id ." to user ". $owner );
- my ($status, $msg) = $self->TicketObj->SetOwner( $owner );
- unless( $status ) {
- $RT::Logger->error( "Impossible to assign the ticket to $owner: $msg" );
- return undef;
- }
- $LowestTicketID = $self->TicketObj->id;
- $CFName = 'LastTicketID';
- $SelectedUser->AddCustomFieldValue(
- Field => $CFName,
- Value => $LowestTicketID,
- );
- my $addGroupObj = RT::Group->new($RT::SystemUser);
- $addGroupObj->LoadUserDefinedGroup($derivedGroupName);
- return undef unless $addGroupObj;
- my $addGroupMembersObj = $addGroupObj->UserMembersObj;
- my $userObj;
- while ($userObj = $addGroupMembersObj->Next) {
- if (($ticket->IsRequestor($userObj->PrincipalId)) or ($ticket->IsCc($userObj->PrincipalId))) {
- $RT::Logger->debug("On Create Add Group CC: '" . $userObj->Name . "' is already a ticket watcher; not adding Cc on ticket \#" . $ticket->id );
- } else {
- $RT::Logger->debug("On Create Add Group CC: Adding '" . $userObj->Name ."' to ticket \#" .$ticket->id);
- my ($success, $msg)= $ticket->AddWatcher(
- Type => "Cc",
- PrincipalId => $userObj->PrincipalId);
- if (! $success) {
- $RT::Logger->info("On Create Add Group CC: couldn't add '" . $userObj->Name . "' to " . $ticket->id . "': got '" . $msg ."'");
- }
- }
- }
- if ( $self->TicketObj->CustomFieldValuesAsString ( 'How urgent is it' ) eq 'Very Urgent' ) {
- $self->TicketObj->SetPriority( 100 );
- $DefaultValue = '99';
- }
- if ( $self->TicketObj->CustomFieldValuesAsString ( 'How urgent is it' ) eq 'High' ) {
- $self->TicketObj->SetPriority( 75 );
- $DefaultValue = '75';
- }
- if ( $self->TicketObj->CustomFieldValuesAsString ( 'How urgent is it' ) eq 'Medium' ) {
- $self->TicketObj->SetPriority( 50 );
- $DefaultValue = '50';
- }
- if ( $self->TicketObj->CustomFieldValuesAsString ( 'How urgent is it' ) eq 'Low' ) {
- $self->TicketObj->SetPriority( 25 );
- $DefaultValue = '25';
- }
- $CFName = 'Debug';
- $self->TicketObj->AddCustomFieldValue(
- Field => $CFName,
- Value => $DefaultValue,
- );
- return 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement