Release 3.6.1
[kivitendo-erp.git] / sql / Pg-upgrade2 / taxzone_sortkey.pl
1 # @tag: taxzone_sortkey
2 # @description: Setzt eine neue Spalte sortkey in der Datenbank, um Steuerzonen sortierbar zu machen.
3 # @depends: taxzone_charts
4 package SL::DBUpgrade2::taxzone_sortkey;
5
6 use strict;
7 use utf8;
8
9 use SL::DB::Manager::TaxZone;
10
11 use parent qw(SL::DBUpgrade2::Base);
12
13 sub run {
14   my ($self) = @_;
15
16   my $query = qq|ALTER TABLE tax_zones ADD COLUMN sortkey INTEGER|;
17   $self->db_query($query);
18
19   my $sortkey = 1;
20   $query = qq|SELECT * FROM tax_zones ORDER BY id|;
21
22   my $sth = $self->dbh->prepare($query);
23   $sth->execute || $::form->dberror($query);
24
25   while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
26     $self->db_query(qq|UPDATE tax_zones SET sortkey = $sortkey WHERE id = | . $ref->{id});
27     $sortkey++;
28   }
29   $sth->finish;
30
31   $query = qq|ALTER TABLE tax_zones ALTER COLUMN sortkey SET NOT NULL|;
32   $self->db_query($query);
33
34   return 1;
35 } # end run
36
37 1;