kivitendo/SL/XIII.pm @ d4cfda7f
d319704a | Moritz Bunkus | #=====================================================================
|
|
# LX-Office ERP
|
|||
# Copyright (C) 2004
|
|||
# Based on SQL-Ledger Version 2.1.9
|
|||
# Web http://www.lx-office.org
|
|||
#
|
|||
#
|
|||
# XIII form retrieval
|
|||
#
|
|||
#======================================================================
|
|||
package XIII;
|
|||
sub retrieve_form {
|
|||
$main::lxdebug->enter_sub();
|
|||
my ($self, $myconfig, $form) = @_;
|
|||
my $dbh = $form->dbconnect($myconfig);
|
|||
my $query = qq|SELECT f.line
|
|||
FROM xiii_forms f
|
|||
WHERE f.file = '$form->{file}'
|
|||
AND f.dbname = '$myconfig->{dbname}'
|
|||
ORDER BY f.oid|;
|
|||
my $sth = $dbh->prepare($query);
|
|||
$sth->execute || $form->dberror($query);
|
|||
my $ref;
|
|||
while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
|
|||
push @{ $form->{body} }, $ref->{line};
|
|||
}
|
|||
$sth->finish;
|
|||
$dbh->disconnect;
|
|||
$main::lxdebug->leave_sub();
|
|||
}
|
|||
sub delete_form {
|
|||
$main::lxdebug->enter_sub();
|
|||
my ($self, $myconfig, $form) = @_;
|
|||
# connect to database, turn AutoCommit off
|
|||
my $dbh = $form->dbconnect_noauto($myconfig);
|
|||
my $query = qq|DELETE FROM xiii_forms
|
|||
WHERE file = '$form->{file}'
|
|||
AND dbname = '$myconfig->{dbname}'|;
|
|||
$dbh->do($query) || $form->dberror($query);
|
|||
# commit and redirect
|
|||
$rc = $dbh->commit;
|
|||
$dbh->disconnect;
|
|||
$main::lxdebug->leave_sub();
|
|||
return $rc;
|
|||
}
|
|||
sub save_form {
|
|||
$main::lxdebug->enter_sub();
|
|||
my ($self, $myconfig, $form) = @_;
|
|||
# connect to database, turn AutoCommit off
|
|||
my $dbh = $form->dbconnect_noauto($myconfig);
|
|||
my $query = qq|DELETE FROM xiii_forms
|
|||
WHERE file = '$form->{file}'
|
|||
AND dbname = '$myconfig->{dbname}'|;
|
|||
$dbh->do($query) || $form->dberror($query);
|
|||
$query = qq|INSERT INTO xiii_forms (line, file, dbname)
|
|||
VALUES (?, '$form->{file}', '$myconfig->{dbname}')|;
|
|||
$sth = $dbh->prepare($query);
|
|||
foreach $line (split /\r/, $form->{body}) {
|
|||
$sth->execute($line) || $form->dberror($query);
|
|||
$sth->finish;
|
|||
}
|
|||
$rc = $dbh->commit;
|
|||
$dbh->disconnect;
|
|||
$main::lxdebug->leave_sub();
|
|||
return $rc;
|
|||
}
|
|||
1;
|