Revision 347f2cff
Von Moritz Bunkus vor mehr als 11 Jahren hinzugefügt
sql/Pg-upgrade2/USTVA_abstraction.pl | ||
---|---|---|
1 | 1 |
# @tag: USTVA_abstraction |
2 | 2 |
# @description: Abstraktion der USTVA Report Daten. Dies vereinfacht die Integration von Steuerberichten anderer Nationen in kivitendo. |
3 | 3 |
# @depends: release_2_4_2 |
4 |
package SL::DBUpgrade2::USTVA_abstraction; |
|
5 |
|
|
6 |
use strict; |
|
7 |
use utf8; |
|
8 |
|
|
9 |
use parent qw(SL::DBUpgrade2::Base); |
|
4 | 10 |
|
5 | 11 |
# Abstraktionlayer between general Taxreports and USTVA |
6 | 12 |
# Most of the data and structures are not used yet, but maybe in future, |
... | ... | |
8 | 14 |
|
9 | 15 |
################### |
10 | 16 |
|
11 |
use strict; |
|
12 |
|
|
13 |
die("This script cannot be run from the command line.") unless ($main::form); |
|
14 |
|
|
15 |
sub mydberror { |
|
16 |
my ($msg) = @_; |
|
17 |
die($dbup_locale->text("Database update error:") . |
|
18 |
"<br>$msg<br>" . $DBI::errstr); |
|
19 |
} |
|
20 |
|
|
21 |
sub do_query { |
|
22 |
my ($query, $may_fail) = @_; |
|
23 |
|
|
24 |
if (!$dbh->do($query)) { |
|
25 |
mydberror($query) unless ($may_fail); |
|
26 |
$dbh->rollback(); |
|
27 |
$dbh->begin_work(); |
|
28 |
} |
|
29 |
} |
|
30 |
|
|
31 |
|
|
32 | 17 |
sub create_tables { |
18 |
my ($self) = @_; |
|
33 | 19 |
|
34 | 20 |
# Watch out, SCHEMAs are new in Lx! |
35 | 21 |
my @queries = ( # Watch out, it's a normal array! |
... | ... | |
61 | 47 |
}, |
62 | 48 |
); |
63 | 49 |
|
64 |
do_query("DROP SCHEMA tax CASCADE;", 1);
|
|
65 |
map({ do_query($_, 0); } @queries);
|
|
50 |
$self->db_query("DROP SCHEMA tax CASCADE;", 1);
|
|
51 |
map({ $self->db_query($_, 0); } @queries);
|
|
66 | 52 |
|
67 | 53 |
return 1; |
68 | 54 |
|
69 | 55 |
} |
70 | 56 |
|
71 | 57 |
sub do_copy { |
58 |
my ($self) = @_; |
|
72 | 59 |
|
73 | 60 |
my @copy_statements = ( |
74 | 61 |
"INSERT INTO tax.report_categorys (id, description, subdescription) VALUES (?, ?, ?)", |
... | ... | |
78 | 65 |
|
79 | 66 |
my @copy_data = ( |
80 | 67 |
[ "0;;", |
81 |
"1;Lieferungen und sonstige Leistungen;(einschlie?lich unentgeltlicher Wertabgaben)",
|
|
68 |
"1;Lieferungen und sonstige Leistungen;(einschließlich unentgeltlicher Wertabgaben)",
|
|
82 | 69 |
"2;Innergemeinschaftliche Erwerbe;", |
83 |
"3;Erg?nzende Angaben zu Ums?tzen;",
|
|
70 |
"3;Ergänzende Angaben zu Umsätzen;",
|
|
84 | 71 |
"99;Summe;", |
85 | 72 |
], |
86 | 73 |
["0;0;;;", |
87 |
"1;1;received;Steuerfreie Ums?tze mit Vorsteuerabzug;",
|
|
88 |
"2;1;recieved;Steuerfreie Ums?tze ohne Vorsteuerabzug;",
|
|
89 |
"3;1;recieved;Steuerpflichtige Ums?tze;(Lieferungen und sonstige Leistungen einschl. unentgeltlicher Wertabgaben)",
|
|
74 |
"1;1;received;Steuerfreie Umsätze mit Vorsteuerabzug;",
|
|
75 |
"2;1;recieved;Steuerfreie Umsätze ohne Vorsteuerabzug;",
|
|
76 |
"3;1;recieved;Steuerpflichtige Umsätze;(Lieferungen und sonstige Leistungen einschl. unentgeltlicher Wertabgaben)",
|
|
90 | 77 |
"4;2;recieved;Steuerfreie innergemeinschaftliche Erwerbe;", |
91 | 78 |
"5;2;recieved;Steuerpflichtige innergemeinschaftliche Erwerbe;", |
92 |
"6;3;recieved;Ums?tze, f?r die als Leistungsempf?nger die Steuer nach ? 13b Abs. 2 UStG geschuldet wird;",
|
|
79 |
"6;3;recieved;Umsätze, für die als Leistungsempfänger die Steuer nach § 13b Abs. 2 UStG geschuldet wird;",
|
|
93 | 80 |
"66;3;recieved;;", |
94 |
"7;3;paied;Abziehbare Vorsteuerbetr?ge;",
|
|
95 |
"8;3;paied;Andere Steuerbetr?ge;",
|
|
81 |
"7;3;paied;Abziehbare Vorsteuerbeträge;",
|
|
82 |
"8;3;paied;Andere Steuerbeträge;",
|
|
96 | 83 |
"99;99;;Summe;", |
97 | 84 |
], |
98 | 85 |
["0;keine;0;< < < keine UStVa Position > > >;;;19700101", |
99 |
"1;41;1;Innergemeinschaftliche Lieferungen (? 4 Nr. 1 Buchst. b UStG) an Abnehmer mit USt-IdNr.;0;0;19700101",
|
|
86 |
"1;41;1;Innergemeinschaftliche Lieferungen (§ 4 Nr. 1 Buchst. b UStG) an Abnehmer mit USt-IdNr.;0;0;19700101",
|
|
100 | 87 |
"2;44;1;neuer Fahrzeuge an Abnehmer ohne USt-IdNr.;0;0;19700101", |
101 |
"3;49;1;neuer Fahrzeuge au?erhalb eines Unternehmens (? 2a UStG);0;0;19700101",
|
|
102 |
"4;43;1;Weitere steuerfreie Ums?tze mit Vorsteuerabzug;0;0;19700101",
|
|
103 |
"5;48;2;Ums?tze nach ? 4 Nr. 8 bis 28 UStG;0;0;19700101",
|
|
88 |
"3;49;1;neuer Fahrzeuge außerhalb eines Unternehmens (§ 2a UStG);0;0;19700101",
|
|
89 |
"4;43;1;Weitere steuerfreie Umsätze mit Vorsteuerabzug;0;0;19700101",
|
|
90 |
"5;48;2;Umsätze nach § 4 Nr. 8 bis 28 UStG;0;0;19700101",
|
|
104 | 91 |
"6;51;3;zum Steuersatz von 16 %;0;0;19700101", |
105 | 92 |
"7;511;3;;6;2;19700101", |
106 | 93 |
"8;81;3;zum Steuersatz von 19 %;0;0;19700101", |
107 | 94 |
"9;811;3;;8;2;19700101", |
108 | 95 |
"10;86;3;zum Steuersatz von 7 %;0;0;19700101", |
109 | 96 |
"11;861;3;;10;2;19700101", |
110 |
"12;35;3;Ums?tze, die anderen Steuers?tzen unterliegen;0;0;19700101",
|
|
97 |
"12;35;3;Umsätze, die anderen Steuersätzen unterliegen;0;0;19700101",
|
|
111 | 98 |
"13;36;3;;12;2;19700101", |
112 |
"14;77;3;Lieferungen in das ?brige Gemeinschaftsgebiet an Abnehmer mit USt-IdNr.;0;0;19700101",
|
|
113 |
"15;76;3;Ums?tze, f?r die eine Steuer nach ? 24 UStG zu entrichten ist;0;0;19700101",
|
|
99 |
"14;77;3;Lieferungen in das übrige Gemeinschaftsgebiet an Abnehmer mit USt-IdNr.;0;0;19700101",
|
|
100 |
"15;76;3;Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist;0;0;19700101",
|
|
114 | 101 |
"16;80;3;;15;2;19700101", |
115 |
"17;91;4;Erwerbe nach ? 4b UStG;0;0;19700101",
|
|
102 |
"17;91;4;Erwerbe nach § 4b UStG;0;0;19700101",
|
|
116 | 103 |
"18;97;5;zum Steuersatz von 16 %;0;0;19700101", |
117 | 104 |
"19;971;5;;18;2;19700101", |
118 | 105 |
"20;89;5;zum Steuersatz von 19 %;0;0;19700101", |
119 | 106 |
"21;891;5;;20;2;19700101", |
120 | 107 |
"22;93;5;zum Steuersatz von 7 %;0;0;19700101", |
121 | 108 |
"23;931;5;;22;2;19700101", |
122 |
"24;95;5;zu anderen Steuers?tzen;0;0;19700101",
|
|
109 |
"24;95;5;zu anderen Steuersätzen;0;0;19700101",
|
|
123 | 110 |
"25;98;5;;24;2;19700101", |
124 | 111 |
"26;94;5;neuer Fahrzeuge von Lieferern ohne USt-IdNr. zum allgemeinen Steuersatz;0;0;19700101", |
125 | 112 |
"27;96;5;;26;2;19700101", |
126 |
"28;42;66;Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgesch?ften (? 25b Abs. 2 UStG);0;0;19700101",
|
|
127 |
"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",
|
|
128 |
"30;45;66;Nicht steuerbare Ums?tze (Leistungsort nicht im Inland);0;0;19700101",
|
|
129 |
"31;52;6;Leistungen eines im Ausland ans?ssigen Unternehmers (? 13b Abs. 1 Satz 1 Nr. 1 und 5 UStG);0;0;19700101",
|
|
113 |
"28;42;66;Lieferungen des ersten Abnehmers bei innergemeinschaftlichen Dreiecksgeschäften (§ 25b Abs. 2 UStG);0;0;19700101",
|
|
114 |
"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",
|
|
115 |
"30;45;66;Nicht steuerbare Umsätze (Leistungsort nicht im Inland);0;0;19700101",
|
|
116 |
"31;52;6;Leistungen eines im Ausland ansässigen Unternehmers (§ 13b Abs. 1 Satz 1 Nr. 1 und 5 UStG);0;0;19700101",
|
|
130 | 117 |
"32;53;6;;31;2;19700101", |
131 |
"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",
|
|
118 |
"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",
|
|
132 | 119 |
"34;74;6;;33;2;19700101", |
133 |
"35;84;6;Bauleistungen eines im Inland ans?ssigen Unternehmers (? 13b Abs. 1 Satz 1 Nr. 4 UStG);0;0;19700101",
|
|
120 |
"35;84;6;Bauleistungen eines im Inland ansässigen Unternehmers (§ 13b Abs. 1 Satz 1 Nr. 4 UStG);0;0;19700101",
|
|
134 | 121 |
"36;85;6;;35;2;19700101", |
135 |
"37;65;6;Steuer infolge Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen u. ?. wegen Steuersatz?nderung;;2;19700101",
|
|
136 |
"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",
|
|
137 |
"39;61;7;Vorsteuerbetr?ge aus dem innergemeinschaftlichen Erwerb von Gegenst?nden (? 15 Abs. 1 Satz 1 Nr. 3 UStG);;2;19700101",
|
|
138 |
"40;62;7;Entrichtete Einfuhrumsatzsteuer (? 15 Abs. 1 Satz 1 Nr. 2 UStG);;2;19700101",
|
|
139 |
"41;67;7;Vorsteuerbetr?ge aus Leistungen im Sinne des ? 13b Abs. 1 UStG (? 15 Abs. 1 Satz 1 Nr. 4 UStG);;2;19700101",
|
|
140 |
"42;63;7;Vorsteuerbetr?ge, die nach allgemeinen Durchschnittss?tzen berechnet sind (?? 23 und 23a UStG);;2;19700101",
|
|
141 |
"43;64;7;Berichtigung des Vorsteuerabzugs (? 15a UStG);;2;19700101",
|
|
142 |
"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",
|
|
143 |
"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",
|
|
144 |
"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",
|
|
122 |
"37;65;6;Steuer infolge Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen u. ä. wegen Steuersatzänderung;;2;19700101",
|
|
123 |
"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",
|
|
124 |
"39;61;7;Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (§ 15 Abs. 1 Satz 1 Nr. 3 UStG);;2;19700101",
|
|
125 |
"40;62;7;Entrichtete Einfuhrumsatzsteuer (§ 15 Abs. 1 Satz 1 Nr. 2 UStG);;2;19700101",
|
|
126 |
"41;67;7;Vorsteuerbeträge aus Leistungen im Sinne des § 13b Abs. 1 UStG (§ 15 Abs. 1 Satz 1 Nr. 4 UStG);;2;19700101",
|
|
127 |
"42;63;7;Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (§§ 23 und 23a UStG);;2;19700101",
|
|
128 |
"43;64;7;Berichtigung des Vorsteuerabzugs (§ 15a UStG);;2;19700101",
|
|
129 |
"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",
|
|
130 |
"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",
|
|
131 |
"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",
|
|
145 | 132 |
], |
146 | 133 |
); |
147 | 134 |
|
148 | 135 |
for my $statement ( 0 .. $#copy_statements ) { |
149 |
my $query = $iconv->convert($copy_statements[$statement]);
|
|
150 |
my $sth = $dbh->prepare($query) || mydberror($query);
|
|
136 |
my $query = $copy_statements[$statement];
|
|
137 |
my $sth = $self->dbh->prepare($query) || $self->db_error($query);
|
|
151 | 138 |
|
152 | 139 |
for my $copy_line ( 0 .. $#{$copy_data[$statement]} ) { |
153 | 140 |
#print $copy_data[$statement][$copy_line] . "<br />" |
154 |
$sth->execute(split m/;/, $iconv->convert($copy_data[$statement][$copy_line]), -1) || mydberror($query);
|
|
141 |
$sth->execute(split m/;/, $copy_data[$statement][$copy_line], -1) || $self->db_error($query);
|
|
155 | 142 |
} |
156 | 143 |
$sth->finish(); |
157 | 144 |
} |
158 | 145 |
return 1; |
159 | 146 |
} |
160 | 147 |
|
148 |
sub run { |
|
149 |
my ($self) = @_; |
|
150 |
return $self->create_tables && $self->do_copy; |
|
151 |
} |
|
161 | 152 |
|
162 |
return create_tables() && do_copy(); |
|
153 |
1; |
Auch abrufbar als: Unified diff
Perl-Datenbank-Upgradescripte auf Objektorientierung & strict umgestellt