diff options
| -rw-r--r-- | rt/html/Elements/EditCustomers | 7 | ||||
| -rw-r--r-- | rt/html/Ticket/Elements/EditCustomers | 8 | ||||
| -rw-r--r-- | rt/html/Ticket/Elements/ShowCustomers | 12 | ||||
| -rw-r--r-- | rt/lib/RT/Ticket_Overlay.pm | 37 | 
4 files changed, 45 insertions, 19 deletions
diff --git a/rt/html/Elements/EditCustomers b/rt/html/Elements/EditCustomers index 57eb9059d..68efb5f40 100644 --- a/rt/html/Elements/EditCustomers +++ b/rt/html/Elements/EditCustomers @@ -21,12 +21,7 @@    </tr>    <tr>      <td class="value"> -% #while (my $link = $Object->MemberOf->Next) { -% foreach my $link ( -%   grep { $_->TargetURI->Resolver->{'fstable'} eq 'cust_main' } -%   grep { $_->TargetURI->Scheme eq 'freeside' } -%        @{ $Object->_Links('Base')->ItemsArrayRef } -% ) { +% foreach my $link ( @{ $Object->Customers->ItemsArrayRef } ) {        <INPUT TYPE=CHECKBOX NAME="DeleteLink--<%$link->Type%>-<%$link->Target%>">  %#        <& ShowLink, URI => $link->TargetURI &><br> diff --git a/rt/html/Ticket/Elements/EditCustomers b/rt/html/Ticket/Elements/EditCustomers index c5a6f708c..0ba6e447b 100644 --- a/rt/html/Ticket/Elements/EditCustomers +++ b/rt/html/Ticket/Elements/EditCustomers @@ -1,4 +1,5 @@  %# Copyright (c) 2004 Ivan Kohler <ivan-rt@420.am> +%# Copyright (c) 2008 Freeside Internet Services, Inc.  %#   %# This work is made available to you under the terms of Version 2 of  %# the GNU General Public License. A copy of that license should have @@ -20,12 +21,7 @@    </tr>    <tr>      <td class="value"> -% #while (my $link = $Ticket->MemberOf->Next) { -% foreach my $link ( -%   grep { $_->TargetURI->Resolver->{'fstable'} eq 'cust_main' } -%   grep { $_->TargetURI->Scheme eq 'freeside' } -%        @{ $Ticket->_Links('Base')->ItemsArrayRef } -% ) { +% foreach my $link ( @{ $Ticket->Customers->ItemsArrayRef } ) {        <INPUT TYPE=CHECKBOX NAME="DeleteLink--<%$link->Type%>-<%$link->Target%>">  %#        <& ShowLink, URI => $link->TargetURI &><br> diff --git a/rt/html/Ticket/Elements/ShowCustomers b/rt/html/Ticket/Elements/ShowCustomers index 612727ede..3acf92dd4 100644 --- a/rt/html/Ticket/Elements/ShowCustomers +++ b/rt/html/Ticket/Elements/ShowCustomers @@ -11,17 +11,15 @@  %# General Public License for more details.  <table>  % my $cust = 0; -% foreach my $customerURI ( -%   grep { $_->Resolver->{'fstable'} eq 'cust_main' } -%   grep { $_->Scheme eq 'freeside' } -%    map { $_->TargetURI } -%        @{ $Ticket->_Links('Base')->ItemsArrayRef } -% ) { +% foreach my $custResolver ( map { $_->TargetURI->Resolver } +%                                @{ $Ticket->Customers->ItemsArrayRef } +%                          ) +% {  %   $cust++;  %   my $cust_main = '';    <tr>      <td class="value"> -      <A HREF="<% $customerURI->Resolver->HREF %>"><% $customerURI->Resolver->AsStringLong |n %></A> +      <A HREF="<% $custResolver->HREF %>"><% $custResolver->AsStringLong |n %></A>      </td>    </tr>  % } diff --git a/rt/lib/RT/Ticket_Overlay.pm b/rt/lib/RT/Ticket_Overlay.pm index a294dcafd..e280b09fc 100644 --- a/rt/lib/RT/Ticket_Overlay.pm +++ b/rt/lib/RT/Ticket_Overlay.pm @@ -690,6 +690,43 @@ sub Create {      # }}} +    # {{{ Deal with auto-customer association + +    #unless we already have (a) customer(s)... +    unless ( $self->Customers->Count ) { + +      #find any requestors with customer targets +   +      my %cust_target = (); +   +      my @Requestors = +        grep { $_->Customers->Count } +             @{ $self->Requestors->UserMembersObj->ItemsArrayRef }; +   +      foreach my $Requestor ( @Requestors ) { +        foreach my $cust_link ( @{ $Requestor->Customers->ItemsArrayRef } ) { +          $cust_target{ $cust_link->Target } = 1; +        } +      } +   +      #and then auto-associate this ticket with those customers +   +      foreach my $cust_target ( keys %cust_target ) { +   +        my @link = ( 'Type'   => 'MemberOf', +                     #'Target' => "freeside://freeside/cust_main/$custnum", +                     'Target' => $cust_target, +                   ); +   +        my( $val, $msg ) = $self->AddLink(@link); +        push @non_fatal_errors, $msg; +   +      } + +    } + +    # }}} +      # {{{ Add all the custom fields      foreach my $arg ( keys %args ) {  | 
