@ISA = qw( FS::h_Common FS::cust_svc );
-$DEBUG = 0;
+$DEBUG = 1;
sub table { 'h_cust_svc'; }
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
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' };
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
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
) || $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;