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:

SL/DBUpgrade2.pm
4 4
use List::MoreUtils qw(any);
5 5

  
6 6
use SL::Common;
7
use SL::DBUpgrade2::Base;
7 8
use SL::DBUtils;
8 9
use SL::Iconv;
9 10

  
......
79 80

  
80 81
    next if ($control->{ignore});
81 82

  
83
    $control->{charset} = 'UTF-8' if $file =~ m/\.pl$/;
82 84
    $control->{charset} = $control->{charset} || $control->{encoding} || Common::DEFAULT_CHARSET;
83 85

  
84 86
    if (!$control->{"tag"}) {
......
240 242

  
241 243
  my ($self, $dbh, $filename, $version_or_control, $db_charset) = @_;
242 244

  
243
  my $form         = $self->{form};
244
  my $fh           = IO::File->new($filename, "r") or $form->error("$filename : $!\n");
245
  my $file_charset = Common::DEFAULT_CHARSET;
246

  
247
  if (ref($version_or_control) eq "HASH") {
248
    $file_charset = $version_or_control->{charset};
249

  
250
  } else {
251
    while (<$fh>) {
252
      last if !/^--/;
253
      next if !/^--\s*\@(?:charset|encoding):\s*(.+)/;
254
      $file_charset = $1;
255
      last;
256
    }
257
    $fh->seek(0, SEEK_SET);
258
  }
259

  
260
  my $contents = join "", <$fh>;
261
  $fh->close();
245
  $dbh->begin_work;
262 246

  
263
  $db_charset ||= Common::DEFAULT_CHARSET;
264

  
265
  my $iconv = SL::Iconv->new($file_charset, $db_charset);
266

  
267
  $dbh->begin_work();
268

  
269
  # setup dbup_ export vars
270
  my %dbup_myconfig = ();
271
  map({ $dbup_myconfig{$_} = $form->{$_}; } qw(dbname dbuser dbpasswd dbhost dbport dbconnect));
272

  
273
  my $dbup_locale = $::locale;
274

  
275
  my $result = eval($contents);
247
  # setup dbup_ export vars & run script
248
  my %dbup_myconfig = map { ($_ => $::form->{$_}) } qw(dbname dbuser dbpasswd dbhost dbport dbconnect);
249
  my $result        = SL::DBUpgrade2::Base::execute_script(
250
    file_name => $filename,
251
    tag       => $version_or_control->{tag},
252
    dbh       => $dbh,
253
    locale    => $::locale,
254
    myconfig  => \%dbup_myconfig,
255
  );
276 256

  
277 257
  if (1 != $result) {
278 258
    $dbh->rollback();
......
280 260
  }
281 261

  
282 262
  if (!defined($result)) {
283
    print $form->parse_html_template("dbupgrade/error",
284
                                     { "file"  => $filename,
285
                                       "error" => $@ });
263
    print $::form->parse_html_template("dbupgrade/error", { file  => $filename, error => $@ });
286 264
    ::end_of_request();
287 265
  } elsif (1 != $result) {
288 266
    unlink("users/nologin") if (2 == $result);
......
290 268
  }
291 269

  
292 270
  if (ref($version_or_control) eq "HASH") {
293
    $dbh->do("INSERT INTO " . $self->{schema} . "schema_info (tag, login) VALUES (" . $dbh->quote($version_or_control->{"tag"}) . ", " . $dbh->quote($form->{"login"}) . ")");
271
    $dbh->do("INSERT INTO " . $self->{schema} . "schema_info (tag, login) VALUES (" . $dbh->quote($version_or_control->{tag}) . ", " . $dbh->quote($::form->{login}) . ")");
294 272
  } elsif ($version_or_control) {
295 273
    $dbh->do("UPDATE defaults SET version = " . $dbh->quote($version_or_control));
296 274
  }
SL/DBUpgrade2/Base.pm
1
package SL::DBUpgrade2::Base;
2

  
3
use strict;
4

  
5
use parent qw(Rose::Object);
6

  
7
use English qw(-no_match_vars);
8
use Rose::Object::MakeMethods::Generic (
9
  scalar => [ qw(dbh myconfig) ],
10
);
11

  
12
use SL::DBUtils;
13

  
14
sub execute_script {
15
  my (%params) = @_;
16

  
17
  my $file_name = delete $params{file_name};
18

  
19
  if (!eval { require $file_name }) {
20
    delete $INC{$file_name};
21
    die $EVAL_ERROR;
22
  }
23

  
24
  my $package =  delete $params{tag};
25
  $package    =~ s/[^a-zA-Z0-9_]+/_/g;
26
  $package    =  "SL::DBUpgrade2::${package}";
27

  
28
  $package->new(%params)->run;
29
}
30

  
31
sub db_error {
32
  my ($self, $msg) = @_;
33

  
34
  die $self->locale->text("Database update error:") . "<br>$msg<br>" . $DBI::errstr;
35
}
36

  
37
sub db_query {
38
  my ($self, $query, $may_fail) = @_;
39

  
40
  return if $self->dbh->do($query);
41

  
42
  $self->db_error($query) unless $may_fail;
43

  
44
  $self->dbh->rollback;
45
  $self->dbh->begin_work;
46
}
47

  
48
sub check_coa {
49
  my ($self, $wanted_coa) = @_;
50

  
51
  my ($have_coa)          = selectrow_query($::form, $self->dbh, q{ SELECT count(*) FROM defaults WHERE coa = ? }, $wanted_coa);
52

  
53
  return $have_coa;
54
}
55

  
56
sub is_coa_empty {
57
  my ($self) = @_;
58

  
59
  my $query = q{ SELECT count(*)
60
                 FROM ar, ap, gl, invoice, acc_trans, customer, vendor, parts
61
               };
62
  my ($empty) = selectrow_query($::form, $self->dbh, $query);
63

  
64
  return !$empty;
65
}
66

  
67
1;
68
__END__
69

  
70
=pod
71

  
72
=encoding utf8
73

  
74
=head1 NAME
75

  
76
SL::DBUpgrade2::Base - Base class for Perl-based database upgrade files
77

  
78
=head1 OVERVIEW
79

  
80
Database scripts written in Perl must be derived from this class and
81
provide a method called C<run>.
82

  
83
The functions in this base class offer functionality for the upgrade
84
scripts.
85

  
86
=head1 PROPERTIES
87

  
88
The following properties (which can be accessed with
89
C<$self-E<gt>property_name>) are available to the database upgrade
90
script:
91

  
92
=over 4
93

  
94
=item C<dbh>
95

  
96
The database handle; an Instance of L<DBI>. It is connected, and a
97
transaction has been started right before the script (the method
98
L</run>)) was executed.
99

  
100
=item C<myconfig>
101

  
102
The stripped-down version of the C<%::myconfig> hash: this hash
103
reference only contains the database connection parameters applying to
104
the current database.
105

  
106
=back
107

  
108

  
109
=head1 FUNCTIONS
110

  
111
=over 4
112

  
113
=item C<check_coa $coa_name>
114

  
115
Returns trueish if the database uses the chart of accounts named
116
C<$coa_name>.
117

  
118
=item C<db_error $message>
119

  
120
Outputs an error message C<$message> to the user and aborts execution.
121

  
122
=item C<db_query $query, $may_fail>
123

  
124
Executes an SQL query. What the method does if the query fails depends
125
on C<$may_fail>. If it is falsish then the method will simply die
126
outputting the error message via L</db_error>. If C<$may_fail> is
127
trueish then the current transaction will be rolled back, a new one
128
will be started
129

  
130
=item C<execute_script>
131

  
132
Executes a named database upgrade script. This function is not
133
supposed to be called from an upgrade script. Instead, the upgrade
134
manager L<SL::DBUpgrade2> uses it in order to execute the actual
135
database upgrade scripts.
136

  
137
=item C<is_coa_empty>
138

  
139
Returns trueish if no transactions have been recorded in the table
140
C<acc_trans> yet.
141

  
142
=item C<run>
143

  
144
This method is the entry point for the actual upgrade. Each upgrade
145
script must provide this method.
146

  
147
=back
148

  
149
=head1 BUGS
150

  
151
Nothing here yet.
152

  
153
=head1 AUTHOR
154

  
155
Moritz Bunkus E<lt>m.bunkus@linet-services.deE<gt>
156

  
157
=cut
sql/Pg-upgrade2-auth/auth_schema_normalization_1.pl
1
#!/usr/bin/perl
2 1
# @tag: auth_schema_normalization_1
3 2
# @description: Auth-Datenbankschema Normalisierungen Teil 1
4 3
# @depends:
4
package SL::DBUpgrade2::auth_schema_normalization_1;
5 5

  
6 6
use strict;
7
use utf8;
8

  
9
use parent qw(SL::DBUpgrade2::Base);
7 10

  
8 11
sub do_one {
9
  my ($dbh, $query) = @_;
12
  my ($self, $query) = @_;
10 13

  
11
  if ($dbh->do($query)) {
12
    $dbh->commit();
14
  if ($self->dbh->do($query)) {
15
    $self->dbh->commit();
13 16
  } else {
14
    $dbh->rollback();
17
    $self->dbh->rollback();
15 18
  }
16 19
}
17 20

  
18
sub do_all {
19
  my $dbh = $::auth->dbconnect();
21
sub run {
22
  my ($self) = @_;
23

  
24
  $self->dbh($::auth->dbconnect);
20 25

  
21 26
  my @queries = ( qq|ALTER TABLE auth.group_rights ADD PRIMARY KEY (group_id, "right");|,
22 27
                  qq|ALTER TABLE auth.user_config  ADD PRIMARY KEY (user_id,  cfg_key);|,
23 28
                  qq|ALTER TABLE auth.user_group   ADD PRIMARY KEY (user_id,  group_id);|);
24 29

  
25
  do_one($dbh, $_) for @queries;
30
  $self->do_one($_) for @queries;
26 31
}
27 32

  
28
do_all();
29

  
30 33
1;
sql/Pg-upgrade2/SKR04-3804-addition.pl
1 1
# @tag: SKR04-3804-addition
2 2
# @description: Konto 3804 zu SKR04 hinzufügen: Umsatzsteuer 19% für Steuerschlüssel 13 (Umsatzsteuer aus EG-Erwerb)
3 3
# @depends:
4
# @charset: UTF-8
4
package SL::DBUpgrade2::SKR04_3804_addition;
5 5

  
6 6
use utf8;
7 7
use strict;
8 8

  
9
die("This script cannot be run from the command line.") unless ($main::form);
10

  
11
sub mydberror {
12
  my ($msg) = @_;
13
  die($dbup_locale->text("Database update error:") . "<br>$msg<br>" . $DBI::errstr);
14
}
15

  
16
sub do_query {
17
  my ($query, $may_fail) = @_;
18

  
19
  if (!$dbh->do($query)) {
20
    mydberror($query) unless ($may_fail);
21
    $dbh->rollback();
22
    $dbh->begin_work();
23
  }
24
}
9
use parent qw(SL::DBUpgrade2::Base);
25 10

  
26

  
27
sub do_update {
11
sub run {
12
  my ($self) = @_;
28 13

  
29 14
  # 1. Überprüfen ob Kontenrahmen SKR04 ist, wenn nicht alles überspringen
30
  my ($kontenrahmen) = $dbh->selectrow_array("select coa from defaults");
15
  my ($kontenrahmen) = $self->dbh->selectrow_array("select coa from defaults");
31 16

  
32 17
  unless ( $kontenrahmen eq 'Germany-DATEV-SKR04EU' ) {
33 18
    print "Kontenrahmen ist nicht SKR04, &uuml;berspringen<br>";
......
39 24
  # mit der falschen MwSt (16%) gebucht worden, wenn dies nicht manuell
40 25
  # geändert worden ist
41 26

  
42
  my ($anzahl_buchungen) = $dbh->selectrow_array("select count (*) from acc_trans where taxkey=13 and transdate >= '2007-01-01';");
27
  my ($anzahl_buchungen) = $self->dbh->selectrow_array("select count (*) from acc_trans where taxkey=13 and transdate >= '2007-01-01';");
43 28
  if ( $anzahl_buchungen > 0 ) {
44
    if ($main::form->{bookings_exist} ) {
29
    if ($::form->{bookings_exist} ) {
45 30
      # Benutzer hat Meldung bestätigt
46 31
      print "Buchungen nach dem 01.01.2007 existierten, Upgrade &uuml;berspringen";
47
      return 1;  
48
    } else {
49
      # Meldung anzeigen und auf Rückgabe warten
50
      print_past_booking_warning();
51
      return 2;
52
    };
53
  } else {  # es gibt keine Buchungen mit taxkey 13 nach 01.01.2007
54
  
55
    # prüfen ob Konto 3804 schon existiert
56
    my ($konto_existiert) = $dbh->selectrow_array("select count (*) from chart where accno = '3804'");
57
    if ( $konto_existiert ) {
58
      # 3804 existiert, wir gehen davon aus, daß der Benutzer das Konto schon selber angelegt hat und
59
      # ordnungsgemäß benutzt
60

  
61
      if ($main::form->{account_exists} ) {
32
      return 1;
33
    }
34

  
35
    # Meldung anzeigen und auf Rückgabe warten
36
    print_past_booking_warning();
37
    return 2;
38
  }
39

  
40
  # es gibt keine Buchungen mit taxkey 13 nach 01.01.2007
41

  
42
  # prüfen ob Konto 3804 schon existiert
43
  my ($konto_existiert) = $self->dbh->selectrow_array("select count (*) from chart where accno = '3804'");
44
  if ( $konto_existiert ) {
45
    # 3804 existiert, wir gehen davon aus, daß der Benutzer das Konto schon selber angelegt hat und
46
    # ordnungsgemäß benutzt
47

  
48
    if ($::form->{account_exists} ) {
62 49
      # Benutzer hat Meldung bestätigt
63
        print "Konto existiert, Upgrade &uuml;berspringen\n";
64
        return 1;  
65
      } else {
66
        # Meldung anzeigen und auf Rückgabe warten
67
        print_3804_already_exists();
68
        return 2;
69
      };
70
    } else {
50
      print "Konto existiert, Upgrade &uuml;berspringen\n";
51
      return 1;
52
    }
53

  
54
    # Meldung anzeigen und auf Rückgabe warten
55
    print_3804_already_exists();
56
    return 2;
57
  }
71 58

  
72 59
    # noch keine Buchungen mit taxkey 13 und Konto 3804 existiert noch nicht,
73 60
    # also legen wir es an und machen noch die nötigen Einstellungen in tax und
74 61
    # taxkeys
75 62

  
76
        my $insert_chart = <<SQL;
63
  my $insert_chart = <<SQL;
77 64
INSERT INTO chart (
78 65
  accno, description,
79 66
  charttype,   category,  link,
......
89 76
);
90 77
SQL
91 78

  
92
        do_query($insert_chart);
93

  
94
        my $konto_anlegen = $dbh->prepare($insert_chart) || mydberror($insert_chart);
95

  
79
  $self->db_query($insert_chart);
96 80

  
97
        # 13-1 (16%) korrigieren:
98
        my $edit_taxkey_13 = qq|UPDATE tax SET taxdescription = 'Steuerpflichtige EG-Lieferung zum vollen Steuersatz', rate = '0.16', chart_id = (select id FROM chart where accno = '3803'), taxnumber = 3803 WHERE taxkey = '13'|;
99
        do_query($edit_taxkey_13);
81
  my $konto_anlegen = $self->dbh->prepare($insert_chart) || $self->db_error($insert_chart);
100 82

  
101
        # Sicherstellen, daß 3803 die richtige Bezeichnung hat
102
        my $update_3803 = qq|update chart set description = 'Umsatzsteuer aus EG-Erwerb 16%' where accno = '3803'|;
103
        do_query($update_3803);
83
  # 13-1 (16%) korrigieren:
84
  my $edit_taxkey_13 = qq|UPDATE tax SET taxdescription = 'Steuerpflichtige EG-Lieferung zum vollen Steuersatz', rate = '0.16', chart_id = (select id FROM chart where accno = '3803'), taxnumber = 3803 WHERE taxkey = '13'|;
85
  $self->db_query($edit_taxkey_13);
104 86

  
105
        # Zweiter  Eintrag für taxkey 13 in key: 19%
106
        my $insert_taxkey_13_2 = qq|INSERT INTO tax ( taxkey, taxdescription, rate, chart_id, taxnumber ) VALUES ('13', 'Steuerpflichtige EG-Lieferung zum vollen Steuersatz', '0.19', (select id from chart where accno = '3804'), '3804')|;
87
  # Sicherstellen, daß 3803 die richtige Bezeichnung hat
88
  my $update_3803 = qq|update chart set description = 'Umsatzsteuer aus EG-Erwerb 16%' where accno = '3803'|;
89
  $self->db_query($update_3803);
107 90

  
108
        do_query($insert_taxkey_13_2);
91
  # Zweiter  Eintrag für taxkey 13 in key: 19%
92
  my $insert_taxkey_13_2 = qq|INSERT INTO tax ( taxkey, taxdescription, rate, chart_id, taxnumber ) VALUES ('13', 'Steuerpflichtige EG-Lieferung zum vollen Steuersatz', '0.19', (select id from chart where accno = '3804'), '3804')|;
109 93

  
110
        # alle Konten finden, bei denen 3803 das Steuerautomatikkonto ist,
111
        # und dort den zweiten Eintrag ab 1.1.2007 für 19% einstellen
112
        my $sth_query  = $dbh->prepare(qq|select c.id from chart c join taxkeys t on (c.id = t.chart_id) where tax_id = (select id from tax where taxnumber = '3803')|);
113
        my $sth_insert = $dbh->prepare(qq|INSERT INTO taxkeys ( taxkey_id, chart_id, tax_id, pos_ustva, startdate )
114
                                                       VALUES (13, ?, (select id from tax where taxkey = 13 and rate = '0.19'),
115
            (select pos_ustva from taxkeys where tax_id = (select id from tax where taxnumber = '3803') and pos_ustva > 0 limit 1),
116
            '01.01.2007')|);
117
        $sth_query->execute();
94
  $self->db_query($insert_taxkey_13_2);
118 95

  
119
        while (my $ref = $sth_query->fetchrow_hashref()) {
120
          $sth_insert->execute($ref->{id});
121
        }
122
        $sth_query->finish();
123
        $sth_insert->finish();
96
  # alle Konten finden, bei denen 3803 das Steuerautomatikkonto ist,
97
  # und dort den zweiten Eintrag ab 1.1.2007 für 19% einstellen
98
  my $sth_query  = $self->dbh->prepare(qq|select c.id from chart c join taxkeys t on (c.id = t.chart_id) where tax_id = (select id from tax where taxnumber = '3803')|);
99
  my $sth_insert = $self->dbh->prepare(<<SQL);
100
    INSERT INTO taxkeys ( taxkey_id, chart_id, tax_id, pos_ustva, startdate )
101
    VALUES              ( 13, ?, (select id from tax where taxkey = 13 and rate = '0.19'),
102
                          (SELECT pos_ustva FROM taxkeys WHERE tax_id = (SELECT id FROM tax WHERE taxnumber = '3803') AND pos_ustva > 0 LIMIT 1),
103
                         '01.01.2007' )
104
SQL
105
  $sth_query->execute;
124 106

  
125
      }; # end code update
126
  }; # end check if 3804 exists
107
  while (my $ref = $sth_query->fetchrow_hashref) {
108
    $sth_insert->execute($ref->{id});
109
  }
110
  $sth_query->finish;
111
  $sth_insert->finish;
127 112

  
128
}; # end do_update
113
} # end run
129 114

  
130 115
sub print_past_booking_warning {
131
  print $main::form->parse_html_template("dbupgrade/SKR04_3804_update");
132
};
116
  print $::form->parse_html_template("dbupgrade/SKR04_3804_update");
117
}
118

  
133 119
sub print_3804_already_exists {
134
  print $main::form->parse_html_template("dbupgrade/SKR04_3804_already_exists");
135
};
120
  print $::form->parse_html_template("dbupgrade/SKR04_3804_already_exists");
121
}
136 122

  
137
return do_update();
123
1;
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;
sql/Pg-upgrade2/USTVA_at.pl
1 1
# @tag: USTVA_at
2 2
# @description: USTVA Report Daten fuer Oesterreich. Vielen Dank an Gerhard Winkler..
3 3
# @depends: USTVA_abstraction
4
package SL::DBUpgrade2::USTVA_at;
4 5

  
5 6
use strict;
7
use utf8;
6 8

  
7
use SL::DBUtils;
9
use parent qw(SL::DBUpgrade2::Base);
8 10

  
9
unless ( $main::form ) {
10
  die("This script cannot be run from the command line.");
11
}
11
sub run {
12
  my ($self) = @_;
12 13

  
13
if ( check_coa('Austria') ){
14

  
15
  if ( coa_is_empty() )  {
16
    print qq|Eine leere Datenbank mit Kontenrahmen ?sterreich vorgefunden. <br />
17
             Die Aktualisierungen werden eingespielt...<br />
18
             <b>Achtung: Dieses Update ist ungetestet und bedarf weiterer Konfiguration</b>|;
19

  
20
    return 1
21
      && clear_tables(( 'tax.report_variables', 'tax.report_headings',
22
                        'tax.report_categorys', 'taxkeys',
23
                        'tax',                  'chart',
24
                        'buchungsgruppen',
25
                     ))
26
      && do_copy_tax_report_structure()
27
      && do_insert_chart()
28
      && do_insert_tax()
29
      && do_insert_taxkeys()
30
      && do_insert_buchungsgruppen()
31
    ;
14
  if (!$self->check_coa('Austria')) {
15
    print qq|Nichts zu tun in diesem Kontenrahmen.|;
16
    return 1;
32 17
  }
33
  else {
34
    print qq|Eine ?sterreichische Datenbank in der bereits Buchungss?tze enthalten sind, kann nicht aktualisiert werden.<br />
18

  
19
  if (!$self->is_coa_empty)  {
20
    print qq|Eine österreichische Datenbank in der bereits Buchungssätze enthalten sind, kann nicht aktualisiert werden.<br />
35 21
             Bitte eine neue Datenbank mit Kontenrahmen 'Austria' anlegen.|;
36 22
    return 1;
37 23
  }
38 24

  
25
  print qq|Eine leere Datenbank mit Kontenrahmen Österreich vorgefunden. <br />
26
           Die Aktualisierungen werden eingespielt...<br />
27
           <b>Achtung: Dieses Update ist ungetestet und bedarf weiterer Konfiguration</b>|;
28

  
29
  return
30
       $self->clear_tables('tax.report_variables', 'tax.report_headings',
31
                           'tax.report_categorys', 'taxkeys',
32
                           'tax',                  'chart',
33
                           'buchungsgruppen')
34
    && $self->do_copy_tax_report_structure()
35
    && $self->do_insert_chart()
36
    && $self->do_insert_tax()
37
    && $self->do_insert_taxkeys()
38
    && $self->do_insert_buchungsgruppen()
39
      ;
39 40
}
40
else {
41
  print qq|Nichts zu tun in diesem Kontenrahmen.|;
42
  return 1;
43
}
44

  
45
return 0;
46

  
47
######################################################
48

  
49
sub mydberror {
50
  my ($msg) = @_;
51
  die($dbup_locale->text("Database update error:") .
52
      "<br>$msg<br>" . $DBI::errstr);
53
}
54

  
55
sub do_query {
56
  my ($query, $may_fail) = @_;
57

  
58
  if (!$dbh->do($query)) {
59
    mydberror($query) unless ($may_fail);
60
    $dbh->rollback();
61
    $dbh->begin_work();
62
  }
63
}
64

  
65 41

  
66 42
sub clear_tables {
67

  
68
  my @clear = @_;
43
  my ($self, @clear) = @_;
69 44

  
70 45
  my @queries = (
71 46
      q{ DELETE FROM tax.report_categorys; },
......
73 48
      q{ DELETE FROM tax.report_variables; },
74 49
  );
75 50

  
76
  map({ do_query("DELETE FROM $_ ;", 0); } @clear);
51
  map({ $self->db_query("DELETE FROM $_ ;", 0); } @clear);
77 52

  
78 53
  return 1;
79 54

  
80 55
}
81 56

  
82
sub check_coa {
83

  
84
  my ( $want_coa ) = @_;
85

  
86
  my $query = q{ SELECT count(*) FROM defaults WHERE coa = ? };
87
  my ($have_coa) = selectrow_query($main::form, $dbh, $query, $want_coa);
88

  
89
  return $have_coa;
90

  
91
}
92

  
93
sub coa_is_empty {
94

  
95
  my $query = q{ SELECT count(*)
96
                 FROM ar, ap, gl, invoice, acc_trans, customer, vendor, parts
97
               };
98
  my ($empty) = selectrow_query($main::form, $dbh, $query);
99

  
100
  $empty = !$empty;
101

  
102
  return $empty;
103
}
104

  
105

  
106 57
sub do_copy_tax_report_structure {
58
  my ($self) = @_;
107 59

  
108 60
  my @queries = (
109 61
        "INSERT INTO tax.report_categorys (id, description, subdescription) VALUES (0, NULL, NULL)",
110 62
        "INSERT INTO tax.report_headings (id, category_id, type, description, subdescription) VALUES (0, 0, NULL, NULL, NULL)",
111 63
  );
112 64

  
113
  map({ do_query($_); } @queries);
65
  map({ $self->db_query($_); } @queries);
114 66

  
115 67

  
116 68
  my @copy_statements = (
......
120 72

  
121 73
  my @copy_data = (
122 74
    [
123
      "1;000;0;a) Gesamtbetrag der Bemessungsgrundlage f?r Lieferungen und sonstige Leistungen (ohne den nachstehend angef?hrten Eigenverbrauch) einschlie?lich Anzahlungen (jeweils ohne Umsatzsteuer);2;1970-01-01",
124
      "2;001;0;zuz?glich Eigenverbrauch (?1 Abs. 1 Z 2, ? 3 Abs. 2 und ? 3a Abs. 1a);2;1970-01-01",
125
      "3;021;0;abz?glich Ums?tze f?r die die Steuerschuld gem?? ? 19 Abs. 1 zweiter Satz sowie gem?? ? 19 Abs. 1a, Abs. 1b, Abs. 1c auf den Leistungsempf?nger ?bergegangen ist.;2;1970-01-01",
126
      "4;011;0;a) ?6 Abs. 1 Z 1 iVm ? 7 (Ausfuhrlieferungen);2;1970-01-01",
127
      "5;012;0;b) ?6 Abs. 1 Z 1 iVm ? 8 (Lohnveredelungen);2;1970-01-01",
128
      "6;015;0;c) ?6 Abs. 1 Z 2 bis 6 sowie ? 23 Abs. 5 (Seeschifffahrt, Luftfahrt, grenz?berschreitende Personenbef?rderung, Diplomaten, Reisevorleistungen im Drittlandsgebiet usw.);2;1970-01-01",
129
      "7;017;0;d) Art. 6 Abs. 1 (innergemeinschaftliche Lieferungen ohne die nachstehend gesondert anzuf?hrenden Fahrzeuglieferungen);2;1970-01-01",
130
      "8;018;0;e) Art. 6 Abs. 1, sofern Lieferungen neuer Fahrzeuge an Abnehmer ohne UID-Nummer bzw. durch Fahrzeuglieferer gem?? Art. 2 erfolgen.;2;1970-01-01",
131
      "9;019;0;a) ? 6 Abs. 1 Z 9 lit. a (Grundst?cksums?tze);2;1970-01-01",
132
      "10;016;0;b) ?6 Abs. 1 Z 27 (Kleinunternehmer);2;1970-01-01",
133
      "11;020;0;c) ? 6 Abs. 1 Z ___ (?brige steuerfreie Ums?tze ohne Vorsteuerabzug);2;1970-01-01",
75
      "1;000;0;a) Gesamtbetrag der Bemessungsgrundlage für Lieferungen und sonstige Leistungen (ohne den nachstehend angeführten Eigenverbrauch) einschließlich Anzahlungen (jeweils ohne Umsatzsteuer);2;1970-01-01",
76
      "2;001;0;zuzüglich Eigenverbrauch (§1 Abs. 1 Z 2, § 3 Abs. 2 und § 3a Abs. 1a);2;1970-01-01",
77
      "3;021;0;abzüglich Umsätze für die die Steuerschuld gemäß § 19 Abs. 1 zweiter Satz sowie gemäß § 19 Abs. 1a, Abs. 1b, Abs. 1c auf den Leistungsempfänger übergegangen ist.;2;1970-01-01",
78
      "4;011;0;a) §6 Abs. 1 Z 1 iVm § 7 (Ausfuhrlieferungen);2;1970-01-01",
79
      "5;012;0;b) §6 Abs. 1 Z 1 iVm § 8 (Lohnveredelungen);2;1970-01-01",
80
      "6;015;0;c) §6 Abs. 1 Z 2 bis 6 sowie § 23 Abs. 5 (Seeschifffahrt, Luftfahrt, grenzüberschreitende Personenbeförderung, Diplomaten, Reisevorleistungen im Drittlandsgebiet usw.);2;1970-01-01",
81
      "7;017;0;d) Art. 6 Abs. 1 (innergemeinschaftliche Lieferungen ohne die nachstehend gesondert anzuführenden Fahrzeuglieferungen);2;1970-01-01",
82
      "8;018;0;e) Art. 6 Abs. 1, sofern Lieferungen neuer Fahrzeuge an Abnehmer ohne UID-Nummer bzw. durch Fahrzeuglieferer gemäß Art. 2 erfolgen.;2;1970-01-01",
83
      "9;019;0;a) § 6 Abs. 1 Z 9 lit. a (Grundstücksumsätze);2;1970-01-01",
84
      "10;016;0;b) §6 Abs. 1 Z 27 (Kleinunternehmer);2;1970-01-01",
85
      "11;020;0;c) § 6 Abs. 1 Z ___ (übrige steuerfreie Umsätze ohne Vorsteuerabzug);2;1970-01-01",
134 86
      "12;022_links;0;20% Nominalsteuersatz;2;1970-01-01",
135 87
      "13;022_rechts;0;20% Nominalsteuersatz;2;1970-01-01",
136
      "14;029_links;0;10% erm??igter Steuersatz;2;1970-01-01",
137
      "15;029_rechts;0;10% erm??igter Steuersatz;2;1970-01-01",
138
      "16;025_links;0;12% f?r Weinums?tze durch landwirtschaftliche Betriebe;2;1970-01-01",
139
      "17;025_rechts;0;12% f?r Weinums?tze durch landwirtschaftliche Betriebe;2;1970-01-01",
140
      "18;035_links;0;16% f?r Jungholz und Mittelberg;2;1970-01-01",
141
      "19;035_rechts;0;16% f?r Jungholz und Mittelberg;2;1970-01-01",
142
      "20;052_links;0;10% Zusatzsteuer f?r pauschalierte land- und forstwirtschaftliche Betriebe;2;1970-01-01",
143
      "21;052_rechts;0;10% Zusatzsteuer f?r pauschalierte land- und forstwirtschaftliche Betriebe;2;1970-01-01",
144
      "22;038_links;0;8% Zusatzsteuer f?r pauschalierte land- und forstwirtschaftliche Betriebe;2;1970-01-01",
145
      "23;038_rechts;0;8% Zusatzsteuer f?r pauschalierte land- und forstwirtschaftliche Betriebe;2;1970-01-01",
146
      "24;056;0;Steuerschuld gem?? ? 11 Abs. 12 und 14, ? 16 Abs. 2 sowie gem?? Art. 7 Abs. 4;2;1970-01-01",
147
      "25;057;0;Steuerschuld gem?? ? 19 Abs. 1 zweiter Satz, ? 19 Abs. 1c sowie gem?? Art. 25 Abs. 5;2;1970-01-01",
148
      "26;048;0;Steuerschuld gem?? ? 19 Abs. 1a (Bauleistungen);2;1970-01-01",
149
      "27;044;0;Steuerschuld gem?? ? 19 Abs. 1b (Sicherungseigentum, Vorbehaltseigentum und Grundst?cke im Zwangsversteigerungsverfahren);2;1970-01-01",
150
      "28;070;0;Gesamtbetrag der Bemessungsgrundlagen f?r innergemeinschaftliche Erwerbe;2;1970-01-01",
151
      "29;071;0;Davon Steuerfrei gem?? Art. 6 Abs 2;2;1970-01-01",
88
      "14;029_links;0;10% ermäßigter Steuersatz;2;1970-01-01",
89
      "15;029_rechts;0;10% ermäßigter Steuersatz;2;1970-01-01",
90
      "16;025_links;0;12% für Weinumsätze durch landwirtschaftliche Betriebe;2;1970-01-01",
91
      "17;025_rechts;0;12% für Weinumsätze durch landwirtschaftliche Betriebe;2;1970-01-01",
92
      "18;035_links;0;16% für Jungholz und Mittelberg;2;1970-01-01",
93
      "19;035_rechts;0;16% für Jungholz und Mittelberg;2;1970-01-01",
94
      "20;052_links;0;10% Zusatzsteuer für pauschalierte land- und forstwirtschaftliche Betriebe;2;1970-01-01",
95
      "21;052_rechts;0;10% Zusatzsteuer für pauschalierte land- und forstwirtschaftliche Betriebe;2;1970-01-01",
96
      "22;038_links;0;8% Zusatzsteuer für pauschalierte land- und forstwirtschaftliche Betriebe;2;1970-01-01",
97
      "23;038_rechts;0;8% Zusatzsteuer für pauschalierte land- und forstwirtschaftliche Betriebe;2;1970-01-01",
98
      "24;056;0;Steuerschuld gemäß § 11 Abs. 12 und 14, § 16 Abs. 2 sowie gemäß Art. 7 Abs. 4;2;1970-01-01",
99
      "25;057;0;Steuerschuld gemäß § 19 Abs. 1 zweiter Satz, § 19 Abs. 1c sowie gemäß Art. 25 Abs. 5;2;1970-01-01",
100
      "26;048;0;Steuerschuld gemäß § 19 Abs. 1a (Bauleistungen);2;1970-01-01",
101
      "27;044;0;Steuerschuld gemäß § 19 Abs. 1b (Sicherungseigentum, Vorbehaltseigentum und Grundstücke im Zwangsversteigerungsverfahren);2;1970-01-01",
102
      "28;070;0;Gesamtbetrag der Bemessungsgrundlagen für innergemeinschaftliche Erwerbe;2;1970-01-01",
103
      "29;071;0;Davon Steuerfrei gemäß Art. 6 Abs 2;2;1970-01-01",
152 104
      "30;072_links;0;20% Nominalsteuersatz;2;1970-01-01",
153 105
      "31;072_rechts;0;20% Nominalsteuersatz;2;1970-01-01",
154
      "32;073_links;0;10% erm??igter Steuersatz;2;1970-01-01",
155
      "33;073_rechts;0;10% erm??igter Steuersatz;2;1970-01-01",
156
      "34;075_links;0;16% f?r Jungholz und Mittelberg;2;1970-01-01",
157
      "35;075_rechts;0;16% f?r Jungholz und Mittelberg;2;1970-01-01",
158
      "36;076;0;Erwerbe gem?? Art. 3 Abs. 8 zweiter Satz, die im Mitgliedstaat des Bestimmungslandes besteuert worden sind;2;1970-01-01",
159
      "37;077;0;Erwerbe gem?? Art. 3 Abs. 8 zweiter Satz, die gem?? Art. 25 Abs. 2 im Inland als besteuert gelten;2;1970-01-01",
160
      "38;060;0;Gesamtbetrag der Vorsteuern (ohne die nachstehend gesondert anzuf?hrenden Betr?ge);2;1970-01-01",
161
      "39;061;0;Vorsteuern betreffend die entrichtete Einfuhrumsatzsteuer (?12 Abs. 1 Z 2 lit.a);2;1970-01-01",
162
      "40;083;0;Vorsteuern betreffend die am Abgabenkonto verbuchte Einfuhrumsatzsteuer (?12 Abs. 1 Z 2 lit.b);2;1970-01-01",
106
      "32;073_links;0;10% ermäßigter Steuersatz;2;1970-01-01",
107
      "33;073_rechts;0;10% ermäßigter Steuersatz;2;1970-01-01",
108
      "34;075_links;0;16% für Jungholz und Mittelberg;2;1970-01-01",
109
      "35;075_rechts;0;16% für Jungholz und Mittelberg;2;1970-01-01",
110
      "36;076;0;Erwerbe gemäß Art. 3 Abs. 8 zweiter Satz, die im Mitgliedstaat des Bestimmungslandes besteuert worden sind;2;1970-01-01",
111
      "37;077;0;Erwerbe gemäß Art. 3 Abs. 8 zweiter Satz, die gemäß Art. 25 Abs. 2 im Inland als besteuert gelten;2;1970-01-01",
112
      "38;060;0;Gesamtbetrag der Vorsteuern (ohne die nachstehend gesondert anzuführenden Beträge);2;1970-01-01",
113
      "39;061;0;Vorsteuern betreffend die entrichtete Einfuhrumsatzsteuer (§12 Abs. 1 Z 2 lit.a);2;1970-01-01",
114
      "40;083;0;Vorsteuern betreffend die am Abgabenkonto verbuchte Einfuhrumsatzsteuer (§12 Abs. 1 Z 2 lit.b);2;1970-01-01",
163 115
      "41;065;0;Vorsteuern aus dem innergemeinschaftlichen Erwerb;2;1970-01-01",
164
      "42;066;0;Vorsteuern betreffend der Steuerschuld gem?? ? 19 Abs. 1c sowie gem?? Art. 25 Abs. 5;2;1970-01-01",
165
      "43;082;0;Vorsteuern betreffend der Steuerschuld gem?? ? 19 Abs. 1a (Bauleistungen);2;1970-01-01",
166
      "44;087;0;Vorsteuern betreffend die Steuerschuld gem?? ? 19 Abs. 1b (Sicherungseigentum, Vorbehaltseigentum und Grundst?cke im Zwangsversteigerungsverfahren);2;1970-01-01",
167
      "45;064;0;Vorsteuern gem?? ?12 Abs. 16 und Vorsteuern f?r innergemeinschaftliche Lieferungen neuer Fahrzeuge von Fahrzeuglieferanten gem?? Art. 2;2;1970-01-01",
168
      "46;062;0;Davon gem?? ? 12 Abs. 3 iVm Abs. 4 und 5;2;1970-01-01",
169
      "47;063;0;Berichtigung gem?? ? 12 Abs. 10 und 11;2;1970-01-01",
170
      "48;067;0;Berichtigung gem?? ? 16;2;1970-01-01",
116
      "42;066;0;Vorsteuern betreffend der Steuerschuld gemäß § 19 Abs. 1c sowie gemäß Art. 25 Abs. 5;2;1970-01-01",
117
      "43;082;0;Vorsteuern betreffend der Steuerschuld gemäß § 19 Abs. 1a (Bauleistungen);2;1970-01-01",
118
      "44;087;0;Vorsteuern betreffend die Steuerschuld gemäß § 19 Abs. 1b (Sicherungseigentum, Vorbehaltseigentum und Grundstücke im Zwangsversteigerungsverfahren);2;1970-01-01",
119
      "45;064;0;Vorsteuern gemäß §12 Abs. 16 und Vorsteuern für innergemeinschaftliche Lieferungen neuer Fahrzeuge von Fahrzeuglieferanten gemäß Art. 2;2;1970-01-01",
120
      "46;062;0;Davon gemäß § 12 Abs. 3 iVm Abs. 4 und 5;2;1970-01-01",
121
      "47;063;0;Berichtigung gemäß § 12 Abs. 10 und 11;2;1970-01-01",
122
      "48;067;0;Berichtigung gemäß § 16;2;1970-01-01",
171 123
      "49;090;0;Sonstige Berichtigungen;2;1970-01-01",
172 124
      "50;095;0;Zahllast/Gutschrift;2;1970-01-01",
173 125
    ],
174 126
  );
175 127

  
176 128
  for my $statement ( 0 .. $#copy_statements ) {
177
    my $query = $iconv->convert($copy_statements[$statement]);
178
    my $sth   = $dbh->prepare($query) || mydberror($query);
129
    my $query = $copy_statements[$statement];
130
    my $sth   = $self->dbh->prepare($query) || $self->db_error($query);
179 131

  
180 132
    for my $copy_line ( 0 .. $#{$copy_data[$statement]} ) {
181 133
      #print $copy_data[$statement][$copy_line] . "<br />"
182
      $sth->execute(split m/;/, $iconv->convert($copy_data[$statement][$copy_line]), -1) || mydberror($query);
134
      $sth->execute(split m/;/, $copy_data[$statement][$copy_line], -1) || $self->db_error($query);
183 135
    } #/
184 136
    $sth->finish();
185 137
  }
......
187 139
}
188 140

  
189 141
sub do_insert_chart {
142
  my ($self) = @_;
190 143

  
191 144
  my @copy_statements = (
192
      "INSERT INTO chart VALUES (1, '0000', 'AUFWENDUNGEN F?R INGANGSETZEN UND ERWEITERN DES BETRIEBES', 'H', 'A', '', '00', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.276724', NULL, NULL, NULL);",
145
      "INSERT INTO chart VALUES (1, '0000', 'AUFWENDUNGEN FÜR INGANGSETZEN UND ERWEITERN DES BETRIEBES', 'H', 'A', '', '00', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.276724', NULL, NULL, NULL);",
193 146
      "INSERT INTO chart VALUES (2, '0010', 'Firmenwert', 'A', 'A', 'AP_amount', '015', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.28365', NULL, NULL, NULL);",
194
      "INSERT INTO chart VALUES (3, '0100', 'IMMATERIELLE VERM?GENSGEGENST?NDE', 'H', 'A', '', '01', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.288542', NULL, NULL, NULL);",
147
      "INSERT INTO chart VALUES (3, '0100', 'IMMATERIELLE VERMÖGENSGEGENSTÄNDE', 'H', 'A', '', '01', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.288542', NULL, NULL, NULL);",
195 148
      "INSERT INTO chart VALUES (4, '0110', 'Rechte', 'A', 'A', 'AP_amount', '011', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.291937', NULL, NULL, NULL);",
196
      "INSERT INTO chart VALUES (5, '0200', 'GRUNDST?CKE', 'H', 'A', '', '02-03', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.294929', NULL, NULL, NULL);",
197
      "INSERT INTO chart VALUES (6, '0210', 'unbebaute Grundst?cke', 'A', 'A', 'AP_amount', '020', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.297958', NULL, NULL, NULL);",
198
      "INSERT INTO chart VALUES (7, '0220', 'bebaute Grundst?cke', 'A', 'A', 'AP_amount', '021', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.300987', NULL, NULL, NULL);",
199
      "INSERT INTO chart VALUES (8, '0229', 'kum. Abschreibung bebaute Grundst?cke', 'A', 'A', '', '039', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.304114', NULL, NULL, NULL);",
149
      "INSERT INTO chart VALUES (5, '0200', 'GRUNDSTÜCKE', 'H', 'A', '', '02-03', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.294929', NULL, NULL, NULL);",
150
      "INSERT INTO chart VALUES (6, '0210', 'unbebaute Grundstücke', 'A', 'A', 'AP_amount', '020', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.297958', NULL, NULL, NULL);",
151
      "INSERT INTO chart VALUES (7, '0220', 'bebaute Grundstücke', 'A', 'A', 'AP_amount', '021', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.300987', NULL, NULL, NULL);",
152
      "INSERT INTO chart VALUES (8, '0229', 'kum. Abschreibung bebaute Grundstücke', 'A', 'A', '', '039', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.304114', NULL, NULL, NULL);",
200 153
      "INSERT INTO chart VALUES (10, '0410', 'Maschinen', 'A', 'A', 'AP_amount', '041', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.312216', NULL, NULL, NULL);",
201 154
      "INSERT INTO chart VALUES (11, '0419', 'kum. Abschreibung Maschinen', 'A', 'A', '', '069', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.316198', NULL, NULL, NULL);",
202 155
      "INSERT INTO chart VALUES (12, '0500', 'FAHRZEUGE', 'H', 'A', '', '06', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.319978', NULL, NULL, NULL);",
203 156
      "INSERT INTO chart VALUES (13, '0510', 'Fahrzeuge', 'A', 'A', 'AP_amount', '063', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.323002', NULL, NULL, NULL);",
204 157
      "INSERT INTO chart VALUES (14, '0519', 'kum. Abschreibung Fahrzeuge', 'A', 'A', '', '069', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.326041', NULL, NULL, NULL);",
205
      "INSERT INTO chart VALUES (15, '0600', 'BETRIEBS- UND GESCH?FTSAUSSTATTUNG', 'H', 'A', '', '06', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.330691', NULL, NULL, NULL);",
206
      "INSERT INTO chart VALUES (16, '0620', 'B?roeinrichtungen', 'A', 'A', 'AP_amount', '066', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.33373', NULL, NULL, NULL);",
207
      "INSERT INTO chart VALUES (17, '0625', 'kum. Abschreibung Betriebs- und Gesch?ftsausstattung', 'A', 'A', '', '069', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.336939', NULL, NULL, NULL);",
158
      "INSERT INTO chart VALUES (15, '0600', 'BETRIEBS- UND GESCHÄFTSAUSSTATTUNG', 'H', 'A', '', '06', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.330691', NULL, NULL, NULL);",
159
      "INSERT INTO chart VALUES (16, '0620', 'Büroeinrichtungen', 'A', 'A', 'AP_amount', '066', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.33373', NULL, NULL, NULL);",
160
      "INSERT INTO chart VALUES (17, '0625', 'kum. Abschreibung Betriebs- und Geschäftsausstattung', 'A', 'A', '', '069', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.336939', NULL, NULL, NULL);",
208 161
      "INSERT INTO chart VALUES (18, '0700', 'GELEISTETE ANZAHLUNGEN', 'H', 'A', '', '07', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.340614', NULL, NULL, NULL);",
209 162
      "INSERT INTO chart VALUES (19, '0800', 'FINANZANLAGEN', 'H', 'A', '', '08-09', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.3436', NULL, NULL, NULL);",
210 163
      "INSERT INTO chart VALUES (20, '0810', 'Beteiligungen', 'A', 'A', 'AP_amount', '081', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.346638', NULL, NULL, NULL);",
211 164
      "INSERT INTO chart VALUES (21, '0820', 'Wertpapiere', 'A', 'A', 'AP_amount', '080', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.351452', NULL, NULL, NULL);",
212 165
      "INSERT INTO chart VALUES (22, '1100', 'ROHSTOFFE', 'H', 'A', '', '1', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.354419', NULL, NULL, NULL);",
213
      "INSERT INTO chart VALUES (23, '1120', 'Vorr?te - Rohstoffe', 'A', 'A', 'IC', '110-119', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.357447', NULL, NULL, NULL);",
166
      "INSERT INTO chart VALUES (23, '1120', 'Vorräte - Rohstoffe', 'A', 'A', 'IC', '110-119', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.357447', NULL, NULL, NULL);",
214 167
      "INSERT INTO chart VALUES (24, '1200', 'BEZOGENE TEILE', 'H', 'A', '', '1', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.360423', NULL, NULL, NULL);",
215
      "INSERT INTO chart VALUES (25, '1220', 'Vorr?te - bezogene Teile', 'A', 'A', 'IC', '120-129', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.363627', NULL, NULL, NULL);",
168
      "INSERT INTO chart VALUES (25, '1220', 'Vorräte - bezogene Teile', 'A', 'A', 'IC', '120-129', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.363627', NULL, NULL, NULL);",
216 169
      "INSERT INTO chart VALUES (26, '1300', 'HILFS- UND BETRIEBSSTOFFE', 'H', 'A', '', '1', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.368083', NULL, NULL, NULL);",
217 170
      "INSERT INTO chart VALUES (27, '1320', 'Hilfsstoffe', 'A', 'A', 'IC', '130-134', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.372229', NULL, NULL, NULL);",
218 171
      "INSERT INTO chart VALUES (28, '1350', 'Betriebssstoffe', 'A', 'A', 'IC', '135-139', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.375303', NULL, NULL, NULL);",
219 172
      "INSERT INTO chart VALUES (29, '1400', 'UNFERTIGE ERZEUGNISSE', 'H', 'A', '', '1', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.378277', NULL, NULL, NULL);",
220
      "INSERT INTO chart VALUES (30, '1420', 'Vorr?te - unfertige Erzeugnisse', 'A', 'A', 'IC', '140-149', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.381463', NULL, NULL, NULL);",
173
      "INSERT INTO chart VALUES (30, '1420', 'Vorräte - unfertige Erzeugnisse', 'A', 'A', 'IC', '140-149', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.381463', NULL, NULL, NULL);",
221 174
      "INSERT INTO chart VALUES (31, '1500', 'FERTIGE ERZEUGNISSE', 'H', 'A', '', '1', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.384434', NULL, NULL, NULL);",
222
      "INSERT INTO chart VALUES (34, '1540', 'Vorr?te - Gruppe C', 'A', 'A', 'IC', '150-159', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.395426', NULL, NULL, NULL);",
175
      "INSERT INTO chart VALUES (34, '1540', 'Vorräte - Gruppe C', 'A', 'A', 'IC', '150-159', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.395426', NULL, NULL, NULL);",
223 176
      "INSERT INTO chart VALUES (35, '1600', 'WAREN', 'H', 'A', '', '1', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.39872', NULL, NULL, NULL);",
224 177
      "INSERT INTO chart VALUES (36, '1700', 'NOCH NICHT ABGERECHNETE LEISTUNGEN', 'H', 'A', '', '1', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.401807', NULL, NULL, NULL);",
225 178
      "INSERT INTO chart VALUES (37, '1800', 'GELEISTETE ANZAHLUNGEN', 'H', 'A', '', '1', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.404851', NULL, NULL, NULL);",
......
230 183
      "INSERT INTO chart VALUES (43, '2320', 'sonstige Forderungen', 'A', 'A', 'AP_amount', '23-24', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.428868', NULL, NULL, NULL);",
231 184
      "INSERT INTO chart VALUES (44, '2500', 'FORDERUNGEN AUS ABGABENVERRECHNUNG', 'H', 'A', '', '2', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.432042', NULL, NULL, NULL);",
232 185
      "INSERT INTO chart VALUES (46, '2600', 'WERTPAPIERE UND ANTEILE', 'H', 'A', '', '2', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.438205', NULL, NULL, NULL);",
233
      "INSERT INTO chart VALUES (47, '2620', 'Wertpapiere Umlaufverm?gen', 'A', 'A', 'AP_amount', '26', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.441382', NULL, NULL, NULL);",
186
      "INSERT INTO chart VALUES (47, '2620', 'Wertpapiere Umlaufvermögen', 'A', 'A', 'AP_amount', '26', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.441382', NULL, NULL, NULL);",
234 187
      "INSERT INTO chart VALUES (48, '2700', 'KASSABESTAND', 'H', 'A', '', '2', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.444391', NULL, NULL, NULL);",
235 188
      "INSERT INTO chart VALUES (50, '2800', 'SCHECKS, GUTHABEN BEI KREDITINSTITUTEN', 'H', 'A', '', '2', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.45237', NULL, NULL, NULL);",
236 189
      "INSERT INTO chart VALUES (53, '3100', 'LANGFRISTIGE VERBINDLICHKEITEN', 'H', 'L', '', '3', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.461985', NULL, NULL, NULL);",
......
239 192
      "INSERT INTO chart VALUES (58, '3500', 'VERBINDLICHKEITEN FINANZAMT', 'H', 'L', '', '35', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.480487', NULL, NULL, NULL);",
240 193
      "INSERT INTO chart VALUES (105, '7611', 'Reinigungsmaterial', 'A', 'E', 'AP_amount', '', 9, NULL, 11, 3, NULL, false, '2006-01-28 18:22:52.649072', '2006-02-03 15:26:38.591173', NULL, NULL);",
241 194
      "INSERT INTO chart VALUES (163, '7340', 'Reisekosten', 'A', 'E', 'AP_amount', '', 9, NULL, NULL, 3, NULL, false, '2006-02-03 15:38:11.636188', NULL, NULL, NULL);",
242
      "INSERT INTO chart VALUES (74, '4600', 'SONSTIGE ERL?SE', 'H', 'I', '', '4', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.539718', NULL, NULL, NULL);",
195
      "INSERT INTO chart VALUES (74, '4600', 'SONSTIGE ERLÖSE', 'H', 'I', '', '4', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.539718', NULL, NULL, NULL);",
243 196
      "INSERT INTO chart VALUES (95, '7120', 'Grundsteuer', 'A', 'E', '', '', 0, NULL, 12, 3, NULL, false, '2006-01-28 18:22:52.612982', '2006-02-03 15:07:18.076256', NULL, NULL);",
244 197
      "INSERT INTO chart VALUES (94, '7110', 'Ertragssteuern', 'A', 'E', '', '', 0, NULL, 12, 3, NULL, false, '2006-01-28 18:22:52.60961', '2006-02-03 15:07:57.018877', NULL, NULL);",
245 198
      "INSERT INTO chart VALUES (159, '7130', 'Gewerbl. Sozialversicherung', 'A', 'E', 'AP_amount', '', 0, NULL, 12, 3, NULL, false, '2006-02-03 15:16:10.635938', NULL, NULL, NULL);",
......
253 206
      "INSERT INTO chart VALUES (89, '6710', 'freiwilliger Sozialaufwand', 'A', 'E', '', '660-665', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.592541', NULL, NULL, NULL);",
254 207
      "INSERT INTO chart VALUES (90, '7000', 'ABSCHREIBUNGEN', 'H', 'E', '', '7', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.595566', NULL, NULL, NULL);",
255 208
      "INSERT INTO chart VALUES (91, '7010', 'Abschreibungen', 'A', 'E', '', '700', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.598657', NULL, NULL, NULL);",
256
      "INSERT INTO chart VALUES (92, '7020', 'geringwertige Wirtschaftsg?ter', 'A', 'E', 'AP_amount', '701-708', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.601829', NULL, NULL, NULL);",
209
      "INSERT INTO chart VALUES (92, '7020', 'geringwertige Wirtschaftsgüter', 'A', 'E', 'AP_amount', '701-708', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.601829', NULL, NULL, NULL);",
257 210
      "INSERT INTO chart VALUES (93, '7100', 'SONSTIGE STEUERN', 'H', 'E', '', '71', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.604871', NULL, NULL, NULL);",
258 211
      "INSERT INTO chart VALUES (96, '7200', 'INSTANDHALTUNGSAUFWAND', 'H', 'E', '', '7', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.6171', NULL, NULL, NULL);",
259 212
      "INSERT INTO chart VALUES (98, '7300', 'TRANSPORTKOSTEN', 'H', 'L', '', '73', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.623721', NULL, NULL, NULL);",
260 213
      "INSERT INTO chart VALUES (100, '7400', 'MIET-,PACHT-,LEASING-, LIZENZAUFWAND', 'H', 'E', '', '74', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.631869', NULL, NULL, NULL);",
261 214
      "INSERT INTO chart VALUES (113, '7710', 'Sachversicherung', 'A', 'E', 'AP_amount', '', 0, NULL, 13, NULL, NULL, false, '2006-01-28 18:22:52.677258', '2006-02-03 15:19:30.793109', NULL, NULL);",
262 215
      "INSERT INTO chart VALUES (103, '7600', 'VERWALTUNGSKOSTEN', 'H', 'E', '', '76', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.641023', NULL, NULL, NULL);",
263
      "INSERT INTO chart VALUES (161, '7780', 'Beitr?ge zur Berufsvertretung', 'A', 'E', 'AP_amount', '', 0, NULL, NULL, 3, NULL, false, '2006-02-03 15:33:11.055578', NULL, NULL, NULL);",
216
      "INSERT INTO chart VALUES (161, '7780', 'Beiträge zur Berufsvertretung', 'A', 'E', 'AP_amount', '', 0, NULL, NULL, 3, NULL, false, '2006-02-03 15:33:11.055578', NULL, NULL, NULL);",
264 217
      "INSERT INTO chart VALUES (102, '7420', 'Betriebsk. und ant. AfA Garage + Werkst.', 'A', 'E', 'AP_amount', '', 0, NULL, NULL, 3, NULL, false, '2006-01-28 18:22:52.637918', '2006-02-03 15:41:13.126408', NULL, NULL);",
265
      "INSERT INTO chart VALUES (112, '7700', 'VERSICHERUNGEN UND ?BRIGE AUFW?NDUNGEN', 'H', 'E', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.674186', '2006-02-03 15:44:43.301845', NULL, NULL);",
266
      "INSERT INTO chart VALUES (114, '8000', 'FINANZERTR?GE UND FINANZAUFW?NDUNGEN', 'H', 'L', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.680743', '2006-02-03 15:45:08.299546', NULL, NULL);",
267
      "INSERT INTO chart VALUES (33, '1530', 'Vorr?te Gruppe B', 'A', 'A', 'IC', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.392343', '2006-02-03 16:25:53.167131', NULL, NULL);",
218
      "INSERT INTO chart VALUES (112, '7700', 'VERSICHERUNGEN UND ÜBRIGE AUFWÄNDUNGEN', 'H', 'E', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.674186', '2006-02-03 15:44:43.301845', NULL, NULL);",
219
      "INSERT INTO chart VALUES (114, '8000', 'FINANZERTRÄGE UND FINANZAUFWÄNDUNGEN', 'H', 'L', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.680743', '2006-02-03 15:45:08.299546', NULL, NULL);",
220
      "INSERT INTO chart VALUES (33, '1530', 'Vorräte Gruppe B', 'A', 'A', 'IC', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.392343', '2006-02-03 16:25:53.167131', NULL, NULL);",
268 221
      "INSERT INTO chart VALUES (120, '9020', 'nicht einbezahltes Kapital', 'A', 'Q', '', '919', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.700926', NULL, NULL, NULL);",
269
      "INSERT INTO chart VALUES (121, '9200', 'KAPITALR?CKLAGEN', 'H', 'Q', '', '9', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.703925', NULL, NULL, NULL);",
270
      "INSERT INTO chart VALUES (122, '9210', 'freie R?cklage', 'A', 'Q', '', '920-929', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.708819', NULL, NULL, NULL);",
222
      "INSERT INTO chart VALUES (121, '9200', 'KAPITALRÜCKLAGEN', 'H', 'Q', '', '9', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.703925', NULL, NULL, NULL);",
223
      "INSERT INTO chart VALUES (122, '9210', 'freie Rücklage', 'A', 'Q', '', '920-929', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.708819', NULL, NULL, NULL);",
271 224
      "INSERT INTO chart VALUES (123, '9300', 'GEWINN', 'H', 'Q', '', '939', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.712247', NULL, NULL, NULL);",
272 225
      "INSERT INTO chart VALUES (124, '9310', 'Gewinnvortrag Vorjahr', 'A', 'Q', '', '980', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.716177', NULL, NULL, NULL);",
273 226
      "INSERT INTO chart VALUES (125, '9320', 'Jahresgewinn', 'A', 'Q', '', '985', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.719991', NULL, NULL, NULL);",
274
      "INSERT INTO chart VALUES (126, '9400', 'R?CKSTELLUNGEN', 'H', 'L', '', '3', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.723021', NULL, NULL, NULL);",
275
      "INSERT INTO chart VALUES (127, '9420', 'Abfertigungsr?ckstellung', 'A', 'L', '', '300', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.726006', NULL, NULL, NULL);",
276
      "INSERT INTO chart VALUES (128, '9430', 'Urlaubsr?ckstellung', 'A', 'L', '', '304-309', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.730698', NULL, NULL, NULL);",
227
      "INSERT INTO chart VALUES (126, '9400', 'RÜCKSTELLUNGEN', 'H', 'L', '', '3', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.723021', NULL, NULL, NULL);",
228
      "INSERT INTO chart VALUES (127, '9420', 'Abfertigungsrückstellung', 'A', 'L', '', '300', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.726006', NULL, NULL, NULL);",
229
      "INSERT INTO chart VALUES (128, '9430', 'Urlaubsrückstellung', 'A', 'L', '', '304-309', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.730698', NULL, NULL, NULL);",
277 230
      "INSERT INTO chart VALUES (129, '9700', 'EINLAGEN STILLER GESELLSCHAFTER', 'H', 'Q', '', '9', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.73381', NULL, NULL, NULL);",
278 231
      "INSERT INTO chart VALUES (71, '4300', 'UMSATZ DIENSTLEISTUNGEN', 'H', 'I', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.529746', '2006-01-28 18:34:28.843136', NULL, NULL);",
279
      "INSERT INTO chart VALUES (9, '0300', 'BETRIEBS- UND GESCH?FTSGEB?UDE', 'H', 'A', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.308885', '2006-02-02 09:31:17.849895', NULL, NULL);",
232
      "INSERT INTO chart VALUES (9, '0300', 'BETRIEBS- UND GESCHÄFTSGEBÄUDE', 'H', 'A', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.308885', '2006-02-02 09:31:17.849895', NULL, NULL);",
280 233
      "INSERT INTO chart VALUES (45, '2530', 'sonstige Forderungen aus Abgebenverrechnung', 'A', 'A', 'AP_amount', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.435243', '2006-02-02 09:59:42.729713', NULL, NULL);",
281
      "INSERT INTO chart VALUES (67, '4000', 'BETRIEBLICHE ERTR?GE', 'H', 'I', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.513926', '2006-02-02 10:05:21.278993', NULL, NULL);",
282
      "INSERT INTO chart VALUES (75, '4630', 'Erl?se aus Abgang vom Anlageverm?gen', 'A', 'I', 'AR_amount:IC_income', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.542817', '2006-02-02 10:09:41.959462', NULL, NULL);",
283
      "INSERT INTO chart VALUES (131, '4450', 'Erl?sschm?lerung durch Skontoaufwand', 'A', 'I', 'AR_amount', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.740526', '2006-02-02 10:20:51.822294', NULL, NULL);",
284
      "INSERT INTO chart VALUES (144, '4640', 'Ertr?ge aus Abgang vom Anlageverm?gen', 'A', 'I', 'AR_amount:IC_income', '', 0, NULL, NULL, NULL, NULL, false, '2006-02-02 10:24:49.118289', '2006-02-02 10:25:34.716838', NULL, NULL);",
285
      "INSERT INTO chart VALUES (118, '9000', 'KAPITAL, UNVERSTEUERTE R?CKLAGEN, ABSCHLUSS- UND EVIDENZKONTEN', 'H', 'Q', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.694841', '2006-02-02 10:28:27.424046', NULL, NULL);",
234
      "INSERT INTO chart VALUES (67, '4000', 'BETRIEBLICHE ERTRÄGE', 'H', 'I', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.513926', '2006-02-02 10:05:21.278993', NULL, NULL);",
235
      "INSERT INTO chart VALUES (75, '4630', 'Erlöse aus Abgang vom Anlagevermögen', 'A', 'I', 'AR_amount:IC_income', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.542817', '2006-02-02 10:09:41.959462', NULL, NULL);",
236
      "INSERT INTO chart VALUES (131, '4450', 'Erlösschmälerung durch Skontoaufwand', 'A', 'I', 'AR_amount', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.740526', '2006-02-02 10:20:51.822294', NULL, NULL);",
237
      "INSERT INTO chart VALUES (144, '4640', 'Erträge aus Abgang vom Anlagevermögen', 'A', 'I', 'AR_amount:IC_income', '', 0, NULL, NULL, NULL, NULL, false, '2006-02-02 10:24:49.118289', '2006-02-02 10:25:34.716838', NULL, NULL);",
238
      "INSERT INTO chart VALUES (118, '9000', 'KAPITAL, UNVERSTEUERTE RÜCKLAGEN, ABSCHLUSS- UND EVIDENZKONTEN', 'H', 'Q', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.694841', '2006-02-02 10:28:27.424046', NULL, NULL);",
286 239
      "INSERT INTO chart VALUES (147, '9410', 'Privatentnahme', 'A', 'Q', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-02-02 11:52:04.383364', NULL, NULL, NULL);",
287 240
      "INSERT INTO chart VALUES (76, '5000', 'MATERIALAUFWAND', 'H', 'E', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.545768', '2006-02-02 12:02:53.065559', NULL, NULL);",
288 241
      "INSERT INTO chart VALUES (160, '7140', 'Fremdenverkehrsabgabe', 'A', 'E', 'AP_amount', '', 0, NULL, 12, 3, NULL, false, '2006-02-03 15:16:52.380825', NULL, NULL, NULL);",
289 242
      "INSERT INTO chart VALUES (99, '7310', 'Frachtaufwand durch Dritte', 'A', 'E', 'AP_amount:IC_expense', '', 9, NULL, NULL, 3, NULL, false, '2006-01-28 18:22:52.628717', '2006-02-03 15:22:49.082217', NULL, NULL);",
290 243
      "INSERT INTO chart VALUES (152, '7320', 'KFZ-Aufwand', 'A', 'E', 'AP_amount:IC_expense', '', 9, NULL, NULL, 3, NULL, false, '2006-02-02 12:22:18.511562', '2006-02-03 15:23:31.584235', NULL, NULL);",
291 244
      "INSERT INTO chart VALUES (80, '5600', 'VERBRAUCH BRENN- UND TREIBSTOFFE, ENERGIE UND WASSER', 'H', 'I', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.56006', '2006-02-02 12:17:24.198896', NULL, NULL);",
292
      "INSERT INTO chart VALUES (109, '7390', 'Porto und Postgeb?hren', 'A', 'E', 'AP_amount:IC_expense', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.661848', '2006-02-02 12:28:47.456197', NULL, NULL);",
245
      "INSERT INTO chart VALUES (109, '7390', 'Porto und Postgebühren', 'A', 'E', 'AP_amount:IC_expense', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.661848', '2006-02-02 12:28:47.456197', NULL, NULL);",
293 246
      "INSERT INTO chart VALUES (101, '7410', 'Miete und Pachtaufwand', 'A', 'E', 'AP_amount', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.634888', '2006-02-02 12:29:27.184902', NULL, NULL);",
294 247
      "INSERT INTO chart VALUES (107, '7620', 'Zeitungen und Zeitschriften', 'A', 'E', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.655683', '2006-02-02 12:32:43.287819', NULL, NULL);",
295 248
      "INSERT INTO chart VALUES (106, '7670', 'Werbung und Marketing', 'A', 'E', 'AP_amount', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.652584', '2006-02-02 12:33:37.934111', NULL, NULL);",
296
      "INSERT INTO chart VALUES (110, '7680', 'Repr?sentationsaufwand', 'A', 'E', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.665034', '2006-02-02 12:35:16.950252', NULL, NULL);",
249
      "INSERT INTO chart VALUES (110, '7680', 'Repräsentationsaufwand', 'A', 'E', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.665034', '2006-02-02 12:35:16.950252', NULL, NULL);",
297 250
      "INSERT INTO chart VALUES (111, '7750', 'Rechtsberatung', 'A', 'E', 'AP_amount', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.671109', '2006-02-02 12:36:56.116865', NULL, NULL);",
298 251
      "INSERT INTO chart VALUES (153, '7755', 'Steuerberatung', 'A', 'E', 'AP_amount', '', 0, NULL, NULL, NULL, NULL, false, '2006-02-02 12:37:35.558667', NULL, NULL, NULL);",
299
      "INSERT INTO chart VALUES (115, '8280', 'Bankzinsen und Geb?hren', 'A', 'E', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.683783', '2006-02-02 12:41:44.274229', NULL, NULL);",
300
      "INSERT INTO chart VALUES (117, '8110', 'Ertr?ge aus Zinsen', 'A', 'I', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.691802', '2006-02-02 12:42:41.520779', NULL, NULL);",
301
      "INSERT INTO chart VALUES (132, '8050', 'Ertr?ge aus Wertpapieren', 'A', 'E', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.743602', '2006-02-02 12:44:29.033245', NULL, NULL);",
302
      "INSERT INTO chart VALUES (104, '7610', 'B?romaterial', 'A', 'E', 'AP_amount', '', 9, NULL, 11, 3, NULL, false, '2006-01-28 18:22:52.644151', '2006-02-03 15:25:38.53287', NULL, NULL);",
303
      "INSERT INTO chart VALUES (116, '8010', 'Ertr?ge aus Beteiligungen', 'A', 'I', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.688643', '2006-02-02 12:47:19.930787', NULL, NULL);",
304
      "INSERT INTO chart VALUES (119, '9010', 'Kapital, Gesch?ftsanteile', 'A', 'Q', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.69788', '2006-02-02 12:48:41.514201', NULL, NULL);",
252
      "INSERT INTO chart VALUES (115, '8280', 'Bankzinsen und Gebühren', 'A', 'E', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.683783', '2006-02-02 12:41:44.274229', NULL, NULL);",
253
      "INSERT INTO chart VALUES (117, '8110', 'Erträge aus Zinsen', 'A', 'I', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.691802', '2006-02-02 12:42:41.520779', NULL, NULL);",
254
      "INSERT INTO chart VALUES (132, '8050', 'Erträge aus Wertpapieren', 'A', 'E', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.743602', '2006-02-02 12:44:29.033245', NULL, NULL);",
255
      "INSERT INTO chart VALUES (104, '7610', 'Büromaterial', 'A', 'E', 'AP_amount', '', 9, NULL, 11, 3, NULL, false, '2006-01-28 18:22:52.644151', '2006-02-03 15:25:38.53287', NULL, NULL);",
256
      "INSERT INTO chart VALUES (116, '8010', 'Erträge aus Beteiligungen', 'A', 'I', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.688643', '2006-02-02 12:47:19.930787', NULL, NULL);",
257
      "INSERT INTO chart VALUES (119, '9010', 'Kapital, Geschäftsanteile', 'A', 'Q', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.69788', '2006-02-02 12:48:41.514201', NULL, NULL);",
305 258
      "INSERT INTO chart VALUES (108, '7380', 'Telefonkosten, Internetkosten', 'A', 'E', 'AP_amount', '', 9, NULL, 11, 3, NULL, false, '2006-01-28 18:22:52.658721', '2006-02-03 15:24:27.553821', NULL, NULL);",
306
      "INSERT INTO chart VALUES (32, '1520', 'Vorr?te Gruppe A', 'A', 'A', 'IC', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.389168', '2006-02-03 16:26:08.72507', NULL, NULL);",
259
      "INSERT INTO chart VALUES (32, '1520', 'Vorräte Gruppe A', 'A', 'A', 'IC', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.389168', '2006-02-03 16:26:08.72507', NULL, NULL);",
307 260
      "INSERT INTO chart VALUES (52, '2820', 'Bankguthaben', 'A', 'A', 'AR_paid:AP_paid', '', 0, NULL, NULL, 1, NULL, false, '2006-01-28 18:22:52.458922', '2006-02-04 15:00:18.424069', NULL, NULL);",
308
      "INSERT INTO chart VALUES (59, '3550', 'Finanzamt Verrechnung K?rperschaftssteuer', 'A', 'L', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.483655', '2006-02-08 20:09:47.697565', NULL, NULL);",
261
      "INSERT INTO chart VALUES (59, '3550', 'Finanzamt Verrechnung Körperschaftssteuer', 'A', 'L', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.483655', '2006-02-08 20:09:47.697565', NULL, NULL);",
309 262
      "INSERT INTO chart VALUES (60, '3540', 'Finanzamt Verrechnung Umsatzsteuer', 'A', 'L', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.48865', '2006-02-08 20:15:23.622013', NULL, NULL);",
310 263
      "INSERT INTO chart VALUES (78, '5030', 'Warengruppe 1 10 %', 'A', 'E', 'AP_amount:IC_cogs', '', 7, NULL, 4, 2, NULL, false, '2006-01-28 18:22:52.553586', '2006-02-08 20:31:31.539794', NULL, NULL);",
311 264
      "INSERT INTO chart VALUES (79, '5040', 'Warengruppe 2 20%', 'A', 'E', 'AP_amount:IC_cogs', '', 9, NULL, 4, 2, NULL, false, '2006-01-28 18:22:52.55679', '2006-02-03 14:44:38.100283', NULL, NULL);",
312 265
      "INSERT INTO chart VALUES (155, '5210', 'Sonst. Verbrauchsmaterial', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 3, NULL, false, '2006-02-03 14:49:06.01478', '2006-02-03 14:54:51.813269', NULL, NULL);",
313 266
      "INSERT INTO chart VALUES (146, '9850', 'Schlussbilanz', 'A', 'L', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-02-02 10:36:45.059659', '2006-02-02 10:38:05.014595', NULL, NULL);",
314
      "INSERT INTO chart VALUES (150, '5640', 'Verbrauch von sonstigen ?len und Schmierstoffen', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 1, 19, false, '2006-02-02 12:07:52.512006', '2006-02-03 15:01:09.867763', NULL, NULL);",
315
      "INSERT INTO chart VALUES (130, '9810', 'Er?ffnungsbilanz', 'A', 'L', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.736825', '2006-02-02 10:37:49.001565', NULL, NULL);",
267
      "INSERT INTO chart VALUES (150, '5640', 'Verbrauch von sonstigen Ölen und Schmierstoffen', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 1, 19, false, '2006-02-02 12:07:52.512006', '2006-02-03 15:01:09.867763', NULL, NULL);",
268
      "INSERT INTO chart VALUES (130, '9810', 'Eröffnungsbilanz', 'A', 'L', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.736825', '2006-02-02 10:37:49.001565', NULL, NULL);",
316 269
      "INSERT INTO chart VALUES (164, '9800', 'BILANZKONTEN', 'H', 'L', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-03-06 22:23:47.795675', NULL, NULL, NULL);",
317 270
      "INSERT INTO chart VALUES (148, '5620', 'Verbrauch von Treibstoffen (Diesel)', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 2, 17, false, '2006-02-02 11:59:26.297394', '2006-02-03 15:00:02.362976', NULL, NULL);",
318
      "INSERT INTO chart VALUES (149, '5630', 'Verbrauch von Treib- und Schmierstoffen f?r Motors?gen', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 1, 19, false, '2006-02-02 12:01:05.969406', '2006-02-03 15:00:30.512596', NULL, NULL);",
319
      "INSERT INTO chart VALUES (158, '5650', 'gasf?rmige Brennstoffe', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 2, 12, false, '2006-02-03 15:02:36.649746', NULL, NULL, NULL);",
271
      "INSERT INTO chart VALUES (149, '5630', 'Verbrauch von Treib- und Schmierstoffen für Motorsägen', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 1, 19, false, '2006-02-02 12:01:05.969406', '2006-02-03 15:00:30.512596', NULL, NULL);",
272
      "INSERT INTO chart VALUES (158, '5650', 'gasförmige Brennstoffe', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 2, 12, false, '2006-02-03 15:02:36.649746', NULL, NULL, NULL);",
320 273
      "INSERT INTO chart VALUES (156, '5710', 'Warenbezugskosten', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 2, 8, false, '2006-02-03 14:56:21.395879', NULL, NULL, NULL);",
321 274
      "INSERT INTO chart VALUES (157, '5750', 'Fremdarbeit', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 2, NULL, false, '2006-02-03 14:58:23.887944', NULL, NULL, NULL);",
322 275
      "INSERT INTO chart VALUES (154, '5310', 'Arbeitskleidung', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 1, NULL, false, '2006-02-03 14:48:10.349391', '2006-02-03 16:23:46.154559', NULL, NULL);",
323 276
      "INSERT INTO chart VALUES (151, '5510', 'Verbrauchswerkzeug', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 2, NULL, false, '2006-02-02 12:19:18.193535', '2006-02-03 14:51:29.573924', NULL, NULL);",
324 277
      "INSERT INTO chart VALUES (81, '5610', 'Energie (Strom und Wasser)', 'A', 'E', 'AP_amount', '', 9, NULL, 4, 2, NULL, false, '2006-01-28 18:22:52.563249', '2006-02-03 14:59:32.292173', NULL, NULL);",
325 278
      "INSERT INTO chart VALUES (97, '7210', 'Reparatur und Instandhaltung', 'A', 'E', 'AP_amount', '', 9, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.620315', '2006-02-03 15:14:08.186799', NULL, NULL);",
326
      "INSERT INTO chart VALUES (72, '4320', 'Erl?se Beratung', 'A', 'I', 'AR_amount:IC_sale:IC_income', '', 3, 51, 1, 1, 2, false, '2006-01-28 18:22:52.533226', '2006-02-04 23:05:45.241847', NULL, NULL);",
327
      "INSERT INTO chart VALUES (73, '4330', 'Erl?se Programmierung', 'A', 'I', 'AR_amount:IC_sale:IC_income', '', 3, 51, 1, 1, 1, false, '2006-01-28 18:22:52.536409', '2006-02-04 23:06:03.959353', NULL, NULL);",
328
      "INSERT INTO chart VALUES (69, '4030', 'Erl?se - Softwareverkauf', 'A', 'I', 'AR_amount:IC_sale', '', 2, 86, 1, 1, 1, false, '2006-01-28 18:22:52.521819', '2006-02-02 10:06:58.91888', NULL, NULL);",
329
      "INSERT INTO chart VALUES (70, '4040', 'Erl?se - Ersatzteilverkauf', 'A', 'I', 'AR_amount:IC_sale', '', 3, 51, 1, 1, 1, false, '2006-01-28 18:22:52.524987', '2006-02-02 10:07:34.327738', NULL, NULL);",
279
      "INSERT INTO chart VALUES (72, '4320', 'Erlöse Beratung', 'A', 'I', 'AR_amount:IC_sale:IC_income', '', 3, 51, 1, 1, 2, false, '2006-01-28 18:22:52.533226', '2006-02-04 23:05:45.241847', NULL, NULL);",
280
      "INSERT INTO chart VALUES (73, '4330', 'Erlöse Programmierung', 'A', 'I', 'AR_amount:IC_sale:IC_income', '', 3, 51, 1, 1, 1, false, '2006-01-28 18:22:52.536409', '2006-02-04 23:06:03.959353', NULL, NULL);",
281
      "INSERT INTO chart VALUES (69, '4030', 'Erlöse - Softwareverkauf', 'A', 'I', 'AR_amount:IC_sale', '', 2, 86, 1, 1, 1, false, '2006-01-28 18:22:52.521819', '2006-02-02 10:06:58.91888', NULL, NULL);",
282
      "INSERT INTO chart VALUES (70, '4040', 'Erlöse - Ersatzteilverkauf', 'A', 'I', 'AR_amount:IC_sale', '', 3, 51, 1, 1, 1, false, '2006-01-28 18:22:52.524987', '2006-02-02 10:07:34.327738', NULL, NULL);",
330 283
      "INSERT INTO chart VALUES (57, '3310', 'Verbindlichkeiten aus Lieferungen & Leistungen', 'A', 'L', 'AP', '', 0, NULL, NULL, 1, NULL, false, '2006-01-28 18:22:52.477485', '2006-02-02 18:12:21.634302', NULL, NULL);",
331 284
      "INSERT INTO chart VALUES (51, '2810', 'Schecks', 'A', 'A', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.455807', NULL, NULL, NULL);",
332
      "INSERT INTO chart VALUES (55, '3120', 'Kredite von Eigent?mern', 'A', 'L', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.471098', NULL, NULL, NULL);",
285
      "INSERT INTO chart VALUES (55, '3120', 'Kredite von Eigentümern', 'A', 'L', '', '', 0, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.471098', NULL, NULL, NULL);",
333 286
      "INSERT INTO chart VALUES (49, '2710', 'Kassa', 'A', 'A', 'AR_paid', '', 0, NULL, NULL, 1, NULL, false, '2006-01-28 18:22:52.449148', '2006-02-04 14:59:14.410329', NULL, NULL);",
334 287
      "INSERT INTO chart VALUES (77, '5020', 'Warengruppe 0', 'A', 'E', 'IC:IC_cogs:AP_amount', '', 7, NULL, NULL, NULL, 8, false, '2006-01-28 18:22:52.550381', '2006-02-08 20:30:42.871241', NULL, NULL);",
335
      "INSERT INTO chart VALUES (68, '4020', 'Erl?se - Hardwareverkauf', 'A', 'I', 'AR_amount:IC_sale', '', 2, 86, 1, 1, 1, false, '2006-01-28 18:22:52.51796', '2006-02-04 23:05:12.810823', NULL, NULL);",
288
      "INSERT INTO chart VALUES (68, '4020', 'Erlöse - Hardwareverkauf', 'A', 'I', 'AR_amount:IC_sale', '', 2, 86, 1, 1, 1, false, '2006-01-28 18:22:52.51796', '2006-02-04 23:05:12.810823', NULL, NULL);",
336 289
      "INSERT INTO chart VALUES (40, '2010', 'Forderungen Lieferung & Leistung', 'A', 'A', 'AR', '200-207', NULL, NULL, NULL, NULL, NULL, false, '2006-01-28 18:22:52.41697', NULL, NULL, NULL);",
337 290
      "INSERT INTO chart VALUES (65, '2510', 'Vorsteuer 10%', 'A', 'E', 'AR_tax:AP_tax:IC_taxpart:IC_taxservice', NULL, 0, 66, NULL, NULL, NULL, false, '2006-01-28 18:22:52.505337', '2006-02-02 17:38:40.373624', NULL, NULL);",
338 291
      "INSERT INTO chart VALUES (64, '2512', 'Vorsteuer 12%', 'A', 'E', 'AR_tax:AP_tax:IC_taxpart:IC_taxservice', NULL, 0, 66, NULL, NULL, NULL, false, '2006-01-28 18:22:52.502023', '2006-02-08 20:14:19.543049', NULL, NULL);",
......
343 296
      "insert into chart (accno,description,charttype,gifi_accno,category,link) values ('0400','MASCHINEN','H','04-05','A','');",
344 297
      "insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7411','Lizenzen','A','748-749','E','AP_amount');",
345 298
      "insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7631','Internetkosten','A','738-739','E','AP_amount:IC_expense');",
346
      "insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7632','Reise- und Repr?sentationsaufwand','A','734-735','E','');",
347
      "insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7634','Registrierungsgeb?hren','A','748-749','E','AP_amount');",
348
      "insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8020','Bankzinsen und Geb?hren','A','80-83','E','');",
299
      "insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7632','Reise- und Repräsentationsaufwand','A','734-735','E','');",
300
      "insert into chart (accno,description,charttype,gifi_accno,category,link) values ('7634','Registrierungsgebühren','A','748-749','E','AP_amount');",
301
      "insert into chart (accno,description,charttype,gifi_accno,category,link) values ('8020','Bankzinsen und Gebühren','A','80-83','E','');",
349 302

  
350 303

  
351 304
  );
352 305

  
353 306
  for my $statement ( 0 .. $#copy_statements ) {
354
    my $query = $iconv->convert($copy_statements[$statement]);
307
    my $query = $copy_statements[$statement];
355 308
      #print $query . "<br />";  # Diagnose only!
356
      do_query($query, 0);
309
      $self->db_query($query, 0);
357 310
  }
358 311

  
359 312
  return 1;
360 313
}
361 314
sub do_insert_tax {
315
  my ($self) = @_;
362 316

  
363 317
  my @copy_statements = (
364 318
      "INSERT INTO tax (chart_id, taxnumber, taxkey, taxdescription, itime, mtime, rate, id) VALUES (65, '2510', 7, 'Vorsteuer 10%', '2006-01-30 11:08:23.332857', '2006-02-08 20:28:09.63567', 0.10000, 173);",
......
374 328
  );
375 329

  
376 330
  for my $statement ( 0 .. $#copy_statements ) {
377
    my $query = $iconv->convert($copy_statements[$statement]);
331
    my $query = $copy_statements[$statement];
378 332
      #print $query . "<br />";  # Diagnose only!
379
      do_query($query, 0);
333
      $self->db_query($query, 0);
380 334
  }
381 335
  return 1;
382 336
}
383 337

  
384 338
sub do_insert_taxkeys {
339
  my ($self) = @_;
385 340

  
386 341
  my @copy_statements = (
387 342
      "INSERT INTO taxkeys VALUES (230, 69, 177, 2, NULL, '1970-01-01');",
......
496 451
  );
497 452

  
498 453
  for my $statement ( 0 .. $#copy_statements ) {
499
    my $query = $iconv->convert($copy_statements[$statement]);
454
    my $query = $copy_statements[$statement];
500 455
      #print $query . "<br />";  # Diagnose only!
501
      do_query($query, 0);
456
      $self->db_query($query, 0);
502 457
  }
503 458

  
504 459
return 1;
......
506 461
}
507 462

  
508 463
sub do_insert_buchungsgruppen {
464
  my ($self) = @_;
509 465

  
510 466
  my @copy_statements = (
511
      "INSERT INTO buchungsgruppen VALUES (256, 'Erl?se aus Dienstleistungen', 23, 72, 99, 72, 77, 72, 77, 72, 77, 3);",
512
      "INSERT INTO buchungsgruppen VALUES (254, 'Erl?se aus Warenlieferungen', 23, 68, 77, 72, 77, 72, 77, 72, 77, 2);",
513
      "INSERT INTO buchungsgruppen VALUES (255, 'Erl?se aus Dienstleistungen', 23, 72, 77, 72, 77, 72, 77, 72, 77, 1);",
467
      "INSERT INTO buchungsgruppen VALUES (256, 'Erlöse aus Dienstleistungen', 23, 72, 99, 72, 77, 72, 77, 72, 77, 3);",
468
      "INSERT INTO buchungsgruppen VALUES (254, 'Erlöse aus Warenlieferungen', 23, 68, 77, 72, 77, 72, 77, 72, 77, 2);",
469
      "INSERT INTO buchungsgruppen VALUES (255, 'Erlöse aus Dienstleistungen', 23, 72, 77, 72, 77, 72, 77, 72, 77, 1);",
514 470
  );
515 471

  
516 472
  for my $statement ( 0 .. $#copy_statements ) {
517
    my $query = $iconv->convert($copy_statements[$statement]);
473
    my $query = $copy_statements[$statement];
518 474
      #print $query . "<br />";  # Diagnose only!
519
      do_query($query, 0);
475
      $self->db_query($query, 0);
520 476
  }
521 477

  
522
return 1;
478
  return 1;
523 479
}
524 480

  
525

  
526

  
481
1;
sql/Pg-upgrade2/acc_trans_constraints.pl
1 1
# @tag: acc_trans_constraints
2 2
# @description: Fügt NOT-NULL-Constraints ein für die Spalten
3 3
# @depends:
4
# @charset: UTF-8
4
package SL::DBUpgrade2::acc_trans_constraints;
5 5

  
6 6
use utf8;
7 7
use strict;
8 8

  
9
die("This script cannot be run from the command line.") unless ($main::form);
9
use parent qw(SL::DBUpgrade2::Base);
10 10

  
11
sub mydberror {
12
  my ($msg) = @_;
13
  die($dbup_locale->text("Database update error:") . "<br>$msg<br>" . $DBI::errstr);
14
}
15

  
16
sub do_query {
17
  my ($query, $may_fail) = @_;
18

  
19
  if (!$dbh->do($query)) {
20
    mydberror($query) unless ($may_fail);
21
    $dbh->rollback();
22
    $dbh->begin_work();
23
  }
24
}
11
sub run {
12
  my ($self) = @_;
25 13

  
26
sub do_update {
27 14
  my $query = qq|SELECT count(*) FROM acc_trans WHERE chart_id IS NULL|;
28
  my ($no_chart_id) = $dbh->selectrow_array($query);
15
  my ($no_chart_id) = $self->dbh->selectrow_array($query);
29 16
  $query = qq|SELECT count(*) FROM acc_trans WHERE trans_id IS NULL|;
30
  my ($no_trans_id) = $dbh->selectrow_array($query);
17
  my ($no_trans_id) = $self->dbh->selectrow_array($query);
31 18

  
32
  $form->{no_chart_id}=$no_chart_id;
33
  $form->{no_trans_id}=$no_trans_id;
19
  $::form->{no_chart_id}=$no_chart_id;
20
  $::form->{no_trans_id}=$no_trans_id;
34 21

  
35 22
  if ($no_chart_id > 0 or $no_trans_id > 0){
36 23
    #list all invalid transactions where only chart_id is null:
......
97 84
                LEFT JOIN project p ON (p.id=acc.project_id)
98 85
                WHERE acc.chart_id IS NULL;|;
99 86

  
100
    my $sth = $dbh->prepare($query);
101
    $sth->execute || $main::form->dberror($query);
87
    my $sth = $self->dbh->prepare($query);
88
    $sth->execute || $::form->dberror($query);
102 89

  
103
    $main::form->{NO_CHART_ID} = [];
90
    $::form->{NO_CHART_ID} = [];
104 91
    while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
105
      map {$ref->{$_} = $::locale->{iconv_utf8}->convert($ref->{$_})} keys %$ref;
106
      push @{ $main::form->{NO_CHART_ID} }, $ref;
92
      push @{ $::form->{NO_CHART_ID} }, $ref;
107 93
    }
108 94
    $sth->finish;
109 95

  
......
123 109
                LEFT JOIN project p ON (p.id=acc.project_id)
124 110
                WHERE acc.trans_id IS NULL;|;
125 111

  
126
    $sth = $dbh->prepare($query);
127
    $sth->execute || $main::form->dberror($query);
112
    $sth = $self->dbh->prepare($query);
113
    $sth->execute || $::form->dberror($query);
128 114

  
129
    $main::form->{NO_TRANS_ID} = [];
115
    $::form->{NO_TRANS_ID} = [];
130 116
    while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
131
      map {$ref->{$_} = $::locale->{iconv_utf8}->convert($ref->{$_})} keys %$ref;
132 117
      $ref->{category} = ($ref->{category} eq 'A') ? $::locale->text('Account Category A')
133 118
        : ($ref->{category} eq 'E') ? $::locale->text('Account Category E')
134 119
        : ($ref->{category} eq 'L') ? $::locale->text('Account Category L')
......
137 122
        : ($ref->{category} eq 'C') ? $::locale->text('Account Category C')
138 123
        : ($ref->{category} eq 'G') ? $::locale->text('Account Category G')
139 124
        : $::locale->text('Unknown Category') . ': ' . $ref->{category};
140
      push @{ $main::form->{NO_TRANS_ID} }, $ref;
125
      push @{ $::form->{NO_TRANS_ID} }, $ref;
141 126
    }
142 127
    $sth->finish;
143 128

  
......
148 133
  $query = qq|ALTER TABLE acc_trans ALTER COLUMN chart_id SET NOT NULL;|;
149 134
  $query .= qq|ALTER TABLE acc_trans ALTER COLUMN trans_id SET NOT NULL;|;
150 135

  
151
  do_query($query);
136
  $self->db_query($query);
152 137
  return 1;
153 138
}
154 139

  
155 140
sub print_error_message {
156
  print $main::form->parse_html_template("dbupgrade/acc_trans_constraints");
141
  print $::form->parse_html_template("dbupgrade/acc_trans_constraints");
157 142
}
158 143

  
159
return do_update();
144
1;
sql/Pg-upgrade2/acc_trans_id_uniqueness.pl
1 1
# @tag: acc_trans_id_uniqueness
2 2
# @description: Sorgt dafür, dass acc_trans.acc_trans_id eindeutig ist
3 3
# @depends: release_2_6_1
4
# @charset: utf-8
4
package SL::DBUpgrade2::acc_trans_id_uniqueness;
5 5

  
6 6
use utf8;
7 7
use strict;
8
use Data::Dumper;
9 8

  
10
die "This script cannot be run from the command line." unless $::form;
9
use parent qw(SL::DBUpgrade2::Base);
11 10

  
12
sub mydberror {
13
  my ($msg) = @_;
14
  die $dbup_locale->text("Database update error:") . "<br>$msg<br>" . $DBI::errstr;
15
}
16

  
17
sub do_query {
18
  my ($query, $may_fail) = @_;
11
use SL::DBUtils;
19 12

  
20
  return if $dbh->do($query);
21

  
22
  mydberror($query) unless ($may_fail);
23
  $dbh->rollback();
24
  $dbh->begin_work();
25
}
13
sub run {
14
  my ($self) = @_;
26 15

  
27
sub do_update {
28 16
  my $query = <<SQL;
29 17
    SELECT acc_trans_id, trans_id, itime, mtime
30 18
    FROM acc_trans
......
34 22
    ORDER BY trans_id, itime, mtime NULLS FIRST
35 23
SQL
36 24

  
37
  my @entries = selectall_hashref_query($form, $dbh, $query);
25
  my @entries = selectall_hashref_query($::form, $self->dbh, $query);
38 26

  
39 27
  return 1 unless @entries;
40 28

  
......
45 33
    ))
46 34
SQL
47 35

  
48
  do_query($query, 0);
36
  $self->db_query($query, 0);
49 37

  
50 38
  my %skipped_acc_trans_ids;
51 39
  foreach my $entry (@entries) {
......
62 50
          AND (mtime $mtime)
63 51
SQL
64 52

  
65
      do_query($query, 0);
53
      $self->db_query($query, 0);
66 54
    }
67 55
  }
68 56

  
69 57
  return 1;
70 58
}
71 59

  
72
return do_update();
60
1;
sql/Pg-upgrade2/add_more_constraints_fibu_projekt_xplace.pl
1 1
# @tag: add_more_constraints_fibu_projekt_xplace3
2 2
# @description: Falls der Datenbestand es unproblematisch hergibt, ein paar 'schärfere' Constraints für die acc_trans gesetzt. Keine acc_trans-Eintrag ohne trans_id oder chart_id. Ferner project_id in acc_trans als Fremdschlüssel für project definiert.
3 3
# @depends: release_2_6_0 fix_acc_trans_ap_taxkey_bug
4
# @charset: utf-8
4
package SL::DBUpgrade2::add_more_constraints_fibu_projekt_xplace3;
5 5

  
6
use utf8;
7 6
use strict;
8
use Data::Dumper;
9
die("This script cannot be run from the command line.") unless ($main::form);
7
use utf8;
10 8

  
11
sub mydberror {
12
  my ($msg) = @_;
13
  die($dbup_locale->text("Database update error:") .
14
      "<br>$msg<br>" . $DBI::errstr);
15
}
9
use parent qw(SL::DBUpgrade2::Base);
16 10

  
17
sub do_query {
18
  my ($query, $may_fail) = @_;
11
use SL::DBUtils;
19 12

  
20
  if (!$dbh->do($query)) {
21
    mydberror($query) unless ($may_fail);
22
    $dbh->rollback();
23
    $dbh->begin_work();
24
  }
25
}
13
sub run {
14
  my ($self) = @_;
26 15

  
27
sub do_update {
28 16
  my @queries;
29 17

  
30
  # die project_id in der acc_trans ist auch zwingend fremdschlüssel in project 
18
  # die project_id in der acc_trans ist auch zwingend fremdschlüssel in project
31 19
  push @queries, "ALTER TABLE acc_trans ADD FOREIGN KEY (project_id) REFERENCES project(id)";
32 20

  
33 21
  my $query = qq|select count(*) from acc_trans where chart_id is NULL|;
34
  my $sth_all_groups = prepare_execute_query($form, $dbh, $query);
22
  my $sth_all_groups = prepare_execute_query($::form, $self->dbh, $query);
35 23
  while (my $hash_ref = $sth_all_groups->fetchrow_hashref()) {  # Schleife
36 24
    if ($hash_ref->{count} eq 0){
37
      # Falls wir keine alte buggy Installation haben, ist es super die 
25
      # Falls wir keine alte buggy Installation haben, ist es super die
38 26
      # Gewissheit zu haben, dass kein acc_trans-Eintrag ohne chart_id vorhanden ist
39 27
      push @queries, "ALTER TABLE acc_trans ALTER COLUMN chart_id SET NOT NULL";
40 28
    }
41 29
  }
42 30
  $sth_all_groups->finish();
43 31
  my $query = qq|select count(*) from acc_trans where trans_id is NULL|;
44
  my $sth_all_groups = prepare_execute_query($form, $dbh, $query);
32
  my $sth_all_groups = prepare_execute_query($::form, $self->dbh, $query);
45 33
  while (my $hash_ref = $sth_all_groups->fetchrow_hashref()) {  # Schleife
46 34
    if ($hash_ref->{count} eq 0){
47
      # Falls wir keine alte buggy Installation haben, ist es super die 
35
      # Falls wir keine alte buggy Installation haben, ist es super die
48 36
      # Gewissheit zu haben, dass kein acc_trans-Eintrag ohne trans_id vorhanden ist
49 37
      push @queries, "ALTER TABLE acc_trans ALTER COLUMN trans_id SET NOT NULL";
50 38
    }
......
53 41

  
54 42
  # if in doubt use brute force ;-) jb
55 43
  foreach my $query (@queries){
56
    my $sth   = prepare_query($form, $dbh, $query);
57
    do_statement($form,$sth,$query);
44
    my $sth   = prepare_query($::form, $self->dbh, $query);
45
    do_statement($::form,$sth,$query);
58 46
    $sth->finish();
59 47
  }
60
  $dbh ->commit();
48
  $self->dbh ->commit();
... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.

Auch abrufbar als: Unified diff