1. Import
This commit is contained in:
659
html/locating/locating_D2.php
Normal file
659
html/locating/locating_D2.php
Normal file
@@ -0,0 +1,659 @@
|
||||
<?php
|
||||
/*=======================================================================
|
||||
*
|
||||
* locating_D2.php
|
||||
*
|
||||
* Autor: Marc Vollmann
|
||||
*
|
||||
=======================================================================*/
|
||||
|
||||
include_once ("../include/mcglobal.inc.php");
|
||||
include_once ("../include/auth.inc.php");
|
||||
include_once ("../include/ranking.inc.php");
|
||||
|
||||
|
||||
// Check HTTP-Parameters
|
||||
getSecHttpVars("1",array("f_act", "customerId", "cscIdRoot", "cscIdActual", "f_cr_sid", "useRemoteDB"));
|
||||
|
||||
|
||||
$locatingURL = "../locating/locating_D2.php";
|
||||
|
||||
// Check for authentication access and granted rights
|
||||
$usrAccessArray["hq"] = "1";
|
||||
authCheckForAccess($hq_id, $usr_id, $emp_id, "1", $customerId, $cscIdRoot, $cscIdActual);
|
||||
authCheckEmployeeRights($emp_id, "4", "1");
|
||||
|
||||
// ******************************************************
|
||||
// Very special treatment for access to remote database
|
||||
include_once ("../include/bwv.inc.php");
|
||||
echo $useRemoteDB . "<br>";
|
||||
$remoteDBisActive = false;
|
||||
if (BWV2_checkEmpRemoteDBAccess($useRemoteDB, $emp_id)) :
|
||||
$remoteDBisActive = BWV2_setRemoteDBAccessParameter();
|
||||
endif;
|
||||
// ******************************************************
|
||||
|
||||
/*
|
||||
FLOW:
|
||||
- General definitions
|
||||
- Get courier-id from http-request
|
||||
- Search MSISDN from courier-id
|
||||
- Generate request
|
||||
- Send request
|
||||
- Parse response
|
||||
- Search x,y-coordinates in cells to be valid
|
||||
- Compute longitude and latitude (transformation)
|
||||
- Get zipcode from coordinates
|
||||
- Update zipcode of the courier
|
||||
- Write to log-file|log-db (employee, datetime, courier-id, msisdn, [zipcode, x_y_of_cell])
|
||||
- Output zipcode
|
||||
*/
|
||||
|
||||
|
||||
// ***********************
|
||||
// * General definitions *
|
||||
// ***********************
|
||||
|
||||
|
||||
// Proxy und Port fuer HTTPS
|
||||
$proxy = "";
|
||||
|
||||
// $port = ":9883"; // D2 LBS-Testsystem
|
||||
$port = ":705"; // D2 LBS-Live
|
||||
$constPort = getParameterValue("0", "LOCATING_LBS_PORT", "0");
|
||||
if ($constPort != "") : $port = $constPort; endif;
|
||||
|
||||
// $server = "213.148.156.83"; // D2 LBS-Testsystem
|
||||
$server = "139.7.25.166"; // D2 LBS-Live
|
||||
$constServer = getParameterValue("0", "LOCATING_LBS_SERVER", "0");
|
||||
if ($constServer != "") : $server = $constServer; endif;
|
||||
|
||||
// Access to a special remote file
|
||||
// $file = "ats/receiver"; // D2 LBS-Testsystem
|
||||
$file = "LocationQueryService"; // D2 LBS-Live
|
||||
|
||||
// Request id
|
||||
// $requestID = "1";
|
||||
$requestID = rand(1,30000);
|
||||
|
||||
// User and password
|
||||
$vaspID = "mi2ju GmbH"; // D2 Live
|
||||
$constVaspID = getParameterValue("0", "LOCATING_LBS_VASP_ID", "0");
|
||||
if ($constVaspID != "") : $vaspID = $constVaspID; endif;
|
||||
|
||||
$password = "mi2ju03#"; // D2 Live
|
||||
$constPassword = getParameterValue("0", "LOCATING_LBS_PASSWORD", "0");
|
||||
if ($constPassword != "") : $password = $constPassword; endif;
|
||||
|
||||
// Service ID
|
||||
// $serviceId = "mi2juTest"; // D2 Testsystem
|
||||
$serviceId = "mi2ju"; // D2 Live
|
||||
$constServiceId = getParameterValue("0", "LOCATING_LBS_SERVICE_ID", "0");
|
||||
if ($constServiceId != "") : $serviceId = $constServiceId; endif;
|
||||
|
||||
// Maximum of age of locating info
|
||||
$maxAgeOfLocatingInfoInSeconds = "300";
|
||||
|
||||
// Minimum of the granularity
|
||||
$minOfGranularityInMeter = "99999";
|
||||
|
||||
// Client Certificate and Private Key
|
||||
$clientcertkey = '-cert cacert.pem -key privkey.pem';
|
||||
|
||||
// Path to openssl
|
||||
$openssl = 'openssl';
|
||||
|
||||
// Port of openssl
|
||||
$opensslPort = "9213";
|
||||
|
||||
// Only for output
|
||||
$status_message = "";
|
||||
|
||||
// Logging enabled
|
||||
$loggingEnabled = TRUE;
|
||||
$logFile = "../log/COM_LOG";
|
||||
|
||||
// Echo enabled
|
||||
$echoEnabled = FALSE;
|
||||
|
||||
|
||||
// *************
|
||||
// * Functions *
|
||||
// *************
|
||||
|
||||
function writeLocatingLog($file, $value) {
|
||||
global $loggingEnabled;
|
||||
if ($loggingEnabled) :
|
||||
writeToFile($file, $value);
|
||||
endif;
|
||||
}
|
||||
|
||||
function connectD2($completeReq) {
|
||||
global $server, $port;
|
||||
$response = "";
|
||||
$errno = "";
|
||||
$errstr = "";
|
||||
$fp = fsockopen ($server, substr($port, 1), $errno, $errstr, 10);
|
||||
if (!$fp) {
|
||||
$response = "$errstr ($errno)<br>\n";
|
||||
} else {
|
||||
fputs ($fp, $completeReq);
|
||||
if (fflush($fp)) :
|
||||
|
||||
// Read header
|
||||
$httpHeader = "";
|
||||
$httpBodyLength = 0;
|
||||
if (!feof($fp)) :
|
||||
$line = trim(fgets ($fp,1024));
|
||||
$httpHeader .= trim($line);
|
||||
while (!feof($fp) && $line != "") {
|
||||
$line = trim(fgets ($fp,1024));
|
||||
$httpHeader .= $line;
|
||||
if (!(strpos($line, "Content-Length: ") === FALSE)) :
|
||||
$httpBodyLength = trim(substr($line, 16));
|
||||
endif;
|
||||
}
|
||||
endif;
|
||||
// writeLocatingLog($logFile, "::: " . $httpHeader . "\r\n");
|
||||
// writeLocatingLog($logFile, "::: " . $httpBodyLength . "\r\n");
|
||||
|
||||
/*
|
||||
// while (!feof($fp) && $line != "</SLIA>") {
|
||||
while (!feof($fp) && strlen($response) < ($httpBodyLength - 7)) {
|
||||
$line = trim(fgets ($fp,1024));
|
||||
$response .= $line;
|
||||
}
|
||||
*/
|
||||
$count = 0;
|
||||
while (!feof($fp) && $count < $httpBodyLength) {
|
||||
$line = trim(fgets ($fp,2));
|
||||
$response .= $line;
|
||||
$count++;
|
||||
}
|
||||
// writeLocatingLog($logFile, ":# Loops: " . $count . "\r\n");
|
||||
|
||||
else :
|
||||
$response = "ERR: " . $errno . " " . $errstr;
|
||||
endif;
|
||||
|
||||
fclose ($fp);
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
// *********************************
|
||||
// * Search MSISDN from courier-id *
|
||||
// *********************************
|
||||
|
||||
// Get courier-id from the courier-sid (e.g. SIDs: 1013, 1019, etc.)
|
||||
$cr_id = getFieldValueFromId("courier","cr_sid",$f_cr_sid,"cr_id");
|
||||
$msisdn = getFieldValueFromId("courier","cr_id",$cr_id,"cr_mobile_pda");
|
||||
$imei = getFieldValueFromId("courier","cr_id",$cr_id,"cr_imei");
|
||||
$serialno = getFieldValueFromId("courier","cr_id",$cr_id,"cr_serialno");
|
||||
|
||||
|
||||
// Remove blanks in MSISDN and check beginning with "49"
|
||||
// (IMPORTANT: No check for other chars because checked in javascript !!!)
|
||||
$msisdn = ereg_replace (" ", "", $msisdn);
|
||||
$msisdn = str_replace("+", "", $msisdn);
|
||||
if (!ereg("^" . COUNTRY_FON_PREFIX, $msisdn)) :
|
||||
if (ereg("^0", $msisdn)) :
|
||||
$msisdn = substr($msisdn, 1);
|
||||
endif;
|
||||
$msisdn = COUNTRY_FON_PREFIX . $msisdn;
|
||||
endif;
|
||||
|
||||
|
||||
// Check necessity of new locating process
|
||||
$locatingStateArray = checkLocatingState($cr_id);
|
||||
//echo $locatingStateArray[0] . "\n";
|
||||
|
||||
// ********************************************************
|
||||
// * Generate request if broker service will be contacted *
|
||||
// ********************************************************
|
||||
/*
|
||||
if ($locatingStateArray[0] == "1") :
|
||||
|
||||
writeLocatingLog($logFile, json_encode($locatingStateArray) . "\r\n");
|
||||
|
||||
// Define header request
|
||||
$requestheaderOrg = "POST /" . $file . " HTTP/1.1\r\n" .
|
||||
"Host: $server$port\r\n" .
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" .
|
||||
"Content-Length: LENGTH\r\n\r\n";
|
||||
|
||||
|
||||
// Connection request
|
||||
$requestContext = "<?xml version='1.0'?><!DOCTYPE HDR SYSTEM 'MLEP_HDR.DTD'><HDR ver='1.0'><CLIENT><ID>$vaspID</ID><PWD>$password</PWD><SERVICEID>$serviceId</SERVICEID><SERVICE_TYPE service_type_type='PASSIVE'/></CLIENT></HDR>";
|
||||
$requestMethod = "SLIR";
|
||||
$requestBody = "<?xml version='1.0'?><!DOCTYPE SLIR SYSTEM 'MLEP_SLIR.DTD'><SLIR ver='1.0'><MSIDS><MSID>" . $msisdn . "</MSID></MSIDS></SLIR>";
|
||||
|
||||
$requestContext = urlencode($requestContext);
|
||||
$requestBody = urlencode($requestBody);
|
||||
|
||||
|
||||
// Merge "Context", "Method" and "Body"
|
||||
$requestContext = "Context=" . $requestContext . "&Method=" . $requestMethod . "&Body=" . $requestBody;
|
||||
|
||||
$laenge = strlen($requestContext);
|
||||
|
||||
$requestheader = $requestheaderOrg;
|
||||
$requestheader = str_replace ("LENGTH", $laenge, $requestheader);
|
||||
|
||||
if ($echoEnabled) : echo $requestheader . $requestContext . "\n\n\n"; endif;
|
||||
writeLocatingLog($logFile, $requestheader . $requestContext . "\r\n");
|
||||
|
||||
$currentTime = getDateTime("0");
|
||||
writeLocatingLog($logFile, "Time begin: " . $currentTime . "\r\n");
|
||||
|
||||
// $response = connectD2($requestheader.$requestContext."\r\n");
|
||||
$response = "dummy";
|
||||
|
||||
$currentTime = getDateTime("0");
|
||||
writeLocatingLog($logFile, "Time end: " . $currentTime . "\r\n");
|
||||
|
||||
if ($echoEnabled) : echo $response . "\n\n\n"; endif;
|
||||
writeLocatingLog($logFile, $response . "\r\n");
|
||||
else :
|
||||
*/
|
||||
$longitude = $locatingStateArray[1];
|
||||
$latitude = $locatingStateArray[2];
|
||||
$gpsTime = $locatingStateArray[4];
|
||||
|
||||
// Generate a faked response to be parsed correctly
|
||||
$response = "";
|
||||
$response .= "<POINT>";
|
||||
$response .= " <LL_POINT>";
|
||||
$response .= " <LAT>" . $locatingStateArray[2] . "</LAT>";
|
||||
$response .= " <LONG>" . $locatingStateArray[1] . "</LONG>";
|
||||
$response .= " </LL_POINT>";
|
||||
$response .= "</POINT>";
|
||||
$response .= "<RAD>XXXX</RAD>";
|
||||
|
||||
//endif;
|
||||
|
||||
|
||||
// Evaluation of the response
|
||||
if ($response == "") :
|
||||
|
||||
// Error occurred, response is empty ...
|
||||
$status_message = "Es wurde keine Antwort geliefert!";
|
||||
else :
|
||||
|
||||
if ((FALSE && !(strpos($response, "<POSERR>") === FALSE)) || ($longitude == 0 && $latitude == 0)) :
|
||||
|
||||
// Error occurred, ...
|
||||
$status_message = "Die Nummer konnte nicht geortet werden!";
|
||||
else :
|
||||
|
||||
if ((strpos($response, "<POINT>") === FALSE)) :
|
||||
|
||||
$status_message = "Die Lokalisierung war nicht möglich!";
|
||||
else :
|
||||
|
||||
// GET LOCATING INFOS OF THE RESPONSE
|
||||
|
||||
// Get latitude
|
||||
/*
|
||||
$beginPos = strpos($response, "<LAT>") + 5;
|
||||
$endPos = strpos($response, "</LAT>");
|
||||
$latitude = substr($response, $beginPos, $endPos - $beginPos);
|
||||
$latitude = substr($latitude, 0, -4) . "." . substr($latitude, -4); // Insert char "."
|
||||
*/
|
||||
|
||||
// Get longitude
|
||||
/*
|
||||
$beginPos = strpos($response, "<LONG>") + 6;
|
||||
$endPos = strpos($response, "</LONG>");
|
||||
$longitude = substr($response, $beginPos, $endPos - $beginPos);
|
||||
$longitude = substr($longitude, 0, -4) . "." . substr($longitude, -4); // Insert char "."
|
||||
*/
|
||||
/*
|
||||
<SLIA ver="1.0">
|
||||
<POS>
|
||||
<MSID>491736281211</MSID>
|
||||
<PD>
|
||||
<TIME>
|
||||
<LOCAL_TIME>20070424163805</LOCAL_TIME>
|
||||
<GMT_OFF>+0200</GMT_OFF>
|
||||
</TIME><SHAPE>
|
||||
<CIRCLE>
|
||||
<POINT>
|
||||
<LL_POINT>
|
||||
<LAT>523011.999</LAT>
|
||||
<LONG>132424.001</LONG>
|
||||
</LL_POINT>
|
||||
</POINT>
|
||||
<RAD>293</RAD>
|
||||
</CIRCLE>
|
||||
</SHAPE>
|
||||
</PD>
|
||||
</POS>
|
||||
|
||||
<GMT_OFF>+0200</GMT_OFF>
|
||||
<RESULT resid="0">OK</RESULT>
|
||||
<SESSIONID>AAADswAAARIkPfYcZByzGh+MVoO8Dt2Uevwx</SESSIONID>
|
||||
</SLIA>
|
||||
*/
|
||||
/*
|
||||
// GET LOCATING INFOS OF THE RESPONSE
|
||||
// If no request has to be send to the server the current longitude and latitude are defined
|
||||
if ($locatingStateArray[0] == "1") :
|
||||
// Get latitude from connection request
|
||||
$beginPos = strpos($response, "<LAT>") + 5;
|
||||
$endPos = strpos($response, "</LAT>");
|
||||
$latitudeRaw = substr($response, $beginPos, $endPos - $beginPos);
|
||||
if ($echoEnabled) : echo "CoordPair: " . $coordPair . "<br>"; endif;
|
||||
|
||||
// Get longitude from connection request
|
||||
$beginPos = strpos($response, "<LONG>") + 6;
|
||||
$endPos = strpos($response, "</LONG>");
|
||||
$longitudeRaw = substr($response, $beginPos, $endPos - $beginPos);
|
||||
if ($echoEnabled) : echo "CoordPair: " . $coordPair . "<br>"; endif;
|
||||
|
||||
// Get radius from connection request
|
||||
$beginPos = strpos($response, "<RAD>") + 5;
|
||||
$endPos = strpos($response, "</RAD>");
|
||||
$radius = substr($response, $beginPos, $endPos - $beginPos);
|
||||
if ($echoEnabled) : echo "CoordPair: " . $coordPair . "<br>"; endif;
|
||||
|
||||
// Transform data
|
||||
// Example: $coordPair = "555555,133333"
|
||||
// $coordPairArray[0] = "555555" | $coordPairArray[0] = "133333"
|
||||
// $x_coord_array[0] = "55" (Stellen 0 und 1) | $x_coord_array[1] = "55" (Stellen 2 und 3) | $x_coord_array[2] = "55" (Stellen 4 und 5)
|
||||
// $y_coord_array[0] = "13" (Stellen 0 und 1) | $y_coord_array[1] = "33" (Stellen 2 und 3) | $y_coord_array[2] = "33" (Stellen 4 und 5)
|
||||
|
||||
$latitudeRawArray = array();
|
||||
$tmpPos = strpos($latitudeRaw, ".");
|
||||
if (!($tmpPos === FALSE)) :
|
||||
$latitudeRawArray[0] = substr($latitudeRaw, 0, $tmpPos);
|
||||
$latitudeRawArray[1] = substr($latitudeRaw, $tmpPos);
|
||||
else :
|
||||
$latitudeRawArray[0] = $latitudeRaw;
|
||||
$latitudeRawArray[1] = "0";
|
||||
endif;
|
||||
$longitudeRawArray = array();
|
||||
$tmpPos = strpos($longitudeRaw, ".");
|
||||
if (!($tmpPos === FALSE)) :
|
||||
$longitudeRawArray[0] = substr($longitudeRaw, 0, $tmpPos);
|
||||
$longitudeRawArray[1] = substr($longitudeRaw, $tmpPos);
|
||||
else :
|
||||
$longitudeRawArray[0] = $longitudeRaw;
|
||||
$longitudeRawArray[1] = "0";
|
||||
endif;
|
||||
|
||||
$latitudeRawArray[0] = pad($latitudeRawArray[0], 6, "0"); // if less than 6 chars
|
||||
$longitudeRawArray[0] = pad($longitudeRawArray[0], 6, "0"); // if less than 6 chars
|
||||
|
||||
if ($latitudeRawArray[1] == "") : $latitudeRawArray[1] = "0"; endif;
|
||||
if ($longitudeRawArray[1] == "") : $longitudeRawArray[1] = "0"; endif;
|
||||
|
||||
$x_coord_array[0] = substr($latitudeRawArray[0], 0, 2);
|
||||
$x_coord_array[1] = substr($latitudeRawArray[0], 2, 2);
|
||||
$x_coord_array[2] = substr($latitudeRawArray[0], 4);
|
||||
|
||||
$y_coord_array[0] = substr($longitudeRawArray[0], 0, 2);
|
||||
$y_coord_array[1] = substr($longitudeRawArray[0], 2, 2);
|
||||
$y_coord_array[2] = substr($longitudeRawArray[0], 4);
|
||||
|
||||
|
||||
// ***************************************************
|
||||
// * Compute longitude and latitude (transformation) *
|
||||
// ***************************************************
|
||||
|
||||
$longitude = $y_coord_array[0] + $y_coord_array[1] / 60 + ($y_coord_array[2] + $longitudeRawArray[1]) / 3600;
|
||||
$latitude = $x_coord_array[0] + $x_coord_array[1] / 60 + ($x_coord_array[2] + $latitudeRawArray[1]) / 3600;
|
||||
|
||||
writeLocatingLog($logFile, "-->" . $latitude . " " . $longitude . "<-- \r\n");
|
||||
endif;
|
||||
*/
|
||||
|
||||
// ********************************
|
||||
// * Get zipcode from coordinates *
|
||||
// ********************************
|
||||
|
||||
$constLocatingMode = LOCATING_MODE;
|
||||
|
||||
if ($constLocatingMode == "0") :
|
||||
|
||||
$zipcode = findZipcodeArea($longitude, $latitude);
|
||||
if (trim($zipcode) == "") :
|
||||
$constLocatingMode = "1";
|
||||
endif;
|
||||
endif;
|
||||
|
||||
if ($constLocatingMode == "1") :
|
||||
|
||||
// Get nearest coordinates
|
||||
$sqlquery = "SELECT srvp.srvp_id, srvp.srvp_plz, srvp.srvp_latitude, srvp.srvp_longitude, "
|
||||
. "SQRT(POW(ABS(srvp.srvp_latitude - $latitude),2) + POW(ABS(srvp.srvp_longitude - $longitude),2)) AS nb"
|
||||
. " FROM serviceplz AS srvp"
|
||||
. " ORDER BY nb"
|
||||
. " LIMIT 0,1";
|
||||
|
||||
$result = $db->query($sqlquery);
|
||||
if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage());
|
||||
// all defined db-fields an titles shall become content of the following arrays
|
||||
while ($row = $result->fetch_assoc()):
|
||||
$f_srvp_plz = $row["srvp_plz"]; // Zipcode to be displayed
|
||||
endwhile;
|
||||
$result->free();
|
||||
|
||||
$zipcode = $f_srvp_plz;
|
||||
endif;
|
||||
|
||||
$status_message = "<b>Letzte erfolgreiche Ortung: " . $zipcode . "</b></br></br>"
|
||||
. "(" . $longitude . " / " . $latitude . " um " . formatOutput($gpsTime,"datetime","4") . " " . formatOutput($gpsTime,"datetime","10") . ")</br></br>"
|
||||
. "<a href=\"../locating/map_courier.php?cr_sid=" . $f_cr_sid . "\" target=\"_blank\">[Kartendarstellung]</a><br><br></br>";
|
||||
|
||||
|
||||
// *********************************
|
||||
// * Update zipcode of the courier *
|
||||
// *********************************
|
||||
|
||||
$updateRankingTime = TRUE;
|
||||
|
||||
// Get current zipcode of the courier out of the table "courier" (cr_locationzipcode) to compare with locating zipcode
|
||||
$crLocationZipcode = getFieldValueFromId("courier","cr_id",$cr_id,"cr_locationzipcode");
|
||||
|
||||
$status_message .= "<b>(Freimeldung des Kuriers: " . $crLocationZipcode . ")</b><br><br>";
|
||||
|
||||
if ($zipcode != "" && $crLocationZipcode != "" && is_numeric($crLocationZipcode)) :
|
||||
|
||||
// Check current zipcode with locating zipcode
|
||||
if ($zipcode == $crLocationZipcode) :
|
||||
|
||||
$updateRankingTime = FALSE;
|
||||
else :
|
||||
// Check locating zipcode is in neighbourhood
|
||||
// If true then ok => do not update ranking time
|
||||
|
||||
// Get the general mediation mode for the headquarter
|
||||
$mediationMode = MODE_INTERMEDIATION;
|
||||
if ($mediationMode == "") :
|
||||
$mediationMode = getFieldValueFromId("headquarters", "hq_id", "$hq_id", "hq_invmode");
|
||||
endif;
|
||||
|
||||
// Get all neighbours for the current zipcode(area)
|
||||
if ($mediationMode == "1") :
|
||||
$zicodeArray = getCourierByRanking($crLocationZipcode, "0000010000", "", "");
|
||||
$zicodeArray = $zicodeArray[5];
|
||||
else :
|
||||
$areaIdArray = getCourierByRanking($crLocationZipcode, "0000010000", "", "");
|
||||
$areaIdArray = $areaIdArray[5];
|
||||
|
||||
// Add ID of the main mediation area
|
||||
$srvpIdZipcode = getFieldValueFromId("serviceplz","srvp_plz",$crLocationZipcode,"srvp_id");
|
||||
// $srvpaIdMain = getFieldValueFromId("serviceplzareamapping","srvp_id",$srvpIdZipcode,"srvpa_id");
|
||||
$srvpaIdMain = $db->getOne("SELECT srvpam.srvpa_id FROM serviceplzarea AS srvpa, serviceplzareamapping AS srvpam" .
|
||||
" WHERE srvpam.srvp_id = '" . $srvpIdZipcode . "' AND srvpa.srvpa_id = srvpam.srvpa_id AND srvpa.hq_id = '" . $hq_id . "'");
|
||||
|
||||
if ($areaIdArray == "") : $areaIdArray = array(); endif;
|
||||
array_push($areaIdArray, $srvpaIdMain);
|
||||
|
||||
$areaIdArrayLen = count($areaIdArray);
|
||||
|
||||
$outputOfAllValidMainZipcodes = "<b>GÜLTIGE BEREICHE:</b><br>";
|
||||
$outputOfAllValidMainZipcodes .= "_________________ <br><br>";
|
||||
$outputOfAllValidMainZipcodes .= "<b>Hauptbereich:</b><br>";
|
||||
|
||||
$outputOfAllValidNeighbourZipcodes = "";
|
||||
|
||||
|
||||
$zicodeArray = array();
|
||||
for ($i = 0; $i < $areaIdArrayLen; $i++) :
|
||||
|
||||
if ($i < $areaIdArrayLen - 1) :
|
||||
$outputOfAllValidNeighbourZipcodes .= "<b>Nachbarbereich " . ($i + 1) . "</b><br>";
|
||||
endif;
|
||||
|
||||
$sqlquery = "SELECT srvp.srvp_plz"
|
||||
. " FROM serviceplzareamapping AS srvpam, serviceplz AS srvp"
|
||||
. " WHERE srvpam.srvp_id = srvp.srvp_id AND srvpam.srvpa_id = '" . $areaIdArray[$i] . "'";
|
||||
|
||||
$result = $db->query($sqlquery);
|
||||
if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage());
|
||||
|
||||
while ($row = $result->fetch_assoc()):
|
||||
$zicodeArray[] = $row[srvp_plz];
|
||||
|
||||
if ($i < $areaIdArrayLen - 1) :
|
||||
$outputOfAllValidNeighbourZipcodes .= $row[srvp_plz] . "<br>";
|
||||
else :
|
||||
$outputOfAllValidMainZipcodes .= $row[srvp_plz] . "<br>";
|
||||
endif;
|
||||
endwhile;
|
||||
|
||||
$result->free();
|
||||
|
||||
if ($i < $areaIdArrayLen - 1) :
|
||||
$outputOfAllValidNeighbourZipcodes .= "----------------- <br><br>";
|
||||
else :
|
||||
$outputOfAllValidMainZipcodes .= "----------------- <br><br>";
|
||||
endif;
|
||||
endfor;
|
||||
$outputOfAllValidZipcodes = $outputOfAllValidMainZipcodes . $outputOfAllValidNeighbourZipcodes;
|
||||
endif;
|
||||
|
||||
$zicodeArrayLen = count($zicodeArray);
|
||||
for ($i = 0; $i < $zicodeArrayLen; $i++) :
|
||||
if ($zipcode == $zicodeArray[$i]) :
|
||||
$updateRankingTime = FALSE;
|
||||
endif;
|
||||
endfor;
|
||||
endif;
|
||||
|
||||
$currentTime = getDateTime("0");
|
||||
if ($updateRankingTime) :
|
||||
if (locatingIsPlausible($cr_id, $locatingStateArray[1], $locatingStateArray[2], $locatingStateArray[3], $locatingStateArray[4], $locatingStateArray[5]) && $locatingStateArray[0] == "0") :
|
||||
updateStmt("courier", "cr_id", $cr_id, array("cr_locationzipcode", $zipcode, "cr_availabletime", $currentTime));
|
||||
$status_message .= "Die Rankingposition ging verloren! <br><br>";
|
||||
else:
|
||||
$status_message .= "Die Rankingposition bleibt erhalten! <br><br>";
|
||||
$updateRankingTime = false; // wg. Logging s.u.
|
||||
endif;
|
||||
else :
|
||||
// updateStmt("courier", "cr_id", $cr_id, array("cr_locationzipcode", $zipcode));
|
||||
$status_message .= "Die Rankingposition bleibt erhalten! <br><br>";
|
||||
endif;
|
||||
if ($locatingStateArray[0] == "1"):
|
||||
$status_message .= "<span style=\"color:red\"><b>Diese Positionsangabe ist veraltet, es sind keine aktuellen Ortungsdaten verfügbar.<b></span><br><br>";
|
||||
endif;
|
||||
else :
|
||||
$currentTime = getDateTime("0");
|
||||
// 07.06.2024 CA: Kein Update wenn $locatingStateArray[0] != "0"
|
||||
if ($zipcode != "" && $locatingStateArray[0] == "0") :
|
||||
updateStmt("courier", "cr_id", $cr_id, array("cr_locationzipcode", $zipcode, "cr_availabletime", $currentTime));
|
||||
endif;
|
||||
endif;
|
||||
|
||||
// Update current position to courier with timestamp
|
||||
/*
|
||||
if ($longitude != "" && $latitude != "" &&
|
||||
substr($longitude , 0, 1) != "0" && substr($latitude , 0, 1) != "0" &&
|
||||
is_numeric($longitude) && is_numeric($latitude)) :
|
||||
|
||||
// updateStmt("courier", "cr_id", $cr_id, array("cr_gps_long", $longitude, "cr_gps_lat", $latitude, "cr_gps_time", $currentTime));
|
||||
// Changed because of "cr_modify" has not to be changed by update and "cr_gps_type" has to be set!
|
||||
if ($locatingStateArray[0] == "1") :
|
||||
$sqlStmt = "UPDATE courier SET cr_gps_long = '" . $longitude . "', cr_gps_lat = '" . $latitude . "', cr_gps_time = '" . $currentTime . "', cr_gps_type = '1', cr_modify = cr_modify WHERE cr_id = '" . $cr_id . "'";
|
||||
$res = $db->query($sqlStmt);
|
||||
if (DB::isError($res)) die ("$PHP_SELF: <br>$sqlStmt<br>" . $res->getMessage());
|
||||
endif;
|
||||
endif;
|
||||
*/
|
||||
|
||||
|
||||
// ***********
|
||||
// * LOGGING *
|
||||
// ***********
|
||||
|
||||
// Get usr_id of the current employee (session)
|
||||
$currentSessionUsrId = getFieldValueFromId("employee", "emp_id", $emp_id, "usr_id");
|
||||
|
||||
// Loose Ranking yes/no
|
||||
$looseRanking = "NO";
|
||||
// 07.06.2024 CA: Kein "Ranking verloren" wen alte PLZ leer war!"
|
||||
if ($updateRankingTime && $crLocationZipcode != "" && is_numeric($crLocationZipcode)) : $looseRanking = "YES"; endif;
|
||||
|
||||
// Write logdata into log database
|
||||
writeToLogDB("27",$hq_id,"0",$currentSessionUsrId,$cr_id,$f_cr_sid,"","LONG=".$longitude."|LAT=".$latitude."|ZIP_REAL=".$zipcode."|ZIP_FREE=".$crLocationZipcode."|NO=".$msisdn."|LRANK=".$looseRanking."|LMODE=".$constLocatingMode."|LOCOLD=".($locatingStateArray[0] == "0" ? "NO" : "YES"));
|
||||
|
||||
|
||||
// ********************
|
||||
// * Close connection *
|
||||
// ********************
|
||||
|
||||
$requestID++;
|
||||
$requestConnectionRelease = "<MESSAGE_TYPE=3><REQUEST_ID=" . $requestID . "><SESSION_HANDLE=" . $sessionHandle . ">";
|
||||
|
||||
$laenge = strlen($requestConnectionRelease);
|
||||
$requestheader = $requestheaderOrg;
|
||||
$requestheader = str_replace ("LENGTH", $laenge, $requestheader);
|
||||
if ($echoEnabled) : echo $requestheader.$requestConnectionRelease . "<br><br><br>"; endif;
|
||||
|
||||
// Connect Release
|
||||
// $response = connectD2($requestheader.$requestConnectionRelease."\r\n");
|
||||
|
||||
endif;
|
||||
endif;
|
||||
endif;
|
||||
?>
|
||||
|
||||
|
||||
<html lang="de">
|
||||
|
||||
<head>
|
||||
<title>ORTUNG</title>
|
||||
<link rel="stylesheet" type="text/css" href="../css/phoenix.css">
|
||||
</head>
|
||||
|
||||
|
||||
<body onLoad="this.moveTo((screen.width * 0.5)-(document.body.offsetWidth * 0.5),(screen.height * 0.5)-(document.body.offsetHeight * 0.5));">
|
||||
|
||||
<form action="<?php echo $locatingURL ?>" method="post">
|
||||
<input type="hidden" name="f_cr_sid" value="<?php echo $f_cr_sid ?>">
|
||||
<input type="hidden" name="useRemoteDB" value="<?php echo $useRemoteDB ?>">
|
||||
|
||||
<div valign="center" align="center">
|
||||
<table cellspacing="0" cellpadding="0" vspace="0" hspace="0">
|
||||
<tr>
|
||||
<td align="center" valign="center">
|
||||
<br><h2><b>Kurier: <?php echo $f_cr_sid?></b></h2><br>
|
||||
<?php echo $status_message ?>
|
||||
<br><br>
|
||||
<?php echo ($outputOfAllValidZipcodes != "" ? $outputOfAllValidZipcodes . "<br><br>" : "") ?>
|
||||
<input type="submit" value="Wiederholen">
|
||||
<!-- <br><br>
|
||||
<input type="button" value="Schließen" onClick="javascript:window.close();"> -->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user