prevent deletion of a tower sector with customers, RT#24197
authorIvan Kohler <ivan@freeside.biz>
Mon, 5 Aug 2013 20:28:03 +0000 (13:28 -0700)
committerIvan Kohler <ivan@freeside.biz>
Mon, 5 Aug 2013 20:28:03 +0000 (13:28 -0700)
FS/FS/tower.pm
FS/FS/tower_sector.pm

index 227e3eb..052836e 100644 (file)
@@ -59,8 +59,6 @@ points to.  You can ask the object for a copy with the I<hash> method.
 
 =cut
 
 
 =cut
 
-# the new method can be inherited from FS::Record, if a table method is defined
-
 sub table { 'tower'; }
 
 =item insert
 sub table { 'tower'; }
 
 =item insert
@@ -68,23 +66,15 @@ sub table { 'tower'; }
 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.
 
-=cut
-
 =item delete
 
 Delete this record from the database.
 
 =item delete
 
 Delete this record from the database.
 
-=cut
-
 =item replace OLD_RECORD
 
 Replaces the OLD_RECORD with this one in the database.  If there is an error,
 returns the error, otherwise returns false.
 
 =item replace OLD_RECORD
 
 Replaces the OLD_RECORD with this one in the database.  If there is an error,
 returns the error, otherwise returns false.
 
-=cut
-
-# the replace method can be inherited from FS::Record
-
 =item check
 
 Checks all fields to make sure this is a valid tower.  If there is
 =item check
 
 Checks all fields to make sure this is a valid tower.  If there is
@@ -93,9 +83,6 @@ and replace methods.
 
 =cut
 
 
 =cut
 
-# the check method should currently be supplied - FS::Record contains some
-# data checking routines
-
 sub check {
   my $self = shift;
 
 sub check {
   my $self = shift;
 
index 80e7f51..3605190 100644 (file)
@@ -2,8 +2,9 @@ package FS::tower_sector;
 
 use strict;
 use base qw( FS::Record );
 
 use strict;
 use base qw( FS::Record );
-use FS::Record qw( qsearchs ); # qsearch );
+use FS::Record qw( qsearch qsearchs );
 use FS::tower;
 use FS::tower;
+use FS::svc_broadband;
 
 =head1 NAME
 
 
 =head1 NAME
 
@@ -26,8 +27,8 @@ FS::tower_sector - Object methods for tower_sector records
 
 =head1 DESCRIPTION
 
 
 =head1 DESCRIPTION
 
-An FS::tower_sector object represents an example.  FS::tower_sector inherits from
-FS::Record.  The following fields are currently supported:
+An FS::tower_sector object represents an tower sector.  FS::tower_sector
+inherits from FS::Record.  The following fields are currently supported:
 
 =over 4
 
 
 =over 4
 
@@ -56,15 +57,13 @@ ip_addr
 
 =item new HASHREF
 
 
 =item new HASHREF
 
-Creates a new example.  To add the example to the database, see L<"insert">.
+Creates a new sector.  To add the sector to the database, see L<"insert">.
 
 Note that this stores the hash reference, not a distinct copy of the hash it
 points to.  You can ask the object for a copy with the I<hash> method.
 
 =cut
 
 
 Note that this stores the hash reference, not a distinct copy of the hash it
 points to.  You can ask the object for a copy with the I<hash> method.
 
 =cut
 
-# the new method can be inherited from FS::Record, if a table method is defined
-
 sub table { 'tower_sector'; }
 
 =item insert
 sub table { 'tower_sector'; }
 
 =item insert
@@ -72,38 +71,35 @@ sub table { 'tower_sector'; }
 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.
 
-=cut
-
-# the insert method can be inherited from FS::Record
-
 =item delete
 
 Delete this record from the database.
 
 =cut
 
 =item delete
 
 Delete this record from the database.
 
 =cut
 
-# the delete method can be inherited from FS::Record
+sub delete {
+  my $self = shift;
+
+  #not the most efficient, not not awful, and its not like deleting a sector
+  # with customers is a common operation
+  return "Can't delete a sector with customers" if $self->svc_broadband;
+
+  $self->SUPER::delete;
+}
 
 =item replace OLD_RECORD
 
 Replaces the OLD_RECORD with this one in the database.  If there is an error,
 returns the error, otherwise returns false.
 
 
 =item replace OLD_RECORD
 
 Replaces the OLD_RECORD with this one in the database.  If there is an error,
 returns the error, otherwise returns false.
 
-=cut
-
-# the replace method can be inherited from FS::Record
-
 =item check
 
 =item check
 
-Checks all fields to make sure this is a valid example.  If there is
+Checks all fields to make sure this is a valid sector.  If there is
 an error, returns the error, otherwise returns false.  Called by the insert
 and replace methods.
 
 =cut
 
 an error, returns the error, otherwise returns false.  Called by the insert
 and replace methods.
 
 =cut
 
-# the check method should currently be supplied - FS::Record contains some
-# data checking routines
-
 sub check {
   my $self = shift;
 
 sub check {
   my $self = shift;
 
@@ -145,6 +141,17 @@ sub description {
   }
 }
 
   }
 }
 
+=item svc_broadband
+
+Returns the services on this tower sector.
+
+=cut
+
+sub svc_broadband {
+  my $self = shift;
+  qsearch('svc_broadband', { 'sectornum' => $self->sectornum });
+}
+
 =back
 
 =head1 BUGS
 =back
 
 =head1 BUGS