X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_Common.pm;h=bc5b756404209656e1563be2ffb7e7d0375465f8;hb=4dec1e525fc85363dec2fe0a55f0eb306bec7154;hp=8bcdf4f56b779f7a91930f38ca18c9e705251901;hpb=15f65a0c56cbce6951d9cb4f71119725a2009f79;p=freeside.git diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 8bcdf4f56..bc5b75640 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -2,7 +2,7 @@ package FS::svc_Common; use strict; use vars qw( @ISA ); -use FS::Record qw( qsearchs fields ); +use FS::Record qw( qsearchs fields dbh ); use FS::cust_svc; use FS::part_svc; @@ -48,6 +48,10 @@ sub insert { local $SIG{TSTP} = 'IGNORE'; local $SIG{PIPE} = 'IGNORE'; + my $oldAutoCommit = $FS::UID::AutoCommit; + local $FS::UID::AutoCommit = 0; + my $dbh = dbh; + $error = $self->check; return $error if $error; @@ -60,16 +64,21 @@ sub insert { 'svcpart' => $self->svcpart, } ); $error = $cust_svc->insert; - return $error if $error; + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return $error; + } $svcnum = $self->svcnum($cust_svc->svcnum); } $error = $self->SUPER::insert; if ( $error ) { - $cust_svc->delete if $cust_svc; + $dbh->rollback if $oldAutoCommit; return $error; } + $dbh->commit or die $dbh->errstr if $oldAutoCommit; + ''; } @@ -184,7 +193,7 @@ sub cancel { ''; } =head1 VERSION -$Id: svc_Common.pm,v 1.2 2001-04-09 23:05:15 ivan Exp $ +$Id: svc_Common.pm,v 1.4 2001-04-22 00:49:30 ivan Exp $ =head1 BUGS