ACL for hardware class config, RT#85057
[freeside.git] / FS / FS / rate_region.pm
index d42fdb4..0a501a7 100644 (file)
@@ -1,13 +1,11 @@
 package FS::rate_region;
+use base qw(FS::Record);
 
 use strict;
-use vars qw( @ISA );
 use FS::Record qw( qsearch qsearchs dbh );
 use FS::rate_prefix;
 use FS::rate_detail;
 
-@ISA = qw(FS::Record);
-
 =head1 NAME
 
 FS::rate_region - Object methods for rate_region records
@@ -306,6 +304,36 @@ sub prefixes_short {
   $out;
 }
 
+sub prefixes_short_sql {
+  my $self = shift;
+
+  my $countrycode = '';
+  my $out = '';
+
+  foreach my $prefix (sort split(',', $self->prefixes)) {
+    my($cc, $npa) = split(' ', $prefix);
+
+    if ( $countrycode ne $cc ) {
+      $out =~ s/, $//;
+      $countrycode = $cc;
+      $out.= " +$countrycode ";
+    }
+    if ( $countrycode eq '1' ) {
+      #$out .= '('. substr( $npa, 0, 3 ). ')';
+      $out .= substr( $npa, 0, 3 );
+      $out .= ' '. substr( $npa, 3 ) if length($npa) > 3;
+    } else {
+      $out .= $npa;
+    }
+#XXX have to implement this here too if we ever actually used the nxx field
+#    $out .= '-'. $rate_prefix->nxx if $rate_prefix->nxx;
+    $out .= ', ';
+  }
+  $out =~ s/, $//;
+
+  $out;
+}
+
 =back
 
 =head1 BUGS