summaryrefslogtreecommitdiff
path: root/FS/FS/h_svc_acct.pm
diff options
context:
space:
mode:
authorkhoff <khoff>2005-04-01 22:52:11 +0000
committerkhoff <khoff>2005-04-01 22:52:11 +0000
commit29c80b06fd677d43ff94d4503bb577107c71882e (patch)
tree9ae1084150e5a15712a51db67400146f17feeb7e /FS/FS/h_svc_acct.pm
parent40861f48bd2987133783f6b086adb1988f9872be (diff)
Trap, and attempt to resolve, problems caused by missing history records.
Diffstat (limited to 'FS/FS/h_svc_acct.pm')
-rw-r--r--FS/FS/h_svc_acct.pm27
1 files changed, 26 insertions, 1 deletions
diff --git a/FS/FS/h_svc_acct.pm b/FS/FS/h_svc_acct.pm
index 95c5c413a..247d20c9a 100644
--- a/FS/FS/h_svc_acct.pm
+++ b/FS/FS/h_svc_acct.pm
@@ -1,14 +1,18 @@
package FS::h_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' };
=head1 NAME
@@ -33,6 +37,27 @@ sub svc_domain {
);
}
+=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