From 2bc9bac2a63cb778fd7be89066bfe9f591829f96 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Fri, 1 Jun 2012 01:29:27 -0700 Subject: [PATCH] don't leave dangling cust_svc records when running inside a big transaction (i.e. data import) --- FS/FS/svc_Common.pm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 19f5819cb..a6daf44c8 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -244,6 +244,7 @@ sub insert { my $svcnum = $self->svcnum; my $cust_svc = $svcnum ? qsearchs('cust_svc',{'svcnum'=>$self->svcnum}) : ''; + my $inserted_cust_svc = 0; #unless ( $svcnum ) { if ( !$svcnum or !$cust_svc ) { $cust_svc = new FS::cust_svc ( { @@ -257,6 +258,7 @@ sub insert { $dbh->rollback if $oldAutoCommit; return $error; } + $inserted_cust_svc = 1; $svcnum = $self->svcnum($cust_svc->svcnum); } else { #$cust_svc = qsearchs('cust_svc',{'svcnum'=>$self->svcnum}); @@ -275,6 +277,10 @@ sub insert { || $self->preinsert_hook || $self->SUPER::insert; if ( $error ) { + if ( $inserted_cust_svc ) { + my $derror = $cust_svc->delete; + die $derror if $derror; + } $dbh->rollback if $oldAutoCommit; return $error; } -- 2.11.0