X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fh_svc_acct.pm;h=6e127a29eee451fbe6b90b91ca258f0566a3e86f;hp=95c5c413a76b61d38f47a4490f3eae6bbca57b5c;hb=674cb2d9d7105f4cc2871539b2e9f7088cdaa750;hpb=8f11e2a03067829dc5f8cd6ae7fa0e3f249d61c1 diff --git a/FS/FS/h_svc_acct.pm b/FS/FS/h_svc_acct.pm index 95c5c413a..6e127a29e 100644 --- a/FS/FS/h_svc_acct.pm +++ b/FS/FS/h_svc_acct.pm @@ -1,13 +1,14 @@ package FS::h_svc_acct; +use base qw( FS::h_svc_Radius_Mixin FS::h_Common FS::svc_acct ); use strict; -use vars qw( @ISA ); +use vars qw( @ISA $DEBUG ); +use Carp qw(carp); use FS::Record qw(qsearchs); -use FS::h_Common; -use FS::svc_acct; +use FS::svc_domain; use FS::h_svc_domain; -@ISA = qw( FS::h_Common FS::svc_acct ); +$DEBUG = 0; sub table { 'h_svc_acct' }; @@ -27,12 +28,34 @@ FS::h_svc_acct - Historical account objects sub svc_domain { my $self = shift; + local($FS::Record::qsearch_qualify_columns) = 0; qsearchs( 'h_svc_domain', { 'svcnum' => $self->domsvc }, FS::h_svc_domain->sql_h_searchs(@_), ); } +=item domain + +Returns the domain associated with this account. + +=cut + +sub domain { + my $self = shift; + die "svc_acct.domsvc is null for svcnum ". $self->svcnum unless $self->domsvc; + + my $svc_domain = $self->svc_domain(@_) || $self->SUPER::svc_domain() + or die 'no history svc_domain.svcnum for svc_acct.domsvc ' . $self->domsvc; + + carp 'Using FS::svc_acct record in place of missing FS::h_svc_acct record.' + if ($svc_domain->isa('FS::svc_acct') and $DEBUG); + + $svc_domain->domain; + +} + + =back =head1 DESCRIPTION