RT# 73964 - Added biling event action to send an email to phone nunber, and updated...
[freeside.git] / httemplate / misc / phonenums.cgi
1 <% encode_json({ error => $error, phonenums => \@phonenums}) %>\
2 <%init>
3
4 my( $exchangestring, $svcpart ) = $cgi->param('arg');
5
6 my $part_svc = qsearchs('part_svc', { 'svcpart'=>$svcpart } );
7 die "unknown svcpart $svcpart" unless $part_svc;
8
9 my @phonenums = ();
10 my $error;
11
12 if ( $exchangestring ) {
13
14   my @exports = $part_svc->part_export_did;
15   if ( scalar(@exports) > 1 ) {
16     die "more than one DID-providing export attached to svcpart $svcpart";
17   } elsif ( ! @exports ) {
18     die "no DID providing export attached to svcpart $svcpart";
19   }
20   my $export = $exports[0];
21     
22   my %opts = ();
23   if ( $exchangestring eq 'tollfree' ) {
24       $opts{'tollfree'} = 1;
25   } elsif ( $exchangestring =~ /^_REGION (.*)$/ ) {
26       $opts{'region'} = $1;
27   #} elsif ( $exchangestring =~ /^([\w\s\:\,\(\)\-]+), ([A-Z][A-Z])$/ ) {
28   } elsif ( $exchangestring =~ /^(.+), ([A-Z][A-Z])$/ ) {
29       $opts{'ratecenter'} = $1;
30       $opts{'state'} = $2;
31   } else {
32       $exchangestring =~ /\((\d{3})-(\d{3})-XXXX\)\s*$/i
33         or die "unparseable exchange: $exchangestring";
34       my( $areacode, $exchange ) = ( $1, $2 );
35       $opts{'areacode'} = $areacode;
36       $opts{'exchange'} = $exchange;
37   }
38
39   local $@;
40   local $SIG{__DIE__};
41   my $something = eval { $export->get_dids(%opts) };
42   $error = $@;
43
44   @phonenums = @{ $something } if $something;
45
46 }
47
48 </%init>