From: Mark Wells Date: Tue, 25 Feb 2014 03:11:34 +0000 (-0800) Subject: fix deletion of objects with options, fallout from #13971 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=cf69a36faa57cdb544948c905059cf1e1ac73e07 fix deletion of objects with options, fallout from #13971 --- diff --git a/FS/FS/option_Common.pm b/FS/FS/option_Common.pm index c1dda22af..74adbede8 100644 --- a/FS/FS/option_Common.pm +++ b/FS/FS/option_Common.pm @@ -134,13 +134,7 @@ sub delete { my $oldAutoCommit = $FS::UID::AutoCommit; local $FS::UID::AutoCommit = 0; my $dbh = dbh; - - my $error = $self->SUPER::delete; - if ( $error ) { - $dbh->rollback if $oldAutoCommit; - return $error; - } - + my $pkey = $self->primary_key; #my $option_table = $self->option_table; @@ -152,6 +146,12 @@ sub delete { } } + my $error = $self->SUPER::delete; + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return $error; + } + $dbh->commit or die $dbh->errstr if $oldAutoCommit; ''; diff --git a/FS/FS/part_export.pm b/FS/FS/part_export.pm index 8e10ea712..9d261f02d 100644 --- a/FS/FS/part_export.pm +++ b/FS/FS/part_export.pm @@ -161,6 +161,10 @@ sub delete { 'link_table' => 'export_nas', 'target_table' => 'nas', 'params' => [], + ) || $self->process_m2m( + 'link_table' => 'export_svc', + 'target_table' => 'part_svc', + 'params' => [], ) || $self->SUPER::delete; if ( $error ) { $dbh->rollback if $oldAutoCommit; diff --git a/bin/test_scrub_sql b/bin/test_scrub_sql index fb26fe940..fe66805d3 100755 --- a/bin/test_scrub_sql +++ b/bin/test_scrub_sql @@ -15,11 +15,11 @@ foreach my $table (qw( part_export_option - payment_gateway payment_gateway_option + payment_gateway agent_payment_gateway - queue queue_arg + queue cust_pay_batch )) { print "DELETE FROM $table;\n";