Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 2b69a6ac

Von Kivitendo Admin vor etwa 10 Jahren hinzugefügt

  • ID 2b69a6ac3bb750d39c4a2534d878b546ff649a35
  • Vorgänger 3f9f158f
  • Nachfolger 3c67b164

Steuerzone: in Upgrade-Datei customer/vendor angepasst

Macht man eigentlich nachträglich nicht, aber da das Update noch so
frisch ist...

Beim Umstellen von taxzone wurde vergessen, auch die Einträge der
Standardsteuerzone bei den Kunden und Lieferanten anzupassen. Im Zuge
der Umstellung, wo bei taxzone keine 0 mehr erlaubt ist, und diese auf 4
umgemapped wurde, müssen auch die hinterlegten Daten bei Kunden und
Lieferanten konvertiert werden.
In diesem Schritt wurden dann auch gleich Fremdschlüssel für die
Steuerzone bei Kunden und Lieferanten angelegt.

Ist das Update schon durchgelaufen und muß man manuell nachbessern wären
dies die Schritte (unter der Voraussetzung, daß id 0 auch zu id 4
geworden ist):

UPDATE customer SET taxzone_id=4 WHERE taxzone_id=0;
UPDATE vendor SET taxzone_id=4 WHERE taxzone_id=0;
ALTER TABLE customer ALTER COLUMN taxzone_id DROP default;
ALTER TABLE vendor ALTER COLUMN taxzone_id DROP default;
ALTER TABLE customer ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id);
ALTER TABLE vendor ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id);

Unterschiede anzeigen:

SL/DB/MetaSetup/Customer.pm
53 53
  taxincluded               => { type => 'boolean' },
54 54
  taxincluded_checked       => { type => 'boolean' },
55 55
  taxnumber                 => { type => 'text' },
56
  taxzone_id                => { type => 'integer', default => '0', not_null => 1 },
56
  taxzone_id                => { type => 'integer', not_null => 1 },
57 57
  terms                     => { type => 'integer', default => '0' },
58 58
  user_password             => { type => 'text' },
59 59
  username                  => { type => 'text' },
......
90 90
    class       => 'SL::DB::PaymentTerm',
91 91
    key_columns => { payment_id => 'id' },
92 92
  },
93

  
94
  taxzone => {
95
    class       => 'SL::DB::TaxZone',
96
    key_columns => { taxzone_id => 'id' },
97
  },
93 98
);
94 99

  
95 100
1;
SL/DB/MetaSetup/Vendor.pm
46 46
  street           => { type => 'text' },
47 47
  taxincluded      => { type => 'boolean' },
48 48
  taxnumber        => { type => 'text' },
49
  taxzone_id       => { type => 'integer', default => '0', not_null => 1 },
49
  taxzone_id       => { type => 'integer', not_null => 1 },
50 50
  terms            => { type => 'integer', default => '0' },
51 51
  user_password    => { type => 'text' },
52 52
  username         => { type => 'text' },
......
85 85
    class       => 'SL::DB::PaymentTerm',
86 86
    key_columns => { payment_id => 'id' },
87 87
  },
88

  
89
  taxzone => {
90
    class       => 'SL::DB::TaxZone',
91
    key_columns => { taxzone_id => 'id' },
92
  },
88 93
);
89 94

  
90 95
1;
sql/Pg-upgrade2/change_taxzone_id_0.pl
30 30
    $query = qq|DELETE FROM tax_zones WHERE id=0|;
31 31
    $self->db_query($query);
32 32

  
33
    #Adapt other tables to the new id:
33
    #Adapt ar/ap and customer/vendor tables to the new taxzone_id
34 34
    $query = qq|UPDATE ar SET taxzone_id=$id WHERE taxzone_id=0|;
35 35
    $self->db_query($query);
36 36

  
37 37
    $query = qq|UPDATE ap SET taxzone_id=$id WHERE taxzone_id=0|;
38 38
    $self->db_query($query);
39

  
40
    $query = qq|UPDATE customer SET taxzone_id=$id WHERE taxzone_id=0|;
41
    $self->db_query($query);
42

  
43
    $query = qq|UPDATE vendor SET taxzone_id=$id WHERE taxzone_id=0|;
44
    $self->db_query($query);
39 45
  }
40 46

  
47
  # Remove default 0 for taxzone_id
48
  $query = qq|ALTER TABLE customer ALTER COLUMN taxzone_id DROP default|;
49
  $self->db_query($query);
50

  
51
  $query = qq|ALTER TABLE vendor ALTER COLUMN taxzone_id DROP default|;
52
  $self->db_query($query);
53

  
41 54
  #Set Constraints:
42 55
  $query = qq|ALTER TABLE ar ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id)|;
43 56
  $self->db_query($query);
......
45 58
  $query = qq|ALTER TABLE ap ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id)|;
46 59
  $self->db_query($query);
47 60

  
61
  $query = qq|ALTER TABLE customer ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id)|;
62
  $self->db_query($query);
63

  
64
  $query = qq|ALTER TABLE vendor ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id)|;
65
  $self->db_query($query);
66

  
48 67
  $sth->finish;
49 68

  
50 69
  return 1;

Auch abrufbar als: Unified diff