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]';
=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
|| $self->ut_number('sec_granularity')
|| $self->ut_foreign_keyn('classnum', 'usage_class', 'classnum' )
+ || $self->ut_enum('region_group', [ '', 'Y' ])
;
return $error if $error;
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
$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