un-cancel, RT#17518
[freeside.git] / FS / FS / h_svc_acct.pm
1 package FS::h_svc_acct;
2 use base qw( FS::h_svc_Radius_Mixin FS::h_Common FS::svc_acct );
3
4 use strict;
5 use vars qw( @ISA $DEBUG );
6 use Carp qw(carp);
7 use FS::Record qw(qsearchs);
8 use FS::svc_domain;
9 use FS::h_svc_domain;
10
11 $DEBUG = 0;
12
13 sub table { 'h_svc_acct' };
14
15 =head1 NAME
16
17 FS::h_svc_acct - Historical account objects
18
19 =head1 SYNOPSIS
20
21 =head1 METHODS
22
23 =over 4
24
25 =item svc_domain
26
27 =cut
28
29 sub svc_domain {
30   my $self = shift;
31   qsearchs( 'h_svc_domain',
32             { 'svcnum' => $self->domsvc },
33             FS::h_svc_domain->sql_h_searchs(@_),
34           );
35 }
36
37 =item domain
38
39 Returns the domain associated with this account.
40
41 =cut
42
43 sub domain {
44   my $self = shift;
45   die "svc_acct.domsvc is null for svcnum ". $self->svcnum unless $self->domsvc;
46
47   my $svc_domain = $self->svc_domain(@_) || $self->SUPER::svc_domain()
48     or die 'no history svc_domain.svcnum for svc_acct.domsvc ' . $self->domsvc;
49
50   carp 'Using FS::svc_acct record in place of missing FS::h_svc_acct record.'
51     if ($svc_domain->isa('FS::svc_acct') and $DEBUG);
52
53   $svc_domain->domain;
54
55 }
56
57
58 =back
59
60 =head1 DESCRIPTION
61
62 An FS::h_svc_acct object represents a historical account.  FS::h_svc_acct
63 inherits from FS::h_Common and FS::svc_acct.
64
65 =head1 BUGS
66
67 =head1 SEE ALSO
68
69 L<FS::h_Common>, L<FS::svc_acct>, L<FS::Record>, schema.html from the base
70 documentation.
71
72 =cut
73
74 1;
75