Projekt

Allgemein

Profil

Herunterladen (2,01 KB) Statistiken
| Zweig: | Markierung: | Revision:
#=====================================================================
# 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;

(32-32/32)