projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6d14d1f
)
return phone numbers to inventory when unprovisioned, RT#10520
author
ivan
<ivan>
Mon, 8 Nov 2010 22:04:52 +0000
(22:04 +0000)
committer
ivan
<ivan>
Mon, 8 Nov 2010 22:04:52 +0000
(22:04 +0000)
FS/FS/phone_avail.pm
patch
|
blob
|
history
FS/FS/svc_phone.pm
patch
|
blob
|
history
diff --git
a/FS/FS/phone_avail.pm
b/FS/FS/phone_avail.pm
index
55b44ec
..
f05f05b
100644
(file)
--- a/
FS/FS/phone_avail.pm
+++ b/
FS/FS/phone_avail.pm
@@
-1,11
+1,14
@@
package FS::phone_avail;
use strict;
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);
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
=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
=back
=head1 BUGS
diff --git
a/FS/FS/svc_phone.pm
b/FS/FS/svc_phone.pm
index
a599ea2
..
adf7a6c
100644
(file)
--- a/
FS/FS/svc_phone.pm
+++ b/
FS/FS/svc_phone.pm
@@
-13,6
+13,7
@@
use FS::phone_device;
use FS::svc_pbx;
use FS::svc_domain;
use FS::cust_location;
use FS::svc_pbx;
use FS::svc_domain;
use FS::cust_location;
+use FS::phone_avail;
$me = '[' . __PACKAGE__ . ']';
$DEBUG = 0;
$me = '[' . __PACKAGE__ . ']';
$DEBUG = 0;
@@
-262,6
+263,16
@@
sub delete {
}
}
}
}
+ my @phone_avail = qsearch('phone_avail', { 'svcnum' => $self->svcnum } );
+ foreach my $phone_avail ( @phone_avail ) {
+ $phone_avail->svcnum('');
+ my $error = $phone_avail->replace;
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
+ }
+ }
+
my $error = $self->SUPER::delete;
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
my $error = $self->SUPER::delete;
if ( $error ) {
$dbh->rollback if $oldAutoCommit;