b0a703c0329e1b48d75789cb611eafe356f2f2d2
[kivitendo-erp.git] / sql / Pg-upgrade2 / charts_without_taxkey.pl
1 # @tag: charts_without_taxkey
2 # @description: Fügt für jedes Konto, was keinen Steuerschlüssel hat, den Steuerschlüssel 0 hinzu
3 # @depends: release_3_0_0
4 package SL::DBUpgrade2::charts_without_taxkey;
5
6 use strict;
7 use utf8;
8
9 use parent qw(SL::DBUpgrade2::Base);
10
11 sub run {
12   my ($self) = @_;
13
14   my ($taxkey0_with_taxes_exists) = $self->dbh->selectrow_array("SELECT COUNT(*) FROM tax WHERE taxkey=0 AND NOT rate=0;");
15
16   if ($taxkey0_with_taxes_exists > 0){
17     print_error_message();
18     return 0;
19   }
20
21   my ($taxkey0_exists) = $self->dbh->selectrow_array("SELECT COUNT(*) FROM tax WHERE taxkey=0");
22
23   if ($taxkey0_exists == 0){
24     my $insert_taxkey0 = <<SQL;
25 INSERT INTO tax
26   (rate, taxkey, taxdescription)
27   VALUES
28   (0, 0, 'Keine Steuer');
29 SQL
30     $self->db_query($insert_taxkey0);
31 #     print $::locale->text("taxkey 0 with taxrate 0 was created.");
32   };
33
34   my $insert_taxkeys = <<SQL;
35 INSERT INTO taxkeys
36   (chart_id, tax_id, taxkey_id, startdate)
37   SELECT
38   c.id, (SELECT id FROM tax WHERE taxkey=0), 0, '1970-01-01'
39   FROM chart c WHERE c.id NOT IN (SELECT chart_id FROM taxkeys);
40 SQL
41     $self->db_query($insert_taxkeys);
42     return 1;
43 } # end run
44
45 sub print_error_message {
46   print $::form->parse_html_template("dbupgrade/taxkey_update");
47 }
48
49 1;