From f99b7288d58185a0e88ea78fa8847a6ae60e6c0f Mon Sep 17 00:00:00 2001 From: Niclas Zimmermann Date: Thu, 5 Sep 2013 11:36:36 +0200 Subject: [PATCH] id ungleich Null setzen in tax_zones MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In der Tabelle tax_zones gibt es sehr häufig noch Einträge mit id=0. Dadurch kommt es bei der Anzeige, und auch beim Bearbeiten dieses Eintrags zu fehlern. Dieser Commit vergibt verändert den Wert der id, s.d. die id einen von 0 verschiedenen Wert hat. --- sql/Pg-upgrade2/change_taxzone_id_0.pl | 38 ++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sql/Pg-upgrade2/change_taxzone_id_0.pl diff --git a/sql/Pg-upgrade2/change_taxzone_id_0.pl b/sql/Pg-upgrade2/change_taxzone_id_0.pl new file mode 100644 index 000000000..2afb0539f --- /dev/null +++ b/sql/Pg-upgrade2/change_taxzone_id_0.pl @@ -0,0 +1,38 @@ +# @tag: change_taxzone_id_0 +# @description: Verändert die id von 0 auf einen anderen Wert größer 0 in tax_zones, wenn es so einen Eintrag gibt. +# @depends: convert_taxzone taxzone_default_id taxzone_sortkey +package SL::DBUpgrade2::change_taxzone_id_0; + +use strict; +use utf8; + +use parent qw(SL::DBUpgrade2::Base); + +sub run { + my ($self) = @_; + + my $query = qq|SELECT id FROM tax_zones ORDER BY id DESC|; + my ($id) = $self->dbh->selectrow_array($query); + $id++; + + $query = qq|SELECT * FROM tax_zones WHERE id=0|; + my $sth = $self->dbh->prepare($query); + $sth->execute || $::form->dberror($query); + + my $ref = $sth->fetchrow_hashref("NAME_lc"); + + $query = qq|INSERT INTO tax_zones (id, description, sortkey) VALUES (?,?,?)|; + $self->db_query($query, bind => [ $id, $ref->{description}, $ref->{sortkey} ]); + + $query = qq|UPDATE taxzone_charts SET taxzone_id=$id WHERE taxzone_id=0|; + $self->db_query($query); + + $sth->finish; + + $query = qq|DELETE FROM tax_zones WHERE id=0|; + $self->db_query($query); + + return 1; +} # end run + +1; -- 2.20.1