Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 347f2cff

Von Moritz Bunkus vor mehr als 11 Jahren hinzugefügt

  • ID 347f2cff58f8d798bb0fe52495fb09b4e08db036
  • Vorgänger 428bc365
  • Nachfolger f1a40f51

Perl-Datenbank-Upgradescripte auf Objektorientierung & strict umgestellt

Unterschiede anzeigen:

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