Steuerzonen und Buchungsgruppen bearbeiten
[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   $self->dbh->commit;
19
20   my $sortkey = 1;
21   $query = qq|SELECT * FROM tax_zones ORDER BY id|;
22
23   my $sth = $self->dbh->prepare($query);
24   $sth->execute || $::form->dberror($query);
25
26   while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
27     $self->db_query(qq|UPDATE tax_zones SET sortkey = $sortkey WHERE id = | . $ref->{id});
28     $sortkey++;
29   }
30   $sth->finish;
31
32   $self->dbh->commit;
33
34   $query = qq|ALTER TABLE tax_zones ALTER COLUMN sortkey SET NOT NULL|;
35   $self->db_query($query);
36
37   return 1;
38 } # end run
39
40 1;