FS RT #30363 - Hide Account usage template output in an HTML comment when $hide_usage...
[freeside.git] / FS / FS / rate_detail.pm
index 7b90452..d81d9db 100644 (file)
@@ -1,14 +1,13 @@
 package FS::rate_detail;
+use base qw(FS::Record);
 
 use strict;
-use vars qw( @ISA $DEBUG $me );
+use vars qw( $DEBUG $me );
+use Tie::IxHash;
 use FS::Record qw( qsearch qsearchs dbh );
 use FS::rate;
 use FS::rate_region;
 use FS::rate_time;
-use Tie::IxHash;
-
-@ISA = qw(FS::Record);
 
 $DEBUG = 0;
 $me = '[FS::rate_detail]';
@@ -57,6 +56,10 @@ inherits from FS::Record.  The following fields are currently supported:
 
 =item ratetimenum - rating time period (see L<FS::rate_time) if any
 
+=item cdrtypenum - CDR type (see L<FS::cdr_type>) if any for this rate
+
+=item region_group - Group in region group for rate plan
+
 =back
 
 =head1 METHODS
@@ -126,11 +129,15 @@ sub check {
 
     #|| $self->ut_money('min_charge')
     #good enough for now...
+    || $self->ut_floatn('conn_charge')
+    || $self->ut_floatn('conn_cost')
     || $self->ut_float('min_charge')
+    || $self->ut_floatn('min_cost')
 
     || $self->ut_number('sec_granularity')
 
     || $self->ut_foreign_keyn('classnum', 'usage_class', 'classnum' )
+    || $self->ut_enum('region_group',    [ '', 'Y' ])
   ;
   return $error if $error;
 
@@ -142,13 +149,6 @@ sub check {
 Returns the parent call plan (see L<FS::rate>) associated with this call plan
 rate.
 
-=cut
-
-sub rate {
-  my $self = shift;
-  qsearchs('rate', { 'ratenum' => $self->ratenum } );
-}
-
 =item orig_region 
 
 Returns the origination region (see L<FS::rate_region>) associated with this
@@ -234,6 +234,20 @@ sub classname {
   $usage_class ? $usage_class->classname : '';
 }
 
+=item cdrtypename
+
+Returns the name of the CDR type (see L<FS::cdr_type) associated with this 
+rate, if there is one.  If not, returns the cdrtypenum itself.  This will 
+only return an empty string if cdrtypenum is NULL.
+
+=cut
+
+sub cdrtypename {
+  my $self = shift;
+  my $cdrtypenum = $self->cdrtypenum or return '';
+  my $cdr_type = qsearchs('cdr_type', { cdrtypenum => $cdrtypenum });
+  return $cdr_type ? $cdr_type->cdrtypename : $cdrtypenum;
+}
 
 =back