X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=lxo-import%2FshiptoB.php;h=5e22a285f7f56b5e4de41b0e7111e168629118b6;hb=64035a1b2890a19fc9cd247c0eff2670ba09cb6b;hp=14b23b946e5eea59b638623565e9255738a1af87;hpb=e2edfbacbd62049b7220069f6ce36e76a29da4ec;p=kivitendo-erp.git diff --git a/lxo-import/shiptoB.php b/lxo-import/shiptoB.php index 14b23b946..5e22a285f 100644 --- a/lxo-import/shiptoB.php +++ b/lxo-import/shiptoB.php @@ -1,174 +1,204 @@ -"; - echo "Feldname => Bedeutung
"; - foreach($shiptos as $key=>$val) { - echo "$key => $val
"; - } - exit(0); - }; + require ("import_lib.php"); + + function ende($nr) { + echo "Abbruch: $nr\n"; + exit($nr); + } + + if ($_POST["ok"]=="Hilfe") { + echo "Importfelder:
"; + echo "Feldname => Bedeutung
"; + foreach($shiptos as $key=>$val) { + echo "$key => $val
"; + } + $header=implode(";",array_keys($shiptos)); + echo $header; + exit(0); + }; if (!$_SESSION["db"]) { - $conffile="../config/authentication.pl"; - if (!is_file($conffile)) { - ende(4); - } + $conffile="../config/authentication.pl"; + if (!is_file($conffile)) { + ende("authentication.pl nicht gefunden oder unlesbar"); + } } -require ("import_lib.php"); -if (!anmelden()) ende(5); +if (!anmelden()) ende("Anmeldung fehlgeschlagen"); /* get DB instance */ $db=$_SESSION["db"]; //new myDB($login); - $crm=checkCRM(); if ($_POST["ok"] == "Import") { - $test=$_POST["test"]; - - $shipto_fld = array_keys($shiptos); - $shipto=$shiptos; - - $nun=time(); - - - clearstatcache (); - - $trenner=($_POST["trenner"])?$_POST["trenner"]:","; - - if (!empty($_FILES["Datei"]["name"])) { - $file=$_POST["ziel"]; - if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file."_shipto.csv")) { - $file=false; - echo "Upload von ".$_FILES["Datei"]["name"]." fehlerhaft. (".$_FILES["Datei"]["error"].")
"; - } - } else if (is_file($_POST["ziel"]."_shipto.csv")) { - $file=$_POST["ziel"]; - } else { - $file=false; - } - if (!$file) ende (2); - - if (!file_exists($file."_shipto.csv")) ende(5); - - $employee=chkUsr($_SESSION["employee"]); - if (!$employee) ende(4); - - if (!$db->chkcol($file)) ende(6); - - $f=fopen($file."_shipto.csv","r"); - $zeile=fgetcsv($f,1000,$trenner); - $first=true; - - foreach ($zeile as $fld) { - $fld = strtolower(trim(strtr($fld,array("\""=>"","'"=>"")))); - $in_fld[]=$fld; - } - $j=0; - $prenumber=$_POST["prenumber"]; - $zeile=fgetcsv($f,1000,$trenner); - -while (!feof($f)){ - $i=-1; - $firma=""; - $name=false; - $id=false; - $sql="insert into shipto "; - $keys="("; - $vals=" values ("; - foreach($zeile as $data) { - $i++; - if (!in_array($in_fld[$i],$shipto_fld)) { - continue; - } - $data=addslashes(trim($data)); - if ($in_fld[$i]=="trans_id" && $data) { - $data=chkKdId($data); - if (!$id) $id = $data; - continue; - } else if ($in_fld[$i]=="trans_id") { - continue; - } - if ($in_fld[$i]==$file."number" && $data) { - $tmp=getFirma($data,$file); - if ($id<>$tmp) $id=$tmp; - continue; - } else if ($in_fld[$i]==$file."number") { - continue; - } - if ($in_fld[$i]=="firma") { - if ($id) continue; - $data=suchFirma($file,$firma); - if ($data) { - $id=$data["cp_cv_id"]; - } - continue; - } - $keys.=$in_fld[$i].","; - - if ($data==false or empty($data) or !$data) { - $vals.="null,"; - } else { - if (in_array($in_fld[$i],array("cp_fax","cp_phone1","cp_phone2"))) { - $data=$prenumber.$data; - } else if ($in_fld[$i]=="cp_country" && $data) { - $data=mkland($data); - } - if ($in_fld[$i]=="cp_name") $name=true; - $vals.="'".$data."',"; - // bei jedem gefuellten Datenfeld erhoehen - $val_count++; + $dir = "../users/"; + + $test=$_POST["test"]; + + $shipto_fld = array_keys($shiptos); + $shipto=$shiptos; + + $nun=time(); + + clearstatcache (); + + $trenner=($_POST["trenner"])?$_POST["trenner"]:","; + if ($trenner=="other") { + $trenner=trim($trennzeichen); + if (substr($trenner,0,1)=="#") if (strlen($trenner)>1) $trenner=chr(substr($trenner,1)); + }; + + if (!empty($_FILES["Datei"]["name"])) { + $file=$_POST["ziel"]; + if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$dir.$file."_shipto.csv")) { + $file=false; + echo "Upload von ".$_FILES["Datei"]["name"]." fehlerhaft. (".$_FILES["Datei"]["error"].")
"; + } + } else if (is_file($dir.$_POST["ziel"]."_shipto.csv")) { + $file=$_POST["ziel"]; + } else { + $file=false; + } + if (!$file) ende ("Kein Datenfile"); + + if (!file_exists($dir.$file."_shipto.csv")) ende($file."_shipto.csv nicht im Ordner gefunden oder leer"); + + $employee=chkUsr($_SESSION["employee"]); + if (!$employee) ende("Benutzer unbekannt"); + + if (!$db->chkcol($file)) ende("Importspalte konnte nicht angelegt werden"); + //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 Maschiene 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"]); + } + } + + $f=fopen($dir.$file."_shipto.csv","r"); + $zeile=fgetcsv($f,1000,$trenner); + $first=true; + + foreach ($zeile as $fld) { + $fld = strtolower(trim(strtr($fld,array("\""=>"","'"=>"")))); + $in_fld[]=$fld; + } + $j=0; + $n=0; + //$prenumber=$_POST["prenumber"]; + $zeile=fgetcsv($f,1000,$trenner); + + while (!feof($f)){ + $i=-1; + $id=false; + $sql="insert into shipto "; + $keys=""; + $vals=""; + foreach($zeile as $data) { + $i++; + if (!in_array($in_fld[$i],$shipto_fld)) { + continue; + } + $data=addslashes(trim($data)); + if ($in_fld[$i]=="trans_id" && $data) { + $data=chkKdId($data); + if (!$id) $id = $data; + continue; + } else if ($in_fld[$i]=="trans_id") { + continue; + } + if ($in_fld[$i]==$file."number" && $data) { + $tmp=getFirma($data,$file); + if ($id<>$tmp) $id=$tmp; + continue; + } else if ($in_fld[$i]==$file."number") { + continue; + } + if ($in_fld[$i]=="firma") { + if ($id) continue; + if (Translate) translate($data); + $data=suchFirma($file,$data); + if ($data) { + $id=$data["cp_cv_id"]; } - } -// if (!$name) { -// $zeile=fgetcsv($f,1000,$trenner); -// continue; -// } - if ($keys<>"(" && $id) { - $vals.=$id.",'CT'"; - $keys.="trans_id,module"; - if ($test) { - if ($first) { - echo "\n"; - echo "\n"; - $first=false; - }; - $vals=str_replace("',","'\n"; - flush(); - } else { - $sql.=$keys.")"; - $sql.=$vals.")"; - $rc=$db->query($sql); - if (!$rc) echo "Fehler: ".$sql."\n"; - } - $j++; - } else { - echo $keys."
"; - echo $vals."
"; - }; - $zeile=fgetcsv($f,1000,$trenner); -} -fclose($f); -echo $j." $file importiert.\n";} else { + continue; + } + $keys.=$in_fld[$i].","; + + if ($data==false or empty($data) or !$data) { + $vals.="null,"; + } else { + /*if (in_array($in_fld[$i],array("shiptofax","shiptophone"))) { + $data=$prenumber.$data; + } */ + if (Translate) translate($data); + $vals.="'".$data."',"; + // bei jedem gefuellten Datenfeld erhoehen + $val_count++; + } + } + if ($keys<>"" && $id) { + $vals.=$id.",'CT'"; + $keys.="trans_id,module"; + if ($test) { + if ($first) { + echo "
".str_replace(",","",substr($keys,1,-1))."
",$vals); - echo "
".str_replace("null,","null",$vals)."
\n"; + echo "\n"; + $first=false; + }; + echo "\n"; + flush(); + } else { + $sql.="(".$keys.")"; + $sql.="values (".$vals.")"; + $rc=$db->query($sql); + if (!$rc) echo "Fehler: ".$sql."\n"; + } + $j++; + } + $n++; + $zeile=fgetcsv($f,1000,$trenner); + } + fclose($f); + echo "
".str_replace(",","",$keys)."
".str_replace(",","",$vals)."
".$j." $file shipto von $n importiert.\n"; +} else { ?>

Lieferanschriftimport für die ERP

@@ -176,11 +206,28 @@ echo $j." $file importiert.\n";} else { - - + + +
Zieltabellecustomer vendor
Trennzeichen
Telefonvorwahl
Trennzeichen + Semikolon + Komma + Tabulator + Leerzeichen + + +
Testja
Daten
Verwendete
Zeichecodierung
+ +
- +