Using current (non-history) records in place of missing history records.
authorkhoff <khoff>
Thu, 7 Apr 2005 03:28:20 +0000 (03:28 +0000)
committerkhoff <khoff>
Thu, 7 Apr 2005 03:28:20 +0000 (03:28 +0000)
FS/FS/h_cust_svc.pm
FS/FS/h_svc_forward.pm
FS/FS/h_svc_www.pm

index 0cbac4a..dbb16a2 100644 (file)
@@ -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
index 3f9fee2..92b2e5d 100644 (file)
@@ -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
index 7931061..2a3b6dc 100644 (file)
@@ -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;