move the last of the real-time exports out of svc_acct.pm and into part_export
[freeside.git] / FS / FS / svc_Common.pm
index 7e21646..ee190fb 100644 (file)
@@ -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<FS::cust_svc>).
+
+=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