From 29c80b06fd677d43ff94d4503bb577107c71882e Mon Sep 17 00:00:00 2001 From: khoff Date: Fri, 1 Apr 2005 22:52:11 +0000 Subject: Trap, and attempt to resolve, problems caused by missing history records. --- FS/FS/h_cust_svc.pm | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'FS/FS/h_cust_svc.pm') diff --git a/FS/FS/h_cust_svc.pm b/FS/FS/h_cust_svc.pm index 17be97d..0cbac4a 100644 --- a/FS/FS/h_cust_svc.pm +++ b/FS/FS/h_cust_svc.pm @@ -40,9 +40,25 @@ Returns a list consisting of: sub label { my $self = shift; carp "FS::h_cust_svc::label called on $self" if $DEBUG; - my $svc_x = $self->h_svc_x(@_) - or die "can't find h_". $self->part_svc->svcdb. '.svcnum '. $self->svcnum; - $self->_svc_label($svc_x, @_); + my $svc_x = $self->h_svc_x(@_); + my $part_svc = $self->part_svc; + + unless ($svc_x) { + carp "can't find h_". $self->part_svc->svcdb. '.svcnum '. $self->svcnum if $DEBUG; + return $part_svc->svc, 'n/a', $part_svc->svcdb; + } + + my @label; + eval { @label = $self->_svc_label($svc_x, @_); }; + + if ($@) { + carp 'while resolving history record for svcdb/svcnum ' . + $part_svc->svcdb . '/' . $self->svcnum . ': ' . $@ if $DEBUG; + return $part_svc->svc, 'n/a', $part_svc->svcdb; + } else { + return @label; + } + } =item h_svc_x END_TIMESTAMP [ START_TIMESTAMP ] -- cgit v1.1