return phone numbers to inventory when unprovisioned, RT#10520
[freeside.git] / FS / FS / phone_avail.pm
index 55b44ec..f05f05b 100644 (file)
@@ -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