diff options
author | ivan <ivan> | 2008-03-24 03:08:11 +0000 |
---|---|---|
committer | ivan <ivan> | 2008-03-24 03:08:11 +0000 |
commit | 2e6530efbcd472ebbb2c47346f0c08fbf80e7a6c (patch) | |
tree | 6778737ff98d292ec04724e127a7a775979f1d1b | |
parent | f7696f45691c414aaa3c6fe48ce6e374588009f4 (diff) |
woo! final part of #1160! yup, auto-associating tickets with customers now. whew!
-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 ) { |