remove everything that links to package view also, closes: Bug#569
[freeside.git] / httemplate / misc / process / link.cgi
index f8b7812..8b71b89 100755 (executable)
@@ -1,4 +1,3 @@
-<!-- $Id: link.cgi,v 1.4 2002-02-09 17:45:26 ivan Exp $ -->
 <%
 
 $cgi->param('pkgnum') =~ /^(\d+)$/;
@@ -9,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});
@@ -30,8 +32,13 @@ my $error = $new->replace($old);
 
 unless ($error) {
   #no errors, so let's view this customer.
-  print $cgi->redirect(popurl(3). "view/cust_pkg.cgi?$pkgnum");
+  my $custnum = $new->cust_pkg->custnum;
+  print $cgi->redirect(popurl(3). "view/cust_main.cgi?$custnum"
+                       "#cust_pkg$pkgnum" );
 } else {
+%>
+<!-- mason kludge -->
+<%
   idiot($error);
 }