summaryrefslogtreecommitdiff
path: root/FS/FS/h_svc_forward.pm
blob: bc24fe911450e40d01e800b97bbe40aa66ad7623 (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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package FS::h_svc_forward;

use strict;
use vars qw( @ISA $DEBUG );
use FS::Record qw(qsearchs);
use FS::h_Common;
use FS::svc_forward;
use FS::svc_acct;
use FS::h_svc_acct;

use Carp qw(carp);

$DEBUG = 0;

@ISA = qw( FS::h_Common FS::svc_forward );

sub table { 'h_svc_forward' };

=head1 NAME

FS::h_svc_forward - Historical mail forwarding alias objects

=head1 SYNOPSIS

=head1 METHODS

=over 4

=item srcsvc_acct 

=cut

sub srcsvc_acct {
  my $self = shift;

  local($FS::Record::qsearch_qualify_columns) = 0;

  $_[0] ||= $self->history_date;
  my $h_svc_acct = qsearchs(
    'h_svc_acct',
    { 'svcnum' => $self->srcsvc },
    FS::h_svc_acct->sql_h_searchs(@_),
  ) || $self->SUPER::srcsvc_acct
    or die "no history svc_acct.svcnum for svc_forward.srcsvc ". $self->srcsvc;

  carp 'Using svc_acct in place of missing h_svc_acct record.'
    if ($h_svc_acct->isa('FS::domain_record') and $DEBUG);

  return $h_svc_acct;

}

=item dstsvc_acct

=cut

sub dstsvc_acct {
  my $self = shift;

  local($FS::Record::qsearch_qualify_columns) = 0;

  $_[0] ||= $self->history_date;
  my $h_svc_acct = qsearchs(
    'h_svc_acct',
    { 'svcnum' => $self->dstsvc },
    FS::h_svc_acct->sql_h_searchs(@_),
  ) || $self->SUPER::dstsvc_acct
    or die "no history svc_acct.svcnum for svc_forward.dstsvc ". $self->dstsvc;

  carp 'Using svc_acct in place of missing h_svc_acct record.'
    if ($h_svc_acct->isa('FS::domain_record') and $DEBUG);

  return $h_svc_acct;
}

=back

=head1 DESCRIPTION

An FS::h_svc_forward object represents a historical mail forwarding alias.
FS::h_svc_forward inherits from FS::h_Common and FS::svc_forward.

=head1 BUGS

=head1 SEE ALSO

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

=cut

1;