X-Git-Url: http://wagnertech.de/git?p=kivitendo-erp.git;a=blobdiff_plain;f=SL%2FNotes.pm;fp=SL%2FNotes.pm;h=1d768f3754a417ee167001a05d150675e9b3c312;hp=38959f429f53514b083e91316356a41524f2c901;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44 diff --git a/SL/Notes.pm b/SL/Notes.pm index 38959f429..1d768f375 100644 --- a/SL/Notes.pm +++ b/SL/Notes.pm @@ -4,6 +4,7 @@ package Notes; use SL::Common; use SL::DBUtils; +use SL::DB; use strict; @@ -16,24 +17,25 @@ sub save { my $myconfig = \%main::myconfig; my $form = $main::form; - my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig); - my ($query, @values); + SL::DB->client->with_transaction(sub { + my $dbh = $params{dbh} || SL::DB->client->dbh; + my ($query, @values); - if (!$params{id}) { - ($params{id}) = selectrow_query($form, $dbh, qq|SELECT nextval('note_id')|); - $query = qq|INSERT INTO notes (created_by, trans_id, trans_module, subject, body, id) - VALUES ((SELECT id FROM employee WHERE login = ?), ?, ?, ?, ?, ?)|; - push @values, $::myconfig{login}, conv_i($params{trans_id}), $params{trans_module}; + if (!$params{id}) { + ($params{id}) = selectrow_query($form, $dbh, qq|SELECT nextval('note_id')|); + $query = qq|INSERT INTO notes (created_by, trans_id, trans_module, subject, body, id) + VALUES ((SELECT id FROM employee WHERE login = ?), ?, ?, ?, ?, ?)|; + push @values, $::myconfig{login}, conv_i($params{trans_id}), $params{trans_module}; - } else { - $query = qq|UPDATE notes SET subject = ?, body = ? WHERE id = ?|; - } + } else { + $query = qq|UPDATE notes SET subject = ?, body = ? WHERE id = ?|; + } - push @values, $params{subject}, $params{body}, conv_i($params{id}); + push @values, $params{subject}, $params{body}, conv_i($params{id}); - do_query($form, $dbh, $query, @values); - - $dbh->commit() unless ($params{dbh}); + do_query($form, $dbh, $query, @values); + 1; + }) or do { die SL::DB->client->error }; $main::lxdebug->leave_sub(); @@ -71,14 +73,15 @@ sub delete { my $myconfig = \%main::myconfig; my $form = $main::form; - my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig); - my $id = conv_i($params{id}); - - do_query($form, $dbh, qq|DELETE FROM follow_up_links WHERE follow_up_id IN (SELECT DISTINCT id FROM follow_ups WHERE note_id = ?)|, $id); - do_query($form, $dbh, qq|DELETE FROM follow_ups WHERE note_id = ?|, $id); - do_query($form, $dbh, qq|DELETE FROM notes WHERE id = ?|, $id); + SL::DB->client->with_transaction(sub { + my $dbh = $params{dbh} || SL::DB->client->dbh; + my $id = conv_i($params{id}); - $dbh->commit() unless ($params{dbh}); + do_query($form, $dbh, qq|DELETE FROM follow_up_links WHERE follow_up_id IN (SELECT DISTINCT id FROM follow_ups WHERE note_id = ?)|, $id); + do_query($form, $dbh, qq|DELETE FROM follow_ups WHERE note_id = ?|, $id); + do_query($form, $dbh, qq|DELETE FROM notes WHERE id = ?|, $id); + 1; + }) or do { die SL::DB->client->error }; $main::lxdebug->leave_sub(); }