recommend HTML::Mason
[freeside.git] / FS / FS / svc_broadband.pm
index 45f6c36..aaac891 100755 (executable)
@@ -87,7 +87,7 @@ points to.  You can ask the object for a copy with the I<hash> method.
 
 sub table { 'svc_broadband'; }
 
 
 sub table { 'svc_broadband'; }
 
-=item insert
+=item insert [ , OPTION => VALUE ... ]
 
 Adds this record to the database.  If there is an error, returns the error,
 otherwise returns false.
 
 Adds this record to the database.  If there is an error, returns the error,
 otherwise returns false.
@@ -95,6 +95,12 @@ otherwise returns false.
 The additional fields pkgnum and svcpart (see FS::cust_svc) should be 
 defined.  An FS::cust_svc record will be created and inserted.
 
 The additional fields pkgnum and svcpart (see FS::cust_svc) should be 
 defined.  An FS::cust_svc record will be created and inserted.
 
+Currently available options are: I<depend_jobnum>
+
+If I<depend_jobnum> is set (to a scalar jobnum or an array reference of
+jobnums), all provisioning jobs will have a dependancy on the supplied
+jobnum(s) (they will not run until the specific job(s) complete(s)).
+
 =cut
 
 # Standard FS::svc_Common::insert
 =cut
 
 # Standard FS::svc_Common::insert
@@ -116,50 +122,6 @@ returns the error, otherwise returns false.
 
 # Standard FS::svc_Common::replace
 
 
 # Standard FS::svc_Common::replace
 
-=item sb_field
-
-Returns a list of FS::sb_field objects assigned to this object.
-
-=cut
-
-sub sb_field {
-  my $self = shift;
-
-  return qsearch( 'sb_field', { svcnum => $self->svcnum } );
-}
-
-=item sb_field_hashref
-
-Returns a hashref of the FS::sb_field key/value pairs for this object.
-
-Deprecated.  Please don't use it.
-
-=cut
-
-# Kristian wrote this, but don't hold it against him.  He was under a powerful
-# distracting influence whom he evidently found much more interesting than
-# svc_broadband.pm.  I can't say I blame him.
-
-sub sb_field_hashref {
-  my $self = shift;
-  my $svcpart = shift;
-
-  if ((not $svcpart) && ($self->cust_svc)) {
-    $svcpart = $self->cust_svc->svcpart;
-  }
-
-  my $hashref = {};
-
-  map {
-    my $sb_field = qsearchs('sb_field', { sbfieldpart => $_->sbfieldpart,
-                                          svcnum => $self->svcnum });
-    $hashref->{$_->getfield('name')} = $sb_field ? $sb_field->getfield('value') : '';
-  } qsearch('part_sb_field', { svcpart => $svcpart });
-
-  return $hashref;
-
-}
-
 =item suspend
 
 Called by the suspend method of FS::cust_pkg (see FS::cust_pkg).
 =item suspend
 
 Called by the suspend method of FS::cust_pkg (see FS::cust_pkg).
@@ -199,8 +161,10 @@ sub check {
   if($self->speed_down < 0) { return 'speed_down must be positive'; }
 
   if (not($self->ip_addr) or $self->ip_addr eq '0.0.0.0') {
   if($self->speed_down < 0) { return 'speed_down must be positive'; }
 
   if (not($self->ip_addr) or $self->ip_addr eq '0.0.0.0') {
-    $self->ip_addr($self->addr_block->next_free_addr->addr);
-    if (not $self->ip_addr) {
+    my $next_addr = $self->addr_block->next_free_addr;
+    if ($next_addr) {
+      $self->ip_addr($next_addr->addr);
+    } else {
       return "No free addresses in addr_block (blocknum: ".$self->blocknum.")";
     }
   }
       return "No free addresses in addr_block (blocknum: ".$self->blocknum.")";
     }
   }
@@ -223,8 +187,7 @@ sub check {
     return 'Router '.$router->routernum.' cannot provide svcpart '.$self->svcpart;
   }
 
     return 'Router '.$router->routernum.' cannot provide svcpart '.$self->svcpart;
   }
 
-
-  ''; #no error
+  $self->SUPER::check;
 }
 
 =item NetAddr
 }
 
 =item NetAddr
@@ -267,19 +230,11 @@ sub allowed_routers {
 
 =head1 BUGS
 
 
 =head1 BUGS
 
-I think there's one place in the code where we actually use sb_field_hashref.
-That's a bug in itself.
-
-The real problem with it is that we're still grappling with the question of how
-tightly xfields should be integrated with real fields.  There are a few
-different directions we could go with it--we I<could> override several
-functions in Record so that xfields behave almost exactly like real fields (can
-be set with setfield(), appear in fields() and hash(), used as criteria in
-qsearch(), etc.).
+The business with sb_field has been 'fixed', in a manner of speaking.
 
 =head1 SEE ALSO
 
 
 =head1 SEE ALSO
 
-FS::svc_Common, FS::Record, FS::addr_block, FS::sb_field,
+FS::svc_Common, FS::Record, FS::addr_block,
 FS::part_svc, schema.html from the base documentation.
 
 =cut
 FS::part_svc, schema.html from the base documentation.
 
 =cut