Unterstützung für Tabellen mit Spalte "sortkey" anstelle von "position"
[kivitendo-erp.git] / lxo-import / import_lib.php
index 36cf30f..ac569e8 100644 (file)
@@ -36,6 +36,8 @@ $address = array(
     "bank_code" => "Bankleitzahl",
     "bank" => "Bankname",
     "branche" => "Branche",
+    "business_id" => "BranchenID",
+    "salesman_id" => "VerkäuferID",
     //"language" => "Sprache (de,en,fr)",
     "sw" => "Stichwort",
     "creditlimit" => "Kreditlimit (nnnnnn.nn)"); /*,
@@ -222,7 +224,23 @@ function getKdRefId($data) {
     $rs=$db->getAll($sql);
     return $rs[0]["id"];
 }
-
+/**
+ * TODO: short description.
+ * 
+ * @param mixed  $tab 
+ * @param object $own 
+ * @param mixed  $fld 
+ * @param mixed  $val 
+ * 
+ * @return TODO
+ */
+function insertExtra($tab,$own,$fld,$val)  {
+    global $db;
+    $sql = "insert into extra_felder (fkey,fval,tab,owner) ";
+    $sql.= "values ('$fld','$val','$tab','$own')";
+    $rc = $db->query($sql);
+    return $rc;
+}
 function suchFirma($tab,$data) {
 // gibt die Firma ?
     global $db;
@@ -235,7 +253,7 @@ function suchFirma($tab,$data) {
     if (!$rs) {
         $org=$data;
         while(strpos($data,"  ")>0) {
-            $data=ereg_replace("  "," ",$data);
+            $data=str_replace("  "," ",$data);
         }
          $data=preg_replace("/[^A-Z0-9]/ ",".*",trim($data));
         $sql="select * from $tab where upper(name) ~ '$data'"; 
@@ -257,13 +275,13 @@ function getFirma($nummer,$tabelle) {
     $sql="select id from $tabelle where upper(".$tabelle."number) = '$nummer'";
     $rs=$db->getAll($sql);
     if (!$rs) {
-        $nr=ereg_replace(" ","%",$nummer);
+        $nr=str_replace(" ","%",$nummer);
         $sql="select id,".$tabelle."number from $tabelle where upper(".$tabelle."number) like '$nr'";
         $rs=$db->getAll($sql);
         if ($rs) {
-            $nr=ereg_replace(" ","",$nummer);
+            $nr=str_replace(" ","",$nummer);
             foreach ($rs as $row) {
-                $tmp=ereg_replace(" ","",$row[$tabelle."number"]);
+                $tmp=str_replace(" ","",$row[$tabelle."number"]);
                 if ($tmp==$nr) return $row["id"];
             }
         } else { 
@@ -288,20 +306,42 @@ function getAllUnits($db,$type) {
 
 function anmelden($login=false,$pwd=false) {
     ini_set("gc_maxlifetime","3600");
-    $tmp = @file_get_contents("../config/authentication.pl");
-    preg_match("/'db'[ ]*=> '(.+)'/",$tmp,$hits);
-    $dbname=$hits[1];
-    preg_match("/'password'[ ]*=> '(.+)'/",$tmp,$hits);
-    $dbpasswd=$hits[1];
-    preg_match("/'user'[ ]*=> '(.+)'/",$tmp,$hits);
-    $dbuser=$hits[1];
-    preg_match("/'host'[ ]*=> '(.+)'/",$tmp,$hits);
-    $dbhost=($hits[1])?$hits[1]:"localhost";
-    preg_match("/'port'[ ]*=> '?(.+)'?/",$tmp,$hits);
-    $dbport=($hits[1])?$hits[1]:"5432";
-    preg_match("/[ ]*\\\$self->\{cookie_name\}[ ]*=[ ]*'(.+)'/",$tmp,$hits);
-    $cookiename=$hits[1];
+    if (file_exists("../config/lx_office.conf")) {
+        $lxo = fopen("../config/lx_office.conf","r");
+    } else if (file_exists("../config/lx_office.conf.default")) {
+        $lxo = fopen("../config/lx_office.conf.default","r");
+    } else {
+        return false;
+    }
+    $dbsec = false;
+    $tmp = fgets($lxo,512);
+    while (!feof($lxo)) {
+       if (preg_match("/^[\s]*#/",$tmp)) {
+            $tmp = fgets($lxo,512);
+            continue;
+       }
+       if ($dbsec) {
+            preg_match("/db[ ]*= (.+)/",$tmp,$hits);
+            if ($hits[1]) $dbname=$hits[1];
+            preg_match("/password[ ]*= (.+)/",$tmp,$hits);
+            if ($hits[1]) $dbpasswd=$hits[1];
+            preg_match("/user[ ]*= (.+)/",$tmp,$hits);
+            if ($hits[1]) $dbuser=$hits[1];
+            preg_match("/host[ ]*= (.+)/",$tmp,$hits);
+            if ($hits[1]) $dbhost=($hits[1])?$hits[1]:"localhost";
+            preg_match("/port[ ]*= (.+)/",$tmp,$hits);
+            if ($hits[1]) $dbport=($hits[1])?$hits[1]:"5432";
+            if (preg_match("/\[[a-z]+/",$tmp)) break;
+            $tmp = fgets($lxo,512);
+            continue;
+       }
+       preg_match("/[ ]*cookie_name[ ]*=[ ]*(.+)/",$tmp,$hits);
+       if ($hits[1]) $cookiename=$hits[1];
+       if (preg_match("!\[authentication/database\]!",$tmp)) $dbsec = true;
+       $tmp = fgets($lxo,512);
+    }
     if (!$cookiename) $cookiename='lx_office_erp_session_id';
+    $cookie=$_COOKIE[$cookiename];
     if ($login) {
         $auth=authuser($dbhost,$dbport,$dbuser,$dbpasswd,$dbname,false,$login,$pwd);
     } else {
@@ -349,7 +389,7 @@ function authuser($dbhost,$dbport,$dbuser,$dbpasswd,$dbname,$cookie,$login,$pwd)
     $db=new myDB($dbhost,$dbuser,$dbpasswd,$dbname,$dbport,true);
     if ($cookie) {
         $sql="select sc.session_id,u.id from auth.session_content sc left join auth.user u on ";
-        $sql.="u.login=sc.sess_value left join auth.session s on s.id=sc.session_id ";
+        $sql.="('--- ' || u.login || E'\\n')=sc.sess_value left join auth.session s on s.id=sc.session_id ";
         $sql.="where session_id = '$cookie' and sc.sess_key='login'";// order by s.mtime desc";
         $rs=$db->getAll($sql,"authuser_1");
         if (!$rs) return false;