X-Git-Url: http://wagnertech.de/git?p=kivitendo-erp.git;a=blobdiff_plain;f=SL%2FTODO.pm;fp=SL%2FTODO.pm;h=ff29abb0aebd1930a2bdc25fc805dfbcf8dbc1d1;hp=de99ad1dc2f0df61e0ea524dc224ec17f9aa5430;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44 diff --git a/SL/TODO.pm b/SL/TODO.pm index de99ad1dc..ff29abb0a 100644 --- a/SL/TODO.pm +++ b/SL/TODO.pm @@ -3,6 +3,7 @@ package TODO; use SL::DBUtils; +use SL::DB; use strict; @@ -59,42 +60,43 @@ sub save_user_config { my $myconfig = \%main::myconfig; my $form = $main::form; - my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig); - - my $query = qq|SELECT id FROM employee WHERE login = ?|; + SL::DB->client->with_transaction(sub { + my $dbh = $params{dbh} || SL::DB->client->dbh; - my ($id) = selectfirst_array_query($form, $dbh, $query, $params{login}); + my $query = qq|SELECT id FROM employee WHERE login = ?|; - if (!$id) { - $main::lxdebug->leave_sub(); - return; - } + my ($id) = selectfirst_array_query($form, $dbh, $query, $params{login}); - $query = - qq|SELECT show_after_login - FROM todo_user_config - WHERE employee_id = ?|; + if (!$id) { + $main::lxdebug->leave_sub(); + return; + } - if (! selectfirst_hashref_query($form, $dbh, $query, $id)) { - do_query($form, $dbh, qq|INSERT INTO todo_user_config (employee_id) VALUES (?)|, $id); - } + $query = + qq|SELECT show_after_login + FROM todo_user_config + WHERE employee_id = ?|; - $query = - qq|UPDATE todo_user_config SET - show_after_login = ?, - show_follow_ups = ?, - show_follow_ups_login = ?, - show_overdue_sales_quotations = ?, - show_overdue_sales_quotations_login = ? + if (! selectfirst_hashref_query($form, $dbh, $query, $id)) { + do_query($form, $dbh, qq|INSERT INTO todo_user_config (employee_id) VALUES (?)|, $id); + } - WHERE employee_id = ?|; + $query = + qq|UPDATE todo_user_config SET + show_after_login = ?, + show_follow_ups = ?, + show_follow_ups_login = ?, + show_overdue_sales_quotations = ?, + show_overdue_sales_quotations_login = ? - my @values = map { $params{$_} ? 't' : 'f' } qw(show_after_login show_follow_ups show_follow_ups_login show_overdue_sales_quotations show_overdue_sales_quotations_login); - push @values, $id; + WHERE employee_id = ?|; - do_query($form, $dbh, $query, @values); + my @values = map { $params{$_} ? 't' : 'f' } qw(show_after_login show_follow_ups show_follow_ups_login show_overdue_sales_quotations show_overdue_sales_quotations_login); + push @values, $id; - $dbh->commit(); + do_query($form, $dbh, $query, @values); + 1; + }) or do { die SL::DB->client->error }; $main::lxdebug->leave_sub(); }