summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkhoff <khoff>2005-04-07 03:28:20 +0000
committerkhoff <khoff>2005-04-07 03:28:20 +0000
commit60e238561db85ef177934640caab3c02694afb3f (patch)
treec8bd81a2a5ae9f6ccbd2cd538b411baa2154ad23
parentdfd4f9377b21a5eab563e1739f296e04668ce6ca (diff)
Using current (non-history) records in place of missing history records.
-rw-r--r--FS/FS/h_cust_svc.pm27
-rw-r--r--FS/FS/h_svc_forward.pm38
-rw-r--r--FS/FS/h_svc_www.pm2
3 files changed, 46 insertions, 21 deletions
diff --git a/FS/FS/h_cust_svc.pm b/FS/FS/h_cust_svc.pm
index 0cbac4a..dbb16a2 100644
--- a/FS/FS/h_cust_svc.pm
+++ b/FS/FS/h_cust_svc.pm
@@ -9,7 +9,7 @@ use FS::cust_svc;
@ISA = qw( FS::h_Common FS::cust_svc );
-$DEBUG = 0;
+$DEBUG = 1;
sub table { 'h_cust_svc'; }
@@ -73,16 +73,21 @@ cancelled before START_TIMESTAMP.
sub h_svc_x {
my $self = shift;
my $svcdb = $self->part_svc->svcdb;
- #if ( $svcdb eq 'svc_acct' && $self->{'_svc_acct'} ) {
- # $self->{'_svc_acct'};
- #} else {
- warn "requiring FS/h_$svcdb.pm" if $DEBUG;
- require "FS/h_$svcdb.pm";
- qsearchs( "h_$svcdb",
- { 'svcnum' => $self->svcnum, },
- "FS::h_$svcdb"->sql_h_searchs(@_),
- );
- #}
+
+ warn "requiring FS/h_$svcdb.pm" if $DEBUG;
+ require "FS/h_$svcdb.pm";
+ my $svc_x = qsearchs(
+ "h_$svcdb",
+ { 'svcnum' => $self->svcnum, },
+ "FS::h_$svcdb"->sql_h_searchs(@_),
+ ) || $self->SUPER::svc_x
+ or die "no history ${svcdb}.svcnum for cust_svc.svcnum ". $self->svcnum;
+
+ carp "Using $svcdb in place of missing h_${svcdb} record."
+ if ($svc_x->isa('FS::' . $svcdb) and $DEBUG);
+
+ return $svc_x;
+
}
=back
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
diff --git a/FS/FS/h_svc_www.pm b/FS/FS/h_svc_www.pm
index 7931061..2a3b6dc 100644
--- a/FS/FS/h_svc_www.pm
+++ b/FS/FS/h_svc_www.pm
@@ -40,7 +40,7 @@ sub domain_record {
) || $self->SUPER::domain_record
or die "no history domain_record.recnum for svc_www.recnum ". $self->domsvc;
- carp 'Using FS::svc_acct record in place of missing FS::h_svc_acct record.'
+ carp 'Using domain_record in place of missing h_domain_record record.'
if ($domain_record->isa('FS::domain_record') and $DEBUG);
return $domain_record;