X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fphone_avail.pm;h=967d7179e4228fedd5e26452f0b4956aa961e024;hp=136fc24b05d746b3fc1aba7a94efc7834cbcf3e4;hb=74e058c8a010ef6feb539248a550d0bb169c1e94;hpb=dcc553538ede04c0783bc92d3942c905c29131c1 diff --git a/FS/FS/phone_avail.pm b/FS/FS/phone_avail.pm index 136fc24b0..967d7179e 100644 --- a/FS/FS/phone_avail.pm +++ b/FS/FS/phone_avail.pm @@ -1,10 +1,14 @@ package FS::phone_avail; use strict; -use vars qw( @ISA ); -use FS::Record qw( qsearch qsearchs ); +use vars qw( @ISA $DEBUG $me ); +use FS::Record qw( qsearch qsearchs dbh ); +use FS::cust_svc; -@ISA = qw(FS::Record); +@ISA = qw(FS::cust_main_Mixin FS::Record); + +$me = '[FS::phone_avail]'; +$DEBUG = 0; =head1 NAME @@ -61,6 +65,10 @@ nxx station +=item name + +Optional name + =item svcnum svcnum @@ -144,14 +152,27 @@ sub check { $self->SUPER::check; } +=item cust_svc + +=cut + +sub cust_svc { + my $self = shift; + return '' unless $self->svcnum; + qsearchs('cust_svc', { 'svcnum' => $self->svcnum }); +} + sub process_batch_import { my $job = shift; my $numsub = sub { - my( $hash, $value ) = @_; + my( $phone_avail, $value ) = @_; $value =~ s/\D//g; $value =~ /^(\d{3})(\d{3})(\d+)$/ or die "unparsable number $value\n"; - ( $hash->{npa}, $hash->{nxx}, $hash->{station} ) = ( $1, $2, $3 ); + #( $hash->{npa}, $hash->{nxx}, $hash->{station} ) = ( $1, $2, $3 ); + $phone_avail->npa($1); + $phone_avail->nxx($2); + $phone_avail->station($3); }; my $opt = { 'table' => 'phone_avail', @@ -163,6 +184,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