RT# 83450 - fixed rateplan export
[freeside.git] / FS / FS / addr_block.pm
index 778c124..f07de49 100755 (executable)
@@ -6,6 +6,7 @@ use FS::Record qw( qsearchs qsearch dbh );
 use FS::router;
 use FS::addr_range;
 use FS::svc_broadband;
+use FS::svc_acct;
 use FS::Conf;
 use FS::IP_Mixin;
 use NetAddr::IP;
@@ -203,6 +204,18 @@ sub svc_broadband {
   return qsearch('svc_broadband', { blocknum => $self->blocknum });
 }
 
+=item svc_acct
+
+Returns a list of FS::svc_broadband objects associated
+with this object.
+
+=cut
+
+sub svc_acct {
+  my $self = shift;
+  return qsearch('svc_acct', { blocknum => $self->blocknum });
+}
+
 =item NetAddr
 
 Returns a NetAddr::IP object for this block's address and netmask.
@@ -260,7 +273,7 @@ sub next_free_addr {
     # also make sure it's not blocked from assignment by an address range
     if ( !$used{$freeaddr->addr } ) {
       my ($range) = grep { !$_->allow_use }
-                  FS::addr_range->any_contains($freeaddr);
+                  FS::addr_range->any_contains($freeaddr->addr);
       if ( !$range ) {
         # then we've found a free address
         return $freeaddr;
@@ -412,8 +425,6 @@ sub label {
   ($router ? $router->routername : '(unallocated)'). ':'. $self->NetAddr;
 }
 
-=back
-
 =head1 BUGS
 
 Minimum block size should be a config option.  It's hardcoded at /30 right