diff options
author | khoff <khoff> | 2005-04-07 03:28:20 +0000 |
---|---|---|
committer | khoff <khoff> | 2005-04-07 03:28:20 +0000 |
commit | 60e238561db85ef177934640caab3c02694afb3f (patch) | |
tree | c8bd81a2a5ae9f6ccbd2cd538b411baa2154ad23 /FS/FS/h_svc_forward.pm | |
parent | dfd4f9377b21a5eab563e1739f296e04668ce6ca (diff) |
Using current (non-history) records in place of missing history records.
Diffstat (limited to 'FS/FS/h_svc_forward.pm')
-rw-r--r-- | FS/FS/h_svc_forward.pm | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/FS/FS/h_svc_forward.pm b/FS/FS/h_svc_forward.pm index 3f9fee2..92b2e5d 100644 --- a/FS/FS/h_svc_forward.pm +++ b/FS/FS/h_svc_forward.pm @@ -1,12 +1,17 @@ package FS::h_svc_forward; use strict; -use vars qw( @ISA ); +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 = 1; + @ISA = qw( FS::h_Common FS::svc_forward ); sub table { 'h_svc_forward' }; @@ -27,10 +32,18 @@ FS::h_svc_forward - Historical mail forwarding alias objects sub srcsvc_acct { my $self = shift; - qsearchs( 'h_svc_acct', - { 'svcnum' => $self->srcsvc }, - FS::h_svc_acct->sql_h_searchs(@_), - ); + 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 @@ -39,10 +52,17 @@ sub srcsvc_acct { sub dstsvc_acct { my $self = shift; - qsearchs( 'h_svc_acct', - { 'svcnum' => $self->dstsvc }, - FS::h_svc_acct->sql_h_searchs(@_), - ); + 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 |