Modify

Opened 3 years ago

Closed 3 years ago

#2266 closed Bug/Fehler (fixed)

Datenbankstruktur in zones_to_geo_zones anpassen an neue Steuerberechnung seit 2.0.7.1

Reported by: Stefan May <stefan.may@…> Owned by: somebody
Priority: normal Milestone: modified-shop-2.0.8.0
Component: Installer Version: 2.0.7.2
Keywords: Cc:
Blocked By: Blocking:

Description

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.

Attachments (0)

Change History (1)

comment:1 by Gerhard Waldemair, 3 years ago

Resolution: fixed
Status: newclosed

In 14634:

fix #2266 - modify zone_id to not be null

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.