X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_Common.pm;h=ee190fb8d82eab253f1cae20c917944b39f8be0c;hb=68d29e0ca9fcfe6b68240d946c8bf71d7b31767a;hp=c47cdbf8f3e4f7064488d42fb9ed75c18bba2b11;hpb=57d69d5c1f98f778a0df82795ce21ee7bd21042a;p=freeside.git diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index c47cdbf8f..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,15 +215,12 @@ sub cancel { ''; } =head1 VERSION -$Id: svc_Common.pm,v 1.5 2001-09-06 20:41:59 ivan Exp $ +$Id: svc_Common.pm,v 1.8 2002-03-18 16:05:35 ivan Exp $ =head1 BUGS The setfixed method return value. -The new method should set defaults from part_svc (like the check method -sets fixed values)? - =head1 SEE ALSO L, L, L, L, schema.html