RT#17599: display cancelled services from history [bug fixes, v3 merge]
[freeside.git] / FS / FS / h_svc_forward.pm
1 package FS::h_svc_forward;
2
3 use strict;
4 use vars qw( @ISA $DEBUG );
5 use FS::Record qw(qsearchs);
6 use FS::h_Common;
7 use FS::svc_forward;
8 use FS::svc_acct;
9 use FS::h_svc_acct;
10
11 use Carp qw(carp);
12
13 $DEBUG = 0;
14
15 @ISA = qw( FS::h_Common FS::svc_forward );
16
17 sub table { 'h_svc_forward' };
18
19 =head1 NAME
20
21 FS::h_svc_forward - Historical mail forwarding alias objects
22
23 =head1 SYNOPSIS
24
25 =head1 METHODS
26
27 =over 4
28
29 =item srcsvc_acct 
30
31 =cut
32
33 sub srcsvc_acct {
34   my $self = shift;
35
36   $_[0] ||= $self->history_date;
37   my $h_svc_acct = qsearchs(
38     'h_svc_acct',
39     { 'svcnum' => $self->srcsvc },
40     FS::h_svc_acct->sql_h_searchs(@_),
41   ) || $self->SUPER::srcsvc_acct
42     or die "no history svc_acct.svcnum for svc_forward.srcsvc ". $self->srcsvc;
43
44   carp 'Using svc_acct in place of missing h_svc_acct record.'
45     if ($h_svc_acct->isa('FS::domain_record') and $DEBUG);
46
47   return $h_svc_acct;
48
49 }
50
51 =item dstsvc_acct
52
53 =cut
54
55 sub dstsvc_acct {
56   my $self = shift;
57
58   $_[0] ||= $self->history_date;
59   my $h_svc_acct = qsearchs(
60     'h_svc_acct',
61     { 'svcnum' => $self->dstsvc },
62     FS::h_svc_acct->sql_h_searchs(@_),
63   ) || $self->SUPER::dstsvc_acct
64     or die "no history svc_acct.svcnum for svc_forward.dstsvc ". $self->dstsvc;
65
66   carp 'Using svc_acct in place of missing h_svc_acct record.'
67     if ($h_svc_acct->isa('FS::domain_record') and $DEBUG);
68
69   return $h_svc_acct;
70 }
71
72 =back
73
74 =head1 DESCRIPTION
75
76 An FS::h_svc_forward object represents a historical mail forwarding alias.
77 FS::h_svc_forward inherits from FS::h_Common and FS::svc_forward.
78
79 =head1 BUGS
80
81 =head1 SEE ALSO
82
83 L<FS::h_Common>, L<FS::svc_forward>, L<FS::Record>, schema.html from the base
84 documentation.
85
86 =cut
87
88 1;
89