X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=sql%2FPg-upgrade2%2FUSTVA_abstraction.pl;h=fe64a9224a9ce4185ac90a9ee9440bb143ba9fe9;hb=958b82d600cebec78ff208257b1fd348ee0439bf;hp=24dbd42edd7c04e7de1bf8a01af88c0296550b71;hpb=c497b0352f95a55d204101b70ac771b2dc21ddee;p=kivitendo-erp.git diff --git a/sql/Pg-upgrade2/USTVA_abstraction.pl b/sql/Pg-upgrade2/USTVA_abstraction.pl index 24dbd42ed..fe64a9224 100644 --- a/sql/Pg-upgrade2/USTVA_abstraction.pl +++ b/sql/Pg-upgrade2/USTVA_abstraction.pl @@ -1,6 +1,12 @@ # @tag: USTVA_abstraction # @description: Abstraktion der USTVA Report Daten. Dies vereinfacht die Integration von Steuerberichten anderer Nationen in kivitendo. # @depends: release_2_4_2 +package SL::DBUpgrade2::USTVA_abstraction; + +use strict; +use utf8; + +use parent qw(SL::DBUpgrade2::Base); # Abstraktionlayer between general Taxreports and USTVA # Most of the data and structures are not used yet, but maybe in future, @@ -8,28 +14,8 @@ ################### -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) = @_; - - if (!$dbh->do($query)) { - mydberror($query) unless ($may_fail); - $dbh->rollback(); - $dbh->begin_work(); - } -} - - sub create_tables { + my ($self) = @_; # Watch out, SCHEMAs are new in Lx! my @queries = ( # Watch out, it's a normal array! @@ -61,14 +47,15 @@ sub create_tables { }, ); - do_query("DROP SCHEMA tax CASCADE;", 1); - map({ do_query($_, 0); } @queries); + $self->db_query("DROP SCHEMA tax CASCADE;", may_fail => 1); + $self->db_query($_) for @queries; return 1; } sub do_copy { + my ($self) = @_; my @copy_statements = ( "INSERT INTO tax.report_categorys (id, description, subdescription) VALUES (?, ?, ?)", @@ -78,85 +65,89 @@ sub do_copy { my @copy_data = ( [ "0;;", - "1;Lieferungen und sonstige Leistungen;(einschließlich unentgeltlicher Wertabgaben)", + "1;Lieferungen und sonstige Leistungen;(einschließlich unentgeltlicher Wertabgaben)", "2;Innergemeinschaftliche Erwerbe;", - "3;Ergänzende Angaben zu Umsätzen;", + "3;Ergänzende Angaben zu Umsätzen;", "99;Summe;", ], ["0;0;;;", - "1;1;received;Steuerfreie Umsätze mit Vorsteuerabzug;", - "2;1;recieved;Steuerfreie Umsätze ohne Vorsteuerabzug;", - "3;1;recieved;Steuerpflichtige Umsätze;(Lieferungen und sonstige Leistungen einschl. unentgeltlicher Wertabgaben)", + "1;1;received;Steuerfreie Umsätze mit Vorsteuerabzug;", + "2;1;recieved;Steuerfreie Umsätze ohne Vorsteuerabzug;", + "3;1;recieved;Steuerpflichtige Umsätze;(Lieferungen und sonstige Leistungen einschl. unentgeltlicher Wertabgaben)", "4;2;recieved;Steuerfreie innergemeinschaftliche Erwerbe;", "5;2;recieved;Steuerpflichtige innergemeinschaftliche Erwerbe;", - "6;3;recieved;Umsätze, für die als Leistungsempfänger die Steuer nach § 13b Abs. 2 UStG geschuldet wird;", + "6;3;recieved;Umsätze, für die als Leistungsempfänger die Steuer nach § 13b Abs. 2 UStG geschuldet wird;", "66;3;recieved;;", - "7;3;paied;Abziehbare Vorsteuerbeträge;", - "8;3;paied;Andere Steuerbeträge;", + "7;3;paied;Abziehbare Vorsteuerbeträge;", + "8;3;paied;Andere Steuerbeträge;", "99;99;;Summe;", ], ["0;keine;0;< < < keine UStVa Position > > >;;;19700101", - "1;41;1;Innergemeinschaftliche Lieferungen (§ 4 Nr. 1 Buchst. b UStG) an Abnehmer mit USt-IdNr.;0;0;19700101", + "1;41;1;Innergemeinschaftliche Lieferungen (§ 4 Nr. 1 Buchst. b UStG) an Abnehmer mit USt-IdNr.;0;0;19700101", "2;44;1;neuer Fahrzeuge an Abnehmer ohne USt-IdNr.;0;0;19700101", - "3;49;1;neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG);0;0;19700101", - "4;43;1;Weitere steuerfreie Umsätze mit Vorsteuerabzug;0;0;19700101", - "5;48;2;Umsätze nach § 4 Nr. 8 bis 28 UStG;0;0;19700101", + "3;49;1;neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG);0;0;19700101", + "4;43;1;Weitere steuerfreie Umsätze mit Vorsteuerabzug;0;0;19700101", + "5;48;2;Umsätze nach § 4 Nr. 8 bis 28 UStG;0;0;19700101", "6;51;3;zum Steuersatz von 16 %;0;0;19700101", "7;511;3;;6;2;19700101", "8;81;3;zum Steuersatz von 19 %;0;0;19700101", "9;811;3;;8;2;19700101", "10;86;3;zum Steuersatz von 7 %;0;0;19700101", "11;861;3;;10;2;19700101", - "12;35;3;Umsätze, die anderen Steuersätzen unterliegen;0;0;19700101", + "12;35;3;Umsätze, die anderen Steuersätzen unterliegen;0;0;19700101", "13;36;3;;12;2;19700101", - "14;77;3;Lieferungen in das übrige Gemeinschaftsgebiet an Abnehmer mit USt-IdNr.;0;0;19700101", - "15;76;3;Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist;0;0;19700101", + "14;77;3;Lieferungen in das übrige Gemeinschaftsgebiet an Abnehmer mit USt-IdNr.;0;0;19700101", + "15;76;3;Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist;0;0;19700101", "16;80;3;;15;2;19700101", - "17;91;4;Erwerbe nach § 4b UStG;0;0;19700101", + "17;91;4;Erwerbe nach § 4b UStG;0;0;19700101", "18;97;5;zum Steuersatz von 16 %;0;0;19700101", "19;971;5;;18;2;19700101", "20;89;5;zum Steuersatz von 19 %;0;0;19700101", "21;891;5;;20;2;19700101", "22;93;5;zum Steuersatz von 7 %;0;0;19700101", "23;931;5;;22;2;19700101", - "24;95;5;zu anderen Steuersätzen;0;0;19700101", + "24;95;5;zu anderen Steuersätzen;0;0;19700101", "25;98;5;;24;2;19700101", "26;94;5;neuer Fahrzeuge von Lieferern ohne USt-IdNr. zum allgemeinen Steuersatz;0;0;19700101", "27;96;5;;26;2;19700101", - "28;42;66;Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgeschäften (§ 25b Abs. 2 UStG);0;0;19700101", - "29;60;66;Steuerpflichtige Umsätze im Sinne des § 13b Abs. 1 Satz 1 Nr. 1 bis 5 UStG, für die der Leistungsempfänger die Steuer schuldet;0;0;19700101", - "30;45;66;Nicht steuerbare Umsätze (Leistungsort nicht im Inland);0;0;19700101", - "31;52;6;Leistungen eines im Ausland ansässigen Unternehmers (§ 13b Abs. 1 Satz 1 Nr. 1 und 5 UStG);0;0;19700101", + "28;42;66;Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgeschäften (§ 25b Abs. 2 UStG);0;0;19700101", + "29;60;66;Steuerpflichtige Umsätze im Sinne des § 13b Abs. 1 Satz 1 Nr. 1 bis 5 UStG, für die der Leistungsempfänger die Steuer schuldet;0;0;19700101", + "30;45;66;Nicht steuerbare Umsätze (Leistungsort nicht im Inland);0;0;19700101", + "31;52;6;Leistungen eines im Ausland ansässigen Unternehmers (§ 13b Abs. 1 Satz 1 Nr. 1 und 5 UStG);0;0;19700101", "32;53;6;;31;2;19700101", - "33;73;6;Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter das GrEStG fallen (§ 13b Abs. 1 Satz 1 Nr. 2 und 3 UStG);0;0;19700101", + "33;73;6;Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter das GrEStG fallen (§ 13b Abs. 1 Satz 1 Nr. 2 und 3 UStG);0;0;19700101", "34;74;6;;33;2;19700101", - "35;84;6;Bauleistungen eines im Inland ansässigen Unternehmers (§ 13b Abs. 1 Satz 1 Nr. 4 UStG);0;0;19700101", + "35;84;6;Bauleistungen eines im Inland ansässigen Unternehmers (§ 13b Abs. 1 Satz 1 Nr. 4 UStG);0;0;19700101", "36;85;6;;35;2;19700101", - "37;65;6;Steuer infolge Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen u. ä. wegen Steuersatzänderung;;2;19700101", - "38;66;7;Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (§ 15 Abs. 1 Satz 1 Nr. 1 UStG), aus Leistungen im Sinne des § 13a Abs. 1 Nr. 6 UStG (§ 15 Abs. 1 Satz 1 Nr. 5 UStG) und aus innergemeinschaftlichen Dreiecksgeschäften (§ 25b Abs. 5 UStG);;2;19700101", - "39;61;7;Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (§ 15 Abs. 1 Satz 1 Nr. 3 UStG);;2;19700101", - "40;62;7;Entrichtete Einfuhrumsatzsteuer (§ 15 Abs. 1 Satz 1 Nr. 2 UStG);;2;19700101", - "41;67;7;Vorsteuerbeträge aus Leistungen im Sinne des § 13b Abs. 1 UStG (§ 15 Abs. 1 Satz 1 Nr. 4 UStG);;2;19700101", - "42;63;7;Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (§§ 23 und 23a UStG);;2;19700101", - "43;64;7;Berichtigung des Vorsteuerabzugs (§ 15a UStG);;2;19700101", - "44;59;7;Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) sowie von Kleinunternehmern im Sinne des § 19 Abs. 1 UStG (§ 15 Abs. 4a UStG);;2;19700101", - "45;69;8;in Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 4 Nr. 4a Satz 1 Buchst. a Satz 2, § 6a Abs. 4 Satz 2, § 17 Abs. 1 Satz 6 oder § 25b Abs. 2 UStG geschuldet werden;;2;19700101", - "46;39;8;Anrechnung (Abzug) der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (nur auszufüllen in der letzten Voranmeldung des Besteuerungszeitraums, in der Regel Dezember);;2;19700101", + "37;65;6;Steuer infolge Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen u. ä. wegen Steuersatzänderung;;2;19700101", + "38;66;7;Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (§ 15 Abs. 1 Satz 1 Nr. 1 UStG), aus Leistungen im Sinne des § 13a Abs. 1 Nr. 6 UStG (§ 15 Abs. 1 Satz 1 Nr. 5 UStG) und aus innergemeinschaftlichen Dreiecksgeschäften (§ 25b Abs. 5 UStG);;2;19700101", + "39;61;7;Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (§ 15 Abs. 1 Satz 1 Nr. 3 UStG);;2;19700101", + "40;62;7;Entrichtete Einfuhrumsatzsteuer (§ 15 Abs. 1 Satz 1 Nr. 2 UStG);;2;19700101", + "41;67;7;Vorsteuerbeträge aus Leistungen im Sinne des § 13b Abs. 1 UStG (§ 15 Abs. 1 Satz 1 Nr. 4 UStG);;2;19700101", + "42;63;7;Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (§§ 23 und 23a UStG);;2;19700101", + "43;64;7;Berichtigung des Vorsteuerabzugs (§ 15a UStG);;2;19700101", + "44;59;7;Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG) sowie von Kleinunternehmern im Sinne des § 19 Abs. 1 UStG (§ 15 Abs. 4a UStG);;2;19700101", + "45;69;8;in Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (§ 14c UStG) sowie Steuerbeträge, die nach § 4 Nr. 4a Satz 1 Buchst. a Satz 2, § 6a Abs. 4 Satz 2, § 17 Abs. 1 Satz 6 oder § 25b Abs. 2 UStG geschuldet werden;;2;19700101", + "46;39;8;Anrechnung (Abzug) der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (nur auszufüllen in der letzten Voranmeldung des Besteuerungszeitraums, in der Regel Dezember);;2;19700101", ], ); for my $statement ( 0 .. $#copy_statements ) { - my $query = $iconv->convert($copy_statements[$statement]); - my $sth = $dbh->prepare($query) || mydberror($query); + my $query = $copy_statements[$statement]; + my $sth = $self->dbh->prepare($query) || $self->db_error($query); for my $copy_line ( 0 .. $#{$copy_data[$statement]} ) { #print $copy_data[$statement][$copy_line] . "
" - $sth->execute(split m/;/, $iconv->convert($copy_data[$statement][$copy_line]), -1) || mydberror($query); + $sth->execute(split m/;/, $copy_data[$statement][$copy_line], -1) || $self->db_error($query); } $sth->finish(); } return 1; } +sub run { + my ($self) = @_; + return $self->create_tables && $self->do_copy ? 1 : undef; +} -return create_tables() && do_copy(); +1;