X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_export%2Finternal_diddb.pm;h=a330cb0a6fb17e414022f044faa4fc49576618b6;hb=f4723862a096bd9eecd47727c9a99ebedc131ac9;hp=d7b5587b114378c0dadd4ddcc8d8fbdaba9fbaf4;hpb=bd4151f99f8a2249977e65947cc8762ec50166e2;p=freeside.git diff --git a/FS/FS/part_export/internal_diddb.pm b/FS/FS/part_export/internal_diddb.pm index d7b5587b1..a330cb0a6 100644 --- a/FS/FS/part_export/internal_diddb.pm +++ b/FS/FS/part_export/internal_diddb.pm @@ -1,17 +1,22 @@ package FS::part_export::internal_diddb; use vars qw(@ISA %info); -#use Tie::IxHash; +use Tie::IxHash; use FS::Record qw(qsearch qsearchs); use FS::part_export; use FS::phone_avail; @ISA = qw(FS::part_export); +tie my %options, 'Tie::IxHash', + 'countrycode' => { label => 'Country code', 'default' => '1', }, +; + %info = ( - 'svc' => 'svc_phone', - 'desc' => 'Provision phone numbers from the internal DID database', - 'notes' => 'After adding the export, DIDs may be imported under Tools -> Importing -> Import phone numbers (DIDs)', + 'svc' => 'svc_phone', + 'desc' => 'Provision phone numbers from the internal DID database', + 'notes' => 'After adding the export, DIDs may be imported under Tools -> Importing -> Import phone numbers (DIDs)', + 'options' => \%options, ); sub rebless { shift; } @@ -20,7 +25,7 @@ sub get_dids { my $self = shift; my %opt = ref($_[0]) ? %{$_[0]} : @_; - my %hash = ( 'countrycode' => 1, #XXX make an option or something + my %hash = ( 'countrycode' => ( $self->option('countrycode') || '1' ), 'exportnum' => $self->exportnum, 'svcnum' => '', ); @@ -75,7 +80,7 @@ sub _export_insert { #link phone_avail to svcnum my( $npa, $nxx, $station ) = ($1, $2, $3); my $phone_avail = qsearchs('phone_avail', { - 'countrycode' => 1, #XXX make an option or something + 'countrycode' => ( $self->option('countrycode') || '1' ), 'exportnum' => $self->exportnum, 'svcnum' => '', 'npa' => $npa, @@ -95,12 +100,12 @@ sub _export_insert { #link phone_avail to svcnum sub _export_delete { #unlink phone_avail from svcnum my( $self, $svc_phone ) = (shift, shift); - $svc_phone =~ /^(\d{3})(\d{3})(\d+)$/ + $svc_phone->phonenum =~ /^(\d{3})(\d{3})(\d+)$/ or return "unparsable phone number: ". $svc_phone->phonenum; my( $npa, $nxx, $station ) = ($1, $2, $3); my $phone_avail = qsearchs('phone_avail', { - 'countrycode' => 1, #XXX make an option or something + 'countrycode' => ( $self->option('countrycode') || '1'), 'exportnum' => $self->exportnum, 'svcnum' => $svc_phone->svcnum, #these too? @@ -109,8 +114,11 @@ sub _export_delete { #unlink phone_avail from svcnum 'station' => $station, }); - return "can't find number to return to availability: ". $svc_phone->phonenum - unless $phone_avail; + unless ( $phone_avail ) { + warn "WARNING: can't find number to return to availability: ". + $svc_phone->phonenum; + return; + } $phone_avail->svcnum('');