From ef8825faa8ac08a9e78eb0d5780ee2ac22c2a7b6 Mon Sep 17 00:00:00 2001 From: OpenXE <> Date: Fri, 21 Jun 2024 22:08:02 +0200 Subject: [PATCH] importvorlage artikeleigenschaften --- upgrade/data/db_schema.json | 17 +++++++++++++++++ www/pages/importvorlage.php | 19 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/upgrade/data/db_schema.json b/upgrade/data/db_schema.json index 8fc821b2..145517eb 100644 --- a/upgrade/data/db_schema.json +++ b/upgrade/data/db_schema.json @@ -18692,6 +18692,14 @@ "id" ], "Non_unique": "" + }, + { + "Key_name": "eigenschaft_unique", + "Index_type": "BTREE", + "columns": [ + "name" + ], + "Non_unique": "UNIQUE" } ] }, @@ -18802,6 +18810,15 @@ "artikel" ], "Non_unique": "" + }, + { + "Key_name": "eigenschaft_artikel_unique", + "Index_type": "BTREE", + "columns": [ + "artikel", + "artikeleigenschaften" + ], + "Non_unique": "UNIQUE" } ] }, diff --git a/www/pages/importvorlage.php b/www/pages/importvorlage.php index a096fb1d..57ee49b8 100644 --- a/www/pages/importvorlage.php +++ b/www/pages/importvorlage.php @@ -4069,6 +4069,25 @@ class Importvorlage extends GenImportvorlage { } } + // Artikeleigenschaften + // leer = löschen + + $artikeleigenschaften = array(); + foreach ($tmp as $feldname => $feldwerte) { + if (strpos($feldname,'eigenschaftname') !== false) { + $eigenschaftspaltennummer = substr($feldname,strlen('eigenschaftname')); + $artikeleigenschaften[$feldwerte[$i]] = $tmp['eigenschaftwert'.$eigenschaftspaltennummer][$i]; + } + } + foreach ($artikeleigenschaften as $key => $value) { + $sql = "INSERT INTO artikeleigenschaften (name) VALUES ('".$key."') ON DUPLICATE KEY UPDATE name = '".$key."'"; + $this->app->DB->Update($sql); + $sql = "INSERT INTO artikeleigenschaftenwerte (artikel, artikeleigenschaften, wert) VALUES ('".$artikelid."' ,(SELECT id FROM artikeleigenschaften WHERE name = '".$key."'), '".$value."') ON DUPLICATE KEY UPDATE wert = '".$value."'"; + $this->app->DB->Update($sql); + } + $sql = "DELETE FROM artikeleigenschaftenwerte WHERE wert = ''"; + $this->app->DB->Delete($sql); + //freifelduebersetzungen foreach ($tmp as $feldname => $feldwerte) { if(strpos($feldname,'freifeld') !== false && strpos($feldname,'_')>0){