'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,
+ 'no_machine' => 1,
);
sub rebless { shift; }
+sub can_get_dids { 1; }
+
sub get_dids {
my $self = shift;
my %opt = ref($_[0]) ? %{$_[0]} : @_;
'svcnum' => '',
);
- if ( $opt{'areacode'} && $opt{'exchange'} ) { #return numbers
+ if ( $opt{'ratecenter'} && $opt{'state'} ) {
+ my $rc = $opt{ratecenter};
+ $rc =~ s/, [A-Z][A-Z]$//g;
+ $hash{name} = $rc;
+ $hash{state} = $opt{state};
+
+ return [ map { $_->npa. '-'. $_->nxx. '-'. $_->station }
+ qsearch({ 'table' => 'phone_avail',
+ 'hashref' => \%hash,
+ 'order_by' => 'ORDER BY station',
+ })
+ ];
+ }
+ elsif ( $opt{'areacode'} && $opt{'exchange'} ) { #return numbers
$hash{npa} = $opt{areacode};
$hash{nxx} = $opt{exchange};
})
];
- } elsif ( $opt{'areacode'} ) { #return city (npa-nxx-XXXX)
+ } elsif ( $opt{'areacode'} ) {
$hash{npa} = $opt{areacode};
- return [ map { '('. $_->npa. '-'. $_->nxx. '-XXXX)' }
+ my @rc = qsearch({ 'select' => 'DISTINCT name, state',
+ 'table' => 'phone_avail',
+ 'hashref' => \%hash,
+ });
+
+ if(scalar(@rc)) {
+ my $first_phone_avail = $rc[0];
+ return [ map { $_->get('name').", ".$_->state } @rc ]
+ if $first_phone_avail->get('name');
+ }
+
+ return [ map { '('. $_->npa. '-'. $_->nxx. '-XXXX)' }
qsearch({ 'select' => 'DISTINCT npa, nxx',
'table' => 'phone_avail',
'hashref' => \%hash,
})
];
- } elsif ( $opt{'state'} ) { #return aracodes
+ } elsif ( $opt{'state'} ) { #return areacodes
$hash{state} = $opt{state};
];
} else {
- die "FS::part_export::internal_diddb::get_dids called without options\n";
+
+ #die "FS::part_export::internal_diddb::get_dids called without options\n";
+ return [ map { $_->npa. '-'. $_->nxx. '-'. $_->station }
+ qsearch({ 'table' => 'phone_avail',
+ 'hashref' => \%hash,
+ 'order_by' => 'ORDER BY station',
+ })
+ ];
+
}
}