agent-virtualize credit card surcharge percentage, RT#72961
[freeside.git] / FS / FS / rate_prefix.pm
index 500462a..37c61cb 100644 (file)
@@ -1,11 +1,9 @@
 package FS::rate_prefix;
+use base qw(FS::Record);
 
 use strict;
-use vars qw( @ISA );
-use FS::Record qw( qsearch qsearchs );
-use FS::rate_region;
-
-@ISA = qw(FS::Record);
+use FS::Record qw( dbh ); #qw( qsearch qsearchs dbh );
+use FS::lata;
 
 =head1 NAME
 
@@ -108,6 +106,9 @@ sub check {
     || $self->ut_number('countrycode')
     || $self->ut_numbern('npa')
     || $self->ut_numbern('nxx')
+    || $self->ut_foreign_keyn('latanum', 'lata', 'latanum')
+    || $self->ut_textn('state')
+    || $self->ut_textn('ocn')
   ;
   return $error if $error;
 
@@ -118,11 +119,25 @@ sub check {
 
 Returns the rate region (see L<FS::rate_region>) for this prefix.
 
+=back
+
+=head1 CLASS METHODS
+
+=over 4
+
+=item all_countrycodes
+
+Returns a list of all countrycodes listed in rate_prefix
+
 =cut
 
-sub rate_region {
-  my $self = shift;
-  qsearch('rate_region', { 'regionnum' => $self->regionnum } );
+sub all_countrycodes { 
+  #my $class = shift;
+  my $sql =
+    "SELECT DISTINCT(countrycode) FROM rate_prefix ORDER BY countrycode";
+  my $sth = dbh->prepare($sql) or die  dbh->errstr;
+  $sth->execute                or die $sth->errstr;
+  map $_->[0], @{ $sth->fetchall_arrayref };
 }
 
 =back