Revision e765448c
Von Moritz Bunkus vor etwa 18 Jahren hinzugefügt
SL/XIII.pm | ||
---|---|---|
#=====================================================================
|
||
# 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;
|
||
|
Auch abrufbar als: Unified diff
Diese Datei wird nicht benutzt.