summaryrefslogtreecommitdiff
path: root/FS/FS/svc_Common.pm
diff options
context:
space:
mode:
authorivan <ivan>2001-04-15 13:35:12 +0000
committerivan <ivan>2001-04-15 13:35:12 +0000
commitfb13e429f8499f6eadad09c1452489ca0f4f7031 (patch)
tree768437065780d879ee9bf5bf818293ff833b58d1 /FS/FS/svc_Common.pm
parent018f6678557506e68cc6b8643862143cc332f7da (diff)
transactions part deux
Diffstat (limited to 'FS/FS/svc_Common.pm')
-rw-r--r--FS/FS/svc_Common.pm15
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