X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_Common.pm;h=cadb997da26922c8b5bc36bb601179ebe99045b0;hb=68ab51f16999645557a071bc4e54e7a359bcb0e7;hp=2fed5dd8a57408b68de6a064db33ac89eabfdbb8;hpb=9ae101389f2fe652575c6ab314a5e95c2283b72e;p=freeside.git diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 2fed5dd8a..cadb997da 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -49,8 +49,10 @@ sub virtual_fields { if ($self->svcpart) { # Case 1 $svcpart = $self->svcpart; - } elsif (my $cust_svc = $self->cust_svc) { # Case 2 - $svcpart = $cust_svc->svcpart; + } elsif ( $self->svcnum + && qsearchs('cust_svc',{'svcnum'=>$self->svcnum} ) + ) { #Case 2 + $svcpart = $self->cust_svc->svcpart; } else { # Case 3 $svcpart = ''; } @@ -118,10 +120,12 @@ sub insert { return $error if $error; my $svcnum = $self->svcnum; - my $cust_svc; - unless ( $svcnum ) { + my $cust_svc = $svcnum ? qsearchs('cust_svc',{'svcnum'=>$self->svcnum}) : ''; + #unless ( $svcnum ) { + if ( !$svcnum or !$cust_svc ) { $cust_svc = new FS::cust_svc ( { #hua?# 'svcnum' => $svcnum, + 'svcnum' => $self->svcnum, 'pkgnum' => $self->pkgnum, 'svcpart' => $self->svcpart, } ); @@ -132,7 +136,7 @@ sub insert { } $svcnum = $self->svcnum($cust_svc->svcnum); } else { - $cust_svc = qsearchs('cust_svc',{'svcnum'=>$self->svcnum}); + #$cust_svc = qsearchs('cust_svc',{'svcnum'=>$self->svcnum}); unless ( $cust_svc ) { $dbh->rollback if $oldAutoCommit; return "no cust_svc record found for svcnum ". $self->svcnum; @@ -308,7 +312,7 @@ sub setx { #get part_svc my $svcpart; - if ( $self->svcnum ) { + if ( $self->svcnum && qsearchs('cust_svc', {'svcnum'=>$self->svcnum}) ) { my $cust_svc = $self->cust_svc; return "Unknown svcnum" unless $cust_svc; $svcpart = $cust_svc->svcpart; @@ -428,10 +432,6 @@ sub cancel { ''; } =back -=head1 VERSION - -$Id: svc_Common.pm,v 1.14 2003-10-25 02:05:44 ivan Exp $ - =head1 BUGS The setfixed method return value.