X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=lxo-import%2FcontactB.php;h=49e2adcb8368a7251bb21e3d546a555fd0b8ce5a;hb=885e7d7601de767605f2938a69bae18258c62696;hp=8c8e53a78deb03d1b73815d45533bd03ef341cd5;hpb=c25cb4622b88c268878dc814d4b8487584315fe7;p=kivitendo-erp.git diff --git a/lxo-import/contactB.php b/lxo-import/contactB.php index 8c8e53a78..49e2adcb8 100644 --- a/lxo-import/contactB.php +++ b/lxo-import/contactB.php @@ -11,18 +11,25 @@ Email: hli@lx-system.de Web: http://lx-system.de */ -if ($_GET["login"]) { - $login=$_GET["login"]; -} else { - $login=$_POST["login"]; -}; - +if (!$_SESSION["db"]) { + $conffile="../config/authentication.pl"; + if (!is_file($conffile)) { + ende(4); + } +} require ("import_lib.php"); -$db=new myDB($login); + +if (!anmelden()) ende(5); + +/* get DB instance */ +$db=$_SESSION["db"]; //new myDB($login); + + $crm=checkCRM(); if ($_POST["ok"]) { - $login=$_POST["login"]; + $dir = "../users/"; + $test=$_POST["test"]; if ($crm) { @@ -36,7 +43,6 @@ if ($_POST["ok"]) { function ende($nr) { echo "Abbruch: $nr\n"; - echo "Aufruf: addressS.php [login customer|vendor] [test] | [felder]\n"; exit($nr); } if ($_POST["ok"]=="Hilfe") { @@ -51,14 +57,19 @@ if ($_POST["ok"]) { 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"],$file."_contact.csv")) { + if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$dir.$file."_contact.csv")) { $file=false; echo "Upload von ".$_FILES["Datei"]["name"]." fehlerhaft. (".$_FILES["Datei"]["error"].")
"; } -} else if (is_file($_POST["ziel"]."_contact.csv")) { +} else if (is_file($dir.$_POST["ziel"]."_contact.csv")) { $file=$_POST["ziel"]; } else { $file=false; @@ -66,28 +77,59 @@ if (!empty($_FILES["Datei"]["name"])) { if (!$file) ende (2); -if (!file_exists($file."_contact.csv")) ende(5); +if (!file_exists($dir.$file."_contact.csv")) ende(5); -if (!file_exists("../users/$login.conf")) ende(3); +//$prenumber=$_POST["prenumber"]; - -$employee=chkUsr($login); +$employee=chkUsr($_SESSION["employee"]); if (!$employee) ende(4); if (!$db->chkcol($file)) ende(6); -$f=fopen($file."_contact.csv","r"); -$zeile=fgets($f,1200); -$infld=split($trenner,strtolower($zeile)); -$first=true; + //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."_contact.csv","r"); +$zeile=fgetcsv($f,2000,$trenner); -foreach ($infld as $fld) { - $fld = trim(strtr($fld,array("\""=>"","'"=>""))); +$first=true; + +foreach ($zeile as $fld) { + $fld = strtolower(trim(strtr($fld,array("\""=>"","'"=>"")))); $in_fld[]=$fld; } $j=0; -$zeile=fgetcsv($f,1200,$trenner); +$zeile=fgetcsv($f,2000,$trenner); while (!feof($f)){ $i=-1; $firma=""; @@ -98,53 +140,75 @@ while (!feof($f)){ $vals=" values ("; foreach($zeile as $data) { $i++; - if ($in_fld[$i]=="firma") { - $firma=addslashes(trim($data)); - continue; - }; if (!in_array($in_fld[$i],$kunde_fld)) { continue; } $data=addslashes(trim($data)); + if ($in_fld[$i]=="firma" && $data) { + if (Translate) translate($data); + $data=suchFirma($file,$data); + if ($data) { + $id=$data["cp_cv_id"]; + } + continue; + } else if ($in_fld[$i]=="firma") { + continue; + } ; if ($in_fld[$i]=="cp_cv_id" && $data) { $data=chkKdId($data); - if ($data) $firma=""; - if (!$id) $id = $data; + if ($data) { + $id = $data; + }; continue; - } + } else if($in_fld[$i]=="cp_cv_id") { + continue; + } if ($in_fld[$i]==$file."number" && $data) { - $tmp=getFirma($data,$file); - if ($tmp) $firma=""; - if ($id<>$tmp) $id=$tmp; + if (!$id) { + $tmp=getFirma($data,$file); + if ($tmp) { + $id=$tmp; + } + } + continue; + } else if ($in_fld[$i]==$file."number") { + continue; + } + if ($in_fld[$i]=="cp_id" && $data) { + $tmp=chkContact($data); + if ($tmp) { + $keys.="cp_id,"; + $vals.="$tmp,"; + } continue; - } + } else if ($in_fld[$i]=="cp_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="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 (Translate) translate($data); + + /*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++; } } if (!$name) { $zeile=fgetcsv($f,1200,$trenner); continue; } - if ($firma) { - $data=suchFirma($file,$firma); - if ($data) { - $vals.=$data["cp_cv_id"].","; - $keys.="cp_cv_id,"; - } - } else if ($id) { + if ($id) { $vals.=$id.","; $keys.="cp_cv_id,"; } @@ -174,13 +238,30 @@ echo $j." $file importiert.\n";} else {

Kontakt-Adressimport für die ERP

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