fix state selection w/voip innovations API, add better error logging, RT#15150
authorIvan Kohler <ivan@freeside.biz>
Fri, 21 Dec 2012 02:25:07 +0000 (18:25 -0800)
committerIvan Kohler <ivan@freeside.biz>
Fri, 21 Dec 2012 02:25:07 +0000 (18:25 -0800)
FS/FS/part_export/globalpops_voip.pm
httemplate/elements/select-state.html

index 9fe45ba..59e0bc4 100644 (file)
@@ -5,6 +5,7 @@ use Tie::IxHash;
 use FS::Record qw(qsearch dbh);
 use FS::part_export;
 use FS::phone_avail;
+use Data::Dumper;
 
 @ISA = qw(FS::part_export);
 
@@ -74,8 +75,13 @@ sub get_dids {
   if ( $search->{'statuscode'} == 302200 ) {
     return [];
   } elsif ( $search->{'statuscode'} != 100 ) {
-    my $error = "Error running VoIP Innovations getDIDs: ".
-                 $search->{'statuscode'}. ': '. $search->{'status'}. "\n";
+
+    my $error = "Error running VoIP Innovations getDIDs: ";
+    if ( $search->{'statuscode'} || $search->{'status'} ) {
+      $error .= $search->{'statuscode'}. ': '. $search->{'status'}. "\n";
+    } else {
+      $error .= Dumper($search);
+    }
     warn $error;
     die $error;
   }
index 490dafa..115a98d 100644 (file)
@@ -66,14 +66,19 @@ tie my %states, 'Tie::IxHash', states_hash( $opt{'country'} );
 
 if ( $opt{'svcpart'} ) {
 
-  my $sth = dbh->prepare(
-    'SELECT DISTINCT state FROM phone_avail WHERE svcnum IS NULL'
-  ) or die dbh->errstr;
-  $sth->execute or die $sth->errstr;
-  my %avail_states = map { $_->[0] => 1 } @{ $sth->fetchall_arrayref };
-
-  if ( %avail_states ) {
-    delete $states{$_} foreach grep ! $avail_states{$_}, keys %states;
+  my $part_svc = qsearchs('part_svc', { 'svcpart' => $opt{'svcpart'} } );
+  if ( $part_svc && $part_svc->exporttype eq 'internal_diddb' ) {
+
+    my $sth = dbh->prepare(
+      'SELECT DISTINCT state FROM phone_avail WHERE svcnum IS NULL'
+    ) or die dbh->errstr;
+    $sth->execute or die $sth->errstr;
+    my %avail_states = map { $_->[0] => 1 } @{ $sth->fetchall_arrayref };
+
+    if ( %avail_states ) {
+      delete $states{$_} foreach grep ! $avail_states{$_}, keys %states;
+    }
+
   }
 }