common.pl: single-dbh
authorSven Schöling <s.schoeling@linet-services.de>
Tue, 2 Aug 2016 10:59:32 +0000 (12:59 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Fri, 2 Sep 2016 12:21:29 +0000 (14:21 +0200)
bin/mozilla/common.pl

index cba9e22..d01d19f 100644 (file)
@@ -11,6 +11,7 @@
 
 use SL::Common;
 use SL::DB::Helper::Mappings;
+use SL::DB;
 use SL::DBUtils qw(do_query);
 use SL::Form;
 use SL::MoreCommon qw(restore_form save_form);
@@ -493,10 +494,12 @@ sub mark_as_paid_common {
   my $locale   = $main::locale;
 
   if($form->{mark_as_paid}) {
-    my $dbh ||= $form->get_standard_dbh($myconfig);
-    my $query = qq|UPDATE $db_name SET paid = amount, datepaid = current_date WHERE id = ?|;
-    do_query($form, $dbh, $query, $form->{id});
-    $dbh->commit();
+    SL::DB->client->with_transaction(sub {
+      my $dbh ||= SL::DB->client->dbh;
+      my $query = qq|UPDATE $db_name SET paid = amount, datepaid = current_date WHERE id = ?|;
+      do_query($form, $dbh, $query, $form->{id});
+      1;
+    }) or do { $::form->error(SL::DB->client->error) };
     $form->redirect($locale->text("Marked as paid"));
 
   } else {