Revision f99b7288
Von Niclas Zimmermann vor mehr als 10 Jahren hinzugefügt
sql/Pg-upgrade2/change_taxzone_id_0.pl | ||
---|---|---|
1 |
# @tag: change_taxzone_id_0 |
|
2 |
# @description: Verändert die id von 0 auf einen anderen Wert größer 0 in tax_zones, wenn es so einen Eintrag gibt. |
|
3 |
# @depends: convert_taxzone taxzone_default_id taxzone_sortkey |
|
4 |
package SL::DBUpgrade2::change_taxzone_id_0; |
|
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 $query = qq|SELECT id FROM tax_zones ORDER BY id DESC|; |
|
15 |
my ($id) = $self->dbh->selectrow_array($query); |
|
16 |
$id++; |
|
17 |
|
|
18 |
$query = qq|SELECT * FROM tax_zones WHERE id=0|; |
|
19 |
my $sth = $self->dbh->prepare($query); |
|
20 |
$sth->execute || $::form->dberror($query); |
|
21 |
|
|
22 |
my $ref = $sth->fetchrow_hashref("NAME_lc"); |
|
23 |
|
|
24 |
$query = qq|INSERT INTO tax_zones (id, description, sortkey) VALUES (?,?,?)|; |
|
25 |
$self->db_query($query, bind => [ $id, $ref->{description}, $ref->{sortkey} ]); |
|
26 |
|
|
27 |
$query = qq|UPDATE taxzone_charts SET taxzone_id=$id WHERE taxzone_id=0|; |
|
28 |
$self->db_query($query); |
|
29 |
|
|
30 |
$sth->finish; |
|
31 |
|
|
32 |
$query = qq|DELETE FROM tax_zones WHERE id=0|; |
|
33 |
$self->db_query($query); |
|
34 |
|
|
35 |
return 1; |
|
36 |
} # end run |
|
37 |
|
|
38 |
1; |
Auch abrufbar als: Unified diff
id ungleich Null setzen in tax_zones
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.