Example #1
0
//$sql2="select trans_id as id,shiptophone as phone from shipto where phone <> ''";
$sql3 = "select id,phone from vendor where phone <> ''";
$sql4 = "select id,homephone as phone from employee where homephone <> ''";
$sql5 = "select cp_id as id,cp_phone1 as phone from contacts where cp_phone1 <> ''";
$sql6 = "select cp_id as id,cp_phone2 as phone from contacts where cp_phone2 <> ''";
$sql7 = "select cp_id as id,cp_mobile1 as phone from contacts where cp_mobile1 <> ''";
$sql8 = "select cp_id as id,cp_mobile2 as phone from contacts where cp_mobile2 <> ''";
$sql9 = "select cp_id as id,cp_fax as phone from contacts where cp_fax <> ''";
$sql10 = "select cp_id as id,cp_homephone as phone from contacts where cp_homephone <> ''";
$rs = $_SESSION['db']->getAll($sql1, DB_FETCHMODE_ASSOC);
foreach ($rs as $eintrag) {
    mkTelNummer($eintrag["id"], "C", array($eintrag["phone"]));
}
$rs = $_SESSION['db']->getAll($sql3, DB_FETCHMODE_ASSOC);
foreach ($rs as $eintrag) {
    mkTelNummer($eintrag["id"], "V", array($eintrag["phone"]));
}
$rs = $_SESSION['db']->getAll($sql4, DB_FETCHMODE_ASSOC);
foreach ($rs as $eintrag) {
    mkTelNummer($eintrag["id"], "E", array($eintrag["phone"]));
}
$rs1 = $_SESSION['db']->getAll($sql5, DB_FETCHMODE_ASSOC);
$rs2 = $_SESSION['db']->getAll($sql6, DB_FETCHMODE_ASSOC);
$rs3 = $_SESSION['db']->getAll($sql7, DB_FETCHMODE_ASSOC);
$rs4 = $_SESSION['db']->getAll($sql8, DB_FETCHMODE_ASSOC);
$rs5 = $_SESSION['db']->getAll($sql9, DB_FETCHMODE_ASSOC);
$rs6 = $_SESSION['db']->getAll($sql10, DB_FETCHMODE_ASSOC);
$rs = array_merge($rs1, $rs2);
foreach ($rs as $eintrag) {
    mkTelNummer($eintrag["id"], "P", array($eintrag["phone"]), false);
}
Example #2
0
function saveFirmaStamm($daten, $datei, $typ = "C", $neu = false)
{
    $kenz = array("C" => "K", "V" => "L");
    $tab = array("C" => "customer", "V" => "vendor");
    if ($neu && $_SESSION['feature_unique_name_plz'] == 't') {
        $sql = "SELECT id FROM " . $tab[$typ] . " WHERE name = '" . strtr($daten['name'], array("'" => "''")) . "' AND zipcode = '" . $daten['zipcode'] . "'";
        $rs = $_SESSION['db']->getAll($sql);
        if ($rs[0]['id']) {
            return array(-1, ".:Customer / Vendor exist with same zipcode:.");
        }
    }
    if (!empty($datei["Datei"]["name"])) {
        // eine Datei wird mitgeliefert
        $pictyp = array("gif", "jpeg", "png", "jpg");
        $ext = substr($datei["Datei"]["name"], strrpos($datei["Datei"]["name"], ".") + 1);
        if (in_array($ext, $pictyp)) {
            $daten["grafik"] = $ext;
            $datei["Datei"]['name'] = "logo.{$ext}";
            $bildok = true;
        }
    }
    // Array zu jedem Formularfed: Tabelle (0=customer/vendor,1=shipto), require(0=nein,1=ja), Spaltenbezeichnung, Regel
    $dbfld = array(name => array(0, 1, 1, "Name", 75), greeting => array(0, 0, 1, "Anrede", 75), department_1 => array(0, 0, 1, "Zusatzname", 75), department_2 => array(0, 0, 1, "Abteilung", 75), country => array(0, 0, 8, "Land", 25), zipcode => array(0, 1, 2, "Plz", 10), city => array(0, 1, 1, "Ort", 75), street => array(0, 1, 1, "Strasse", 75), fax => array(0, 0, 3, "Fax", 30), phone => array(0, 0, 3, "Telefon", 30), email => array(0, 0, 5, "eMail", 0), homepage => array(0, 0, 4, "Homepage", 0), contact => array(0, 0, 1, "Kontakt", 75), v_customer_id => array(0, 0, 1, "Kundennummer", 50), sw => array(0, 0, 1, "Stichwort", 50), notes => array(0, 0, 0, "Bemerkungen", 0), ustid => array(0, 0, 0, "UStId", 0), taxnumber => array(0, 0, 0, "Steuernummer", 0), bank => array(0, 0, 1, "Bankname", 50), bank_code => array(0, 0, 6, "Bankleitzahl", 15), iban => array(0, 0, 1, "IBAN", 24), bic => array(0, 0, 1, "BIC", 15), account_number => array(0, 0, 6, "Kontonummer", 15), language_id => array(0, 0, 6, "Sprache", 0), payment_id => array(0, 0, 6, "Zahlungsbedingungen", 0), employee => array(0, 0, 6, "Bearbeiter", 0), branche => array(0, 0, 1, "Branche", 25), business_id => array(0, 0, 6, "Kundentyp", 0), owener => array(0, 0, 6, "CRM-User", 0), grafik => array(0, 0, 9, "Grafik", 4), lead => array(0, 0, 6, "Leadquelle", 0), leadsrc => array(0, 0, 1, "Leadquelle", 15), bland => array(0, 0, 6, "Bundesland", 0), taxzone_id => array(0, 1, 6, "Steuerzone", 0), salesman_id => array(0, 0, 6, "Vertriebler", 0), konzern => array(0, 0, 6, "Konzern", 0), shiptoname => array(1, 0, 1, "Liefername", 75), shiptostreet => array(1, 0, 1, "Lieferstrasse", 75), shiptobland => array(1, 0, 6, "Liefer-Bundesland", 0), shiptocountry => array(1, 0, 8, "Lieferland", 3), shiptozipcode => array(1, 0, 2, "Liefer-Plz", 10), shiptocity => array(1, 0, 1, "Lieferort", 75), shiptocontact => array(1, 0, 1, "Kontakt", 75), shiptophone => array(1, 0, 3, "Liefer Telefon", 30), shiptofax => array(1, 0, 3, "Lieferfax", 30), shiptoemail => array(1, 0, 5, "Liefer-eMail", 0), shiptodepartment_1 => array(1, 0, 1, "Lieferzusatzname", 75), shiptodepartment_2 => array(1, 0, 1, "Lieferabteilung", 75), headcount => array(0, 0, 6, "Anzahl Mitarbeiter", 10), currency_id => array(0, 0, 6, "Currency", 0));
    $keys = array_keys($daten);
    $dbf = array_keys($dbfld);
    $anzahl = count($keys);
    $fid = $daten["id"];
    $fehler = "ok";
    $ala = false;
    if ($daten["greeting_"] != "") {
        $daten["greeting"] = $daten["greeting_"];
    }
    if ($daten["branche_"] != "") {
        $daten["branche"] = $daten["branche_"];
    }
    $tels1 = array();
    $tels2 = array();
    for ($i = 0; $i < $anzahl; $i++) {
        if (in_array($keys[$i], $dbf)) {
            $tmpval = trim($daten[$keys[$i]]);
            if ($dbfld[$keys[$i]][0] == 1) {
                // select für Lieferanschrift bilden
                if ($tmpval) {
                    $ala = true;
                }
                if (!chkFld($tmpval, $dbfld[$keys[$i]][1], $dbfld[$keys[$i]][2], $dbfld[$keys[$i]][4])) {
                    $fehler = $dbfld[$keys[$i]][3];
                    $i = $anzahl;
                } else {
                    if (in_array($dbfld[$keys[$i]][2], array(0, 1, 2, 3, 4, 5, 7, 8, 9))) {
                        //Daten == Zeichenkette
                        if (empty($tmpval)) {
                            $query1 .= $keys[$i] . "=null,";
                        } else {
                            $query1 .= $keys[$i] . "='" . $tmpval . "',";
                        }
                    } else {
                        //Daten == Zahl
                        if (empty($tmpval) && !$tmpval === 0) {
                            $query1 .= $keys[$i] . "=null,";
                        } else {
                            $query1 .= $keys[$i] . "=" . $tmpval . ",";
                        }
                    }
                    if ($keys[$i] == "shiptophone" || $keys[$i] == "shiptofax") {
                        $tels2[] = $tmpval;
                    }
                }
            } else {
                // select für Rechnungsanschrift bilden
                if (!chkFld($tmpval, $dbfld[$keys[$i]][1], $dbfld[$keys[$i]][2], $dbfld[$keys[$i]][4])) {
                    $fehler = $dbfld[$keys[$i]][3];
                    $i = $anzahl;
                } else {
                    if (in_array($dbfld[$keys[$i]][2], array(0, 1, 2, 3, 4, 5, 7, 8, 9))) {
                        if (empty($tmpval)) {
                            $query0 .= $keys[$i] . "=null,";
                        } else {
                            $query0 .= $keys[$i] . "='" . $tmpval . "',";
                        }
                    } else {
                        //Daten == Zahl
                        if (empty($tmpval) && !$tmpval === 0) {
                            $query0 .= $keys[$i] . "=null,";
                        } else {
                            $query0 .= $keys[$i] . "=" . $tmpval . ",";
                        }
                    }
                    if ($keys[$i] == "phone" || $keys[$i] == "fax") {
                        $tels1[] = $tmpval;
                    }
                }
            }
        }
    }
    if ($daten["direct_debit"] == "t") {
        if (empty($daten["bank"]) or empty($daten["account_number"]) or empty($daten["bank_code"])) {
            $fehler = "Lastschrift: Bankverbindung fehlt";
        } else {
            $query0 .= "direct_debit='t',";
        }
    } else {
        $query0 .= "direct_debit='f',";
    }
    if ($fehler == "ok") {
        if ($daten["customernumber"]) {
            $query0 = substr($query0, 0, -1);
            $DIR = "C" . $daten["customernumber"];
        } else {
            if ($daten["vendornumber"]) {
                $query0 = substr($query0, 0, -1);
                $DIR = "V" . $daten["vendornumber"];
            } else {
                $tmpnr = newnr($tab[$typ], $daten["business_id"]);
                if ($typ == "C") {
                    $DIR = "C" . $tmpnr;
                    $query0 = $query0 . "customernumber='{$tmpnr}' ";
                } else {
                    $DIR = "V" . $tmpnr;
                    $query0 = $query0 . "vendornumber='{$tmpnr}' ";
                }
            }
        }
        include "links.php";
        if (!is_dir($dir_abs . "/" . $DIR)) {
            // Wird wo definiert???
            mkdir($dir_abs . "/" . $DIR);
        }
        chmod($dir_abs . "/" . $DIR, $_SESSION['dir_mode']);
        if ($_SESSION['dir_group']) {
            chgrp($dir_abs . "/" . $DIR, $_SESSION['dir_group']);
        }
        $link_dir_cv = $typ == "C" ? $link_dir_cust : $link_dir_vend;
        if (!$dir_abs . $link_dir_cv . "/" . mkDirName($daten['name']) . "_" . $DIR) {
            if (is_dir($dir_abs . $link_dir_cv)) {
                if ($dh = opendir($dir_abs . $link_dir_cv)) {
                    while (($link = readdir($dh)) !== false) {
                        $split = preg_split("/(_" . $typ . ")([\\d]{1,})/", $link, 2, PREG_SPLIT_DELIM_CAPTURE);
                        if ($split[1] . $split[2] == "_" . $DIR) {
                            unlink($dir_abs . $link_dir_cv . "/" . $link);
                        }
                    }
                }
                closedir($dh);
            }
            symlink($dir_abs . "/" . $DIR, $dir_abs . $link_dir_cv . "/" . mkDirName($daten['name']) . "_" . $DIR);
        }
        $query1 = substr($query1, 0, -1) . " ";
        $sql0 = "update " . $tab[$typ] . " set {$query0} where id={$fid}";
        mkTelNummer($fid, $typ, $tels1);
        if ($bildok) {
            require_once "documents.php";
            $dbfile = new document();
            $dbfile->setDocData("descript", "Firmenlogo von " . $daten["name"]);
            $dbfile->uploadDocument($datei, "/{$DIR}");
        }
        $rc1 = true;
        if ($ala) {
            if ($daten["shipto_id"] > 0) {
                $sql1 = "update shipto set {$query1} where shipto_id=" . $daten["shipto_id"];
                $rc1 = $_SESSION['db']->query($sql1);
            } else {
                $sid = newShipto($fid);
                if ($sid) {
                    $sql1 = "update shipto set {$query1} where shipto_id=" . $sid;
                    $rc1 = $_SESSION['db']->query($sql1);
                }
            }
            if ($rc1) {
                mkTelNummer($fid, "S", $tels2);
            }
        }
        $rc0 = $_SESSION['db']->query($sql0);
        if ($rc0 and $rc1) {
            $rc = $fid;
            //ab hier CVARS
            //Alle möglichen Vars holen
            $sql = "SELECT id,name,type from custom_variable_configs where module = 'CT'";
            $vars = $_SESSION['db']->getAll($sql);
            if ($vars) {
                foreach ($vars as $row) {
                    $vartype[$row["name"]] = array("id" => $row["id"], "type" => $row["type"]);
                }
            }
            $sqltpl = "insert into custom_variables (config_id,trans_id,bool_value,timestamp_value,text_value,number_value)";
            $sqltpl .= "values (%d,%d,%s,%s,%s,%s)";
            //bisherige Einträge löschen.
            $sql = "delete from custom_variables where trans_id = " . $daten["id"];
            $rcc = $_SESSION['db']->query($sql);
            //Insert bilden
            foreach ($daten as $key => $val) {
                if (substr($key, 0, 8) == "vc_cvar_") {
                    //eine CVar
                    $name = substr($key, 8);
                    //Values erzeugen
                    $date = "null";
                    $num = "null";
                    $bool = "null";
                    $text = "null";
                    switch ($vartype[$name]["type"]) {
                        case "select":
                        case "textfield":
                        case "text":
                            $text = "'{$val}'";
                            break;
                        case "number":
                            $num = sprintf("%0.2f", $val);
                            break;
                        case "customer":
                            $num = $val;
                            break;
                        case "date":
                            $date = "'" . date2db($val) . "'";
                            break;
                        case "bool":
                            $bool = $val == 't' ? "'t'" : "'f'";
                            break;
                        default:
                            $text = "'{$val}'";
                            break;
                    }
                    $sql = sprintf($sqltpl, $vartype[$name]["id"], $daten["id"], $bool, $date, $text, $num);
                    $rcc = $_SESSION['db']->query($sql);
                }
            }
        } else {
            $rc = -1;
            $fehler = ".:unknown:.";
        }
        return array($rc, $fehler);
    } else {
        if ($daten["saveneu"]) {
            $sql = "delete from " . $tab[$typ] . " where id=" . $daten["id"];
            $rc0 = $_SESSION['db']->query($sql);
        }
        return array(-1, $fehler);
    }
}
Example #3
0
function saveUserStamm($val)
{
    // Prüfen ob crmemployee schon existiert, sonst wird bei einer frischen DB ein unschöner Fehler ausgegeben.
    // Besser: crmemployee vordem Aufruf von saveUserStamm() erstellen ToDo!
    $crm_exist = $_SESSION['db']->getOne("SELECT count(*) FROM information_schema.tables WHERE table_name = 'crmemployee'");
    if (!(bool) $crm_exist['count']) {
        return false;
    }
    if (!$val["interv"]) {
        $val["interv"] = 60;
    }
    if (!$val["ssl"]) {
        $val["ssl"] = 'f';
    }
    if (!$val["proto"]) {
        $val["proto"] = 't';
    }
    if (!$val["port"]) {
        $val["port"] = $val["proto"] == 't' ? '143' : '110';
    }
    if (!$val["termseq"]) {
        $val["termseq"] = 30;
    }
    if ($val["vertreter"] == $val["uid"]) {
        $vertreter = "null";
    } else {
        $vertreter = $val["vertreter"];
    }
    $std = array('name');
    $fld = array('msrv' => 't', 'postf' => 't', 'kennw' => 't', 'postf2' => 't', 'mailsign' => 't', 'email' => 't', 'mailuser' => 't', 'port' => 'i', 'proto' => 't', 'ssl' => 't', 'addr1' => 't', 'addr2' => 't', 'addr3' => 't', 'workphone' => 't', 'homephone' => 't', 'notes' => 't', 'abteilung' => 't', 'position' => 't', 'interv' => 'i', 'pre' => 't', 'preon' => 'b', 'vertreter' => 'i', 'etikett' => 'i', 'termbegin' => 'i', 'termend' => 'i', 'termseq' => 'i', 'kdviewli' => 'i', 'kdviewre' => 'i', 'searchtab' => 'i', 'icalart' => 't', 'icaldest' => 't', 'icalext' => 't', 'deleted' => 'b', 'streetview' => 't', 'planspace' => 't', 'streetview_default' => 'b', 'theme' => 't', 'smask' => 't', 'helpmode' => 'b', 'listen_theme' => 't', 'auftrag_button' => 'b', 'angebot_button' => 'b', 'rechnung_button' => 'b', 'liefer_button' => 'b', 'zeige_extra' => 'b', 'zeige_lxcars' => 'b', 'zeige_karte' => 'b', 'zeige_tools' => 'b', 'zeige_etikett' => 'b', 'zeige_bearbeiter' => 'b', 'feature_ac' => 'b', 'feature_ac_minlength' => 'i', 'feature_ac_delay' => 'i', 'feature_unique_name_plz' => 'b', 'sql_error' => 'b', 'php_error' => 'b', 'external_mail' => 'b', 'zeige_dhl' => 'b', 'data_from_tel' => 'b', 'tinymce' => 'b', 'search_history' => 't', 'mandsig' => 't');
    foreach ($fld as $key => $value) {
        $_SESSION[$key] = isset($val[$key]) ? $val[$key] : '';
    }
    //Einstellungen nach dem Sichern gleich übernehmen (ohne neues Login)
    //Sollte besser clientseitig abgefragt werden! etwa so wenn streetview_default dann nehme streetview_man sonst streetview
    /*if( $_SESSION['streetview_default'] ){
          $client_data = getClientData();
          $_SESSION['streetview'] = $client_data['streetview_man'] ? $client_data['streetview_man'] : 'http://maps.google.de/maps?f=d&hl=de&saddr=Alexanderplatz+7,10178+Berlin&daddr=%TOSTREET%,%TOZIPCODE%+%TOCITY%';
      }*/
    if (isset($_SESSION['sql_error']) && $_SESSION['sql_error']) {
        $_SESSION['db']->setShowError(true);
    } else {
        $_SESSION['db']->setShowError(false);
    }
    $sql = "update employee set ";
    foreach ($std as $key) {
        if ($val[$key] != "") {
            $sql .= $key . "='" . $val[$key] . "',";
        } else {
            $sql .= $key . "=null,";
        }
    }
    $sql = substr($sql, 0, -1);
    $sql .= ' where id=' . $val['uid'];
    $rc = $_SESSION['db']->query($sql);
    if ($val["homephone"]) {
        mkTelNummer($val["uid"], "E", array($val["homephone"]));
    }
    if ($val["workphone"]) {
        mkTelNummer($val["uid"], "E", array($val["workphone"]));
    }
    $rc = $_SESSION['db']->begin();
    $rc = $_SESSION['db']->query('DELETE FROM crmemployee WHERE uid = ' . $val["uid"] . ' AND manid = ' . $_SESSION['manid']);
    if ($rc) {
        foreach ($fld as $key => $typ) {
            if (array_key_exists($key, $val)) {
                $sql = 'INSERT INTO crmemployee (manid,uid,key,val,typ) VALUES (' . $_SESSION['manid'] . ',' . $val['uid'] . ",'{$key}','" . $val[$key] . "','{$typ}')";
            } else {
                $sql = 'INSERT INTO crmemployee (manid,uid,key,val,typ) VALUES (' . $_SESSION['manid'] . ',' . $val['uid'] . ",'{$key}',null,'{$typ}')";
            }
            $rc = $_SESSION['db']->query($sql);
            if (!$rc) {
                $_SESSION['db']->rollback();
                $rc = false;
                break;
            }
        }
    }
    if ($rc) {
        $rc = $_SESSION['db']->commit();
        return true;
    }
    return false;
}
Example #4
0
function savePersonStamm($daten, $datei)
{
    $tmp = 0;
    $pid = $daten["PID"];
    $bildok = false;
    // Array zu jedem Formularfed: Tabelle (0=contact,1=cust/vend),  require(0=nein,1=ja), Regel
    // cp_greeting ist raus hli
    $dbfld = array("cp_name" => array(0, 1, 1, "Name", 75), "cp_givenname" => array(0, 1, 1, "Vorname", 75), "cp_gender" => array(0, 0, 1, "Geschlecht", 1), "cp_title" => array(0, 0, 1, "Titel", 75), "cp_street" => array(0, 0, 1, "Strasse", 75), "cp_zipcode" => array(0, 0, 2, "Plz", 10), "cp_city" => array(0, 0, 1, "Ort", 75), "cp_country" => array(0, 0, 8, "Land", 3), "cp_phone1" => array(0, 0, 3, "Telefon 1", 30), "cp_phone2" => array(0, 0, 3, "Telefon 2", 30), "cp_mobile1" => array(0, 0, 3, "Mobiletelefon 1", 30), "cp_mobile2" => array(0, 0, 3, "Mobiletelefon 2", 30), "cp_homepage" => array(0, 0, 4, "Homepage", 0), "cp_fax" => array(0, 0, 3, "Fax", 30), "cp_email" => array(0, 0, 5, "eMail", 0), "cp_privatemail" => array(0, 0, 5, "Private eMail", 0), "cp_notes" => array(0, 0, 1, "Bemerkungen", 0), "cp_stichwort1" => array(0, 0, 1, "Stichworte", 50), "cp_salutation" => array(0, 0, 1, "Briefanrede", 125), "cp_privatphone" => array(0, 0, 3, "Privattelefon 1", 30), "cp_birthday" => array(0, 0, 7, "Geb-Datum", 0), "cp_beziehung" => array(0, 0, 6, "Beziehung", 0), "cp_abteilung" => array(0, 0, 1, "Abteilung", 25), "cp_position" => array(0, 0, 1, "Position", 25), "cp_cv_id" => array(0, 0, 6, "FID", 0), "name" => array(1, 0, 1, "Firma", 75), "cp_owener" => array(0, 0, 6, "CRM-User", 0), "cp_grafik" => array(0, 0, 9, "Grafik", 4));
    if (!empty($datei["Datei"]["name"]["bild"])) {
        // eine Datei wird mitgeliefert
        $pictyp = array("gif", "jpeg", "png", "jpg");
        $ext = strtolower(substr($datei["Datei"]["name"]["bild"], strrpos($datei["Datei"]["name"]["bild"], ".") + 1));
        if (in_array($ext, $pictyp)) {
            $daten["cp_grafik"] = $ext;
            $datei["Datei"]['name']["bild"] = "kopf{$pid}.{$ext}";
            $bildok = true;
        }
    } else {
        $daten["cp_grafik"] = $daten["IMG_"];
    }
    if ($daten["cp_salutation_"]) {
        $daten["cp_salutation"] = $daten["cp_salutation_"];
    }
    $keys = array_keys($daten);
    $dbf = array_keys($dbfld);
    //$fid=$daten["fid"];
    $anzahl = count($keys);
    $fehler = -1;
    $tels = array();
    $query0 = '';
    for ($i = 0; $i < $anzahl; $i++) {
        if (in_array($keys[$i], $dbf)) {
            $tmpval = trim($daten[$keys[$i]]);
            if ($dbfld[$keys[$i]][0] == 1) {
                // Daten nicht für contacts
                continue;
            } else {
                if (!chkFld($tmpval, $dbfld[$keys[$i]][1], $dbfld[$keys[$i]][2], $dbfld[$keys[$i]][4])) {
                    $fehler = $dbfld[$keys[$i]][3];
                    $fehler .= "::" . $keys[$i];
                    $i = $anzahl + 1;
                }
                if ($keys[$i] == "cp_phone1" || $keys[$i] == "cp_phone2" || $keys[$i] == "cp_fax") {
                    $tels[] = $tmpval;
                }
                $query0 .= $keys[$i] . "=";
                if (in_array($dbfld[$keys[$i]][2], array(0, 1, 2, 3, 4, 5, 7, 8, 9))) {
                    //Stringwert
                    if (empty($tmpval)) {
                        $query0 .= "null,";
                    } else {
                        $query0 .= "'" . $tmpval . "',";
                    }
                } else {
                    if (empty($tmpval)) {
                        $query0 .= "null,";
                    } else {
                        $query0 .= $tmpval . ",";
                        //Zahlwert
                    }
                }
            }
        }
    }
    if ($fehler == -1) {
        //Kein Fehler aufgetreten
        if (!$daten["PID"] or $daten["PID"] < 1) {
            $pid = mknewPerson($daten["employee"]);
        }
        //Neue Person
        if (!$pid) {
            return "keine PID";
        }
        //Hat keine PID
        if ($daten["nummer"]) {
            //Gehört zu einem Cust./Vend.
            $dir = $daten["Quelle"] . $daten["nummer"] . "/" . $pid;
        } else {
            $dir = $pid;
        }
        $ok = chkdir($dir);
        if ($bildok) {
            //Ein Bild wird mitgeliefert
            require_once "documents.php";
            // db-Eintrag und upload
            $dbfile = new document();
            $dbfile->setDocData("descript", "Foto von " . $daten["cp_givenname"] . " " . $daten["cp_name"]);
            $bild["Datei"]["name"] = $datei["Datei"]["name"]["bild"];
            $bild["Datei"]["tmp_name"] = $datei["Datei"]["tmp_name"]["bild"];
            $bild["Datei"]["size"] = $datei["Datei"]["size"]["bild"];
            $bild["Datei"]["type"] = $datei["Datei"]["type"]["bild"];
            $bild["Datei"]["error"] = $datei["Datei"]["error"]["bild"];
            $dbfile->uploadDocument($bild, "/{$dir}");
        }
        if ($datei["Datei"]["name"]["visit"]) {
            $bild["Datei"]["name"] = "vcard{$pid}." . strtolower(substr($datei["Datei"]["name"]["visit"], strrpos($datei["Datei"]["name"]["visit"], ".") + 1));
            $bild["Datei"]["tmp_name"] = $datei["Datei"]["tmp_name"]["visit"];
            $bild["Datei"]["size"] = $datei["Datei"]["size"]["visit"];
            $bild["Datei"]["type"] = $datei["Datei"]["type"]["visit"];
            $bild["Datei"]["error"] = $datei["Datei"]["error"]["visit"];
            $dbfile = new document();
            $dbfile->setDocData("descript", "Visitenkarte von " . $daten["cp_givenname"] . " " . $daten["cp_name"]);
            $dbfile->uploadDocument($bild, "/{$dir}");
        }
        mkTelNummer($pid, "P", $tels);
        $sql0 = "update contacts set " . $query0 . "cp_employee=" . $_SESSION["loginCRM"] . " where cp_id={$pid}";
        if ($_SESSION['db']->query($sql0)) {
            //Erfolgreich gesichert
            return $pid;
        } else {
            return "unbekannt";
        }
    } else {
        return $fehler;
    }
}