Kundenstatistik: Link bei den Rechnungen, Übersetzungen
[kivitendo-erp.git] / SL / DB.pm
index 40c8a95..79a251a 100644 (file)
--- a/SL/DB.pm
+++ b/SL/DB.pm
@@ -7,6 +7,7 @@ use Data::Dumper;
 use English qw(-no_match_vars);
 use Rose::DB;
 use Rose::DBx::Cache::Anywhere;
+use Scalar::Util qw(blessed);
 
 use base qw(Rose::DB);
 
@@ -131,14 +132,14 @@ sub with_transaction {
   my $rv = 1;
 
   local $@;
-
+  my $return_array = wantarray;
   eval {
-    wantarray
+    $return_array
       ? $self->do_transaction(sub { @result = $code->(@args) })
       : $self->do_transaction(sub { $result = $code->(@args) });
   } or do {
     my $error = $self->error;
-    if (ref $error) {
+    if (blessed $error) {
       if ($error->isa('SL::X::DBError')) {
         # gobble the exception
       } else {
@@ -149,7 +150,7 @@ sub with_transaction {
     }
   };
 
-  return wantarray ? @result : $result;
+  return $return_array ? @result : $result;
 }
 
 1;