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