From 60e238561db85ef177934640caab3c02694afb3f Mon Sep 17 00:00:00 2001 From: khoff Date: Thu, 7 Apr 2005 03:28:20 +0000 Subject: [PATCH] Using current (non-history) records in place of missing history records. --- FS/FS/h_cust_svc.pm | 27 ++++++++++++++++----------- FS/FS/h_svc_forward.pm | 38 +++++++++++++++++++++++++++++--------- FS/FS/h_svc_www.pm | 2 +- 3 files changed, 46 insertions(+), 21 deletions(-) diff --git a/FS/FS/h_cust_svc.pm b/FS/FS/h_cust_svc.pm index 0cbac4a18..dbb16a292 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 3f9fee29e..92b2e5d7b 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 7931061f9..2a3b6dca6 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; -- 2.11.0