ensure realtime_bop can properly use transactions for its state
authorIvan Kohler <ivan@freeside.biz>
Wed, 14 Jan 2015 11:10:06 +0000 (03:10 -0800)
committerIvan Kohler <ivan@freeside.biz>
Wed, 14 Jan 2015 11:10:06 +0000 (03:10 -0800)
FS/FS/cust_main/Billing_Realtime.pm

index 6c75fe9..330a454 100644 (file)
@@ -3,6 +3,7 @@ package FS::cust_main::Billing_Realtime;
 use strict;
 use vars qw( $conf $DEBUG $me );
 use vars qw( $realtime_bop_decline_quiet ); #ugh
+use Carp;
 use Data::Dumper;
 use Business::CreditCard 0.28;
 use FS::UID qw( dbh );
@@ -319,6 +320,10 @@ my %bop_method2payby = (
 sub realtime_bop {
   my $self = shift;
 
+  confess "Can't call realtime_bop within another transaction ".
+          '($FS::UID::AutoCommit is false)'
+    unless $FS::UID::AutoCommit;
+
   local($DEBUG) = $FS::cust_main::DEBUG if $FS::cust_main::DEBUG > $DEBUG;
  
   my %options = ();