"; zoneRequestLogFile($currentTime); zoneRequestLogFile($zoneReq); if ($selectedLanguage == "" || !is_numeric($selectedLanguage)) : $selectedLanguage = "1"; endif; // Default in English $languageSelected = $selectedLanguage; getLanguage(__FILE__); getCurrentScript(__FILE__); $err = array(); $zoneResponse = ""; $xmlZone = ""; // --------------------------------------------------------------------------- // GLOBAL MODE OF USAGE $globalParUseRelatedCustomer = getParameterValue("0", "GLOBAL_USE_RELATED_CUSTOMER", "0"); // *** Parse request *** $zoneArray = xml2array($zoneReq); if ($debug) : print_r($zoneArray); echo "


"; endif; // *** Convert result array to usable parameters *** // Authentication data $csEid = convertSpecial($zoneArray["xml"]["zone"]["auth"]["customer"]); $csId = getFieldValueFromId("customer","cs_eid",$csEid,"cs_id"); $usrAccount = convertSpecial($zoneArray["xml"]["zone"]["auth"]["account"]); $usrPassword = convertSpecial($zoneArray["xml"]["zone"]["auth"]["password"]); $sessionId = convertSpecial($zoneArray["xml"]["zone"]["auth"]["session_id"]); // Optional customer group data (needed to find e.g. an article price automatically). Has to be set explicitly, because a customer could belong to more groups !!!! $csGroupId = convertSpecial($zoneArray["xml"]["zone"]["auth"]["group_no"]); $csGroupName = convertSpecial($zoneArray["xml"]["zone"]["auth"]["group_name"]); if ($csGroupId != "" && is_numeric($csGroupId)) : $csGroupName = getFieldValueFromId("groups","grp_id",$csGroupId,"grp_name"); elseif ($csGroupName != "") : $csGroupId = getFieldValueFromId("groups","grp_name",$csGroupName,"grp_id"); endif; // Reset customer group data if it could not be identified if ($csGroupId == "" || $csGroupName == "") : $csGroupId = ""; $csGroupName = ""; endif; $debugOut .= "usrAccount: " . $usrAccount . "
\n"; $debugOut .= "usrPassword: " . $usrPassword . "
\n"; $debugOut .= "sessionId: " . $sessionId . "
\n"; if (checkRequestAuthenticationData($usrAccount, $usrPassword, $sessionId, $csId)) : $debugOut .= "Authentication okay!

\n"; // Data $hqId = getFieldValueFromId("customer","cs_id",$csId,"hq_id"); $cscName = convertSpecial($zoneArray["xml"]["zone"]["auth"]["costcenter_name"]); $cscId = ""; if ($cscName != "") : $cscId = getFieldValueFromClause("costcenter","csc_id","cs_id = '" . $csId . "' AND csc_name = '" . $cscName . "'"); endif; if ($cscId == "" || !is_numeric($cscId)) : $cscId = getFieldValueFromClause("costcenter","csc_id","cs_id = '" . $csId . "' AND isnull(csc_pre_id)"); // Root costcenter endif; // Get job or zone data $operation = convertSpecial($zoneArray["xml"]["zone"]["operation"]); $debugOn = convertSpecial($zoneArray["xml"]["zone"]["debug_on"]); $ecoZipcode = convertSpecial($zoneArray["xml"]["zone"]["eco_zipcode"]); $debugOut .= "operation: " . $operation . "
\n"; $debugOut .= "ecoZipcode: " . $ecoZipcode . "
\n"; // Init $currentTimestamp = getDateTime("0"); $currentDay = getDateTime("3"); // "Y-m-d" $currentTime = getDateTime("4"); // Current time ("H:i:s") $currYear = getDateTime("year"); // Current year if (!$debug && $debugOn == "ON" || $debugOn == "YES") : $debug = true; endif; if ($operation == "SET") : // TO BE DONE! else : $zone_no = ""; $zone_name = ""; $sqlquery = "SELECT srvz.srvz_no, srvz.srvz_name FROM servicezone AS srvz, serviceplz AS srvp, servicezonemapping AS srvzm " . " WHERE srvp.srvp_plz = '" . $ecoZipcode . "' AND srvp.srvp_id = srvzm.srvp_id AND srvzm.srvz_id = srvz.srvz_id AND srvz.cs_id = '" . $csId . "'"; $result = $db->query($sqlquery); if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage()); while ($row = $result->fetch_assoc()): $zone_no = $row["srvz_no"]; $zone_name = $row["srvz_name"]; endwhile; $result->free(); // Check for ERRORS if ($zone_no != "" && $zone_name != "") : // Vehicles found => Generate output $retArrayLen = count($retArray); $xmlZone .= ""; $xmlZone .= "" . $zone_no . ""; // zone no $xmlZone .= "" . $zone_name . ""; // zone name $xmlZone .= ""; else : if (!(strpos($retArray, "ERR:ZIPCODE_NOT_IN_ANY_CUSTOMER_ZONE") === FALSE)) : $err[] = array("102", getLngt("Die PLZ ist keiner Zone zugeordnet!") . " [" . $ecoZipcode . "]"); else : $err[] = array("103", getLngt("Bereichsfehler!")); endif; endif; $debugOut .= "

xmlZone: " . $xmlZone . "
\n"; endif; else : // Authentication data not ok $err[] = array("101", getLngt("Die Authentifizierungsdaten sind nicht in Ordnung.")); endif; // print_r($err); // Check existence of at least one error $errLen = count($err); // Output $zoneResponse .= ""; if ($errLen > 0) : zoneRequestLogFile("ERRORS", 1); $zoneResponse .= "NOT OK"; $zoneResponse .= ""; for ($i = 0; $i < $errLen; $i++) : $zoneResponse .= ""; $zoneResponse .= "" . $err[$i][0] . ""; $zoneResponse .= ""; $zoneResponse .= ""; if ($debug) : $zoneResponse .= "" . $debugOut . ""; endif; zoneRequestLogFile($err[$i][0] . " : " . mcEncode($err[$i][1]), 1); endfor; $zoneResponse .= ""; else : $zoneResponse .= "OK" . $xmlZone; if ($debug) : $zoneResponse .= "" . $debugOut . ""; endif; endif; $zoneResponse .= ""; // Log entries zoneRequestLogFile($zoneResponse); // Write response into log zoneRequestLogFile("___________________________________________________________________________________"); // Return output echo $zoneResponse; /* // REQUEST // Terminanfrage // Identifikation des Kunden ... // Kundennummer (EID) {"STBxxxxxx", ...} => csc_id_payer ... // Eingetragener Benutzer für den Kunden => cs.cs_admin => emp.emp_id => emp.usr_id => usr.usr_id => usr.usr_account ... // Passwort für den Benutzer => usr.usr_password ... // Zusätzliche Session-ID, die mit dem Kunden ausgehandelt wurde [mandatory] ... // Kostenstellenname {"abcd", "efgh", ...} => Mapping csc_id [optional] ... // Nummer der Kundengruppe (Bei einer automatischen Preisfindung muss entweder oder gesetzt sein) ... // Name der Kundengruppe (Bei einer automatischen Preisfindung muss entweder oder gesetzt sein) ... // Activates debug output ("ON" or "YES") GET|SET // Operation (GET or SET zone(s), default is "GET" if emty tag) ... // Zipcode to get the zone for // RESPONSE for GET OK */ ?>