diff options
author | ivan <ivan> | 2001-04-15 13:35:12 +0000 |
---|---|---|
committer | ivan <ivan> | 2001-04-15 13:35:12 +0000 |
commit | fb13e429f8499f6eadad09c1452489ca0f4f7031 (patch) | |
tree | 768437065780d879ee9bf5bf818293ff833b58d1 /FS/FS/svc_Common.pm | |
parent | 018f6678557506e68cc6b8643862143cc332f7da (diff) |
transactions part deux
Diffstat (limited to 'FS/FS/svc_Common.pm')
-rw-r--r-- | FS/FS/svc_Common.pm | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 8bcdf4f56..ac7cab72f 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -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.3 2001-04-15 13:35:12 ivan Exp $ =head1 BUGS |