use FS::queue for exports, though they should probably just use it themselves
[freeside.git] / FS / FS / svc_broadband.pm
index 7789806..5c9fe5e 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'; }
 
-=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<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
@@ -148,12 +154,25 @@ sub check {
     || $self->ut_number('speed_up')
     || $self->ut_number('speed_down')
     || $self->ut_ipn('ip_addr')
+    || $self->ut_hexn('mac_addr')
+    || $self->ut_hexn('auth_key')
+    || $self->ut_floatn('latitude')
+    || $self->ut_floatn('longitude')
+    || $self->ut_floatn('altitude')
+    || $self->ut_textn('vlan_profile')
   ;
   return $error if $error;
 
   if($self->speed_up < 0) { return 'speed_up must be positive'; }
   if($self->speed_down < 0) { return 'speed_down must be positive'; }
 
+  if($self->latitude < -90 || $self->latitude > 90) {
+    return 'latitude must be between -90 and 90';
+  }
+  if($self->longitude < -180 || $self->longitude > 180) {
+    return 'longitude must be between -180 and 180';
+  }
+
   if (not($self->ip_addr) or $self->ip_addr eq '0.0.0.0') {
     my $next_addr = $self->addr_block->next_free_addr;
     if ($next_addr) {