X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fsvc_broadband.pm;h=aaac891e6b2bd00c778d02622ce10a4a6db9374f;hp=45f6c360168b88e6c9fbdbeb67d5c186daa14334;hb=efccaa2d081bfcaaddcf9d89da3c2a065b4caafb;hpb=0354f39ed0e74fd2eae1d9da13906625b4f56591 diff --git a/FS/FS/svc_broadband.pm b/FS/FS/svc_broadband.pm index 45f6c3601..aaac891e6 100755 --- a/FS/FS/svc_broadband.pm +++ b/FS/FS/svc_broadband.pm @@ -87,7 +87,7 @@ points to. You can ask the object for a copy with the I method. 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. @@ -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. +Currently available options are: I + +If I 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 @@ -116,50 +122,6 @@ returns the error, otherwise returns false. # 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). @@ -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') { - $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.")"; } } @@ -223,8 +187,7 @@ sub check { return 'Router '.$router->routernum.' cannot provide svcpart '.$self->svcpart; } - - ''; #no error + $self->SUPER::check; } =item NetAddr @@ -267,19 +230,11 @@ sub allowed_routers { =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 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 -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