X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fsvc_Common.pm;h=a154f3f857f42ea649cd3b691d36ed7ad300e85e;hb=23c97b258b9b60d558af333166940f11c229f71c;hp=2fed5dd8a57408b68de6a064db33ac89eabfdbb8;hpb=9ae101389f2fe652575c6ab314a5e95c2283b72e;p=freeside.git diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 2fed5dd8a..a154f3f85 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; @@ -426,11 +430,31 @@ methods. Called by the cancel method of FS::cust_pkg (see L). sub cancel { ''; } -=back +=item clone_suspended + +Constructor used by FS::part_export::_export_suspend fallback. Stub returning +same object for svc_ classes which don't implement a suspension fallback +(everything except svc_acct at the moment). Document better. + +=cut + +sub clone_suspended { + shift; +} -=head1 VERSION +=item clone_kludge_unsuspend -$Id: svc_Common.pm,v 1.14 2003-10-25 02:05:44 ivan Exp $ +Constructor used by FS::part_export::_export_unsuspend fallback. Stub returning +same object for svc_ classes which don't implement a suspension fallback +(everything except svc_acct at the moment). Document better. + +=cut + +sub clone_kludge_unsuspend { + shift; +} + +=back =head1 BUGS