CsvReport: single-dbh
authorSven Schöling <s.schoeling@linet-services.de>
Thu, 11 Aug 2016 11:22:20 +0000 (13:22 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Fri, 2 Sep 2016 12:21:29 +0000 (14:21 +0200)
SL/DB/CsvImportReport.pm

index b3cdf3b..b9c34eb 100644 (file)
@@ -4,6 +4,7 @@
 package SL::DB::CsvImportReport;
 
 use strict;
+use SL::DB;
 use SL::DBUtils;
 
 use SL::DB::MetaSetup::CsvImportReport;
@@ -56,20 +57,19 @@ sub folded_status {
 sub destroy {
   my ($self) = @_;
 
-  my $dbh = $self->db->dbh;
+  SL::DB->client->with_transaction(sub {
+    my $dbh = SL::DB->client->dbh;
 
-  $dbh->begin_work;
+    do_query($::form, $dbh, 'DELETE FROM csv_import_report_status WHERE csv_import_report_id = ?', $self->id);
+    do_query($::form, $dbh, 'DELETE FROM csv_import_report_rows WHERE csv_import_report_id = ?', $self->id);
+    do_query($::form, $dbh, 'DELETE FROM csv_import_reports WHERE id = ?', $self->id);
 
-  do_query($::form, $dbh, 'DELETE FROM csv_import_report_status WHERE csv_import_report_id = ?', $self->id);
-  do_query($::form, $dbh, 'DELETE FROM csv_import_report_rows WHERE csv_import_report_id = ?', $self->id);
-  do_query($::form, $dbh, 'DELETE FROM csv_import_reports WHERE id = ?', $self->id);
-
-  if ($self->profile_id) {
-    do_query($::form, $dbh, 'DELETE FROM csv_import_profile_settings WHERE csv_import_profile_id = ?', $self->profile_id);
-    do_query($::form, $dbh, 'DELETE FROM csv_import_profiles WHERE id = ?', $self->profile_id);
-  }
-
-  $dbh->commit;
+    if ($self->profile_id) {
+      do_query($::form, $dbh, 'DELETE FROM csv_import_profile_settings WHERE csv_import_profile_id = ?', $self->profile_id);
+      do_query($::form, $dbh, 'DELETE FROM csv_import_profiles WHERE id = ?', $self->profile_id);
+    }
+    1;
+  }) or do { die SL::DB->client->error };
 }
 
 1;