X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=sql%2FPg-upgrade2%2FUSTVA_abstraction.pl;h=96c6b73b4524bff03ace0629be7dc4ae9a982643;hb=203ebd4a71a8de7d549db868b657232da36b6e82;hp=20f512d4d5d8afe35e8caaab800de1571118b8eb;hpb=faef45c2e723c9fbc80d1d84b8481367204719b7;p=kivitendo-erp.git
diff --git a/sql/Pg-upgrade2/USTVA_abstraction.pl b/sql/Pg-upgrade2/USTVA_abstraction.pl
index 20f512d4d..96c6b73b4 100644
--- a/sql/Pg-upgrade2/USTVA_abstraction.pl
+++ b/sql/Pg-upgrade2/USTVA_abstraction.pl
@@ -3,13 +3,21 @@
# @depends: release_2_4_2
# Abstraktionlayer between general Taxreports and USTVA
-# Most of the data and structures are not used yet, but maybe in future,
+# Most of the data and structures are not used yet, but maybe in future,
# if there are other international customizings are requested...
###################
+use strict;
+
die("This script cannot be run from the command line.") unless ($main::form);
+sub mydberror {
+ my ($msg) = @_;
+ die($dbup_locale->text("Database update error:") .
+ "
$msg
" . $DBI::errstr);
+}
+
sub do_query {
my ($query, $may_fail) = @_;
@@ -32,7 +40,7 @@ sub create_tables {
description text,
subdescription text
);
- },
+ },
q{ CREATE TABLE tax.report_headings (
id integer NOT NULL PRIMARY KEY,
category_id integer NOT NULL REFERENCES tax.report_categorys(id),
@@ -55,17 +63,17 @@ sub create_tables {
do_query("DROP SCHEMA tax CASCADE;", 1);
map({ do_query($_, 0); } @queries);
-
+
return 1;
-
+
}
sub do_copy {
my @copy_statements = (
- "COPY tax.report_categorys FROM STDIN WITH DELIMITER ';'",
- "COPY tax.report_headings FROM STDIN WITH DELIMITER ';'",
- "COPY tax.report_variables FROM STDIN WITH DELIMITER ';'",
+ "INSERT INTO tax.report_categorys (id, description, subdescription) VALUES (?, ?, ?)",
+ "INSERT INTO tax.report_headings (id, category_id, type, description, subdescription) VALUES (?, ?, ?, ?, ?)",
+ "INSERT INTO tax.report_variables (id, position, heading_id, description, taxbase, dec_places, valid_from) VALUES (?, ?, ?, ?, ?, ?, ?)",
);
my @copy_data = (
@@ -138,18 +146,17 @@ sub do_copy {
);
for my $statement ( 0 .. $#copy_statements ) {
+ my $query = $iconv->convert($copy_statements[$statement]);
+ my $sth = $dbh->prepare($query) || mydberror($query);
- do_query($iconv->convert($copy_statements[$statement]), 0);
-
- for my $copy_line ( 1 .. $#{$copy_data[$statement]} ) {
+ for my $copy_line ( 0 .. $#{$copy_data[$statement]} ) {
#print $copy_data[$statement][$copy_line] . "
"
- $dbh->pg_putline($iconv->convert($copy_data[$statement][$copy_line]) . "\n");
+ $sth->execute(split m/;/, $iconv->convert($copy_data[$statement][$copy_line]), -1) || mydberror($query);
}
- $dbh->pg_endcopy;
+ $sth->finish();
}
return 1;
}
return create_tables() && do_copy();
-