Antwort #123 am: 12. Juli 2021, 19:07:48
@Tomcraft
Nochmals zu deiner Antwort
#116:
Warum werden dann, wenn man einen Artikel nach dem Einbau des vorliegenden Modules einmal neu speichert Werte in die Tabelle
products_geo_zones_to_tax_class geschrieben, auch wenn das zutrifft:
[...] Artikel in einem anderen Land keine andere Steuerklasse besitzt, [...]
Sollte man für den betreffenden Artikel nicht nur dann einen Eintrag in die genannte Tabelle machen
wenn in einem anderen Land eine andere Steuerklasse greift, und dann auch nur für dieses Land ?
Ansonsten wird es
- Artikel geben die sich in der Tabelle products_geo_zones_to_tax_class und andere nicht
- nämlich solche die noch nicht bearbeitet und gespeichert wurden -
und - könnte man die genannte Tabelle weit kleiner halten wenn nur die erforderlichen Daten dort gespeichert würden,
und das dürfte einiges an Performance-Vorteil ausmachen.
Außerdem:
Nach
/admin/includes/modules/group_prices.php wird für die einzelnen Steuersätze in der Artikel-Bearbeitung als preselected der einzelnen Dropdowns entweder der Eintrag aus der Tabelle
products_geo_zones_to_tax_class genommen oder, wenn keiner vorhanden ist, der Eintrag aus der Tabelle
geo_zones.
Hat man nun einen Artikel mit einer Steuerklasse die es in einem anderen Land nicht gibt (z.B. Zwischensatz) ist dort preselected " -keine-".
Ich bin der Meinung, daß
- nur gespeichert werden sollte was vom STORE_COUNTRY abweicht
und - preselected immer "-keine-" sein sollte, es sei denn es gibt bereits einen Eintrag,
was dann das Speichern lediglich der abweichenden Steuerklassen leicht durchführbar machen würde.
Also in
/admin/includes/modules/group_prices.php anstatt dies
<?php echo xtc_draw_pull_down_menu
('products_geo_to_tax['.$geo_zones['geo_zone_id'].']', $tax_class_geo_array, ((isset($products_tax_class_array[$geo_zones['geo_zone_id']])) ?
$products_tax_class_array[$geo_zones['geo_zone_id']] : $pInfo->products_tax_class_id), 'style="width: 155px"'); ?> das
<?php echo xtc_draw_pull_down_menu
('products_geo_to_tax['.$geo_zones['geo_zone_id'].']', $tax_class_geo_array, ((isset($products_tax_class_array[$geo_zones['geo_zone_id']])) ?
$products_tax_class_array[$geo_zones['geo_zone_id']] : 0), 'style="width: 155px"'); ?> und in
/admin/includes/classes/categories.php anstatt dies
foreach ($products_data['products_geo_to_tax'] as $geo_zone_id => $tax_class_id) { $sql_data_array = array( 'products_id' => $products_id, 'geo_zone_id' => $geo_zone_id, 'tax_class_id' => $tax_class_id, ); xtc_db_perform
(TABLE_PRODUCTS_GEO_ZONES_TO_TAX_CLASS
, $sql_data_array); } das
foreach ($products_data['products_geo_to_tax'] as $geo_zone_id => $tax_class_id) { if($tax_class_id != 0) { $sql_data_array = array( 'products_id' => $products_id, 'geo_zone_id' => $geo_zone_id, 'tax_class_id' => $tax_class_id, ); xtc_db_perform
(TABLE_PRODUCTS_GEO_ZONES_TO_TAX_CLASS
, $sql_data_array); } } Das würde das Bearbeiten einfacher/übersichtlicher machen und die DB-Tabelle
products_geo_zones_to_tax_class sinnvoller und konsistenter.
Was denkst du, was denkt Ihr ?
Gruß,
noRiddle