link by username now only links to same svcpart
[freeside.git] / httemplate / misc / process / link.cgi
index 4b220a8..5d80ade 100755 (executable)
@@ -8,12 +8,15 @@ $cgi->param('svcnum') =~ /^(\d*)$/;
 my $svcnum = $1;
 
 unless ( $svcnum ) {
-  my($part_svc) = qsearchs('part_svc',{'svcpart'=>$svcpart});
-  my($svcdb) = $part_svc->getfield('svcdb');
-  $cgi->param('link_field') =~ /^(\w+)$/; my($link_field)=$1;
-  my($svc_x)=qsearchs($svcdb,{$link_field => $cgi->param('link_value') });
+  my $part_svc = qsearchs('part_svc',{'svcpart'=>$svcpart});
+  my $svcdb = $part_svc->getfield('svcdb');
+  $cgi->param('link_field') =~ /^(\w+)$/;
+  my $link_field = $1;
+  my $svc_x = ( grep { $_->cust_svc->svcpart == $svcpart } 
+                  qsearch( $svcdb, { $link_field => $cgi->param('link_value') })
+              )[0];
   eidiot("$link_field not found!") unless $svc_x;
-  $svcnum=$svc_x->svcnum;
+  $svcnum = $svc_x->svcnum;
 }
 
 my $old = qsearchs('cust_svc',{'svcnum'=>$svcnum});