]> wagnertech.de Git - kivitendo-erp.git/commitdiff
Steuerzone: in Upgrade-Datei customer/vendor angepasst
authorG. Richardson <information@kivitendo-premium.de>
Wed, 6 Aug 2014 08:07:46 +0000 (10:07 +0200)
committerG. Richardson <information@kivitendo-premium.de>
Wed, 6 Aug 2014 08:07:46 +0000 (10:07 +0200)
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);

SL/DB/MetaSetup/Customer.pm
SL/DB/MetaSetup/Vendor.pm
sql/Pg-upgrade2/change_taxzone_id_0.pl

index b80211917c6fbe1fdb3da9eba719e8903dfb7371..deab35bfda4d126032ae64e4e04bd60a1661e6cf 100644 (file)
@@ -53,7 +53,7 @@ __PACKAGE__->meta->columns(
   taxincluded               => { type => 'boolean' },
   taxincluded_checked       => { type => 'boolean' },
   taxnumber                 => { type => 'text' },
-  taxzone_id                => { type => 'integer', default => '0', not_null => 1 },
+  taxzone_id                => { type => 'integer', not_null => 1 },
   terms                     => { type => 'integer', default => '0' },
   user_password             => { type => 'text' },
   username                  => { type => 'text' },
@@ -90,6 +90,11 @@ __PACKAGE__->meta->foreign_keys(
     class       => 'SL::DB::PaymentTerm',
     key_columns => { payment_id => 'id' },
   },
+
+  taxzone => {
+    class       => 'SL::DB::TaxZone',
+    key_columns => { taxzone_id => 'id' },
+  },
 );
 
 1;
index 8367137a351ade37efc9a71ec591f5117371ef7c..0b57e83f17da06cac75ec42d6d0ca07163c2c1aa 100644 (file)
@@ -46,7 +46,7 @@ __PACKAGE__->meta->columns(
   street           => { type => 'text' },
   taxincluded      => { type => 'boolean' },
   taxnumber        => { type => 'text' },
-  taxzone_id       => { type => 'integer', default => '0', not_null => 1 },
+  taxzone_id       => { type => 'integer', not_null => 1 },
   terms            => { type => 'integer', default => '0' },
   user_password    => { type => 'text' },
   username         => { type => 'text' },
@@ -85,6 +85,11 @@ __PACKAGE__->meta->foreign_keys(
     class       => 'SL::DB::PaymentTerm',
     key_columns => { payment_id => 'id' },
   },
+
+  taxzone => {
+    class       => 'SL::DB::TaxZone',
+    key_columns => { taxzone_id => 'id' },
+  },
 );
 
 1;
index 23b2023d9e7b6b57b8cdfa78277dd0862c6661ab..3a36f3d7507841dbc7967eee7d9434b0f6cde322 100644 (file)
@@ -30,14 +30,27 @@ sub run {
     $query = qq|DELETE FROM tax_zones WHERE id=0|;
     $self->db_query($query);
 
-    #Adapt other tables to the new id:
+    #Adapt ar/ap and customer/vendor tables to the new taxzone_id
     $query = qq|UPDATE ar SET taxzone_id=$id WHERE taxzone_id=0|;
     $self->db_query($query);
 
     $query = qq|UPDATE ap SET taxzone_id=$id WHERE taxzone_id=0|;
     $self->db_query($query);
+
+    $query = qq|UPDATE customer SET taxzone_id=$id WHERE taxzone_id=0|;
+    $self->db_query($query);
+
+    $query = qq|UPDATE vendor SET taxzone_id=$id WHERE taxzone_id=0|;
+    $self->db_query($query);
   }
 
+  # Remove default 0 for taxzone_id
+  $query = qq|ALTER TABLE customer ALTER COLUMN taxzone_id DROP default|;
+  $self->db_query($query);
+
+  $query = qq|ALTER TABLE vendor ALTER COLUMN taxzone_id DROP default|;
+  $self->db_query($query);
+
   #Set Constraints:
   $query = qq|ALTER TABLE ar ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id)|;
   $self->db_query($query);
@@ -45,6 +58,12 @@ sub run {
   $query = qq|ALTER TABLE ap ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id)|;
   $self->db_query($query);
 
+  $query = qq|ALTER TABLE customer ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id)|;
+  $self->db_query($query);
+
+  $query = qq|ALTER TABLE vendor ADD FOREIGN KEY (taxzone_id) REFERENCES tax_zones (id)|;
+  $self->db_query($query);
+
   $sth->finish;
 
   return 1;