X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Foption_Common.pm;h=8c690890f69cbfe8ce19bb418900824c6d3ea32e;hp=40b12cf57c8164fa53b32752bd3e27a13c0c1c36;hb=389b6f1116c3309c2ee57a6c295ed1a793503095;hpb=16be5a799284b89137ec1802129de29f2b262c46 diff --git a/FS/FS/option_Common.pm b/FS/FS/option_Common.pm index 40b12cf57..8c690890f 100644 --- a/FS/FS/option_Common.pm +++ b/FS/FS/option_Common.pm @@ -3,6 +3,7 @@ package FS::option_Common; use strict; use base qw( FS::Record ); use vars qw( $DEBUG ); +use Carp qw( cluck ); use Scalar::Util qw( blessed ); use FS::Record qw( qsearch qsearchs dbh ); @@ -67,13 +68,8 @@ sub insert { my $error; - $error = $self->check_options($options); - if ( $error ) { - $dbh->rollback if $oldAutoCommit; - return $error; - } - - $error = $self->SUPER::insert; + $error = $self->check_options($options) + || $self->SUPER::insert; if ( $error ) { $dbh->rollback if $oldAutoCommit; return $error; @@ -139,13 +135,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; @@ -157,6 +147,12 @@ sub delete { } } + my $error = $self->SUPER::delete; + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return $error; + } + $dbh->commit or die $dbh->errstr if $oldAutoCommit; ''; @@ -349,7 +345,7 @@ sub option { $pkey => $self->get($pkey), $namecol => shift, }; - warn "$self -> option: searching for ". + cluck "$self -> option: searching for ". join(' / ', map { "$_ => ". $hashref->{$_} } keys %$hashref ) if $DEBUG; my $obj = qsearchs($option_table, $hashref);