summaryrefslogtreecommitdiff
path: root/FS/FS/phone_avail.pm
diff options
context:
space:
mode:
authorivan <ivan>2010-11-08 22:04:52 +0000
committerivan <ivan>2010-11-08 22:04:52 +0000
commit967b1c01527201e63b988f6aeea8021a7d18f421 (patch)
treefca92f954150747fc90d2481273183a9af54ad0b /FS/FS/phone_avail.pm
parent6d14d1fd9ddd1be4b13c05d44bb91bb8fcae519b (diff)
return phone numbers to inventory when unprovisioned, RT#10520
Diffstat (limited to 'FS/FS/phone_avail.pm')
-rw-r--r--FS/FS/phone_avail.pm22
1 files changed, 21 insertions, 1 deletions
diff --git a/FS/FS/phone_avail.pm b/FS/FS/phone_avail.pm
index 55b44ec..f05f05b 100644
--- a/FS/FS/phone_avail.pm
+++ b/FS/FS/phone_avail.pm
@@ -1,11 +1,14 @@
package FS::phone_avail;
use strict;
-use vars qw( @ISA );
+use vars qw( @ISA $DEBUG $me );
use FS::Record qw( qsearch qsearchs );
@ISA = qw(FS::Record);
+$me = '[FS::phone_avail]';
+$DEBUG = 0;
+
=head1 NAME
FS::phone_avail - Phone number availability cache
@@ -170,6 +173,23 @@ sub process_batch_import {
}
+# Used by FS::Upgrade to migrate to a new database.
+sub _upgrade_data {
+ my ($class, %opts) = @_;
+
+ warn "$me upgrading $class\n" if $DEBUG;
+
+ my $sth = dbh->prepare(
+ 'UPDATE phone_avail SET svcnum = NULL
+ WHERE svcnum IS NOT NULL
+ AND 0 = ( SELECT COUNT(*) FROM svc_phone
+ WHERE phone_avail.svcnum = svc_phone.svcnum )'
+ ) or die dbh->errstr;
+
+ $sth->execute or die $sth->errstr;
+
+}
+
=back
=head1 BUGS