﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking
2266	Datenbankstruktur in zones_to_geo_zones anpassen an neue Steuerberechnung seit 2.0.7.1	Stefan May <stefan.may@…>	somebody	"Bis Version 2.0.7.0 wurde bei der Steuerberechnung in den Dateien 

/shoproot/inc/xtc_get_tax_description.inc.php
/shoproot/inc/xtc_get_tax_rate.inc.php

jeweils das Datenbankfeld zone_id in Tabelle zones_to_geo_zones sowohl gegen ""IS NULL"" als auch gegen die Zahl ""0"" verglichen, um den passenden Steuersatz zu ermitteln. 
In den geänderten SQL-Queries ab Version 2.0.7.1 wird nur noch gegen Zahl ""0"" verglichen, bei Feldwert ""NULL"" wird kein Steuersatz ermittelt. 

Die Datenbankstruktur lässt den Wert NULL für die Spalte ""zone_id"" explizit zu, siehe /shoproot/installer/includes/sql/modified.sql :

{{{
CREATE TABLE zones_to_geo_zones (
 association_id INT(11) NOT NULL AUTO_INCREMENT,
 zone_country_id INT(11) NOT NULL,
 zone_id INT NULL,
 geo_zone_id INT NULL,
 last_modified DATETIME NULL,
 date_added DATETIME NOT NULL,
 PRIMARY KEY (association_id),
 KEY idx_geo_zone_id (geo_zone_id),
 KEY idx_zone_country_id (zone_country_id)
);
}}}

Entsprechend der Codeänderung sollte die Spalte in der Datenbank auch als ""NOT NULL"" definiert werden, d.h. ""zone_id INT '''NOT''' NULL"". Komplette Struktur:

{{{
CREATE TABLE zones_to_geo_zones (
 association_id INT(11) NOT NULL AUTO_INCREMENT,
 zone_country_id INT(11) NOT NULL,
 zone_id INT NOT NULL,
 geo_zone_id INT NULL,
 last_modified DATETIME NULL,
 date_added DATETIME NOT NULL,
 PRIMARY KEY (association_id),
 KEY idx_geo_zone_id (geo_zone_id),
 KEY idx_zone_country_id (zone_country_id)
);
}}}

Die Anpassung ist bei historisch gewachsenen Datenbanken nicht nur akademisch, in meinem Fall war bei genau einem Land der Wert NULL statt Zahl 0 gesetzt, entsprechend wurde für dieses Land keine Steuer berechnet.
"	Bug/Fehler	closed	normal	modified-shop-2.0.8.0	Installer	2.0.7.2	fixed				
