bug fixes for #14698
authorMark Wells <mark@freeside.biz>
Mon, 27 Feb 2012 23:59:59 +0000 (15:59 -0800)
committerMark Wells <mark@freeside.biz>
Mon, 27 Feb 2012 23:59:59 +0000 (15:59 -0800)
FS/FS/svc_broadband.pm
httemplate/elements/tr-select-router_block_ip.html

index ac463bc..a327f46 100755 (executable)
@@ -395,18 +395,21 @@ sub check {
                  ? qsearchs('cust_svc', { 'svcnum' => $self->svcnum } )
                  : '';
   my $cust_pkg;
+  my $svcpart;
   if ($cust_svc) {
     $cust_pkg = $cust_svc->cust_pkg;
+    $svcpart = $cust_svc->svcpart;
   }else{
     $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $self->pkgnum } );
     return "Invalid pkgnum" unless $cust_pkg;
+    $svcpart = $self->svcpart;
   }
   my $agentnum = $cust_pkg->cust_main->agentnum if $cust_pkg;
 
   if ($self->routernum) {
     return "Router ".$self->routernum." does not provide this service"
       unless qsearchs('part_svc_router', { 
-        svcpart => $self->cust_svc->svcpart,
+        svcpart => $svcpart,
         routernum => $self->routernum
     });
   
@@ -543,8 +546,6 @@ sub router {
   qsearchs('router', { routernum => $self->routernum });
 }
 
-=back
-
 =item allowed_routers
 
 Returns a list of allowed FS::router objects.
@@ -553,10 +554,13 @@ Returns a list of allowed FS::router objects.
 
 sub allowed_routers {
   my $self = shift;
+  my $svcpart = $self->svcnum ? $self->cust_svc->svcpart : $self->svcpart;
   map { $_->router } qsearch('part_svc_router', 
     { svcpart => $self->cust_svc->svcpart });
 }
 
+=back
+
 
 #class method
 sub _upgrade_data {
index a4ce664..45d1dac 100644 (file)
@@ -60,6 +60,9 @@ my $svc_x = $opt{'object'};
 if ( $svc_x ) {
   $opt{$_} = $svc_x->$_
     foreach qw(routernum blocknum ip_addr svcpart);
+  if ( $svc_x->svcnum ) {
+    $opt{'svcpart'} = $svc_x->cust_svc->svcpart;
+  }
 }
 
 my $svcpart = $opt{'svcpart'} || '';