X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FNotes.pm;h=1d768f3754a417ee167001a05d150675e9b3c312;hb=9447acbeb7b1cd0bb4691aa1da8f533ca9099064;hp=c61dd3d1e49fe5468eb1c563e308c9724fd6cd0d;hpb=7a7f33b5c1b3531ab761adba1cf19d4ad68cffcd;p=kivitendo-erp.git diff --git a/SL/Notes.pm b/SL/Notes.pm index c61dd3d1e..1d768f375 100644 --- a/SL/Notes.pm +++ b/SL/Notes.pm @@ -4,6 +4,9 @@ package Notes; use SL::Common; use SL::DBUtils; +use SL::DB; + +use strict; sub save { $main::lxdebug->enter_sub(); @@ -14,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); - - 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, $form->{login}, conv_i($params{trans_id}), $params{trans_module}; + SL::DB->client->with_transaction(sub { + my $dbh = $params{dbh} || SL::DB->client->dbh; + my ($query, @values); - } else { - $query = qq|UPDATE notes SET subject = ?, body = ? WHERE id = ?|; - } + 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}; - push @values, $params{subject}, $params{body}, conv_i($params{id}); + } else { + $query = qq|UPDATE notes SET subject = ?, body = ? WHERE id = ?|; + } - do_query($form, $dbh, $query, @values); + push @values, $params{subject}, $params{body}, conv_i($params{id}); - $dbh->commit() unless ($params{dbh}); + do_query($form, $dbh, $query, @values); + 1; + }) or do { die SL::DB->client->error }; $main::lxdebug->leave_sub(); @@ -51,7 +55,7 @@ sub retrieve { my $dbh = $form->get_standard_dbh($myconfig); - my $ref = selectfirst_hashref_query($form, $dbh, qq|SELECT * FROM notes WHERE id = ?|, conv_i($param{id})); + my $ref = selectfirst_hashref_query($form, $dbh, qq|SELECT * FROM notes WHERE id = ?|, conv_i($params{id})); $main::lxdebug->leave_sub(); @@ -69,18 +73,17 @@ 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(); - - return $ref; } 1;