agent-virtualize credit card surcharge percentage, RT#72961
[freeside.git] / FS / FS / option_Common.pm
index b29cf44..8c69089 100644 (file)
@@ -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;
 
   '';
@@ -208,8 +204,8 @@ sub replace {
   my $error;
   
   if ($options_supplied) {
-       $error = $self->check_options($options);
-       if ( $error ) {
+    $error = $self->check_options($options);
+    if ( $error ) {
       $dbh->rollback if $oldAutoCommit;
       return $error;
     }
@@ -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);