X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=sql%2FPg-upgrade2%2FUSTVA_abstraction.pl;h=24dbd42edd7c04e7de1bf8a01af88c0296550b71;hb=55af6244bd721f294ff5eee7e9357a3217318e5e;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(); -