summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2012-12-20 18:25:09 -0800
committerIvan Kohler <ivan@freeside.biz>2012-12-20 18:25:09 -0800
commit63075e170262a1aebd7acd3a1d2a1ef06a84fce9 (patch)
tree9774d591c233d18ddb78a56b5c7842fd478a9aeb
parent96bb37b68d74110d2875e011baa955d7c55dc892 (diff)
fix state selection w/voip innovations API, add better error logging, RT#15150
-rw-r--r--FS/FS/part_export/globalpops_voip.pm10
-rw-r--r--httemplate/elements/select-state.html21
2 files changed, 21 insertions, 10 deletions
diff --git a/FS/FS/part_export/globalpops_voip.pm b/FS/FS/part_export/globalpops_voip.pm
index 6df21f406..fd2e93c0f 100644
--- a/FS/FS/part_export/globalpops_voip.pm
+++ b/FS/FS/part_export/globalpops_voip.pm
@@ -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);
@@ -73,8 +74,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;
}
diff --git a/httemplate/elements/select-state.html b/httemplate/elements/select-state.html
index 490dafa80..115a98d98 100644
--- a/httemplate/elements/select-state.html
+++ b/httemplate/elements/select-state.html
@@ -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;
+ }
+
}
}