Perl-Datenbank-Upgradescripte auf Objektorientierung & strict umgestellt
[kivitendo-erp.git] / sql / Pg-upgrade2 / charts_without_taxkey.pl
index 5b7893b..ff95ff0 100644 (file)
@@ -1,64 +1,49 @@
 # @tag: charts_without_taxkey
 # @description: Fügt für jedes Konto, was keinen Steuerschlüssel hat, den Steuerschlüssel 0 hinzu
 # @depends:
-# @charset: UTF-8
+package SL::DBUpgrade2::charts_without_taxkey;
 
-use utf8;
 use strict;
-use SL::Locale;
-
-die("This script cannot be run from the command line.") unless ($main::form);
-
-sub mydberror {
-  my ($msg) = @_;
-  die($dbup_locale->text("Database update error:") . "<br>$msg<br>" . $DBI::errstr);
-}
-
-sub do_query {
-  my ($query, $may_fail) = @_;
+use utf8;
 
-  if (!$dbh->do($query)) {
-    mydberror($query) unless ($may_fail);
-    $dbh->rollback();
-    $dbh->begin_work();
-  }
-}
+use parent qw(SL::DBUpgrade2::Base);
 
+sub run {
+  my ($self) = @_;
 
-sub do_update {
-  my ($taxkey0_with_taxes_exists) = $dbh->selectrow_array("SELECT COUNT(*) FROM tax WHERE taxkey=0 AND NOT rate=0;"); 
+  my ($taxkey0_with_taxes_exists) = $self->dbh->selectrow_array("SELECT COUNT(*) FROM tax WHERE taxkey=0 AND NOT rate=0;");
 
   if ($taxkey0_with_taxes_exists > 0){
     print_error_message();
     return 0;
   }
 
-  my ($taxkey0_exists) = $dbh->selectrow_array("SELECT COUNT(*) FROM tax WHERE taxkey=0");
+  my ($taxkey0_exists) = $self->dbh->selectrow_array("SELECT COUNT(*) FROM tax WHERE taxkey=0");
 
   if ($taxkey0_exists == 0){
     my $insert_taxkey0 = <<SQL;
-INSERT INTO tax 
+INSERT INTO tax
   (rate, taxkey, taxdescription)
   VALUES
   (0, 0, 'Keine Steuer');
 SQL
-    do_query($insert_taxkey0);
+    $self->db_query($insert_taxkey0);
     print $::locale->text("taxkey 0 with taxrate 0 was created.");
   };
-  
+
   my $insert_taxkeys = <<SQL;
-INSERT INTO taxkeys 
-  (chart_id, tax_id, taxkey_id, startdate) 
-  SELECT 
-  c.id, (SELECT id FROM tax WHERE taxkey=0), 0, '1970-01-01' 
+INSERT INTO taxkeys
+  (chart_id, tax_id, taxkey_id, startdate)
+  SELECT
+  c.id, (SELECT id FROM tax WHERE taxkey=0), 0, '1970-01-01'
   FROM chart c WHERE c.id NOT IN (SELECT chart_id FROM taxkeys);
 SQL
-    do_query($insert_taxkeys);
+    $self->db_query($insert_taxkeys);
     return 1;
-}; # end do_update
+} # end run
 
 sub print_error_message {
-  print $main::form->parse_html_template("dbupgrade/taxkey_update");
-};
+  print $::form->parse_html_template("dbupgrade/taxkey_update");
+}
 
-return do_update();
+1;