X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=sql%2FPg-upgrade2%2FUSTVA_abstraction.pl;h=24dbd42edd7c04e7de1bf8a01af88c0296550b71;hb=19bc00f2f06ffa53668f39e55915b9b0df3970ba;hp=66e8c752de203b0da6c18ba5d8ddd7cec6a2691f;hpb=c1d8418b5244d224298431369c69ea971a69f3c2;p=kivitendo-erp.git
diff --git a/sql/Pg-upgrade2/USTVA_abstraction.pl b/sql/Pg-upgrade2/USTVA_abstraction.pl
index 66e8c752d..24dbd42ed 100644
--- a/sql/Pg-upgrade2/USTVA_abstraction.pl
+++ b/sql/Pg-upgrade2/USTVA_abstraction.pl
@@ -1,15 +1,23 @@
# @tag: USTVA_abstraction
-# @description: Abstraktion der USTVA Report Daten. Dies vereinfacht die Integration von Steuerberichten anderer Nationen in Lx-Office.
+# @description: Abstraktion der USTVA Report Daten. Dies vereinfacht die Integration von Steuerberichten anderer Nationen in kivitendo.
# @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($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($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();
-