-
+
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);
};
@@ -73,12 +107,25 @@ if ($_POST["ok"]) {
ende ("Kein Datenfile angegeben");
/* copy file */
- if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file.".csv")) {
+ 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.csv") or filesize("$file.csv")==0)
+ 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 */
@@ -93,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");
?>