Advertisement
Guest User

Untitled

a guest
Jul 30th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.52 KB | None | 0 0
  1. my $CFName = 'Debug';
  2. my $DefaultValue = '1';
  3. $self->TicketObj->AddCustomFieldValue(
  4. Field => $CFName,
  5. Value => $DefaultValue,
  6. );
  7. return 1 unless $self->TicketObj->Owner == $RT::Nobody->id;
  8.  
  9. my @owners;
  10. my $users = RT::Users->new(RT->SystemUser);
  11.  
  12. my $ticket = $self->TicketObj;
  13. my $transaction = $self->TransactionObj;
  14. my $derivedGroupName;
  15.  
  16. if ( ($self->TicketObj->CustomFieldValuesAsString ( 'Country' ) eq 'Germany' ) && ( $self->TicketObj->CustomFieldValuesAsString ( 'Case' ) eq 'Post-Sale' ) ){
  17. $users->MemberOfGroup(49);
  18. $derivedGroupName = 'Tier 1 Germany Service';
  19. $DefaultValue = '49';
  20. }
  21. if ( ($self->TicketObj->CustomFieldValuesAsString ( 'Country' ) eq 'Germany' ) && ( $self->TicketObj->CustomFieldValuesAsString ( 'Case' ) eq 'Pre-Sale' ) ){
  22. $users->MemberOfGroup(64);
  23. $derivedGroupName = 'Tier 1 Germany Sales';
  24. $DefaultValue = '64';
  25. }
  26. if ( ($self->TicketObj->CustomFieldValuesAsString ( 'Country' ) eq 'Belgium' ) && ( $self->TicketObj->CustomFieldValuesAsString ( 'Case' ) eq 'Post-Sale' ) ){
  27. $users->MemberOfGroup(63);
  28. $derivedGroupName = 'Tier 1 Belgium Service';
  29. $DefaultValue = '63';
  30. }
  31. if ( ($self->TicketObj->CustomFieldValuesAsString ( 'Country' ) eq 'Belgium' ) && ( $self->TicketObj->CustomFieldValuesAsString ( 'Case' ) eq 'Pre-Sale' ) ){
  32. $users->MemberOfGroup(29);
  33. $derivedGroupName = 'Tier 1 Belgium Sales';
  34. $DefaultValue = '29';
  35. }
  36. if ( ($self->TicketObj->CustomFieldValuesAsString ( 'Country' ) eq 'USA' ) && ( $self->TicketObj->CustomFieldValuesAsString ( 'Case' ) eq 'Post-Sale' ) ){
  37. $users->MemberOfGroup(743);
  38. $derivedGroupName = 'Tier 2 NA';
  39. $DefaultValue = '743B';
  40. }
  41. if ( ($self->TicketObj->CustomFieldValuesAsString ( 'Country' ) eq 'USA' ) && ( $self->TicketObj->CustomFieldValuesAsString ( 'Case' ) eq 'Pre-Sale' ) ){
  42. $users->MemberOfGroup(743);
  43. $derivedGroupName = 'Tier 2 NA';
  44. $DefaultValue = '743A';
  45. }
  46.  
  47.  
  48. $self->TicketObj->AddCustomFieldValue(
  49. Field => $CFName,
  50. Value => $DefaultValue,
  51. );
  52.  
  53.  
  54. my $LowestTicketID = $self->TicketObj->id;
  55. my $x;
  56. my $i = 0;
  57. my $SelectedUser;
  58.  
  59. while( my $user = $users->Next ) {
  60.  
  61. push @owners, $user->Name;
  62. if (scalar ( $user-> FirstCustomFieldValue ( 'LastTicketID' ) ) < scalar ( $LowestTicketID ) ){
  63. $LowestTicketID = $user-> FirstCustomFieldValue ( 'LastTicketID' );
  64. $x = $i;
  65. $SelectedUser = $user;
  66. }
  67. $i=$i+1;
  68.  
  69. }
  70.  
  71. my $owner = $owners[$x];
  72.  
  73. $RT::Logger->info("Auto assign ticket ". $self->TicketObj->id ." to user ". $owner );
  74. my ($status, $msg) = $self->TicketObj->SetOwner( $owner );
  75. unless( $status ) {
  76. $RT::Logger->error( "Impossible to assign the ticket to $owner: $msg" );
  77. return undef;
  78. }
  79.  
  80. $LowestTicketID = $self->TicketObj->id;
  81. $CFName = 'LastTicketID';
  82. $SelectedUser->AddCustomFieldValue(
  83. Field => $CFName,
  84. Value => $LowestTicketID,
  85. );
  86.  
  87.  
  88. my $addGroupObj = RT::Group->new($RT::SystemUser);
  89. $addGroupObj->LoadUserDefinedGroup($derivedGroupName);
  90. return undef unless $addGroupObj;
  91. my $addGroupMembersObj = $addGroupObj->UserMembersObj;
  92.  
  93. my $userObj;
  94.  
  95. while ($userObj = $addGroupMembersObj->Next) {
  96. if (($ticket->IsRequestor($userObj->PrincipalId)) or ($ticket->IsCc($userObj->PrincipalId))) {
  97. $RT::Logger->debug("On Create Add Group CC: '" . $userObj->Name . "' is already a ticket watcher; not adding Cc on ticket \#" . $ticket->id );
  98. } else {
  99. $RT::Logger->debug("On Create Add Group CC: Adding '" . $userObj->Name ."' to ticket \#" .$ticket->id);
  100. my ($success, $msg)= $ticket->AddWatcher(
  101. Type => "Cc",
  102. PrincipalId => $userObj->PrincipalId);
  103. if (! $success) {
  104. $RT::Logger->info("On Create Add Group CC: couldn't add '" . $userObj->Name . "' to " . $ticket->id . "': got '" . $msg ."'");
  105. }
  106. }
  107. }
  108.  
  109.  
  110.  
  111.  
  112.  
  113. if ( $self->TicketObj->CustomFieldValuesAsString ( 'How urgent is it' ) eq 'Very Urgent' ) {
  114. $self->TicketObj->SetPriority( 100 );
  115. $DefaultValue = '99';
  116. }
  117. if ( $self->TicketObj->CustomFieldValuesAsString ( 'How urgent is it' ) eq 'High' ) {
  118. $self->TicketObj->SetPriority( 75 );
  119. $DefaultValue = '75';
  120. }
  121. if ( $self->TicketObj->CustomFieldValuesAsString ( 'How urgent is it' ) eq 'Medium' ) {
  122. $self->TicketObj->SetPriority( 50 );
  123. $DefaultValue = '50';
  124. }
  125. if ( $self->TicketObj->CustomFieldValuesAsString ( 'How urgent is it' ) eq 'Low' ) {
  126. $self->TicketObj->SetPriority( 25 );
  127. $DefaultValue = '25';
  128. }
  129. $CFName = 'Debug';
  130. $self->TicketObj->AddCustomFieldValue(
  131. Field => $CFName,
  132. Value => $DefaultValue,
  133. );
  134.  
  135.  
  136.  
  137. return 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement