summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2008-03-24 03:08:11 +0000
committerivan <ivan>2008-03-24 03:08:11 +0000
commit2e6530efbcd472ebbb2c47346f0c08fbf80e7a6c (patch)
tree6778737ff98d292ec04724e127a7a775979f1d1b
parentf7696f45691c414aaa3c6fe48ce6e374588009f4 (diff)
woo! final part of #1160! yup, auto-associating tickets with customers now. whew!
-rw-r--r--rt/html/Elements/EditCustomers7
-rw-r--r--rt/html/Ticket/Elements/EditCustomers8
-rw-r--r--rt/html/Ticket/Elements/ShowCustomers12
-rw-r--r--rt/lib/RT/Ticket_Overlay.pm37
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 ) {