X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDrafts.pm;h=16111af9c91ec0b45e69a999bb07a5dd1fa09a87;hb=9fac28d83f55524f85cfa32cab463e0b8c063d92;hp=44088994b05b27e5b61c8a2269a47820bcf4a657;hpb=c260666f53b243aef7d4d7f71e2caf2999d1b2fa;p=kivitendo-erp.git diff --git a/SL/Drafts.pm b/SL/Drafts.pm index 44088994b..16111af9c 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,7 +36,7 @@ sub get_module { return ($module, $submodule); } -@dont_save = qw(login password stylesheet action); +my @dont_save = qw(login password action); sub save { $main::lxdebug->enter_sub(); @@ -43,7 +45,8 @@ sub save { 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); @@ -70,7 +73,6 @@ sub save { do_query($form, $dbh, $query, $draft_description, $dumped, $form->{login}, $draft_id); $dbh->commit(); - $dbh->disconnect(); $form->{draft_id} = $draft_id; $form->{draft_description} = $draft_description; @@ -85,20 +87,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; @@ -113,47 +112,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; }