Holger Lindemann */ $dir="../users/"; $gz_bin = "/bin/gzip -df "; $zip_bin = "/usr/bin/unzip -o -d ".$dir; function ende($txt) { echo "Abbruch: $txt
"; exit(1); } if (!$_SESSION["db"]) { $conffile="../config/authentication.pl"; if (!is_file($conffile)) { ende("authentication.pl nicht gefunden oder kein Leserecht."); } } require ("import_lib.php"); if ($_GET["login"]) { $db = anmelden($_GET["login"],$_GET["passwd"]); } else { $db = anmelden(); } //if (!$_SESSION["db"]) ende("Anmeldung fehlgeschlagen."); if (!$db) ende("Anmeldung fehlgeschlagen."); /* get DB instance */ $db=$_SESSION["db"]; //new myDB($login); /* just display page or do real import? */ if ($_POST["ok"] || $_GET["cron"]=="1") { require ("parts_import.php"); //Zeichencodierung des Servers $tmpcode = $db->getServerCode(); //Leider sind die Benennungen vom Server anders als von mb_detect_encoding if ($tmpcode == "UTF8") { define("ServerCode","UTF-8"); } else if ($tmpcode == "LATIN9") { define("ServerCode","ISO-8859-15"); } else if ($tmpcode == "LATIN1") { define("ServerCode","ISO-8859-1"); } else { define("ServerCode",$tmpcode); } //Zeichensatz sollte gleich sein, sonst ist die Datenkonvertierung nutzlos //DB und LxO müssen ja nicht auf der gleichen Maschine sein. if($tmpcode<>$db->getClientCode()) { $rc = $db->setClientCode($tmpcode); } // Zeichenkodierung File if ($_POST["encoding"] == "auto") { define("Auto",true); define("Translate",true); } else { define("Auto",false); if ($_POST["encoding"] == ServerCode) { define("Translate",false); } else { define("Translate",true); define("FileCode",$_POST["encoding"]); } } /* display help */ if ($_POST["ok"]=="Hilfe") { echo "Importfelder:
"; echo "Feldname => Bedeutung
"; foreach($parts as $key=>$val) { echo "$key => $val
"; } $header=implode(";",array_keys($parts)); echo $header; echo "

Die erste Zeile enthält die Feldnamen der Daten in ihrer richtigen Reihenfolge
"; echo "Geben Sie das Trennzeichen der Datenspalten ein. Steuerzeichen können mit ihrem Dezimalwert "; echo "geführt von einem "#" eingegebn werden (#11).

"; echo "Wird bei "Art" in der Maske "gemischt" gewählt, muss die Spalte "art" vor der Einheit stehen.

"; echo "Der "sellprice" kann um den eingegeben Wert geändert werden.

"; echo "Bei vorhandenen Artikelnummern (in der db), kann entweder ein Update auf den Preis (und Text) durchgeführt werden oder "; echo "der Artikel mit anderer Artikelnummer eingefügt werden.

"; echo "Jeder Artikel muß einer Buchungsgruppe zugeordnet werden. "; echo "Dazu muß entweder in der Maske eine Standardbuchungsgruppe gewählt werden
"; echo "oder es wird ein gültiges Konto in 'income_accno_id' und 'expense_accno_id' eingegeben. "; echo "Das Programm versucht dann eine passende Buchungsgruppe zu finden.
"; echo "Preisgruppen müssen zunächst angelegt werden. Die Spalten für die Preisgruppen beginnen mit 'pg_' gefolgt vom Preisgruppenname.
"; echo "Wenn eine Datei users/partshead.csv existiert, wird die erste Zeile aus dieser benutzt um das Format zu bestimmen. Die erste Zeile aus der eigentlichen Importdatei wird dann ignoriert.
"; exit(0); }; clearstatcache (); $file = "parts"; if ($_GET["cron"]==1) { $Cron = True; if (file_exists($dir.$file.".zip")) { exec ($zip_bin.$dir.$file.".zip"); } else if (file_exists($dir.$file.".gz")) { exec ($gz_bin.$dir.$file.".csv.gz"); } else if (!file_exists($dir.$file.".csv")) { ende($dir.$file.".csv nicht gefunden"); } $_POST["trenner"] = "#9"; // Tabulator $_POST["trennzeichen"] = ";"; // Anderes Trennzeichen $_POST["dimensionunit"] = "Stck"; // Artikeleinheit $_POST["serviceunit"] = "Std"; // Dienstleistungseinheit $_POST["bugru"] = "1600"; // Std-Bugru $_POST["bugrufix"] = "2"; // Nur wenn keine Passende angegeben $_POST["shop"] = "f"; // Shopartikel $_POST["show"] = ""; // Kontrollausgabe $_POST["test"] = ""; // Testlauf == 1 $_POST["lager"] = ""; // Nicht gebraucht $_POST["lagerplatz"] = ""; $_POST["precision"] = "2"; // Runden auf nn Stellen $_POST["quotation"] = ""; // Preisaufschlag $_POST["quottype"] = "P"; // Prozent? $_POST["wgtrenner"] = "!"; // Trennzeichen der Warengruppen $_POST["TextUpd"] = "1"; // Textupdate durchführen $_POST["update"] = "U"; // Bei vorhandenen Nummer updaten $_POST["ware"] = "W"; // Ist ein Artikel $_POST["encoding"] = ""; } else { /* no data? */ if (empty($_FILES["Datei"]["name"])) ende ("Kein Datenfile angegeben"); /* copy file */ if (substr($_FILES["Datei"]["name"],-2)=="gz") { if (move_uploaded_file($_FILES["Datei"]["tmp_name"],$dir.$file.".csv.gz")) { echo $gz_bin.$dir.$file.".csv.gz"; exec ($gz_bin.$dir.$file.".csv.gz"); } else { ende ("Upload von Datei fehlerhaft.".$_FILES["Datei"]["error"]); }; } else if (substr($_FILES["Datei"]["name"],-3)=="zip") { if (move_uploaded_file($_FILES["Datei"]["tmp_name"],$dir.$file.".zip")) { exec ($zip_bin.$dir.$file.".zip"); } else { ende ("Upload von Datei fehlerhaft.".$_FILES["Datei"]["error"]); }; } else if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$dir.$file.".csv")) { ende ("Upload von Datei fehlerhaft.".$_FILES["Datei"]["error"]); }; } /* check if file is really there */ if (!file_exists($dir.$file.'.csv') or filesize($dir.$file.'.csv')==0) ende("Datenfile ($file.csv) nicht im Ordner gefunden oder leer"); /* Zu diesem Zeitpunkt wurde der Artikel Importiert */ if (!$db->chkcol($file)) ende("Importspalte konnte nicht angelegt werden"); /* just print data or insert it, if test is false */ import_parts($_SESSION["db"], $dir.$file, $parts, FALSE, $_POST); } else { $bugrus=getAllBG($db); $serviceunit=getAllUnits($db,"service"); $dimensionunit=getAllUnits($db,"dimension"); ?>

Artikelimport für die ERP


Trennzeichen Semikolon Komma Tabulator Leerzeichen
VK-Preis
Nachkomma:
0 1 2 3 4 5
VK-Preis
Aufschlag:
% Absolut
Vorhandene
Artikelnummer:
Preis update durchführen
mit neuer Nummer einfügen
Kontollausgabeja
Testja
Textupdateja
Warengruppen
verbinder
Shopartikel
falls nicht übergeben
ja nein
Eintrag in
Makemodel ist
Lieferantennummer Lieferantenname
auch ohne
Model-Nr.
ja nein
ArtWare   Dienstleistung gemischt (Spalte 'art' vorhanden)
Default Einheiten
Default Bugru
für alle Artikel verwenden für Artikel ohne passende Bugru
Daten
Verwendete
Zeichecodierung