X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FDrafts.pm;h=e5242aa4d48f72e61346d9053c605d69bf374440;hb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44;hp=96d4d913ea34f223c851cb24e24fed917303f7dc;hpb=14e6ba3a190d322d2e6110e6d846c61f73787885;p=kivitendo-erp.git diff --git a/SL/Drafts.pm b/SL/Drafts.pm index 96d4d913e..e5242aa4d 100644 --- a/SL/Drafts.pm +++ b/SL/Drafts.pm @@ -14,6 +14,8 @@ use YAML; use SL::Common; use SL::DBUtils; +use strict; + sub get_module { $main::lxdebug->enter_sub(); @@ -34,14 +36,21 @@ sub get_module { return ($module, $submodule); } +my @dont_save = qw(login password action); + +sub dont_save { + return @dont_save; +} + sub save { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form, $draft_id, $draft_description) = @_; - my ($dbh, $sth, $query, %saved, @dont_save, $dumped); + my ($dbh, $sth, $query, %saved, $dumped); - $dbh = $form->dbconnect_noauto($myconfig); + $dbh = $form->get_standard_dbh; + $dbh->begin_work; my ($module, $submodule) = $self->get_module($form); @@ -54,7 +63,6 @@ sub save { do_query($form, $dbh, $query, $draft_id, $module, $submodule); } - @dont_save = qw(login password action); map({ $saved{$_} = $form->{$_}; delete($form->{$_}); } @dont_save); @@ -66,10 +74,9 @@ sub save { qq| (SELECT id FROM employee WHERE login = ?) | . qq|WHERE id = ?|; - do_query($form, $dbh, $query, $draft_description, $dumped, $form->{login}, $draft_id); + do_query($form, $dbh, $query, $draft_description, $dumped, $::myconfig{login}, $draft_id); $dbh->commit(); - $dbh->disconnect(); $form->{draft_id} = $draft_id; $form->{draft_description} = $draft_description; @@ -84,20 +91,17 @@ sub load { my ($dbh, $sth, $query, @values); - $dbh = $form->dbconnect($myconfig); + $dbh = $form->get_standard_dbh; $query = qq|SELECT id, description, form FROM drafts WHERE id = ?|; $sth = prepare_execute_query($form, $dbh, $query, $draft_id); - my @values; if (my $ref = $sth->fetchrow_hashref()) { @values = ($ref->{form}, $ref->{id}, $ref->{description}); } $sth->finish(); - $dbh->disconnect(); - $main::lxdebug->leave_sub(); return @values; @@ -112,47 +116,34 @@ sub remove { my ($dbh, $sth, $query); - $dbh = $form->dbconnect($myconfig); + $dbh = $form->get_standard_dbh; $query = qq|DELETE FROM drafts WHERE id IN (| . join(", ", map { "?" } @draft_ids) . qq|)|; do_query($form, $dbh, $query, @draft_ids); - $dbh->disconnect(); + $dbh->commit; $main::lxdebug->leave_sub(); } sub list { - $main::lxdebug->enter_sub(); - - my ($self, $myconfig, $form) = @_; - - my ($dbh, $sth, $query, @values); - - $dbh = $form->dbconnect($myconfig); - - my ($module, $submodule) = $self->get_module($form); - - my @list = (); - $query = - qq|SELECT d.id, d.description, d.itime::timestamp(0) AS itime, | . - qq| e.name AS employee_name | . - qq|FROM drafts d | . - qq|LEFT JOIN employee e ON d.employee_id = e.id | . - qq|WHERE (d.module = ?) AND (d.submodule = ?) | . - qq|ORDER BY d.itime|; - my @values = ($module, $submodule); - - $sth = prepare_execute_query($form, $dbh, $query, @values); - - while (my $ref = $sth->fetchrow_hashref()) { - push(@list, $ref); - } - $sth->finish(); - - $dbh->disconnect(); - - $main::lxdebug->leave_sub(); + $::lxdebug->enter_sub; + + my $self = shift; + my $myconfig = shift || \%::myconfig; + my $form = shift || $::form; + my $dbh = $form->get_standard_dbh; + + my @list = selectall_hashref_query($form, $dbh, <get_module($form)); + SELECT d.id, d.description, d.itime::timestamp(0) AS itime, + e.name AS employee_name + FROM drafts d + LEFT JOIN employee e ON d.employee_id = e.id + WHERE (d.module = ?) AND (d.submodule = ?) + ORDER BY d.itime +SQL + + $::lxdebug->leave_sub; return @list; }