use SL::Common;
use SL::DBUtils;
+use strict;
+
sub get_module {
$main::lxdebug->enter_sub();
return ($module, $submodule);
}
+my @dont_save = qw(login password action);
+
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);
do_query($form, $dbh, $query, $draft_id, $module, $submodule);
}
- @dont_save = qw(login password action);
map({ $saved{$_} = $form->{$_};
delete($form->{$_}); } @dont_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;
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;
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, <<SQL, $self->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;
}