X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=lxo-import%2FshiptoB.php;h=5e22a285f7f56b5e4de41b0e7111e168629118b6;hb=64035a1b2890a19fc9cd247c0eff2670ba09cb6b;hp=c9115145b2c681b442a1debd81ab1b6f6b3b24c2;hpb=98255c8891bd9b772f73be9a72e4f456998c8b3b;p=kivitendo-erp.git diff --git a/lxo-import/shiptoB.php b/lxo-import/shiptoB.php index c9115145b..5e22a285f 100644 --- a/lxo-import/shiptoB.php +++ b/lxo-import/shiptoB.php @@ -1,184 +1,233 @@ -"; - echo "Feldname => Bedeutung
"; - foreach($shiptos as $key=>$val) { - echo "$key => $val
"; - } - exit(0); - }; - - 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); - -if (!file_exists("../users/$login.conf")) ende(3); - - -$employee=chkUsr($login); -if (!$employee) ende(4); + 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("authentication.pl nicht gefunden oder unlesbar"); + } +} -if (!$db->chkcol($file)) ende(6); +if (!anmelden()) ende("Anmeldung fehlgeschlagen"); -$f=fopen($file."_shipto.csv","r"); -$zeile=fgets($f,1000); -$infld=split($trenner,strtolower($zeile)); -$first=true; +/* get DB instance */ +$db=$_SESSION["db"]; //new myDB($login); +$crm=checkCRM(); -foreach ($infld as $fld) { - $fld = trim(strtr($fld,array("\""=>"","'"=>""))); - $in_fld[]=$fld; -} -$j=0; -$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_fld[$i]=="firma") { - $firma=addslashes(trim($data)); - continue; - }; - if (!in_array($in_fld[$i],$shipto_fld)) { - continue; - } - $data=addslashes(trim($data)); - if ($in_fld[$i]=="trans_id" && $data) { - $data=chkKdId($data); - if ($data) $firma=""; - if (!$id) $id = $data; - continue; - } - if ($in_fld[$i]==$file."number" && $data) { - $tmp=getFirma($data,$file); - if ($tmp) $firma=""; - if ($id<>$tmp) $id=$tmp; - 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="0".$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++; +if ($_POST["ok"] == "Import") { + $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 ($firma) { - $data=suchFirma($file,$firma); - if ($data) { - $vals.=$data["trans_id"].","; - $keys.="trans_id,"; - } - } else if ($id) { - $vals.=$id.","; - $keys.="trans_id,"; - } - if ($keys<>"(") { - if ($test) { - if ($first) { - echo "\n"; - echo "\n"; - $first=false; - }; - $vals=str_replace("',","'\n"; - flush(); - } else { - $sql.=substr($keys,0,-1).")"; - $sql.=substr($vals,0,-1).")"; - $rc=$db->query($sql); - if (!$rc) echo "Fehler: ".$sql."\n"; - } - $j++; - }; - $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))."
",substr($vals,9,-1)); - 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

- - + + +
Zieltabellecustomer vendor
Trennzeichen
Trennzeichen + Semikolon + Komma + Tabulator + Leerzeichen + + +
Testja
Daten
Verwendete
Zeichecodierung
+ +
- +