X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=lxo-import%2FpartsB.php;h=8a7563df6a534ae22868e1d3f60faee95996a49e;hb=596cce1fb449f9400899105d5fc3f793b18cb142;hp=961946612a1ae21a67d59a33e41610ca4e3b6d3d;hpb=e0d7849f5e65cf957bbec56d23336fd55e5cd987;p=kivitendo-erp.git diff --git a/lxo-import/partsB.php b/lxo-import/partsB.php index 961946612..8a7563df6 100644 --- a/lxo-import/partsB.php +++ b/lxo-import/partsB.php @@ -1,13 +1,16 @@ - Holger Lindemann */ +$dir="../users/"; +$gz_bin = "/bin/gzip -df "; +$zip_bin = "/usr/bin/unzip -o -d ".$dir; function ende($txt) { echo "Abbruch: $txt
"; @@ -27,11 +30,41 @@ if (!anmelden()) ende("Anmeldung fehlgeschlagen."); /* get DB instance */ $db=$_SESSION["db"]; //new myDB($login); - /* just display page or do real import? */ if ($_POST["ok"]) { 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") { @@ -52,7 +85,8 @@ if ($_POST["ok"]) { 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 "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."; exit(0); }; @@ -66,24 +100,36 @@ if ($_POST["ok"]) { $precision = $_POST["precision"]; $quotation = $_POST["quotation"]; $quottype = $_POST["quottype"]; - $file = "../users/parts.csv"; - $table = "parts"; + $file = "parts"; /* no data? */ if (empty($_FILES["Datei"]["name"])) ende ("Kein Datenfile angegeben"); /* copy file */ - if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$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("$file") or filesize("$file")==0) - ende("Datenfile ($file) nicht im Ordner gefunden oder leer"); + 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($table)) + if (!$db->chkcol($file)) ende("Importspalte konnte nicht angelegt werden"); /* first check all elements */ @@ -94,17 +140,19 @@ if ($_POST["ok"]) { $_test["lagerplatz"]=$_POST["lagerplatz"]; /* just print data or insert it, if test is false */ - import_parts($db, $file, $trenner, $trennzeichen, $parts, FALSE, !$test, $_POST["show"],$_POST); + import_parts($db, $dir.$file, $trenner, $trennzeichen, $parts, FALSE, !$test, $_POST["show"],$_POST); } else { $bugrus=getAllBG($db); + $serviceunit=getAllUnits($db,"service"); + $dimensionunit=getAllUnits($db,"dimension"); ?>

Artikelimport für die ERP


- + - + + +
Trennzeichen @@ -131,21 +179,40 @@ if ($_POST["ok"]) {
Testja
Textupdateja
Warengruppen
verbinder
Shopartikel,
falls Feld leer
ja nein
Shopartikel
falls nicht übergeben
ja nein
ArtWare   Dienstleistung gemischt (Spalte 'art' vorhanden)
Default Einheiten
+
Default Bugru
- nie
- für alle Artikel verwenden - für Artikel ohne passende Bugru + für alle Artikel verwenden + für Artikel ohne passende Bugru
Daten
Verwendete
Zeichecodierung
+ +
- +