X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_Common.pm;h=cadb997da26922c8b5bc36bb601179ebe99045b0;hb=ab9f512842cf99736a92d8f3c1031e45bacc26fb;hp=7bc155d9dcf0238c43d5b0785dcb45325a61af34;hpb=47c39af359fc93c777714a5c50a6183747b66da9;p=freeside.git diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 7bc155d9d..cadb997da 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -49,7 +49,9 @@ sub virtual_fields { if ($self->svcpart) { # Case 1 $svcpart = $self->svcpart; - } elsif ( $self->svcnum ) { #Case 2 + } 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;