X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_Common.pm;h=ee190fb8d82eab253f1cae20c917944b39f8be0c;hb=0b65ce59c7d2ee712389c27954382274ddf718a5;hp=7e216461fa47b3a65b2e0a701f0794e71073178b;hpb=cf7ca698138c8708c68cb969cc843311e385a7a8;p=freeside.git diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 7e216461f..ee190fb8d 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -69,6 +69,14 @@ sub insert { return $error; } $svcnum = $self->svcnum($cust_svc->svcnum); + } else { + $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; + } + $self->pkgnum($cust_svc->pkgnum); + $self->svcpart($cust_svc->svcpart); } $error = $self->SUPER::insert; @@ -107,7 +115,7 @@ sub delete { $error = $self->SUPER::delete; return $error if $error; - my $cust_svc = qsearchs( 'cust_svc' , { 'svcnum' => $svcnum } ); + my $cust_svc = $self->cust_svc; $error = $cust_svc->delete; return $error if $error; @@ -154,7 +162,7 @@ sub setx { #get part_svc my $svcpart; if ( $self->svcnum ) { - my $cust_svc = qsearchs( 'cust_svc', { 'svcnum' => $self->svcnum } ); + my $cust_svc = $self->cust_svc; return "Unknown svcnum" unless $cust_svc; $svcpart = $cust_svc->svcpart; } else { @@ -176,6 +184,18 @@ sub setx { } +=item cust_svc + +Returns the cust_svc record associated with this svc_ record, as a FS::cust_svc +object (see L). + +=cut + +sub cust_svc { + my $self = shift; + qsearchs('cust_svc', { 'svcnum' => $self->svcnum } ); +} + =item suspend =item unsuspend @@ -195,7 +215,7 @@ sub cancel { ''; } =head1 VERSION -$Id: svc_Common.pm,v 1.6 2001-09-11 22:20:28 ivan Exp $ +$Id: svc_Common.pm,v 1.8 2002-03-18 16:05:35 ivan Exp $ =head1 BUGS