summaryrefslogtreecommitdiff
path: root/FS/FS/h_svc_acct.pm
blob: 6bc55ebc80e94364a05cc7314a7f1cce596fce5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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 $DEBUG );
use Carp qw(carp);
use FS::Record qw(qsearchs);
use FS::svc_domain;
use FS::h_svc_domain;

$DEBUG = 0;

sub table { 'h_svc_acct' };

=head1 NAME

FS::h_svc_acct - Historical account objects

=head1 SYNOPSIS

=head1 METHODS

=over 4

=item svc_domain

=cut

sub svc_domain {
  my $self = shift;
  local($FS::Record::qsearch_qualify_columns) = 0;
  $_[0] ||= $self->history_date;
  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

An FS::h_svc_acct object represents a historical account.  FS::h_svc_acct
inherits from FS::h_Common and FS::svc_acct.

=head1 BUGS

=head1 SEE ALSO

L<FS::h_Common>, L<FS::svc_acct>, L<FS::Record>, schema.html from the base
documentation.

=cut

1;