Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * @version: 5.1
- */
- class mysqlQueries {
- public $dbclass;
- private $dblink;
- private $logHandle;
- private $trackerTypes;
- public $dbresult;
- public $dbclass_2;
- private $dblink_2;
- private $result2;
- private $oldMRecord = false;
- private $oldARecord = false;
- private $COMBINE_MODE;
- private $key;
- private $keyText;
- public function getQueryErrorNo() {
- //return mysql_errno ( $this->dbclass->dblink );
- return $this->dbclass->dblink->errno;
- }
- public function convertText($code) {
- return $this->dbclass->get_escape_string ( $code );
- }
- public function openDebugLog() {
- $configuration = $this->getSystemPreferences ();
- $filename = $configuration [0] ['SYSTEM_PATH'] . "/debug.log";
- if (file_exists ( $filename )) {
- $size = filesize ( $filename );
- if ($size >= MAILLOG_FILESIZE) {
- $cmd = "gzip -c " . $filename . " > " . $configuration [0] ['SYSTEM_PATH'] . "/debug_" . date ( "Y_m_d" ) . ".gz";
- exec ( $cmd, $output );
- unlink ( $filename );
- }
- $this->logHandle = fopen ( $filename, "a" );
- } else {
- $this->logHandle = fopen ( $filename, "w" );
- }
- }
- public function encrypt($data) {
- $key_size = strlen($this->key);
- $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
- $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
- $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->key,
- $data, MCRYPT_MODE_CBC, $iv);
- $ciphertext = $iv . $ciphertext;
- return base64_encode($ciphertext);
- }
- public function decrypt($data) {
- $ciphertext_dec = base64_decode($data);
- $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
- $iv_dec = substr($ciphertext_dec, 0, $iv_size);
- $ciphertext_dec = substr($ciphertext_dec, $iv_size);
- # may remove 00h valued characters from end of plain text
- $plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->key,
- $ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);
- return $plaintext_dec;
- }
- public function encrypt_aes($data) {
- return AesCtr::encrypt($data,$this->keyText, 256);
- }
- public function decrypt_aes($data) {
- return AesCtr::decrypt($data,$this->keyText, 256);
- }
- public function xor_encrypt($data) {
- $r = rand(0, strlen($this->keyText));
- $darr = str_split($data);
- $key = str_split( $this->keyText);
- $index = $r;
- for ($i = 0; $i < count($darr); $i++) {
- $darr[$i] = $darr[$i] ^ $key[$index++];
- if ($index >= count($key)) $index = 0;
- }
- return base64_encode($r.",".implode('',$darr));
- }
- public function xor_decrypt($data) {
- $data = base64_decode($data);
- $rtr = explode(",", $data);
- $darr = str_split($rtr[1]);
- $key = str_split( $this->keyText);
- $index = $rtr[0];
- for ($i = 0; $i < count($darr); $i++) {
- $darr[$i] = $darr[$i] ^ $key[$index++];
- if ($index >= count($key)) $index = 0;
- }
- return implode('',$darr);
- }
- function writeDebugLog($str) {
- if (is_resource ( $this->logHandle ))
- fwrite ( $this->logHandle, $str );
- }
- function closeDebugLog() {
- if (is_resource ( $this->logHandle ))
- fclose ( $this->logHandle );
- }
- public function getSystemPreferences() {
- $QUERY = "SELECT * FROM systemPreferences";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getCompiledLanguages($lcode) {
- $QUERY = "SELECT * FROM languages LEFT JOIN langCompileStatus USING (lcode) WHERE lcode = \"{$lcode}\"";
- $this->dbclass->execute_query ( $QUERY );
- $language = $this->dbclass->get_result_complete ();
- return $language;
- }
- public function updateCompiledLanguages($lcode, $time) {
- $QUERY = "REPLACE INTO langCompileStatus SET lcode = \"{$lcode}\", mtime='" . $time . "'";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function getSupportedLanguages() {
- $QUERY = "SELECT * FROM languages order by name";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getLanguage($code) {
- $_SESSION ['lcode'] = $code; // For automatic reporting module
- $QUERY = "SELECT * FROM languages WHERE lcode = \"{$code}\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getDefaultLanguage() {
- $QUERY = "SELECT * FROM languages WHERE selected = TRUE";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- $_SESSION['language'] = $_SESSION ['lcode'] = $answer [0] ['lcode']; // For automatic reporting module
- return $answer;
- }
- public function getUserRecordFromTracker($tid) {
- $QUERY = "SELECT * FROM trackers WHERE trackerid=\"{$tid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $result = $this->dbclass->get_result_complete ();
- $QUERY = "SELECT * FROM Users WHERE username=\"" . $result [0] ['username'] . "\"";
- $this->dbclass->execute_query ( $QUERY );
- $result = $this->dbclass->get_result_complete ();
- return $result;
- }
- public function getUserRecord($username) {
- $uname = $this->dbclass->get_escape_string ( $username );
- $QUERY = "SELECT * FROM Users WHERE username=\"{$uname}\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getUserList($fields = '*') {
- $QUERY = "SELECT $fields FROM Users";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getPOIByKeywords($keywords){
- $QUERY = "SELECT * FROM POI where keywords='$keywords'";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getPOIByID ($id) {
- $QUERY = "SELECT * FROM POI where id=$id";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getUserRecordWithPreferences($username) {
- $uname = $this->dbclass->get_escape_string ( $username );
- $QUERY = "SELECT * FROM Users left join userPreferences using(username) WHERE username=\"{$uname}\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function updateLoginRetries($username, $value) {
- $now = time ();
- $uname = $this->dbclass->get_escape_string ( $username );
- $QUERY = "UPDATE Users SET noofretry=$value, blocktime=$now WHERE username=\"{$uname}\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function getRecordFromEmail($email) {
- $email = $this->dbclass->get_escape_string ( $email );
- $QUERY = "SELECT * FROM Users WHERE email=\"{$email}\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getBackupStats() {
- $query = "SELECT datetime,stored,downloaded FROM backup_log ORDER BY datetime DESC LIMIT 0,5";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false) {
- return array ();
- }
- $entries_count = count ( $answer );
- $returnAnswer = array ();
- for($i = 0; $i < $entries_count; $i ++) {
- $logEntry = new backupLogEntry ();
- $date = new DateTime ( $answer [$i] ['datetime'], new DateTimeZone ( "UTC" ) );
- $date->setTimezone ( new DateTimeZone ( $_SESSION ['timezone'] ) );
- $logEntry->date = $date->format ( 'Y-m-d' );
- $logEntry->time = $date->format ( 'H:i:s' );
- $logEntry->stored = $answer [$i] ['stored'] ? "1" : "0";
- $logEntry->downloaded = $answer [$i] ['downloaded'] ? "1" : "0";
- array_push ( $returnAnswer, $logEntry );
- }
- return $returnAnswer;
- } // function
- public function getDatabaseStats() { //This function is rewritten in MongoDB with name getMongoDatabaseStats() in mysqlQueries.php
- global $GMONGO;
- $query = "SELECT * FROM trackers";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- $returnAnswer = new databaseCounting ();
- if ($answer == false) {
- $returnAnswer->eventRecords = 0;
- $returnAnswer->locationRecords = 0;
- return $returnAnswer;
- }
- $tracker_count = count ( $answer );
- for($i = 0; $i < $tracker_count; $i ++) {
- $QUERY = "SELECT MAX(id) FROM A{$answer[$i]['trackerid']}";
- $this->dbclass->execute_query ( $QUERY );
- $cans = $this->dbclass->get_result_complete ();
- if ($cans != false) {
- $returnAnswer->locationRecords += $cans [0] ['MAX(id)'];
- }
- $QUERY = "SELECT MAX(id) FROM E{$answer[$i]['trackerid']}";
- $this->dbclass->execute_query ( $QUERY );
- $cans = $this->dbclass->get_result_complete ();
- if ($cans != false) {
- $returnAnswer->eventRecords += $cans [0] ['MAX(id)'];
- }
- }
- return $returnAnswer;
- } // function
- public function getTrackersStats() {
- //global $GMONGO;
- if ($_SESSION['username'] == 'root')
- $query = "SELECT * FROM trackers";
- else if ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR)
- $query = "SELECT trackers.* FROM adminTrackersMap INNER JOIN trackers USING(trackerid) WHERE username = '".$_SESSION['username']."'";
- else if ($_SESSION['accounttype'] == USERTYPE_FLEET)
- $query = "SELECT trackers.* FROM trackersMap INNER JOIN trackers USING(trackerid) WHERE username = '".$_SESSION['username']."'";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false) {
- return false;
- }
- $gmmtime = time ();
- //$dt = new datetimeStruct ();
- // $tdate = gmdate("Y-m-d",$gmmtime);
- // $ttime = gmdate("%H", $gmmtime)*3600 + gmdate("%M", $gmmtime)*60 + gmdate("%S", $gmmtime);
- $tracker_count = count ( $answer );
- $returnAnswer = array ();
- $returnAnswer ['overall']->workingCount = 0;
- $returnAnswer ['overall']->stalledCount = 0;
- $returnAnswer ['overall']->totalCount = $tracker_count;
- for($i = 0; $i < $tracker_count; $i ++) {
- //$cans = $GMONGO->getLastARecord($answer[$i]['trackerid']);
- $cans = $this->getAGLOBALSrecord($answer[$i]['trackerid']);
- if (isset ( $returnAnswer [$answer [$i] ['type']] ) == false) {
- $returnAnswer [$answer [$i] ['type']] = new trackersCounting ();
- $returnAnswer [$answer [$i] ['type']]->type = $answer [$i] ['type'];
- }
- if ($cans != false) {
- //$dt->setTimeSeconds ( $cans [0] ['time'] );
- //$dt->setDate ( $cans [0] ['date'] );
- //$tmtime = gmmktime ( $dt->hour, $dt->minutes, $dt->seconds, $dt->month, $dt->day, $dt->year );
- $tmtime = $cans [0] ['timestamp'];
- if (($gmmtime - $tmtime) > NON_WORKING_TRACKER_TIME) {
- $returnAnswer [$answer [$i] ['type']]->stalledCount ++;
- $returnAnswer ['overall']->stalledCount ++;
- }
- else {
- $returnAnswer [$answer [$i] ['type']]->workingCount ++;
- $returnAnswer ['overall']->workingCount ++;
- }
- } else {
- $returnAnswer [$answer [$i] ['type']]->stalledCount ++;
- $returnAnswer ['overall']->stalledCount ++;
- }
- $returnAnswer [$answer [$i] ['type']]->totalCount ++;
- }
- return $returnAnswer;
- } // function
- public function getTrackersCount($username, $type) {
- $username = $this->dbclass->get_escape_string($username);
- if ($type == 'admin') {
- $query = "SELECT COUNT(*) FROM adminTrackersMap WHERE username='$username'";
- }else {
- $query = "SELECT COUNT(*) FROM trackersMap WHERE username='$username'";
- }
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer[0]['COUNT(*)'];
- }
- public function getAllTrackersPositions($sDate,$sTime, $eDate, $eTime, $lat, $lng, $radius) { //$sdate, $sTime, $eDate, $eTime are in UTC
- global $GMONGO;
- $trackers = array();
- $query = "SELECT * FROM trackers inner join trackersExInfo using (trackerid)";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false) {
- return $trackers;
- }
- $fdate = new FNSDateTime($_SESSION['timezone']);
- $fdate->setUTCDate($sDate, $sTime);
- $searchtime = $fdate->dateTime->getTimestamp();
- //$periodClause = basicTransactions::getPeriodClause ( $sDate, $sTime, $eDate, $eTime );
- $periodClauseMongo = basicTransactions::getPeriodClauseMongo ( $sDate, $sTime, $eDate, $eTime );
- $periodClauseMongo ['latitude'] = array('$exists' => 1, '$ne' => null);
- foreach ($answer as $k=>$v) {
- /*$query = "SELECT * FROM A".$v['trackerid']. " WHERE $periodClause ORDER BY date, time";
- $this->dbclass->execute_query ( $query );
- $records = $this->dbclass->get_result_complete ();*/
- $records = $GMONGO->getAMRecord($v['trackerid'], $periodClauseMongo);
- if ($records == false) continue;
- $recordsCount = count($records);
- for ($i = 0; $i < $recordsCount; $i++) {
- $d = getDistance($lat, $lng, $records[$i]['latitude'], $records[$i]['longitude']) * 1000;
- if ($d > $radius) continue;
- $fdate->setUTCDate($records[$i]['date'], $records[$i]['time']);
- $records[$i]['datestamp'] = $fdate->getFormattedString();
- /*$query = "SELECT * FROM M".$v['trackerid']. " WHERE date = '".$records[$i]['date']."' and time >='".$records[$i]['time']."' ORDER by date,time LIMIT 0,1";
- $this->dbclass->execute_query ( $query );
- $mrecord = $this->dbclass->get_result_complete ();
- if ($mrecord != false) {
- $records[$i] = array_merge($records[$i], $mrecord[0]);
- }*/
- $records[$i]['distance'] = $d;
- $n = new emptyClass();
- $n->info = $v;
- $n->record = $records[$i];
- array_push($trackers, $n);
- break;
- } //for
- }
- /*foreach ($answer as $k=>$v) {
- $query = "SELECT * FROM A".$v['trackerid']. " WHERE $periodClause ORDER BY date, time";
- $this->dbclass->execute_query ( $query );
- $records = $this->dbclass->get_result_complete ();
- if ($records == false) continue;
- $recordsCount = count($records);
- for ($i = 0; $i < $recordsCount; $i++) {
- $d = getDistance($lat, $lng, $records[$i]['latitude'], $records[$i]['longitude']) * 1000;
- if ($d > $radius) continue;
- $fdate->setUTCDate($records[$i]['date'], $records[$i]['time']);
- $records[$i]['datestamp'] = $fdate->getFormattedString();
- $query = "SELECT * FROM M".$v['trackerid']. " WHERE date = '".$records[$i]['date']."' and time >='".$records[$i]['time']."' ORDER by date,time LIMIT 0,1";
- $this->dbclass->execute_query ( $query );
- $mrecord = $this->dbclass->get_result_complete ();
- if ($mrecord != false) {
- $records[$i] = array_merge($records[$i], $mrecord[0]);
- }
- $records[$i]['distance'] = $d;
- $n = new emptyClass();
- $n->info = $v;
- $n->record = $records[$i];
- array_push($trackers, $n);
- break;
- } //for
- }*/ //foreach
- return $trackers;
- }
- public function getHistoryNearbyTrackers ($stimestamp, $etimestamp, $lat, $lng, $radius) { //$sdate, $sTime, $eDate, $eTime are in UTC
- global $GMONGO;
- $trackers = array();
- if ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR)
- $query = "SELECT * FROM adminTrackersMap INNER JOIN trackers USING(trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE username = '".$_SESSION['username']."'";
- else if ($_SESSION['accounttype'] == USERTYPE_FLEET)
- $query = "SELECT * FROM trackersMap inner join trackers using (trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE username='".$_SESSION['username']."'";
- else
- $query = "SELECT * FROM trackers inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid)";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false) {
- return $trackers;
- }
- $fdate = new FNSDateTime($_SESSION['timezone']);
- //$periodClauseMongo = basicTransactions::getPeriodClauseMongo ( $sDate, $sTime, $eDate, $eTime );
- $periodClauseMongo = array('timestamp' => array('$gte' => $stimestamp, '$lte' => $etimestamp));
- $periodClauseMongo ['latitude'] = array('$exists' => 1, '$ne' => null);
- foreach ($answer as $k=>$v) {
- $records = $GMONGO->getAMRecord($v['trackerid'], $periodClauseMongo);
- // print_r($records);
- if ($records == false) continue;
- $recordsCount = count($records);
- //echo $recordsCount."<br>";
- $r = array();
- for ($i = 0; $i < $recordsCount; $i++) {
- $d = getDistance($lat, $lng, $records[$i]['latitude'], $records[$i]['longitude']) * 1000;
- //echo "Distance ".$d." radius ".$radius."<br>";
- if ($d > $radius) continue;
- //print_r($records[$i]);
- $fdate->setUTCDate($records[$i]['date'], $records[$i]['time']);
- $records[$i]['datestamp'] = $fdate->getFormattedString();
- $records[$i]['distance'] = $d;
- /*$n = new emptyClass();
- $n->info = $v;
- $n->record = $records[$i];
- array_push($trackers, $n);*/
- //print_r($records[$i]);
- array_push($r, $records[$i]);
- //print_r($r);
- //array_push($trackers, $this->getTrackerDataObject($v, false, $records[$i], false, true));
- // print_r($v);
- array_push($trackers, $this->getNearbyTrackerDataObject($v, false, $r, false));
- break;
- } //for
- }
- return $trackers;
- }
- public function getTrackerDuration_withIgnitionHistory($tid, $status, $ts) {
- global $GMONGO;
- $sinceBeginning = array(array('timestamp' => 0));
- switch ($status) {
- case "s" :
- //$lastIgnition = $GMONGO->getAMLastIgnition($tid);
- $lastIgnition = $GMONGO->getAMLastIgnition_beforeTimestamp($tid, $ts);
- if ($lastIgnition == false)
- $lastIgnition = $sinceBeginning;
- $ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $lastIgnition[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- break;
- case "i" : //Have changed this
- //$ans = $GMONGO->getAMRecord_reverseSorted($tid, array('speed' => array('$gt' => 0)),1);
- $result = $GMONGO->getAMRecord_reverseSorted($tid, array('timestamp'=>array('$lte' => $ts), 'speed' => array('$gt' => 0)),1);
- $ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $result[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- break;
- case "n" :
- case "g" :
- $ans = $GMONGO->getAMRecord_reverseSorted($tid, array('latitude' => array('$exists' => 1, '$ne' => null)),1);
- if ($ans == false)
- return false;
- break;
- case "m" :
- //$ans = $GMONGO->getAMLastStopped($tid);
- $ans = $GMONGO->getAMLastStopped_beforeTimestamp($tid, $ts);
- if ($ans == false) {
- $ans = $sinceBeginning;
- }
- $ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $ans[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- break;
- default :
- return false;
- }
- $obj = new emptyClass ();
- $obj->date = $ans [0] ['date'];
- $obj->time = $ans [0] ['time'];
- $obj->timestamp = $ans [0] ['timestamp'];
- return $obj;
- }
- public function getTrackerDuration_withoutIgnitionHistory($tid, $status, $ts) {
- global $GMONGO;
- //$sinceBeginning = 0;
- $sinceBeginning = array(array('timestamp' => 0));
- switch ($status) {
- case "s" :
- //$ans = $GMONGO->getAMRecord_reverseSorted($tid, array('speed' => array('$gt' => 0)),1);
- $ans = $GMONGO->getAMRecord_reverseSorted($tid, array('timestamp'=>array('$lte' => $ts), 'speed' => array('$gt' => 0), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- //$ans = $GMONGO->getAMRecord_reverseSorted($tid, array('speed' => array('$gt' => 0), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- if ($ans == false)
- $ans = $sinceBeginning;
- //$ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $ans[0]['timestamp'])),1);
- $ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $ans[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- break;
- case "n" :
- case "g" :
- $ans = $GMONGO->getAMRecord_reverseSorted($tid, array('timestamp'=>array('$lte' => $ts), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- if ($ans == false)
- return false;
- break;
- case "m" :
- //$ans = $GMONGO->getAMRecord_reverseSorted($tid, array('speed' => 0),1);
- $ans = $GMONGO->getAMRecord_reverseSorted($tid, array('timestamp'=>array('$lte' => $ts), 'speed' => 0, 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- if ($ans == false)
- $ans = $sinceBeginning;
- $ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $ans[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- break;
- default :
- return false;
- }
- $obj = new emptyClass ();
- $obj->date = $ans [0] ['date'];
- $obj->time = $ans [0] ['time'];
- $obj->timestamp = $ans [0] ['timestamp'];
- return $obj;
- }
- // Returns duration for the tracker in stopped or nodata mode
- public function getTrackerDurationHistory($tid, $status, $ts) {
- if ($this->isIgnitionEnabled ( $tid ))
- return $this->getTrackerDuration_withIgnitionHistory ( $tid, $status, $ts );
- return $this->getTrackerDuration_withoutIgnitionHistory ( $tid, $status, $ts );
- }
- public function getNearbyTrackerDataObject($tracker, $fetchRecords = true, $trec = false, $sortedReverse = false) {
- global $GMONGO;
- $fnsdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $tinfo = new trackerInfoRecord ();
- $tinfo->name = $tracker ['name'];
- $tinfo->fscode = $tracker ['type'];
- $tinfo->tid = $tracker ['trackerid'];
- $tinfo->simno = $tracker ['simno'];
- $tinfo->searchKeywords = $tracker ['searchKeywords'];
- $tinfo->imei = $tracker ['imei'];
- $tinfo->iconText = $tracker ['iconText'];
- $tinfo->licensePlate = $tracker ['licensePlate'];
- $tinfo->maxrpm = $tracker ['maxrpm'];
- $tinfo->hLocations = array ();
- $tinfo->cT = $this->getTrackerInfoField ( $tracker );
- $tinfo->trackingType = isset ( $tracker ['apptype'] ) ? $tracker ['apptype'] : (isset ( $this->trackerTypes [$tracker ['type']] ) ? $this->trackerTypes [$tracker ['type']] ['trackingType'] : 'VEHICLE');
- $tinfo->cStamp = time ();
- if (isset($tracker ['color']))
- $tinfo->color = $tracker ['color'];
- else
- $tinfo->color = '';
- if (isset($tracker ['regDate']))
- $tinfo->regDate = $tracker ['regDate'];
- else
- $tinfo->regDate = '';
- if (isset($tracker ['vehicleModel']))
- $tinfo->vehicleModel = $tracker ['vehicleModel'];
- else
- $tinfo->vehicleModel = '';
- if ($fetchRecords == true) {
- //$this->dCache_validateCache ( $tracker ['trackerid'] );
- //$cTS = $_SESSION ['dCache'] [$tracker ['trackerid']][0];
- //$trec = $GMONGO->getAMRecord_reverseSorted($tracker['trackerid'], array("timestamp" => array('$gte' => $cTS), 'latitude' => array('$exists' => 1, '$ne' => null)));
- //$trec = $GMONGO->getAMRecord_reverseSorted($tracker['trackerid'], array("timestamp" => array('$gte' => $cTS)));
- } else {
- if ($trec != false) {
- if ($sortedReverse == false)
- $trec = array_reverse ( $trec );
- //$_SESSION ['dCache'] [$tracker ['trackerid']][0] = $trec [0] ['timestamp'];
- //unset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [4] );
- }
- }
- if ($trec == false) {
- srand ();
- $tinfo->status = "n";
- $tinfo->iconIndex = $this->getIconIndex ( $tinfo->status );
- $tinfo = removeNullFromObject ( $tinfo );
- return $tinfo;
- }
- $trec_count = count ( $trec );
- if ($trec_count > 2) {
- for($x = $trec_count - 2; $x > 0; $x --) {
- $n = new trackerRecord ();
- foreach ( $n as $k => $v )
- $n->{$k} = $trec [$x] [$k];
- $fnsdate->setUTCDate ( $n->date, $n->time );
- $n->timeString = $fnsdate->getFormattedTimeString ();
- array_push ( $tinfo->hLocations, $n );
- }
- }
- $fdate = new FNSDateTime($_SESSION['timezone']);
- $fdate->setTimestamp($trec[0]['timestamp']);
- $tinfo->latitude = $trec [0] ['latitude'];
- $tinfo->longitude = $trec [0] ['longitude'];
- $tinfo->speed = $trec [0] ['speed'];
- $tinfo->direction = $trec [0] ['direction'];
- $tinfo->date = $fdate->UTCDateString;
- $tinfo->time = $fdate->UTCTime;
- $tinfo->timestamp = $trec [0] ['timestamp'];
- //$_SESSION ['dCache'] [$tinfo->tid] [0] = $trec[0]['timestamp'];
- //$inputs = $trec;
- $inputs = $this->getInputs ( $tinfo->tid, false, $tinfo->date, $tinfo->time, $tinfo->fscode, true );
- if ($inputs != false) {
- for($i = 1; $i <= 5; $i ++) {
- if (isset ( $inputs [0] ['fuel' . $i] ))
- $tinfo->{'fuel' . $i} = $inputs [0] ['fuel' . $i];
- if (isset ( $inputs [0] ['temperature' . $i] ))
- $tinfo->{'temperature' . $i} = $inputs [0] ['temperature' . $i];
- }
- if (isset ( $inputs ['0'] ['ibattery'] ))
- $tinfo->ibattery = $inputs ['0'] ['ibattery'];
- $tinfo->IO = $inputs [0] ['IO'];
- $tinfo->JStr = $inputs [0] ['misc'];
- if (isset ( $tracker ['privatePublicUse'] ) && $tracker ['privatePublicUse'] == 1)
- $tinfo->privatePublic = $inputs [0] ['private'];
- $tinfo->odometer = $this->getOdometer ( $tinfo->tid, $tinfo->date, $tinfo->time );
- if ($tinfo->odometer == false)
- $tinfo->odometer = null;
- $tinfo->driver = $this->getDriverName ( $tinfo->tid );
- } else {
- for($i = 1; $i <= 5; $i ++) {
- $tinfo->{'fuel' . $i} = null;
- $tinfo->{'temperature' . $i} = null;
- }
- $tinfo->IO = null;
- $tinfo->odometer = null;
- $tinfo->privatePublic = 0;
- }
- $tinfo->status = $this->getStatus ( $tinfo->tid, $tinfo->date, $tinfo->time, $tinfo->speed, $tinfo->IO );
- /*$gmmtime = time ();
- $dt = new datetimeStruct ();
- $dt->setTimeSeconds ( $time );
- $dt->setDate ( $date );
- $tmtime = gmmktime ( $dt->hour, $dt->minutes, $dt->seconds, $dt->month, $dt->day, $dt->year );*/
- /*if (($gmmtime - $tmtime) > NON_WORKING_TRACKER_TIME) {
- return "n";
- } else*/ //{
- if ($tinfo->IO == false)
- $tinfo->status = "s";
- // strpos is always checked with the equality (===) operator
- else {
- if ($this->isIgnitionEnabled($tinfo->tid)) {
- if (strpos($inputs, "j") === false) $tinfo->status = "s";
- else if ($tinfo->speed > 0) $tinfo->status = "m";
- else $tinfo->status = "i";
- } else {
- if ($tinfo->speed > 0) $tinfo->status = "m";
- else $tinfo->status = "s";
- }
- }
- //}
- if ($tinfo->status == 'm' || $tinfo->status == 'i' || $tinfo->status == 's') {
- /*if ($rtype != 'historypositions') {
- $linput = $this->getInputs($tinfo->tid);
- if ($linput != false) {
- //if (isset($trec[0]['latitude']) == false) {
- $ltimestamp = $linput [0] ['timestamp'];
- $ptimestamp = $tinfo->timestamp;
- if (($ltimestamp - $ptimestamp) > NO_GPS_ICON_TIME) {
- $tinfo->status = 'g';
- $_SESSION ['dCache'] [$tracker ['trackerid']] [2] = true;
- }
- //}
- }
- }*/
- } else {
- //$_SESSION ['dCache'] [$tracker ['trackerid']] [5] = true;
- }
- //To remove any previous data if last packet has ignition
- if ($tinfo->status == 'n' || $tinfo->status == 's'){
- $tinfo->hLocations = array();
- }
- $tinfo->iconIndex = $this->getIconIndex ( $tinfo->status, $tinfo->latitude );
- $fnsdate->setUTCDate ( $tinfo->date, $tinfo->time );
- $tinfo->dateString = $fnsdate->getFormattedString ();
- $tinfo->timeString = $fnsdate->getFormattedTimeString ();
- //$tinfo->events = $this->getTrackersEvents ( $tinfo->tid, true );
- $duration = $this->getTrackerDurationHistory ( $tinfo->tid, $tinfo->status, $tinfo->timestamp );
- if ($duration != false) {
- $fnsdate->setUTCDate ( $duration->date, $duration->time );
- $tinfo->durationStamp = $fnsdate->dateTime->getTimestamp ();
- } else {
- $tinfo->durationStamp = null;
- }
- $tinfo->duration = $tinfo->timestamp - $duration->timestamp;
- if (isset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [4] ) == false) {
- if (count ( $tinfo->hLocations ) > 0)
- $sObj = $tinfo->hLocations [0];
- else
- $sObj = $tinfo;
- $fnsdate->setUTCDate ( $sObj->date, $sObj->time );
- if ($tinfo->status == 'm' || $tinfo->status == 'i' || ($tinfo->status == 'g' && count($tinfo->hLocations) > 0)) {
- $tinfo->sTime = $fnsdate->getFormattedString ();
- $tinfo->sLatitude = $sObj->latitude;
- $tinfo->sLongitude = $sObj->longitude;
- }
- $_SESSION ['dCache'] [$tracker ['trackerid']] [4] = true;
- }
- return removeNullFromObject ( $tinfo );
- }
- public function fleet_getTrackersStats() {
- global $GMONGO;
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT * FROM trackersMap inner join trackers using (trackerid) inner join trackersExInfo using (trackerid) WHERE username=\"{$username}\"";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false) {
- return false;
- }
- $gmmtime = time ();
- $dt = new datetimeStruct ();
- $tracker_count = count ( $answer );
- $returnAnswer = new emptyClass ();
- $returnAnswer->workingCount = 0;
- $returnAnswer->stalledCount = 0;
- $returnAnswer->expiredCount = 0;
- $returnAnswer->expiredList = array ();
- $returnAnswer->totalCount = $tracker_count;
- for($i = 0; $i < $tracker_count; $i ++) {
- if (isset ( $answer [$i] ['trackerExpiry'] ) && $answer [$i] ['trackerExpiry'] != NULL) {
- if (($gmmtime - $answer [$i] ['trackerExpiry']) > 0) {
- $returnAnswer->expiredCount ++;
- array_push ( $returnAnswer->expiredList, $answer [$i] ['name'] );
- continue;
- }
- }
- $cans = $GMONGO -> getLastARecord($answer[$i]['trackerid']);
- if ($cans != false) {
- //$dt->setTimeSeconds ( $cans [0] ['time'] );
- //$dt->setDate ( $cans [0] ['date'] );
- //$tmtime = gmmktime ( $dt->hour, $dt->minutes, $dt->seconds, $dt->month, $dt->day, $dt->year );
- $tmtime = $cans [0] ['timestamp'];
- if (($gmmtime - $tmtime) > NON_WORKING_TRACKER_TIME)
- $returnAnswer->stalledCount ++;
- else
- $returnAnswer->workingCount ++;
- } else
- $returnAnswer->stalledCount ++;
- }
- return $returnAnswer;
- } // function
- public function getTrackerFuelProfiles($tid) {
- $QUERY = "SELECT * from trackersFeatures where trackerid={$tid}";
- $this->dbclass->execute_query ( $QUERY );
- $enprofiles = $this->dbclass->get_result_complete ();
- $enprofiles = $enprofiles [0];
- $rprofiles = array ();
- for($i = 1; $i <= 5; $i ++) {
- $profile = false;
- if ($enprofiles ['enFuelModel' . $i] == 1) {
- $pname = $this->dbclass->get_escape_string ( $enprofiles ['fuelModel' . $i] );
- $QUERY = "SELECT * from fuelProfiles where name=\"{$pname}\"";
- $this->dbclass->execute_query ( $QUERY );
- $profile = $this->dbclass->get_result_complete ();
- }
- array_push ( $rprofiles, $profile );
- }
- return $rprofiles;
- }
- public function getTrackerTemperatureProfiles($tid) {
- $QUERY = "SELECT * from trackersFeatures where trackerid={$tid}";
- $this->dbclass->execute_query ( $QUERY );
- $enprofiles = $this->dbclass->get_result_complete ();
- $enprofiles = $enprofiles [0];
- $rprofiles = array ();
- for($i = 1; $i <= 5; $i ++) {
- $profile = false;
- if ($enprofiles ['enTempModel' . $i] == 1) {
- $pname = $this->dbclass->get_escape_string ( $enprofiles ['tempModel' . $i] );
- $QUERY = "SELECT * from temperatureProfiles where name=\"{$pname}\"";
- $this->dbclass->execute_query ( $QUERY );
- $profile = $this->dbclass->get_result_complete ();
- }
- array_push ( $rprofiles, $profile );
- }
- return $rprofiles;
- }
- public function getFuelFromProfile($profile, $fuel) {
- if ($profile != false && $fuel === NULL)
- return 0; //New
- if ($profile == false || $fuel === NULL)
- return null;
- if ($profile [0] ['autoCompute'] == 1)
- return $fuel;
- $reverse = false;
- if ($profile [0] ['emptyTankVoltage'] > $profile [0] ['fullTankVoltage']) {
- $lowerReference = $profile [0] ['fullTankVoltage'];
- $upperReference = $profile [0] ['emptyTankVoltage'];
- $reverse = true;
- } else {
- $lowerReference = $profile [0] ['emptyTankVoltage'];
- $upperReference = $profile [0] ['fullTankVoltage'];
- }
- if ($fuel < $lowerReference)
- $fuel = $lowerReference;
- else if ($fuel > $upperReference)
- $fuel = $upperReference;
- if ($reverse)
- $fuel = $upperReference - $fuel;
- $ref = $upperReference - $lowerReference;
- if ($ref > 0)
- return floor ( ($fuel / ($upperReference - $lowerReference)) * 100 );
- else
- return 0;
- }
- public function getTemperatureFromProfile($profile, $temperature) {
- if ($profile != false && $temperature === NULL)
- return 0; //New
- if ($profile == false || $temperature === NULL)
- return null;
- if ($profile [0] ['autoCompute'] == 1)
- return $temperature;
- $voltageDifference = $profile [0] ['voltageReference'] - $temperature;
- if ($voltageDifference <= 0.00)
- $voltageDifference = $profile [0] ['voltageReference'];
- $cResistance = ($profile [0] ['fixedResistance'] * $temperature) / ($voltageDifference);
- if ($cResistance == 0)
- return $temperature;
- $logvalue = log ( $profile [0] ['thermistorResistance'] / $cResistance );
- $tComputed = (298.15 * $profile [0] ['BConstant'] / $logvalue / ($profile [0] ['BConstant'] / $logvalue - 298.15)) - 273.15;
- if ($tComputed < $profile [0] ['lowerLimit'])
- $tComputed = $profile [0] ['lowerLimit'];
- else if ($tComputed > $profile [0] ['upperLimit'])
- $tComputed = $profile [0] ['upperLimit'];
- return sprintf ( "%2.2f", $tComputed );
- }
- public function getInputs($tid, $lastInput = true, $date = "", $time = 0, $fscode = "", $adjustMeter = false) {
- global $GMONGO;
- //$fdate = new FNSDateTime($_SESSION['timezone']);
- $fdate = new FNSDateTime('UTC');
- $fdate->setUTCDate($date, $time);
- if ($lastInput) {
- $inputs = $this->getMAGLOBALSrecord($tid);
- }else {
- $inputs = $GMONGO->getAMRecord($tid, array('timestamp' => $fdate->dateTime->getTimestamp()),1);
- }
- if ($inputs != false) {
- if ($fscode == "FS-65") {
- // Fuel input has battery status
- // 4.2 as Maximum battery charge voltage
- // 3.5 as Minimum battery charge voltage
- $minimumCharge = 3.5;
- $maximumCharge = 4.2;
- $delta = $maximumCharge - $minimumCharge;
- $level = floor ( (($inputs [0] ['fuel1'] - $minimumCharge) * 100) / $delta ); // Current Level - Minimum charge
- if ($level <= 0)
- $level = 1;
- if ($level > 100)
- $level = 100;
- $inputs ['0'] ['ibattery'] = $level;
- } else if ($fscode == "FS-29") {
- $inps = json_decode($inputs ['0'] ['misc'], true);
- list($battery) = sscanf($inps['battery'], "%d");
- $inputs[0] = array('ibattery' => $battery, 'misc'=> $inputs[0]['misc']);
- } else {
- $fprofiles = $this->getTrackerFuelProfiles ( $tid );
- $tprofiles = $this->getTrackerTemperatureProfiles ( $tid );
- for($i = 0; $i < 5; $i ++) {
- if ($fprofiles [$i] != false) {
- $inputs ['0'] ['fuel' . ($i + 1)] = $this->getFuelFromProfile ( $fprofiles [$i], $inputs ['0'] ['fuel' . ($i + 1)] );
- } else {
- unset ( $inputs ['0'] ['fuel' . ($i + 1)] );
- }
- if ($tprofiles [$i] !== false) {
- $inputs ['0'] ['temperature' . ($i + 1)] = $this->getTemperatureFromProfile ( $tprofiles [$i], $inputs ['0'] ['temperature' . ($i + 1)] );
- } else {
- unset ( $inputs ['0'] ['temperature' . ($i + 1)] );
- }
- }
- }
- }
- /*var_dump($inputs);
- echo "\r\n";*/
- return $inputs;
- }
- /*public function getStatus($tid, $date, $time, $speed, $inputs) {
- // Makes Date and Time for non working computations
- $gmmtime = time ();
- $dt = new datetimeStruct ();
- $dt->setTimeSeconds ( $time );
- $dt->setDate ( $date );
- $tmtime = gmmktime ( $dt->hour, $dt->minutes, $dt->seconds, $dt->month, $dt->day, $dt->year );
- if (($gmmtime - $tmtime) > NON_WORKING_TRACKER_TIME) {
- return "n";
- } else {
- if ($speed > 0)
- return "m";
- else {
- if ($inputs == false)
- return "s";
- // strpos is always checked with the equality (===) operator
- if ($this->isIgnitionEnabled ( $tid )) {
- if (strpos ( $inputs, "j" ) === false)
- return "s";
- else
- return "i";
- }
- return "s";
- }
- }
- }*/
- public function getStatus($tid, $date, $time, $speed, $inputs) {
- // Makes Date and Time for non working computations
- $gmmtime = time ();
- $dt = new datetimeStruct ();
- $dt->setTimeSeconds ( $time );
- $dt->setDate ( $date );
- $tmtime = gmmktime ( $dt->hour, $dt->minutes, $dt->seconds, $dt->month, $dt->day, $dt->year );
- if (($gmmtime - $tmtime) > NON_WORKING_TRACKER_TIME) {
- //echo "<br>date ".$date." time ".$time." speed ".$speed." tmtime ".$tmtime." gmtime ".$gmmtime;
- return 'n';
- } else {
- if ($speed > 0)
- return 'm';
- else {
- if ($inputs == false) {
- return 's';
- //return 'i';
- }
- // strpos is always checked with the equality (===) operator
- if ($this->isIgnitionEnabled($tid)) {
- if (strpos($inputs, 'j') === false) return 's';
- else if ($speed > 0) return 'm';
- else return 'i';
- } else {
- if ($speed > 0) return 'm';
- else return 's';
- }
- }
- }
- }
- public function getTrackerTypeList() {
- $query = "SELECT * FROM trackerHW ORDER BY fscode";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function validateIMEI($imei) {
- $data = array();
- $query = "SELECT trackerid FROM trackers WHERE imei=\"$imei\"";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- $data ['tid'] = $answer [0] ['trackerid'];
- if ($answer != false) {
- $data ['code'] = EXISTS;
- //return - 1;
- return $data;
- }
- $data ['tid'] = false;
- $data ['code'] = NOT_EXISTS;
- //return 1;
- return $data;
- }
- public function getIconIndex($status, $latitude = null, $timestamp = null) {
- switch ($status) {
- case 'm' :
- if (isset($timestamp) && $timestamp != false){
- $diff = time() - $timestamp;
- if ($diff <= PACKET_TS_LL)
- return 0;
- elseif ($diff > PACKET_TS_LL && $diff <= PACKET_TS_UL)
- return 6;
- elseif ($diff > PACKET_TS_UL)
- return 7;
- return 0;
- }
- return 0;
- case 's' :
- return 1;
- case 'i' :
- return 2;
- case 'n' :
- if (isset($latitude) && $latitude && $latitude > -90 && $latitude < 90){
- return 5;
- }
- return 3;
- case 'g' :
- return 4;
- }
- }
- //private function getTrackerInfoField($tracker) {
- public function getTrackerInfoField($tracker) {
- if (isset ( $this->trackerTypes ) == false) {
- $this->trackerTypes = array ();
- $tl = $this->getTrackerTypeList ();
- for($i = 0; $i < count ( $tl ); $i ++) {
- $this->trackerTypes [$tl [$i] ['fscode']] = $tl [$i];
- }
- }
- if ($tracker ['apptype'] == null || $tracker ['apptype'] == "") {
- if (isset ( $this->trackerTypes [$tracker ['type']] ))
- $type = $this->trackerTypes [$tracker ['type']] ['trackingType'];
- else
- $type = $tracker ['apptype'];
- } else
- $type = $tracker ['apptype'];
- switch ($type) {
- case 'VT' :
- return $tracker ['licensePlate'];
- case 'PT' :
- return $tracker ['simno'];
- case 'OT' :
- return $tracker ['simno'];
- case 'AT' :
- return $tracker ['identificationNo'];
- }
- }
- public function dCache_validateCache($tid) {
- if (isset ( $_SESSION ['dCache'] ) == false) {
- $_SESSION ['dCache'] = array ();
- }
- if (isset ( $_SESSION ['dCache'] [$tid] ) == false) {
- $trec = $this->getAGLOBALSrecord($tid);
- if ($trec != false) {
- $_SESSION ['dCache'] [$tid] = array ();
- $_SESSION ['dCache'] [$tid][0] = $trec [0] ['timestamp'];
- } else {
- $_SESSION ['dCache'] [$tid] = array ();
- $_SESSION ['dCache'] [$tid] = 0;
- }
- }
- }
- public function getTrackerDataObject($tracker, $fetchRecords = true, $trec = false, $sortedReverse = false, $currentTrip = false) {
- global $GMONGO;
- $fnsdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $tinfo = new trackerInfoRecord ();
- $tinfo->name = $tracker ['name'];
- $tinfo->fscode = $tracker ['type'];
- $tinfo->tid = $tracker ['trackerid'];
- $tinfo->simno = $tracker ['simno'];
- $tinfo->searchKeywords = $tracker ['searchKeywords'];
- $tinfo->imei = $tracker ['imei'];
- $tinfo->iconText = $tracker ['iconText'];
- $tinfo->licensePlate = $tracker ['licensePlate'];
- $tinfo->maxrpm = $tracker ['maxrpm'];
- $tinfo->hLocations = array ();
- $tinfo->cT = $this->getTrackerInfoField ( $tracker );
- $tinfo->trackingType = isset ( $tracker ['apptype'] ) ? $tracker ['apptype'] : (isset ( $this->trackerTypes [$tracker ['type']] ) ? $this->trackerTypes [$tracker ['type']] ['trackingType'] : 'VEHICLE');
- $tinfo->cStamp = time ();
- if ($fetchRecords == true) {
- $this->dCache_validateCache ( $tracker ['trackerid'] );
- $cTS = $_SESSION ['dCache'] [$tracker ['trackerid']][0];
- $trec = $GMONGO->getAMRecord_reverseSorted($tracker['trackerid'], array("timestamp" => array('$gte' => $cTS), 'latitude' => array('$exists' => 1, '$ne' => null)));
- //$trec = $GMONGO->getAMRecord_reverseSorted($tracker['trackerid'], array("timestamp" => array('$gte' => $cTS)));
- } else {
- if ($trec != false) {
- if ($sortedReverse == false)
- if ($sortedReverse == false)
- $trec = array_reverse ( $trec );
- $_SESSION ['dCache'] [$tracker ['trackerid']][0] = $trec [0] ['timestamp'];
- unset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [4] );
- }
- }
- if (isset ( $_GET ['update'] ) && $_GET ['update'] == 1) {
- if ($trec == false)
- return false;
- else if ($trec [0] ['timestamp'] == $_SESSION ['dCache'] [$tracker ['trackerid']][0]) {
- //If no update is present
- //Get packet with no location
- //$linput = $GMONGO->getAMRecord_reverseSorted($tinfo->tid , array('latitude' => array('$exists' => 0)), 1);
- $linput = $GMONGO->getLastAMRecord($tinfo->tid);
- if ($linput == false) return false;
- $ltimestamp = $linput[0]['timestamp'];
- $ptimestamp = $trec[0]['timestamp'];
- if ($ptimestamp > $ltimestamp) return false;
- if ((time () - $ptimestamp) < NON_WORKING_TRACKER_TIME) {
- if (($ltimestamp - $ptimestamp) < NO_GPS_ICON_TIME)
- return false;
- else if (isset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [2] ))
- return false;
- } else if (isset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [5] ))
- return false;
- } else {
- if (isset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [2] ))
- unset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [2] );
- if (isset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [5] ))
- unset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [5] );
- }
- }
- if ($trec == false) {
- srand ();
- $tinfo->status = "n";
- $tinfo->iconIndex = $this->getIconIndex ( $tinfo->status );
- $tinfo = removeNullFromObject ( $tinfo );
- return $tinfo;
- }
- $trec_count = count ( $trec );
- if ($trec_count > 2) {
- for($x = $trec_count - 2; $x > 0; $x --) {
- $n = new trackerRecord ();
- foreach ( $n as $k => $v )
- $n->{$k} = $trec [$x] [$k];
- $fnsdate->setUTCDate ( $n->date, $n->time );
- $n->timeString = $fnsdate->getFormattedTimeString ();
- array_push ( $tinfo->hLocations, $n );
- }
- }
- $fdate = new FNSDateTime($_SESSION['timezone']);
- $fdate->setTimestamp($trec[0]['timestamp']);
- $tinfo->latitude = $trec [0] ['latitude'];
- $tinfo->longitude = $trec [0] ['longitude'];
- $tinfo->speed = $trec [0] ['speed'];
- $tinfo->direction = $trec [0] ['direction'];
- $tinfo->date = $fdate->UTCDateString;
- $tinfo->time = $fdate->UTCTime;
- $tinfo->timestamp = $trec [0] ['timestamp'];
- $_SESSION ['dCache'] [$tinfo->tid] [0] = $trec[0]['timestamp'];
- //$inputs = $trec;
- $inputs = $this->getInputs ( $tinfo->tid, false, $tinfo->date, $tinfo->time, $tinfo->fscode, true );
- if ($inputs != false) {
- for($i = 1; $i <= 5; $i ++) {
- if (isset ( $inputs [0] ['fuel' . $i] ))
- $tinfo->{'fuel' . $i} = $inputs [0] ['fuel' . $i];
- if (isset ( $inputs [0] ['temperature' . $i] ))
- $tinfo->{'temperature' . $i} = $inputs [0] ['temperature' . $i];
- }
- if (isset ( $inputs ['0'] ['ibattery'] ))
- $tinfo->ibattery = $inputs ['0'] ['ibattery'];
- $tinfo->IO = $inputs [0] ['IO'];
- $tinfo->JStr = $inputs [0] ['misc'];
- if (isset ( $tracker ['privatePublicUse'] ) && $tracker ['privatePublicUse'] == 1)
- $tinfo->privatePublic = $inputs [0] ['private'];
- $tinfo->odometer = $this->getOdometer ( $tinfo->tid, $tinfo->date, $tinfo->time );
- if ($tinfo->odometer == false)
- $tinfo->odometer = null;
- $tinfo->driver = $this->getDriverName ( $tinfo->tid );
- } else {
- for($i = 1; $i <= 5; $i ++) {
- $tinfo->{'fuel' . $i} = null;
- $tinfo->{'temperature' . $i} = null;
- }
- $tinfo->IO = null;
- $tinfo->odometer = null;
- $tinfo->privatePublic = 0;
- }
- $tinfo->status = $this->getStatus ( $tinfo->tid, $tinfo->date, $tinfo->time, $tinfo->speed, $tinfo->IO );
- if ($tinfo->status == 'm' || $tinfo->status == 'i' || $tinfo->status == 's') {
- $linput = $this->getInputs($tinfo->tid);
- if ($linput != false) {
- //if (isset($trec[0]['latitude']) == false) {
- $ltimestamp = $linput [0] ['timestamp'];
- $ptimestamp = $tinfo->timestamp;
- if (($ltimestamp - $ptimestamp) > NO_GPS_ICON_TIME) {
- $tinfo->status = 'g';
- $_SESSION ['dCache'] [$tracker ['trackerid']] [2] = true;
- }
- //}
- }
- } else {
- $_SESSION ['dCache'] [$tracker ['trackerid']] [5] = true;
- }
- //To remove any previous data if last packet has ignition
- if ($tinfo->status == 'n' || $tinfo->status == 's'){
- $tinfo->hLocations = array();
- }
- $tinfo->iconIndex = $this->getIconIndex ( $tinfo->status, $tinfo->latitude );
- $fnsdate->setUTCDate ( $tinfo->date, $tinfo->time );
- $tinfo->dateString = $fnsdate->getFormattedString ();
- $tinfo->timeString = $fnsdate->getFormattedTimeString ();
- $tinfo->events = $this->getTrackersEvents ( $tinfo->tid, $currentTrip );
- $duration = $this->getTrackerDuration ( $tinfo->tid, $tinfo->status );
- if ($duration != false) {
- $fnsdate->setUTCDate ( $duration->date, $duration->time );
- $tinfo->durationStamp = $fnsdate->dateTime->getTimestamp ();
- } else {
- $tinfo->durationStamp = null;
- }
- if (isset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [4] ) == false) {
- if (count ( $tinfo->hLocations ) > 0)
- $sObj = $tinfo->hLocations [0];
- else
- $sObj = $tinfo;
- $fnsdate->setUTCDate ( $sObj->date, $sObj->time );
- if ($tinfo->status == 'm' || $tinfo->status == 'i' || ($tinfo->status == 'g' && count($tinfo->hLocations) > 0)) {
- $tinfo->sTime = $fnsdate->getFormattedString ();
- $tinfo->sLatitude = $sObj->latitude;
- $tinfo->sLongitude = $sObj->longitude;
- }
- $_SESSION ['dCache'] [$tracker ['trackerid']] [4] = true;
- }
- return removeNullFromObject ( $tinfo );
- }
- //Returns tracker data object
- public function getTrackerDataObject_mongo ($tracker, $fetchRecords = true, $trec = false, $sortedReverse = false, $currentTrip = false) {
- global $GMONGO;
- $fnsdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $tinfo = new trackerInfoRecord ();
- $tinfo->name = $tracker ['name'];
- $tinfo->fscode = $tracker ['type'];
- $tinfo->tid = $tracker ['trackerid'];
- $tinfo->simno = $tracker ['simno'];
- $tinfo->searchKeywords = $tracker ['searchKeywords'];
- $tinfo->imei = $tracker ['imei'];
- $tinfo->trackerSerial = $tracker ['trackerSerial'];
- $tinfo->iconText = $tracker ['iconText'];
- $tinfo->licensePlate = $tracker ['licensePlate'];
- $tinfo->maxrpm = $tracker ['maxrpm'];
- $tinfo->hLocations = array ();
- $tinfo->cT = $this->getTrackerInfoField ( $tracker );
- $tinfo->trackingType = isset ( $tracker ['apptype'] ) ? $tracker ['apptype'] : (isset ( $this->trackerTypes [$tracker ['type']] ) ? $this->trackerTypes [$tracker ['type']] ['trackingType'] : 'VEHICLE');
- $tinfo->cStamp = time ();
- //$tinfo->iconid = 1;
- $tinfo->iconid = $tracker['iconid'];
- /*if ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR)
- $tinfo->iconid = 'default';*/
- if (isset($tracker['groups']))
- $tinfo->groups = $tracker['groups'];
- if ($fetchRecords == true) {
- $this->dCache_validateCache($tracker ['trackerid']);
- $cTS = (int)$_SESSION ['dCache'] [$tracker ['trackerid']][0];
- if ($cTS == 0 || $cTS == null)
- $cTS = (time() - (48 * 3600));
- $trec = $GMONGO->getAMRecord_reverseSorted($tracker['trackerid'], array("timestamp" => array('$gte' => $cTS), 'latitude' => array('$exists' => 1, '$ne' => null)));
- } else {
- if ($trec != false) {
- if ($sortedReverse == false)
- $trec = array_reverse ( $trec );
- $_SESSION ['dCache'] [$tracker ['trackerid']][0] = $trec [0] ['timestamp'];
- if (isset ($_SESSION ['dCache'] [$tracker ['trackerid']] [4])) //Check
- unset ($_SESSION ['dCache'] [$tracker ['trackerid']] [4]);
- }
- }
- if (isset ($_GET ['update']) && $_GET ['update'] == 1) {
- if ($trec == false)
- return false;
- else if ($trec [0] ['timestamp'] == $_SESSION ['dCache'] [$tracker ['trackerid']][0]) {
- //If no update is present
- //Get packet with no location
- $linput = $GMONGO->getLastAMRecord($tinfo->tid);
- if ($linput == false) return false;
- $ltimestamp = $linput[0]['timestamp'];
- $ptimestamp = $trec[0]['timestamp'];
- if ($ptimestamp > $ltimestamp) return false;
- if ((time() - $ptimestamp) < NON_WORKING_TRACKER_TIME) {
- if (($ltimestamp - $ptimestamp) < NO_GPS_ICON_TIME)
- return false;
- else if (isset ($_SESSION ['dCache'] [$tracker ['trackerid']] [2]))
- return false;
- } else if (isset ($_SESSION ['dCache'] [$tracker ['trackerid']] [5]))
- return false;
- } else {
- if (isset ($_SESSION ['dCache'] [$tracker ['trackerid']] [2]))
- unset ($_SESSION ['dCache'] [$tracker ['trackerid']] [2]);
- if (isset ($_SESSION ['dCache'] [$tracker ['trackerid']] [5]))
- unset ($_SESSION ['dCache'] [$tracker ['trackerid']] [5]);
- }
- }
- if ($trec == false) {
- srand();
- $tinfo->status = 'n';
- $tinfo->iconIndex = $this->getIconIndex($tinfo->status);
- $tinfo = removeNullFromObject($tinfo);
- return $tinfo;
- }
- $trec_count = count($trec);
- if ($trec_count > 2) {
- for ($x = $trec_count - 2; $x > 0; $x--) {
- $n = new trackerRecord ();
- foreach ($n as $k => $v)
- $n->{$k} = $trec [$x] [$k];
- $fnsdate->setUTCDate($n->date, $n->time);
- $n->timeString = $fnsdate->getFormattedTimeString();
- array_push($tinfo->hLocations, $n);
- }
- }
- $fdate = new FNSDateTime($_SESSION['timezone']);
- $fdate->setTimestamp($trec[0]['timestamp']);
- $tinfo->latitude = $trec [0] ['latitude'];
- $tinfo->longitude = $trec [0] ['longitude'];
- $tinfo->speed = $trec [0] ['speed'];
- $tinfo->direction = $trec [0] ['direction'];
- //$tinfo->date = $fdate->UTCDateString;
- //$tinfo->time = $fdate->UTCTime;
- $tinfo->date = $trec[0]['date'];
- $tinfo->time = $trec [0] ['time'];
- $maglobals = $this->getMAGLOBALSrecord($tinfo->tid);
- //$tinfo->timestamp = $trec [0] ['timestamp'];
- $tinfo->timestamp = (int)$maglobals [0] ['timestamp'];
- //echo "\r\ntimestamp ".$tinfo->timestamp;
- //var_dump($maglobals);
- $_SESSION ['dCache'] [$tinfo->tid] [0] = $trec[0]['timestamp'];
- //$inputs = $trec;
- $inputs = $this->getInputs ( $tinfo->tid, false, $tinfo->date, $tinfo->time, $tinfo->fscode, true );
- //Inputs start
- if ($inputs != false) {
- for($i = 1; $i <= 5; $i ++) {
- if (isset ( $inputs [0] ['fuel' . $i] ))
- $tinfo->{'fuel' . $i} = $inputs [0] ['fuel' . $i];
- if (isset ( $inputs [0] ['temperature' . $i] ))
- $tinfo->{'temperature' . $i} = $inputs [0] ['temperature' . $i];
- }
- if (isset ( $inputs ['0'] ['ibattery'] ))
- $tinfo->ibattery = $inputs ['0'] ['ibattery'];
- $tinfo->IO = $inputs [0] ['IO'];
- $tinfo->JStr = $inputs [0] ['misc'];
- if (isset ( $tracker ['privatePublicUse'] ) && $tracker ['privatePublicUse'] == 1)
- $tinfo->privatePublic = $inputs [0] ['private'];
- //if ($currentTrip){
- if ($currentTrip || (isset ( $_GET ['update'] ) && $_GET ['update'] == 1)){
- $tinfo->odometer = $this->getOdometer ( $tinfo->tid, $tinfo->date, $tinfo->time );
- $tinfo->driver = $this->getDriverName ( $tinfo->tid );
- }
- //$tinfo->odometer = $this->getOdometer ( $tinfo->tid, $tinfo->date, $tinfo->time );
- if ($tinfo->odometer == false)
- $tinfo->odometer = null;
- //$tinfo->driver = $this->getDriverName ( $tinfo->tid );
- } else {
- for($i = 1; $i <= 5; $i ++) {
- $tinfo->{'fuel' . $i} = null;
- $tinfo->{'temperature' . $i} = null;
- }
- $tinfo->IO = null;
- $tinfo->odometer = null;
- $tinfo->privatePublic = 0;
- } //Inputs end
- $tinfo->status = $this->getStatus($tinfo->tid, $tinfo->date, $tinfo->time, $tinfo->speed, $tinfo->IO);
- if ($tinfo->status == 'm' || $tinfo->status == 'i' || $tinfo->status == 's') {
- $linput = $this->getInputs($tinfo->tid);
- if ($linput != false) {
- //if (isset($trec[0]['latitude']) == false) {
- $ltimestamp = $linput [0] ['timestamp'];
- $aglobals = $trec = $this->getAGLOBALSrecord($tinfo->tid);
- //$ptimestamp = $tinfo->timestamp;
- $ptimestamp = $aglobals[0]['timestamp'];
- if (($ltimestamp - $ptimestamp) > NO_GPS_ICON_TIME) {
- //////////////////////////////////////////////////////////////echo "ltimestamp ".$ltimestamp, " ptimestamp ".$ptimestamp."\r\n";
- $tinfo->status = 'g';
- /////////////////////////////////////var_dump($tinfo);
- /////////////////////////////////die;
- $_SESSION ['dCache'] [$tracker ['trackerid']] [2] = true;
- }
- //}
- }
- } else {
- $_SESSION ['dCache'] [$tracker ['trackerid']] [5] = true;
- }
- //To remove any previous data if last packet has ignition
- if (($tinfo->status == 'n' || $tinfo->status == 's') && $currentTrip) {
- $tinfo->hLocations = array();
- }
- $tinfo->iconIndex = $this->getIconIndex($tinfo->status, $tinfo->latitude, $tinfo->timestamp);
- $fnsdate->setUTCDate($tinfo->date, $tinfo->time);
- $tinfo->dateString = $fnsdate->getFormattedString();
- $tinfo->timeString = $fnsdate->getFormattedTimeString();
- $tinfo->events = $this->getTrackersEvents($tinfo->tid, $currentTrip);
- $duration = $this->getTrackerDuration ( $tinfo->tid, $tinfo->status );
- if ($duration != false) {
- $fnsdate->setUTCDate ( $duration->date, $duration->time );
- $tinfo->durationStamp = $fnsdate->dateTime->getTimestamp ();
- } else {
- $tinfo->durationStamp = null;
- }
- if (isset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [4] ) == false) {
- if (count ( $tinfo->hLocations ) > 0)
- $sObj = $tinfo->hLocations [0];
- else
- $sObj = $tinfo;
- $fnsdate->setUTCDate ( $sObj->date, $sObj->time );
- if ($currentTrip) {
- if ($tinfo->status == 'm' || $tinfo->status == 'i' || ($tinfo->status == 'g' && count($tinfo->hLocations) > 0)) {
- $tinfo->sTime = $fnsdate->getFormattedString ();
- $tinfo->sLatitude = $sObj->latitude;
- $tinfo->sLongitude = $sObj->longitude;
- }
- } else {
- $tinfo->sTime = $fnsdate->getFormattedString ();
- $tinfo->sLatitude = $sObj->latitude;
- $tinfo->sLongitude = $sObj->longitude;
- }
- $_SESSION ['dCache'] [$tracker ['trackerid']] [4] = true;
- }
- return removeNullFromObject ( $tinfo );
- }
- public function getMAGLOBALSrecord($tid){
- $query = "SELECT * FROM MAGLOBALS WHERE trackerid = '".$tid."'";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete();
- }
- public function getAGLOBALSrecord($tid){
- $query = "SELECT * FROM AGLOBALS WHERE trackerid = '".$tid."'";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete();
- }
- public function getTrackerDataObject_new ($tracker, $fetchRecords = false, $trec = false, $sortedReverse = false, $currentTrip = false) {
- global $GMONGO;
- $fnsdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $tinfo = new trackerInfoRecord ();
- $tinfo->name = $tracker ['name'];
- $tinfo->fscode = $tracker ['type'];
- $tinfo->tid = $tracker ['trackerid'];
- $tinfo->simno = $tracker ['simno'];
- $tinfo->searchKeywords = $tracker ['searchKeywords'];
- $tinfo->imei = $tracker ['imei'];
- $tinfo->trackerSerial = $tracker ['trackerSerial'];
- $tinfo->iconText = $tracker ['iconText'];
- $tinfo->licensePlate = $tracker ['licensePlate'];
- $tinfo->maxrpm = $tracker ['maxrpm'];
- $tinfo->hLocations = array ();
- $tinfo->cT = $this->getTrackerInfoField ( $tracker );
- $tinfo->trackingType = isset ( $tracker ['apptype'] ) ? $tracker ['apptype'] : (isset ( $this->trackerTypes [$tracker ['type']] ) ? $this->trackerTypes [$tracker ['type']] ['trackingType'] : 'VEHICLE');
- $tinfo->cStamp = time ();
- $tinfo->iconid = $tracker['iconid'];
- /*$tinfo->iconid = 1;
- if ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR)
- $tinfo->iconid = 'default';
- */
- if (isset($tracker['users']))
- $tinfo->users = $tracker['users'];
- if (isset($tracker['groups']))
- $tinfo->groups = $tracker['groups'];
- $this->dCache_validateCache ( $tracker ['trackerid'] );
- $cTS = $_SESSION ['dCache'] [$tracker ['trackerid']][0];
- $query = "SELECT * FROM AGLOBALS WHERE trackerid = '".$tracker['trackerid']."' AND timestamp >= $cTS";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- if (!$result) {
- $query = "SELECT * FROM AGLOBALS WHERE trackerid = '".$tracker['trackerid']."'";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- }
- $trec = $result;
- /*if (!$result) {
- echo $query;
- var_dump($result);
- die;
- }*/
- //var_dump($result);
- //die;
- if (isset ( $_GET ['update'] ) && $_GET ['update'] == 1) {
- if ($trec == false)
- return false;
- else if ($trec [0] ['timestamp'] == $_SESSION ['dCache'] [$tracker ['trackerid']][0]) {
- //If no update is present
- //Get packet with no location
- $linput = $this->getMAGLOBALSrecord($tinfo->tid);
- if ($linput == false) return false;
- $ltimestamp = $linput[0]['timestamp'];
- $ptimestamp = $trec[0]['timestamp'];
- if ($ptimestamp > $ltimestamp) return false;
- if ((time () - $ptimestamp) < NON_WORKING_TRACKER_TIME) {
- if (($ltimestamp - $ptimestamp) < NO_GPS_ICON_TIME)
- return false;
- else if (isset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [2] ))
- return false;
- } else if (isset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [5] ))
- return false;
- } else {
- if (isset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [2] ))
- unset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [2] );
- if (isset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [5] ))
- unset ( $_SESSION ['dCache'] [$tracker ['trackerid']] [5] );
- }
- }
- if ($trec == false) {
- srand ();
- $tinfo->status = "n";
- $tinfo->iconIndex = $this->getIconIndex ( $tinfo->status);
- $tinfo = removeNullFromObject ( $tinfo );
- return $tinfo;
- }
- $fdate = new FNSDateTime($_SESSION['timezone']);
- $fdate->setTimestamp($trec[0]['timestamp']);
- $tinfo->latitude = $trec [0] ['latitude'];
- $tinfo->longitude = $trec [0] ['longitude'];
- $tinfo->speed = $trec [0] ['speed'];
- $tinfo->direction = $trec [0] ['direction'];
- $tinfo->date = $fdate->UTCDateString;
- $tinfo->time = $fdate->UTCTime;
- $tinfo->timestamp = $trec [0] ['timestamp'];
- $_SESSION ['dCache'] [$tinfo->tid] [0] = $trec[0]['timestamp'];
- //$inputs = $trec;
- //$inputs = false; $this->getInputs ( $tinfo->tid ); // , false, $tinfo->date, $tinfo->time, $tinfo->fscode, true );
- //$inputs = $this->getInputs ( $tinfo->tid ); // , false, $tinfo->date, $tinfo->time, $tinfo->fscode, true );
- $inputs = false;
- //Inputs start
- if ($inputs != false) {
- for($i = 1; $i <= 5; $i ++) {
- if (isset ( $inputs [0] ['fuel' . $i] ))
- $tinfo->{'fuel' . $i} = $inputs [0] ['fuel' . $i];
- if (isset ( $inputs [0] ['temperature' . $i] ))
- $tinfo->{'temperature' . $i} = $inputs [0] ['temperature' . $i];
- }
- if (isset ( $inputs ['0'] ['ibattery'] ))
- $tinfo->ibattery = $inputs ['0'] ['ibattery'];
- $tinfo->IO = $inputs [0] ['IO'];
- $tinfo->JStr = $inputs [0] ['misc'];
- if (isset ( $tracker ['privatePublicUse'] ) && $tracker ['privatePublicUse'] == 1)
- $tinfo->privatePublic = $inputs [0] ['private'];
- $tinfo->odometer = null;
- } else {
- for($i = 1; $i <= 5; $i ++) {
- $tinfo->{'fuel' . $i} = null;
- $tinfo->{'temperature' . $i} = null;
- }
- $tinfo->IO = null;
- $tinfo->odometer = null;
- $tinfo->privatePublic = 0;
- } //Inputs end
- $tinfo->IO = $trec[0]['IO'];
- $tinfo->status = $this->getStatus ( $tinfo->tid, $tinfo->date, $tinfo->time, $tinfo->speed, $tinfo->IO );
- if ($tinfo->status == 'm' || $tinfo->status == 'i' || $tinfo->status == 's') {
- $linput = $this->getMAGLOBALSrecord($tinfo->tid);
- if ($linput != false) {
- $ltimestamp = $linput [0] ['timestamp'];
- $ptimestamp = $tinfo->timestamp;
- if (($ltimestamp - $ptimestamp) > NO_GPS_ICON_TIME) {
- $tinfo->status = 'g';
- $_SESSION ['dCache'] [$tracker ['trackerid']] [2] = true;
- }
- }
- } else {
- $_SESSION ['dCache'] [$tracker ['trackerid']] [5] = true;
- }
- $tinfo->iconIndex = $this->getIconIndex ( $tinfo->status, $tinfo->latitude, $tinfo->timestamp );
- $fnsdate->setUTCDate ( $tinfo->date, $tinfo->time );
- $tinfo->dateString = $fnsdate->getFormattedString ();
- $tinfo->timeString = $fnsdate->getFormattedTimeString ();
- //$tinfo->events = $this->getTrackersEvents ( $tinfo->tid, $currentTrip );
- /*$duration = $this->getTrackerDuration ( $tinfo->tid, $tinfo->status );
- if ($duration != false) {
- $fnsdate->setUTCDate ( $duration->date, $duration->time );
- $tinfo->durationStamp = $fnsdate->dateTime->getTimestamp ();
- } else {
- $tinfo->durationStamp = null;
- }*/
- $tinfo->durationStamp = null;
- return removeNullFromObject ( $tinfo );
- }
- public function getReportDebuggerTrackers ($tracker, $fetchRecords = true, $trec = false, $sortedReverse = false, $currentTrip = false) {
- $fnsdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $tinfo = new trackerInfoRecord ();
- $tinfo->name = $tracker ['name'];
- $tinfo->fscode = $tracker ['type'];
- $tinfo->tid = $tracker ['trackerid'];
- $tinfo->simno = $tracker ['simno'];
- $tinfo->searchKeywords = $tracker ['searchKeywords'];
- $tinfo->imei = $tracker ['imei'];
- $tinfo->trackerSerial = $tracker ['trackerSerial'];
- $tinfo->iconText = $tracker ['iconText'];
- $tinfo->licensePlate = $tracker ['licensePlate'];
- if (isset($tracker['groups']))
- $tinfo->groups = $tracker['groups'];
- $query = "SELECT * FROM MAGLOBALS WHERE trackerid = '".$tracker['trackerid']."'";
- $this->dbclass->execute_query ( $query );
- $trec = $this->dbclass->get_result_complete ();
- //$trec = $GMONGO->getLastARecord($tracker['trackerid']);
- if ($trec == false) {
- srand ();
- $tinfo->status = "n";
- $tinfo->iconIndex = $this->getIconIndex ( $tinfo->status);
- $tinfo = removeNullFromObject ( $tinfo );
- return $tinfo;
- }
- if ($trec[0]['latitude'] == NULL || $trec[0]['longitude'] == NULL) {
- $tinfo->status = 'g';
- } else {
- $tinfo->status = $this->getStatus ( $tinfo->tid, $trec[0]['date'], $trec[0]['time'], $trec[0]['speed'], $trec[0]['IO'] );
- }
- $tinfo->iconIndex = $this->getIconIndex ( $tinfo->status, $tinfo->latitude, $tinfo->timestamp );
- return removeNullFromObject ( $tinfo );
- }
- public function getReportTrackers () {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- if ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR) {
- $query = "SELECT * FROM adminTrackersMap INNER JOIN trackers USING(trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE username = '".$_SESSION['username']."'";
- } elseif ($_SESSION['accounttype'] == USERTYPE_FLEET) {
- $query = "SELECT * FROM trackersMap inner join trackers using (trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE username=\"{$username}\"";
- }
- $this->dbclass->execute_query ( $query );
- $trackers = $this->dbclass->get_result_complete ();
- if ($_SESSION['accounttype'] == USERTYPE_FLEET)
- $trackers = $this->filterExpiredTrackers ( $trackers );
- $trackersList = array ();
- if ($trackers == false)
- return $trackersList;
- $tracker_count = count ( $trackers );
- if ($tracker_count == 0)
- return $trackersList;
- for($b = 0; $b < $tracker_count; $b ++) {
- $query = "SELECT * FROM groupTrackersMap INNER JOIN trackersLogicalGroups USING (groupid) WHERE trackerid = '{$trackers [$b]['trackerid']}'";
- $this->dbclass->execute_query($query);
- $groups = $this->dbclass->get_result_complete();
- if ($groups != false) {
- $gid = array_map(function ($a) {
- return $a['groupName'];
- }, $groups);
- $trackers [$b]['groups'] = implode(',', $gid);
- }
- $tinfo = $this->getReportDebuggerTrackers($trackers [$b] );
- if ($tinfo != false)
- array_push ( $trackersList, $tinfo );
- }
- return $trackersList;
- }
- public function getTrackerPosition($trackerid) {
- $username = $this->dbclass->get_escape_string($_SESSION['username']);
- //$query = "SELECT * FROM adminTrackersMap INNER JOIN trackers USING(trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE username = '".$username."'";
- $query = "SELECT * FROM adminTrackersMap INNER JOIN trackers USING(trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE trackerid = '".$trackerid."'";
- $this->dbclass->execute_query ( $query );
- $trackers = $this->dbclass->get_result_complete ();
- $trackersList = array ();
- if ($trackers == false)
- return false;
- //foreach ($trackers as $t) {
- //if (isset($_GET['tid']) && $_GET['tid'] == $t['trackerid'] )
- // $tinfo = $this->getTrackerDataObject_mongo ( $t );
- //else
- // $tinfo = $this->getTrackerDataObject_new ( $t );
- $tinfo = $this->getTrackerDataObject_new ( $trackers[0] );
- //if ($tinfo != false) array_push ( $trackersList, $tinfo );
- if ($tinfo != false) return $tinfo;
- return false;
- //}
- /*$totalTrackers = count($trackersList);
- if ($totalTrackers) {
- $trackersList[$totalTrackers-1]->trackersCount = $this->getTrackersCount($username,'admin');
- }*/
- //return $trackersList;
- }
- /* For Maliatec Medco */
- public function getTrackerLastLatLng ($tid) {
- global $GMONGO;
- $trec = $GMONGO->getLastARecord($tid);
- //var_dump($trec);
- //die('check');
- return $trec;
- }
- public function getTrackerInformation($tid) {
- $query = "SELECT * FROM trackers inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE trackerid=\"{$tid}\"";
- $this->dbclass->execute_query ( $query );
- return $this->dbclass->get_result_complete ();
- }
- public function getDebuggerTrackers() {
- $username = $this->dbclass->get_escape_string($_SESSION['username']);
- $query = "SELECT * FROM adminTrackersMap INNER JOIN trackers USING(trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE username = '".$username."'";
- $this->dbclass->execute_query ( $query );
- $trackers = $this->dbclass->get_result_complete ();
- $trackersList = array ();
- if ($trackers == false)
- return $trackersList;
- foreach ($trackers as $t) {
- //session_start();
- if ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR && !isset($_GET['update'])) {
- $query = "SELECT username FROM trackersMap WHERE trackerid=\"{$t['trackerid']}\"";
- $this->dbclass->execute_query ( $query );
- $users = $this->dbclass->get_result_complete();
- if ($users != false) {
- $arr = array_map(function($a){ return $a['username']; }, $users);
- $t ['users'] = implode(",", $arr);
- }
- }
- $iconid = $this->getTrackerIconid($t['trackerid']);
- $t['iconid'] = $iconid[0]['iconid'];
- if (isset($_GET['tid']) && $_GET['tid'] == $t['trackerid'] )
- $tinfo = $this->getTrackerDataObject_mongo ( $t );
- else
- $tinfo = $this->getTrackerDataObject_new ( $t );
- //session_write_close();
- if ($tinfo != false) array_push ( $trackersList, $tinfo );
- //usleep(250000);
- }
- $totalTrackers = count($trackersList);
- if ($totalTrackers) {
- $trackersList[$totalTrackers-1]->trackersCount = $this->getTrackersCount($username,'admin');
- }
- return $trackersList;
- }
- /*public function getDebuggerTrackers() {
- global $GDATABASE;
- $query = "SELECT * FROM adminTrackersMap INNER JOIN trackers USING(trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE username = '".$_SESSION['username']."'";
- //$query = "SELECT * FROM trackers inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid)";
- $this->dbclass->execute_query ( $query );
- $trackers = $this->dbclass->get_result_complete ();
- $trackersList = array ();
- if ($trackers == false)
- return $trackersList;
- $tracker_count = count ( $trackers );
- $gm = new FNSGearman();
- for($b = 0; $b < $tracker_count; $b ++) {
- $dCache = $_SESSION['dCache'][$trackers[$b]['trackerid']];
- $eCache = $_SESSION['eCache'][$trackers[$b]['trackerid']];
- $arguments = array('trackers' => $trackers [$b], 'session' => $_SESSION, 'dCache' => $dCache, 'eCache' => $eCache);
- //print_r($arguments);
- //echo "ADDING TASK FOR TRACKER ID ".$trackers[$b]['trackerid']."\r\n";
- $gm->addTask('gtdom', json_encode($arguments), null,$trackers[$b]['trackerid']);
- //$tinfo = $this->getTrackerDataObject_mongo ( $trackers [$b] );
- //if ($tinfo != false)
- // array_push ( $trackersList, $tinfo );
- }
- $gm->runTasks();
- foreach ( FNSGearman::$results as $k => $v) {
- $row = json_decode($v, true);
- //var_dump($row['tinfo']);
- /*
- if (is_array($row['tinfo']))
- array_push ( $trackersList, $row ['tinfo'] );
- if (is_array($row['session']))
- $_SESSION = $row ['session'];*/
- ///////////////////////////////array_push ( $trackersList, $row ['tinfo']);
- //print_r($row);
- //$_SESSION = $v['session'];
- //$tname = $GDATABASE -> getTrackerName ( $k ) [0] ['name'];
- //print_r($v[]);
- //foreach ($row as $l => $m) {
- //$data = json_decode($v, true);
- //var_dump($data);
- /*comment $fdate = new FNSDateTime ( $_SESSION['timezone'] );
- $fdate->setLocalTimestamp ( $row [$l] ['td'] ['ts'] );
- $da [$i] ['date'] = $fdate ->dateTime -> format ( 'd-M' );
- $da [$i] ['distance'] = $row [$l] ['td'] ['d'];
- if ($da [$i] ['distance'] > 0) {
- $distance = $da [$i] ['distance'] * 0.621371;
- $da [$i] ['distance'] = $this->mConverter->convert($distance, 'D');
- }
- $da [$i] ['trackerid'] = 't'.$k;
- $da [$i] ['tname'] = $tname;
- $i++;*/
- //}
- ///////////////////////////////}
- //die;
- ///////////////////////////////return $trackersList;
- ///////////////////////////////}
- public function getLastARecord($tid, $limit = 1) {
- global $GMONGO;
- return $GMONGO -> getAMRecord_reverseSorted($tid, array('latitude' => array('$exists' => true, '$ne' => null)), $limit);
- }
- public function getLastWayPoint($tid, $poiID) {
- $query = "SELECT * from poiVisits WHERE trackerid='$tid' AND poiID='$poiID' ORDER BY date DESC,time DESC LIMIT 0,1";
- $this->dbclass->execute_query ( $query );
- return $this->dbclass->get_result_complete ();
- }
- public function createWayPointEvent($username, $tid, $date, $time, $poiID) {
- $query = "INSERT INTO poiVisits SET date='$date', time='$time', username='$username', trackerid = '$tid', poiID='$poiID'";
- $this->dbclass->execute_query ( $query );
- }
- public function createPOIMailerEvent($tid, $username, $date, $time, $event, $desc) {
- $query = "INSERT INTO POIMailer SET date='$date', time='$time', eventno='$event', description='$desc', vehicleid='$tid', username='$username'";
- $this->dbclass->execute_query ( $query );
- }
- public function pullPOIMailer(){
- $query = "SELECT * from POIMailer";
- $this->dbclass->execute_query ( $query );
- $ans = $this->dbclass->get_result_complete ();
- $query = "DELETE from POIMailer where ID <= ". $ans[count($ans)-1]['id'];
- $this->dbclass->execute_query ( $query );
- return $ans;
- }
- public function createEvent($tid, $username, $date, $time, $latitude, $longitude, $speed, $direction, $event, $desc) {
- global $GMONGO;
- /*$query = "INSERT INTO E{$tid} SET date='$date', time='$time', latitude='$latitude', longitude = '$longitude', speed='$speed', direction='$direction', event='$event', description='$desc'";
- $this->dbclass->execute_query ( $query );*/
- $records = array();
- $records['date'] = $date;
- $records['time'] = $time;
- $records['latitude'] = $latitude;
- $records['longitude'] = $longitude;
- $records['speed'] = $speed;
- $records['direction'] = $direction;
- $records['event'] = $event;
- $records['description'] = $desc;
- $GMONGO->insertRecordIntoE($tid, $records);
- $query = "INSERT INTO mailer SET date='$date', time='$time', eventno='$event', description='$desc', vehicleid='$tid', username='$username'";
- $this->dbclass->execute_query ( $query );
- }
- public function getTrackersMap($username) {
- $username = $this->dbclass->get_escape_string ( $username );
- $query = "SELECT * FROM trackersMap inner join trackers using (trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE username=\"{$username}\"";
- $this->dbclass->execute_query ( $query );
- $trackers = $this->dbclass->get_result_complete ();
- $trackers = $this->filterExpiredTrackers ( $trackers );
- if (count ( $trackers ) == 0)
- return array ();
- $tl = array ();
- if ($trackers != false) {
- foreach ( $trackers as $v ) {
- $tl [$v ['trackerid']] = $v;
- }
- }
- return $tl;
- }
- public function getUsersFromTracker($tid) {
- $query = "SELECT * FROM trackersMap WHERE trackerid=\"{$tid}\"";
- $this->dbclass->execute_query ( $query );
- return $this->dbclass->get_result_complete ();
- }
- /*public function getFleetTrackers() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT * FROM trackersMap inner join trackers using (trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE username=\"{$username}\"";
- $this->dbclass->execute_query ( $query );
- $trackers = $this->dbclass->get_result_complete ();
- $trackersList = array ();
- $trackers = $this->filterExpiredTrackers ( $trackers );
- $tracker_count = count ( $trackers );
- if ($tracker_count == 0)
- return $trackersList;
- for($b = 0; $b < $tracker_count; $b ++) {
- $tinfo = $this->getTrackerDataObject ( $trackers [$b] );
- if ($tinfo != false)
- array_push ( $trackersList, $tinfo );
- }
- return $trackersList;
- }*/
- public function getFleetTrackers() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT * FROM trackersMap inner join trackers using (trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE username=\"{$username}\"";
- $this->dbclass->execute_query ( $query );
- $trackers = $this->dbclass->get_result_complete ();
- $trackersList = array ();
- $trackers = $this->filterExpiredTrackers ( $trackers );
- if ($trackers == false)
- return $trackersList;
- foreach ($trackers as $t) {
- $query = "SELECT * FROM groupTrackersMap INNER JOIN trackersLogicalGroups USING (groupid) WHERE trackerid = '{$t['trackerid']}'";
- $this->dbclass->execute_query($query);
- $groups = $this->dbclass->get_result_complete();
- if ($groups != false) {
- $gid = array_map(function ($a) {
- return $a['groupName'];
- }, $groups);
- $t['groups'] = implode(',', $gid);
- }
- $iconid = $this->getTrackerIconid($t['trackerid']);
- $t['iconid'] = $iconid[0]['iconid'];
- if (isset($_GET['tid']) && $_GET['tid'] == $t['trackerid'] )
- $tinfo = $this->getTrackerDataObject_mongo ( $t );
- else
- $tinfo = $this->getTrackerDataObject_new ( $t );
- //array_push ( $trackersList, $tinfo );
- if ($tinfo != false) array_push ( $trackersList, $tinfo );
- }
- $totalTrackers = count($trackersList);
- if ($totalTrackers) {
- $trackersList[$totalTrackers-1]->trackersCount = $this->getTrackersCount($username,'user');
- }
- return $trackersList;
- }
- public function getFleetListViewTrackers() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT * FROM trackersMap inner join trackers using (trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE username=\"{$username}\"";
- $this->dbclass->execute_query ( $query );
- $trackers = $this->dbclass->get_result_complete ();
- $trackersList = array ();
- $trackers = $this->filterExpiredTrackers ( $trackers );
- if ($trackers == false)
- return $trackersList;
- foreach ($trackers as $t) {
- $query = "SELECT * FROM groupTrackersMap INNER JOIN trackersLogicalGroups USING (groupid) WHERE trackerid = '{$t['trackerid']}'";
- $this->dbclass->execute_query($query);
- $groups = $this->dbclass->get_result_complete();
- if ($groups != false) {
- $gid = array_map(function ($a) {
- return $a['groupName'];
- }, $groups);
- $t['groups'] = implode(',', $gid);
- }
- //if (isset($_GET['tid']) && $_GET['tid'] == $t['trackerid'] )
- $tinfo = $this->getTrackerDataObject_mongo ( $t, true, false, false, true );
- //else
- // $tinfo = $this->getTrackerDataObject_new ( $t );
- //array_push ( $trackersList, $tinfo );
- if ($tinfo != false) array_push ( $trackersList, $tinfo );
- }
- $totalTrackers = count($trackersList);
- if ($totalTrackers) {
- $trackersList[$totalTrackers-1]->trackersCount = $this->getTrackersCount($username,'user');
- }
- return $trackersList;
- }
- private function eCache_validateCache($tid) {
- global $GMONGO;
- if (isset ( $_SESSION ['eCache'] ) == false) {
- $_SESSION ['eCache'] = array ();
- }
- if (isset ( $_SESSION ['eCache'] [$tid] ) == false) {
- $trec = $GMONGO->getLastERecordLimitedField($tid, array(), array('timestamp' => true));
- if ($trec != false) {
- $_SESSION ['eCache'] [$tid] = array ();
- $_SESSION ['eCache'] [$tid] [0] = $trec [0] ['timestamp'];
- } else {
- $_SESSION ['eCache'] [$tid] = array ();
- $_SESSION ['eCache'] [$tid] [0] = 0;
- }
- return false;
- }
- return true;
- }
- public function getTrackersEvents_withDateTime($tid, $sdate, $stime, $edate, $etime) {
- global $GMONGO;
- $events = array ();
- $periodClause = basicTransactions::getPeriodClause ( $sdate, $stime, $edate, $etime );
- $periodClauseMongo = basicTransactions::getPeriodClauseMongo ( $sdate, $stime, $edate, $etime );
- $fnsdate = new FNSDateTime ( $_SESSION ['timezone'] );
- /*$QUERY = "SELECT * from E{$tid} WHERE $periodClause ORDER by date,time";
- $this->dbclass->execute_query ( $QUERY );
- $trec = $this->dbclass->get_result_complete ();*/
- $trec = $GMONGO->getERecords($tid, $periodClauseMongo);
- if ($trec == false)
- return;
- $trCount = count ( $trec );
- for($c = 0; $c < $trCount; $c ++) {
- $tinfo = new trackerEvent ();
- $tinfo->latitude = $trec [$c] ['latitude'];
- $tinfo->longitude = $trec [$c] ['longitude'];
- $tinfo->speed = $trec [$c] ['speed'];
- $tinfo->direction = $trec [$c] ['direction'];
- $tinfo->date = $trec [$c] ['date'];
- $tinfo->time = $trec [$c] ['time'];
- $tinfo->eventno = $trec [$c] ['event'];
- $tinfo->description = utf8_encode($trec [$c] ['description']->bin);
- $fnsdate->setUTCDate ( $tinfo->date, $tinfo->time );
- $tinfo->dateString = $fnsdate->getFormattedString ();
- array_push ( $events, $tinfo );
- }
- return $events;
- }
- public function getTrackersEvents($tid, $currentTrip = false) {
- global $GMONGO;
- $events = array ();
- if ($this->eCache_validateCache ( $tid ) == false) {
- //return;
- }
- $fnsdate = new FNSDateTime ( $_SESSION ['timezone'] );
- // $this->eCache_validateCache($tid);
- if (isset ( $_SESSION ['eCache'] [$tid] ) == false) {
- return $events;
- }
- //if (isset($_GET['update']) || $currentTrip == true) {
- if ($currentTrip == true) {
- //$ts = time() - 86400;
- $ts = time() - (EVENTS_FETCH_TIME * 3600);
- //$ts = $_SESSION['eCache'] [$tid] [0];
- } else {
- //$ts = time() - 86400;
- //$ts = time();
- $ts = $_SESSION['eCache'] [$tid] [0];
- }
- $queryCriteria = array('timestamp' => array('$gt' => $ts));
- $trec = $GMONGO -> getERecords($tid, $queryCriteria);
- /*$QUERY = "SELECT * from E{$tid} WHERE (date = \"" . $_SESSION ['eCache'] [$tid] [0] . "\" AND time > " . $_SESSION ['eCache'] [$tid] [1] . ") OR (date > \"" . $_SESSION ['eCache'] [$tid] [0] . "\") ORDER BY date,time";
- $this->dbclass->execute_query ( $QUERY );
- $trec = $this->dbclass->get_result_complete ();*/
- if ($trec == false)
- return $events;
- $trCount = count ( $trec );
- for($c = 0; $c < $trCount; $c ++) {
- $tinfo = new trackerEvent ();
- $tinfo->latitude = $trec [$c] ['latitude'];
- $tinfo->longitude = $trec [$c] ['longitude'];
- $tinfo->speed = $trec [$c] ['speed'];
- $tinfo->direction = $trec [$c] ['direction'];
- $tinfo->date = $trec [$c] ['date'];
- $tinfo->time = $trec [$c] ['time'];
- $tinfo->eventno = $trec [$c] ['event'];
- $tinfo->description = utf8_encode($trec [$c] ['description'] -> bin);
- $fnsdate->setUTCDate ( $tinfo->date, $tinfo->time );
- $tinfo->dateString = $fnsdate->getFormattedString ();
- array_push ( $events, $tinfo );
- }
- if ($c >= 1) {
- //$_SESSION ['eCache'] [$tid] [0] = $trec [$c - 1] ['date'];
- //$_SESSION ['eCache'] [$tid] [1] = $trec [$c - 1] ['time'];
- $_SESSION ['eCache'] [$tid] [0] = $trec [$c - 1] ['timestamp'];
- }
- return $events;
- }
- public function getTrackersDatabase($logicalGroups = false, $username = "") {
- global $GMONGO;
- // Get Escape string for Username
- $username = $this->dbclass->get_escape_string ( $username );
- // Fetch Groups based on logicalGroups selection from the database
- $query = $logicalGroups ? "SELECT name as groups FROM logicalGroups WHERE username=\"$username\" ORDER BY name" : "SELECT username as groups FROM Users ORDER BY username";
- $this->dbclass->execute_query ( $query );
- $groups = $this->dbclass->get_result_complete ();
- if ($groups == false) {
- return false;
- }
- $groups_count = count ( $groups );
- $returnAnswer = array ();
- // Starts iterating among groups
- for($a = 0; $a < $groups_count; $a ++) {
- $groupObject = new groupRecord ();
- $groupObject->name = base64_encode ( $groups [$a] ['groups'] );
- $groupObject->list = array ();
- array_push ( $returnAnswer, $groupObject );
- $gname = $this->dbclass->get_escape_string ( $groups [$a] ['groups'] );
- $query = $logicalGroups ? "SELECT * FROM trackers WHERE username=\"$username\" AND logicalGroup=\"$gname\"" : "SELECT * FROM trackers WHERE username=\"$gname\" ORDER BY name";
- $this->dbclass->execute_query ( $query );
- $trackers = $this->dbclass->get_result_complete ();
- if ($trackers == false)
- continue;
- $tracker_count = count ( $trackers );
- for($b = 0; $b < $tracker_count; $b ++) {
- $tinfo = new trackerInfoRecord ();
- $tinfo->name = base64_encode ( $trackers [$b] ['name'] );
- $tinfo->fscode = $trackers [$b] ['type'];
- $tinfo->tid = $trackers [$b] ['trackerid'];
- $trec = $GMONGO -> getLastARecord($trackers[$b]['trackerid']);
- if ($trec == false) {
- $tinfo->status = "n";
- array_push ( $groupObject->list, $tinfo );
- continue;
- }
- $tinfo->latitude = $trec [0] ['latitude'];
- $tinfo->longitude = $trec [0] ['longitude'];
- $tinfo->speed = $trec [0] ['speed'];
- $tinfo->direction = $trec [0] ['direction'];
- $tinfo->date = $trec [0] ['date'];
- $tinfo->time = $trec [0] ['time'];
- $inputs = $this->getInputs ( $tinfo->tid, false, $tinfo->date, $tinfo->time, $tinfo->fscode, true );
- if ($inputs != false) {
- $tinfo->fuel = $inputs [0] ['fuel'];
- $tinfo->temperature = $inputs [0] ['temperature'];
- $tinfo->IO = $inputs [0] ['IO'];
- $tinfo->odometer = $inputs [0] ['odometer'];
- $tinfo->privatePublic = $inputs [0] ['private'];
- } else {
- $tinfo->fuel = - 1;
- $tinfo->temperature = - 1;
- $tinfo->IO = false;
- $tinfo->odometer = 0;
- $tinfo->privatePublic = 0;
- }
- $tinfo->status = $this->getStatus ( $tinfo->tid, $tinfo->date, $tinfo->time, $tinfo->speed, $tinfo->IO );
- array_push ( $groupObject->list, $tinfo );
- }
- }
- return $returnAnswer;
- }
- function getSnailTrack($tid, $nloc) {
- global $GMONGO;
- /*$query = "SELECT COUNT(*) FROM A{$tid} ORDER BY date,time";
- $this->dbclass->execute_query ( $query );
- $ans = $this->dbclass->get_result_complete ();*/
- $ans = $GMONGO->countDocumentsInA($tid);
- /*if ($ans [0] ['COUNT(*)'] >= 5) {
- $naoffset = $ans [0] ['COUNT(*)'] - 5;
- } else if ($ans [0] ['COUNT(*)'] == 0) {
- return false;
- } else
- $naoffset = 0;*/
- if ($ans >= 5) {
- $naoffset = $ans - 5;
- } else if ($ans == 0) {
- return false;
- } else
- $naoffset = 0;
- //$nloc is limit and $naoffset will skip the result it works like LIMIT $naoffset, $nloc
- $ans = $GMONGO -> getAMRecord($tid, array('latitude' => array('$exists' => true, '$ne' => null)), $nloc, $naoffset);
- return $ans;
- }
- public function checkTrackerID($tid) {
- if (strlen ( $tid ) < 6)
- return false;
- $query = "SELECT COUNT(*) FROM trackers WHERE trackerid=\"$tid\"";
- $this->dbclass->execute_query ( $query );
- $tcard = $this->dbclass->get_result_complete ();
- if ($tcard == false)
- return false;
- if ($tcard [0] ['COUNT(*)'] > 0)
- return false;
- return true;
- }
- public function getTrackersInfo () {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- if ($_SESSION ['accounttype'] == USERTYPE_SUPERUSER) {
- $QUERY = "SELECT trackerid,name FROM trackers inner join trackersExInfo using (trackerid)";
- $this->dbclass->execute_query ( $QUERY );
- }
- elseif ($_SESSION ['accounttype'] == USERTYPE_ADMINISTRATOR) {
- $QUERY = "SELECT trackerid,name FROM trackers inner join trackersExInfo using (trackerid)";
- $this->dbclass->execute_query ( $QUERY );
- } else {
- $QUERY = "SELECT trackerid,name FROM trackers INNER JOIN trackersExInfo USING (trackerid) INNER JOIN trackersMap USING (trackerid) WHERE username=\"{$_SESSION ['username']}\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- $trackers = $this->dbclass->get_result_complete ();
- $trackers = $this->filterExpiredTrackers ( $trackers );
- /*if ($trackers != false) {
- foreach ($trackers as $k => $v) {
- echo "tracker id".$v['trackerid']."";
- $query = "SELECT username FROM trackersMap WHERE trackerid=\"{$v['trackerid']}\"";
- echo $query;
- $this->dbclass->execute_query ( $query );
- $trackers [$k] ['trackerExpiry'] = TrackerExpiry::checkExpiry ( $v ['trackerExpiry'] );
- $addKeywords = null;
- while ( 1 ) {
- $user = $this->dbclass->get_result_row ();
- var_dump($user);
- if ($user == false)
- {die; break;}
- if ($addKeywords == null){
- $addKeywords = $user ['username'];
- echo $addKeywords."<br>";
- }
- else
- $addKeywords .= ", " . $user ['username'];
- }
- $trackers [$k] ['users'] = $addKeywords;
- }
- }*/
- return $trackers;
- }
- public function getTrackerCard($trackerid) {
- $query = "SELECT * FROM trackers JOIN trackersExInfo USING (trackerid) JOIN trackersFeatures USING (trackerid) INNER JOIN trackersDetails USING (trackerid) LEFT JOIN napt ON vehicleid = trackerid WHERE trackerid=\"$trackerid\"";
- $this->dbclass->execute_query ( $query );
- $tcard = $this->dbclass->get_result_complete ();
- return $tcard;
- }
- public function getTrackerCard_public($trackerid) {
- $query = "SELECT * FROM trackers JOIN trackersExInfo USING (trackerid) JOIN trackersFeatures USING (trackerid) LEFT JOIN napt ON vehicleid = trackerid LEFT JOIN trackersDetails using (trackerid) WHERE trackerid=\"$trackerid\"";
- $this->dbclass->execute_query ( $query );
- $tcard = $this->dbclass->get_result_complete ();
- if ($tcard == false) return ERROR;
- return $this->encrypt(json_encode($tcard[0]));
- }
- public function getAccountCard($username) {
- $username = $this->dbclass->get_escape_string ( $username );
- $query = "SELECT * FROM Users WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $query );
- $acard = $this->dbclass->get_result_complete ();
- return $acard;
- }
- public function updateTrackerCard() {
- $query = "UPDATE trackers INNER JOIN trackersExInfo USING (trackerid) INNER JOIN trackersFeatures USING (trackerid) INNER JOIN trackersDetails USING (trackerid) INNER JOIN napt ON vehicleid = trackerid SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest () . " WHERE trackerid=\"" . $_POST ['trackerid'] . "\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- //$this->writeDebugLog ( "\r\n" . mysql_error ( $this->dbclass->dblink ) );
- $this->writeDebugLog ( "\r\n" . $this->dbclass->dblink->error );
- return ERROR;
- }
- return SUCCESS;
- }
- public function insertTrackerCard() {
- global $GMONGO;
- if (strlen ( $_POST ['trackerid'] ) < 6)
- return "false";
- if (isset ( $_POST ['vehicleid'] ))
- unset ( $_POST ['vehicleid'] );
- $QUERY_ARRAY = array();
- array_push($QUERY_ARRAY, "INSERT INTO trackers SET trackerid = \"" . $_POST ['trackerid'] . "\"");
- array_push($QUERY_ARRAY, "INSERT INTO adminTrackersMap SET trackerid = \"" . $_POST ['trackerid'] . "\", username = \"" . $_SESSION['username'] . "\""); //Added in V5)
- array_push($QUERY_ARRAY, "INSERT INTO trackersFeatures SET trackerid = \"" . $_POST ['trackerid'] . "\"");
- array_push($QUERY_ARRAY, "INSERT INTO trackersDetails SET trackerid = \"" . $_POST ['trackerid'] . "\"");
- array_push($QUERY_ARRAY, "INSERT INTO trackersExInfo SET trackerid = \"" . $_POST ['trackerid'] . "\"");
- array_push($QUERY_ARRAY, "INSERT INTO napt SET vehicleid = \"" . $_POST ['trackerid'] . "\", ip=\"-1\", port=\"-1\", protocol=\"" . $_POST ['protocol'] . "\"");
- array_push($QUERY_ARRAY, "CREATE TABLE A{$_POST['trackerid']} like dataTable");
- array_push($QUERY_ARRAY, "CREATE TABLE E{$_POST['trackerid']} like eventsTable");
- array_push($QUERY_ARRAY,"CREATE TABLE M{$_POST['trackerid']} like miscTable");
- array_push($QUERY_ARRAY,"CREATE TABLE R{$_POST['trackerid']} like rTable");
- array_push($QUERY_ARRAY, "CREATE TABLE RN{$_POST['trackerid']} like rnTable");
- array_push($QUERY_ARRAY, "CREATE TABLE RT{$_POST['trackerid']} like rTable");
- foreach ($QUERY_ARRAY as $query){
- $result = $this->dbclass->execute_query ( $query );
- if ($result == false) {
- //$this->writeDebugLog ( "\r\n" . mysql_error ( $this->dbclass->dblink ) );
- $this->writeDebugLog ( "\r\n" . $this->dbclass->dblink->error );
- return ERROR."::MySQL";
- }
- }
- //$GMONGO->createIndex($_POST['trackerid'], array('timestamp' => 1));
- //$GMONGO->createIndex($_POST['trackerid'], array('timestamp' => -1));
- //$GMONGO->enableSharding($_POST['trackerid']);
- return $this->updateTrackerCard ();
- }
- public function insertAccount() {
- $query = "INSERT INTO Users SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- //if (mysql_errno($this->dblink) == 1062)
- if ($this->dbclass->dblink->errno == 1062)
- return EXISTS;
- return ERROR;
- }
- /******ADDED IN V5*******/
- $username = $this->dbclass->get_escape_string($_POST['username']);
- if ($_POST ['accounttype'] == 3 || $_POST ['accounttype'] == 5) {
- $query = "INSERT INTO logicalGroups_V5 SET username = '$username', adminUserName = \"" . $_SESSION['username'] . "\", accounttype = " . $_POST['accounttype'];
- $result = $this->dbclass->execute_query($query);
- }
- /*} else if ($_POST ['accounttype'] == 5) {
- $query = "INSERT INTO fleetCareMap SET fcusername = \"".$username."\", adminUserName = \"".$_SESSION['username']."\"";
- $result = $this->dbclass->execute_query ( $query );
- }*/
- if ($result != true) {
- //if (mysql_errno($this->dblink) == 1062)
- if ($this->dbclass->dblink->errno == 1062)
- return EXISTS;
- return ERROR;
- }
- if ($_POST ['accounttype'] == 1) { //If adding user type admin from super user
- $query = "INSERT INTO licenses SET username = '".$username."', licenses = 0";
- $result = $this->dbclass->execute_query($query);
- }
- if ($result != true) {
- //if (mysql_errno($this->dblink) == 1062)
- if ($this->dbclass->dblink->errno == 1062)
- return EXISTS;
- return ERROR;
- }
- return SUCCESS;
- }
- public function updateAccount() {
- $username = $this->dbclass->get_escape_string ( $_POST ['username'] );
- $query = "UPDATE Users SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest () . " WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- //$this->writeDebugLog ( mysql_error ( $this->dbclass->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- return ERROR;
- }
- return SUCCESS;
- }
- public function checkUser ($username) {
- $query = "SELECT COUNT(*) FROM Users WHERE username = '".$username."'";
- $this->dbclass->execute_query ( $query );
- $userCount = $this->dbclass->get_result_complete ();
- if ($userCount == false)
- return false;
- if ($userCount [0] ['COUNT(*)'] > 0)
- return true;
- }
- public function saveTemplate() {
- $query = "REPLACE INTO userTemplates SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- return SUCCESS;
- }
- public function getTemplates() {
- $query = "SELECT * FROM userTemplates WHERE type = 0";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- private function removeCardFromUsers($username) {
- $query = "DELETE FROM Users WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- $this->deactivateUserFences ( $username );
- $this->deleteUserGeofences ( $username );
- $query = "DELETE FROM archiveFences WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM POI WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM userPreferences WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM usersImages WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM schools WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- $this->removeUserStudents ( $username );
- $query = "DELETE FROM reminders WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM alertSettings WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM schedules WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- /*$query = "DELETE FROM logicalGroups_V5 WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );*/
- $this->removeUserDrivers ( $username );
- $query = "DELETE FROM contacts WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- return SUCCESS;
- }
- private function removeFleetAccount($username) // Removes Fleet Account
- {
- $query = "DELETE FROM trackersMap WHERE username=\"$username\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM logicalGroups_V5 WHERE username = \"$username\"";
- $result = $this->dbclass->execute_query ( $query );
- return $this->removeCardFromUsers ( $username );
- }
- private function removeCCareAccount($username) // Remove ccare account
- {
- return $this->removeCardFromUsers ( $username );
- }
- private function removeFleetCareAccount($username) // Removes Fleet Care Account
- {
- $query = "DELETE FROM logicalGroups_V5 WHERE username = \"$username\"";
- $result = $this->dbclass->execute_query ( $query );
- return $this->removeCardFromUsers ( $username );
- }
- private function removeAdminAccount($username) // Remove ccare account
- {
- $query = "DELETE FROM adminTrackersMap WHERE username=\"$username\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM logicalGroups_V5 WHERE adminUserName = \"".$_SESSION['username']."\"";
- $result = $this->dbclass->execute_query ( $query );
- return $this->removeCardFromUsers ( $username );
- }
- public function removeAccount($username, $type) {
- $username = $this->dbclass->get_escape_string ( $username );
- switch ($type) {
- case USERTYPE_FLEET :
- return $this->removeFleetAccount ( $username );
- case USERTYPE_CUSTOMERCARE :
- return $this->removeCCareAccount ( $username );
- case USERTYPE_FLEETCARE :
- return $this->removeFleetCareAccount ( $username );
- case USERTYPE_ADMINISTRATOR:
- return $this->removeAdminAccount ( $username );
- } // switch
- return ERROR;
- }
- public function blacklistAccount($username) {
- $username = $this->dbclass->get_escape_string ( $username );
- $query = "UPDATE Users SET blocktime = -1 WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- //$this->writeDebugLog ( mysql_error ( $this->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- return ERROR;
- }
- return SUCCESS;
- }
- public function safelistAccount($username) {
- $username = $this->dbclass->get_escape_string ( $username );
- $query = "UPDATE Users SET blocktime = 0, noofretry = 0 WHERE username=\"" . $username . "\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- //$this->writeDebugLog ( mysql_error ( $this->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- return ERROR;
- }
- $query = "SELECT * from Users where username='".$username."'";
- $result = $this->dbclass->execute_query ( $query );
- $users = $this->dbclass->get_result_complete ();
- $status = array();
- $status['username'] = $users[0]['username'];
- $status['status'] = systemUtilities::getStatus($users[0]['expirytime'],$users[0]['blocktime'],$users[0]['lastLogin']);
- return $status;
- }
- public function clearTrackersMap($username) {
- $username = $this->dbclass->get_escape_string ( $username );
- $query = "DELETE FROM trackersMap WHERE username=\"$username\"";
- $result = $this->dbclass->execute_query ( $query );
- }
- public function removeDriversMap($username, $tid) {
- $username = $this->dbclass->get_escape_string ( $username );
- $query = "DELETE FROM driversMap WHERE username=\"$username\" AND trackerid=\"$tid\"";
- $result = $this->dbclass->execute_query ( $query );
- }
- public function createTrackersMap($username, $tid) {
- $username = $this->dbclass->get_escape_string ( $username );
- $query = "INSERT INTO trackersMap SET username=\"$username\", trackerid=\"$tid\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result == false)
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- }
- public function trackersMapList($username) {
- $no = new emptyClass ();
- //$username = "demo";
- //$query = "SELECT trackerid as id, name,imei,simno,searchKeywords FROM trackers inner join trackersExInfo using (trackerid)";
- $admin = $_SESSION['username'];
- $query = "SELECT atm.trackerid AS id, name, imei, simno, searchKeywords FROM adminTrackersMap AS atm INNER JOIN trackers ON atm.username = \"$admin\" AND atm.trackerid = trackers.trackerid INNER JOIN trackersExInfo AS ti ON trackers.trackerid = ti.trackerid";
- $this->dbclass->execute_query ( $query );
- $trackers = $this->dbclass->get_result_complete ();
- $no->ATL = array ();
- $no->NTL = array ();
- if ($trackers != false) {
- $tracker_count = count ( $trackers );
- for($b = 0; $b < $tracker_count; $b ++)
- $no->ATL [$trackers [$b] ['id']] = $trackers [$b];
- unset ( $trackers );
- $username = $this->dbclass->get_escape_string ( $username );
- //$query = "SELECT trackerid as id, name,imei,simno,searchKeywords FROM trackersMap left join trackers using(trackerid) left join trackersExInfo using (trackerid) WHERE username=\"$username\"";
- $query = "SELECT atm.trackerid AS id, name, imei, simno, searchKeywords FROM adminTrackersMap AS atm INNER JOIN trackersMap AS tm ON atm.username = \"$admin\" AND atm.trackerid = tm.trackerid LEFT JOIN trackers ON tm.trackerid = trackers.trackerid LEFT JOIN trackersExInfo as ti on trackers.trackerid = ti.trackerid WHERE tm.username=\"$username\"";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer != false) {
- $tracker_count = count ( $answer );
- for($b = 0; $b < $tracker_count; $b ++) {
- array_push ( $no->NTL, $answer [$b] );
- unset ( $no->ATL [$answer [$b] ['id']] );
- } // for
- } // if
- } // if
- $no->ATL = array_values ( $no->ATL );
- return $no;
- }
- public function getPrevLogin($username) {
- $uname = $this->dbclass->get_escape_string ( $username );
- $query = "SELECT prevLogin FROM Users WHERE username =\"{$uname}\"";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function setWeatherLocation($location) {
- $location = $this->dbclass->get_escape_string ( $location );
- $QUERY = "UPDATE systemPreferences SET weatherLocation=\"" . $location . "\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function fleet_setWeatherLocation($location) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $location = $this->dbclass->get_escape_string ( $location );
- $QUERY = "SELECT COUNT(*) FROM userPreferences WHERE username=\"{$username}\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans [0] ['COUNT(*)'] > 0) {
- $QUERY = "UPDATE userPreferences SET weatherLocation=\"" . $location . "\" WHERE username=\"{$username}\"";
- $this->dbclass->execute_query ( $QUERY );
- } else {
- $QUERY = "INSERT INTO userPreferences SET weatherLocation=\"" . $location . "\", username=\"{$username}\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- }
- public function updateLoginSuccess($username) {
- $now = time ();
- $uname = $this->dbclass->get_escape_string ( $username );
- $query = "SELECT lastLogin FROM Users WHERE username =\"{$uname}\"";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- $QUERY = "UPDATE Users SET lastLogin=$now, prevLogin=" . $answer [0] ['lastLogin'] . " WHERE username=\"{$uname}\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function ccare_get_users_list() {
- $fields = "username,name,company,mobile,email,city,country,reseller";
- $wClause = "accounttype = " . USERTYPE_FLEET;
- $query = "SELECT $fields FROM Users WHERE " . $wClause . " ORDER BY name";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function get_users_list($ccare = false) {
- if ($ccare) {
- $fields = "*";
- $wClause = "accounttype = " . USERTYPE_FLEET . " OR accounttype = " . USERTYPE_CUSTOMERCARE;
- } else {
- $fields = "username,name,company";
- $wClause = "accounttype = " . USERTYPE_FLEET;
- }
- $query = "SELECT $fields FROM Users WHERE " . $wClause . " ORDER BY username";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function getUserNotificationRecord($username) {
- $uname = $this->dbclass->get_escape_string ( $username );
- $query = "SELECT * FROM usersNotifications WHERE username =\"{$uname}\"";
- $result = $this->dbclass->execute_query ( $query );
- return $this->dbclass->get_result_complete ();
- }
- public function getTrackerNotificationRecord($tid) {
- $query = "SELECT * FROM trackersNotifications WHERE trackerid =\"{$tid}\"";
- $result = $this->dbclass->execute_query ( $query );
- return $this->dbclass->get_result_complete ();
- }
- public function setUserNotificationRecord($username, $time) {
- $uname = $this->dbclass->get_escape_string ( $username );
- $query = "REPLACE INTO usersNotifications SET username =\"{$uname}\", UE_NOTICE = '$time'";
- $result = $this->dbclass->execute_query ( $query );
- }
- public function setTrackerNotificationRecord($tid, $time) {
- $query = "REPLACE INTO trackersNotifications SET trackerid =\"{$tid}\", TE_NOTICE = '$time'";
- $result = $this->dbclass->execute_query ( $query );
- }
- public function getAllTrackersList() {
- global $GMONGO;
- //$query = "SELECT trackerid,name,imei,simno,searchKeywords,trackerExpiry,type, chassisNo, licensePlate, iconText FROM trackers INNER JOIN trackersExInfo USING (trackerid) INNER JOIN trackersDetails USING (trackerid)";
- $query = "SELECT * FROM trackers INNER JOIN trackersExInfo USING (trackerid) INNER JOIN trackersDetails USING (trackerid)";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- $fdate = new FNSDateTime($_SESSION['timezone']);
- if ($answer != false) {
- foreach ( $answer as $k => $v ) {
- $query = "SELECT username FROM trackersMap WHERE trackerid=\"{$v['trackerid']}\"";
- $this->dbclass->execute_query ( $query );
- $answer [$k] ['trackerExpiry'] = TrackerExpiry::checkExpiry ( $v ['trackerExpiry'] );
- $addKeywords = null;
- while ( 1 ) {
- $user = $this->dbclass->get_result_row ();
- if ($user == false)
- break;
- if ($addKeywords == null)
- $addKeywords = $user ['username'];
- else
- $addKeywords .= ", " . $user ['username'];
- }
- $answer [$k] ['users'] = $addKeywords;
- //$lastRecord = $GMONGO->getLastAMRecord($v['trackerid']);
- //$query = "SELECT * FROM MAGLOBALS WHERE trackerid = '".$tracker['trackerid']."' AND timestamp >= $cTS";
- //$fdate->setTimestamp($lastRecord[0]['timestamp']);
- //$answer [$k] ['datetime'] = $fdate->getFormattedString();
- }
- }
- return $answer;
- }
- public function getWorkingDriversList($fields = "*") {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- if ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR) {
- $query = "SELECT $fields FROM drivers WHERE tagID NOT LIKE 'EXP%'";
- }else if ($_SESSION['accounttype'] == USERTYPE_FLEET){
- $query = "SELECT $fields FROM drivers WHERE tagID NOT LIKE 'EXP%' AND username=\"$username\"";
- }
- $this->dbclass->execute_query ( $query );
- return $this->dbclass->get_result_complete ();
- }
- public function getFleetStatus() {
- //global $GMONGO;
- $uname = $this->dbclass->get_escape_string ( $_SESSION['username'] );
- if ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR) {
- //$query = "SELECT * FROM trackers";
- $query = "SELECT * FROM adminTrackersMap INNER JOIN trackers using (trackerid) WHERE username = '{$uname}'";
- }else if ($_SESSION['accounttype'] == USERTYPE_FLEET){
- $query = "SELECT * FROM trackersMap WHERE username=\"$uname\"";
- }
- "SELECT * FROM adminTrackersMap INNER JOIN trackers using (trackerid) WHERE username = '$uname'";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- $result = array();
- $result['working'] = array();
- $result['idle'] = array();
- $result['noreport'] = array();
- foreach ($answer as $k =>$v){
- $ans = $this->getMAGLOBALSrecord($v['trackerid']);
- //$ans = $GMONGO->getLastAMRecord($v['trackerid']);
- /*if ($ans != false && isset($ans[0]['TIMESTAMP'])) {
- $ans[0]['timestamp'] = $ans[0]['TIMESTAMP'];
- }*/
- if ($ans == false ) {
- array_push($result['noreport'], $v);
- }else if (time() - $ans[0]['timestamp'] > NEWSPAPER_NON_WORKING_TIME){
- array_push($result['noreport'], $v);
- } else {
- $v['driver'] = $this->getDriverName ( $v['trackerid']);
- if (strpos($ans[0]['IO'],"j") === false ) {
- array_push($result['idle'], $v);
- }else {
- array_push($result['working'], $v);
- }
- }
- }
- return $result;
- }
- public function getIterativeTrackersList() {
- $uname = $this->dbclass->get_escape_string ( $_SESSION['username'] );
- if ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR) {
- //$query = "SELECT * FROM trackers";
- $query = "SELECT * FROM adminTrackersMap INNER JOIN trackers using (trackerid) WHERE username = '$uname'";
- }else if ($_SESSION['accounttype'] == USERTYPE_FLEET){
- $query = "SELECT * FROM trackersMap INNER JOIN trackers using (trackerid) WHERE username=\"$uname\"";
- } else if ($_SESSION['accounttype'] == USERTYPE_CUSTOMERCARE) {
- $query = "SELECT * FROM trackers";
- } else if ($_SESSION['accounttype'] == USERTYPE_FLEETCARE) {
- $QUERY = "SELECT adminUserName from logicalGroups_V5 WHERE username = '".$_SESSION['username']."'" ;
- $result = $this->dbclass->execute_query ( $QUERY );
- $un = $this -> dbclass -> get_result_complete();
- $query = "SELECT * FROM adminTrackersMap INNER JOIN trackers using (trackerid) WHERE username = '".$un[0]['adminUserName']."'";
- }
- $result = $this->dbclass->execute_query ( $query );
- return $this->dbclass->get_result_complete ();
- }
- public function getCriticalEvents($durationInSecs) {
- global $TRACKING_EVENTS;
- global $GMONGO;
- $events = $TRACKING_EVENTS->getCriticalEventsList(0, NEWSPAPER_CRITICAL_EVENTS_LEVEL);
- //$events = $TRACKING_EVENTS->getCriticalEventsList(0, 2);
- $answer = $this->getIterativeTrackersList();
- $t = time() - $durationInSecs;
- $cans = array();
- $a = array();
- foreach ($events as $e => $f) {
- array_push($a, "$f->code");
- }
- foreach ($answer as $k =>$v){
- $cans[$v['trackerid']] = array('name' => $v['name'], 'events' => array());
- $ans = $GMONGO->getERecords($v['trackerid'], array('event' => array('$in' => $a), 'timestamp' => array('$gt' => $t)), false);
- if ($ans != false) {
- foreach($ans as $m => $n) {
- $name = $TRACKING_EVENTS->getEventName($n['event']);
- if (isset($cans[$v['trackerid']]['events'][$name])) $cans[$v['trackerid']]['events'][$name]++;
- else $cans[$v['trackerid']]['events'][$name] = 1;
- }
- }
- }
- return $cans;
- }
- public function tracker_getAllEvents($tid, $durationInSecs) {
- global $TRACKING_EVENTS;
- global $GMONGO;
- $t = time() - $durationInSecs;
- $cans = array('cEvents' => array(), 'gEvents' => array());
- $a = array();
- $ans = $GMONGO->getERecords($tid, array('timestamp' => array('$gt' => $t)), false);
- if ($ans != false) {
- foreach($ans as $m => $n) {
- $name = $TRACKING_EVENTS->getEventName($n['event']);
- if ($TRACKING_EVENTS->getCriticalLevel($n['event']) < NEWSPAPER_CRITICAL_EVENTS_LEVEL) {
- //$cans['cEvents'][$n['event']] = $name;
- if (isset($cans['cEvents']['events'][$name])) $cans['cEvents'][$name]++;
- else $cans['cEvents']['events'][$name] = 1;
- }else {
- //$cans['gEvents'][$n['event']] = $name;
- if (isset($cans['gEvents']['events'][$name])) $cans['gEvents']['events'][$name]++;
- else $cans['gEvents']['events'][$name] = 1;
- }
- }
- }
- return $cans;
- }
- public function todaysFleet_getAllEvents($durationInSecs) {
- global $TRACKING_EVENTS;
- global $GMONGO;
- $answer = $this->getIterativeTrackersList();
- $t = time() - $durationInSecs;
- $cans = array();
- $a = array();
- foreach ($answer as $k =>$v){
- $ans = $GMONGO->getERecords($v['trackerid'], array('timestamp' => array('$gt' => $t)), false);
- $cEvents = array();
- $gEvents = array();
- $eventCounter = array();
- if ($ans != false) {
- foreach($ans as $m => $n) {
- $name = $TRACKING_EVENTS->getEventName($n['event']);
- $level = $TRACKING_EVENTS->getCriticalLevel($n['event']);
- //if ($level < NEWSPAPER_CRITICAL_EVENTS_LEVEL) {
- if ($level < 2) {
- $cEvents[$n['event']] = $name;
- }else {
- $gEvents[$n['event']] = $name;
- }
- if (isset($eventCounter[$name])) {
- $eventCounter[$name]->count++;
- }
- else {
- $eventCounter[$name] = new emptyClass();
- $eventCounter[$name]->count = 1;
- $eventCounter[$name]->level = $level;
- }
- }
- $rec = array();
- //$rec['name'] = $v['name'];
- $rec['name'] = $this -> getTrackerName ($v['trackerid'])[0]['name'];
- $rec['tid'] = $v['trackerid'];
- $rec['cEvents'] = implode(",", $cEvents);
- $rec['tCount'] = count($ans);
- $rec['gEvents'] = implode(",", $gEvents);
- $rec['description'] = 'a';
- $rec['rating'] = 'b';
- $rec['evCount'] = $eventCounter;
- array_push($cans, $rec);
- }
- }
- usort($cans, function($a, $b){
- return $b['d'] > $a['d'];
- });
- for ($i = 0; $i < count($cans); $i++)
- $cans[$i]['rowNumber'] = $i+1;
- return $cans;
- }
- public function getFleetDistance($durationInSecs) {
- //global $GMONGO;
- $answer = $this->getIterativeTrackersList();
- $gclient = new FNSGearman();
- $result = array();
- $dresult = array();
- $tlistMapper = array();
- foreach ($answer as $k =>$v){
- $tlistMapper[$v['trackerid']] = $answer[$k];
- $gclient->addTask('todaysFleetDMSI',json_encode(array('tinfo' => $v, 'duration' => $durationInSecs, 'session' => $_SESSION)), null, $v['trackerid']);
- }
- $gclient->runTasks();
- foreach(FNSGearman::$results as $k => $v) {
- $res = json_decode($v, true);
- if (isset($res['td']) && is_array($res['td']) && $res['td']['d'] != 0) {
- $nres = $res['td'];
- $nres['t'] = $k;
- $nres['n'] = $tlistMapper[$k]['name'];
- $result[$k] = $nres;
- }
- if (isset($res['dd']) && is_array($res['dd'])) {
- foreach($res['dd'] as $tagID => $value) {
- if (isset($dresult[$tagID]) == false) {
- $dresult[$tagID] = array('info' => $value['info'], 'time' => $value['time']);
- } else {
- $dresult[$tagID]['time'] += $value['time'];
- }
- }
- }
- }
- usort($result, function($a, $b){
- return $b['d'] > $a['d'];
- });
- usort($dresult, function($a, $b){
- return $b['time'] > $a['time'];
- });
- //print_r(array('td' => $result, 'dd'=>$dresult));
- //die;
- return array('td' => $result, 'dd'=>$dresult);
- }
- public function getTrackersStatus() {
- $trackers = $this->getIterativeTrackersList();
- if ($trackers) {
- $status = array();
- $tcount = count($trackers);
- $fdate = new FNSDateTime($_SESSION['timezone']);
- for ($i = 0; $i < $tcount; $i++) {
- //$trec = $GMONGO->getLastARecord($trackers[$i]['trackerid']);
- $trec = $this->getAGLOBALSrecord($trackers[$i]['trackerid']);
- $tStatus = new trackerStatus();
- $tStatus -> tid = $trackers[$i]['trackerid'];
- $tname = $this->getTrackerName($trackers[$i]['trackerid']);
- $tStatus -> tname = $tname[0]['name'];
- if ($trec != false) {
- $geo = new GEOCODER();
- $fdate -> setDate($trec[0]['date'], $trec[0]['time']);
- $tStatus -> dateTime = $fdate->getFormattedString();
- $ts = $trec [0] ['timestamp'];
- if ((time() - $ts) < NON_WORKING_TRACKER_TIME)
- $tStatus -> status = 'w';
- if (isset ($_GET['doGeocode']) && $_GET['doGeocode'] == 1) {
- $location = $geo -> search($trec[0]['latitude'], $trec[0]['longitude'], true);
- $tStatus -> lastLocation = $location ['location'];
- }
- else{
- $location = ''.$trec[0]['latitude'].', '.$trec[0]['longitude'];
- $tStatus -> lastLocation = $location;
- }
- }
- array_push($status, $tStatus);
- }
- return $status;
- }
- return ERROR;
- }
- public function userTrackersList($username) {
- $uname = $this->dbclass->get_escape_string ( $username );
- $query = "SELECT trackerid FROM trackersMap WHERE username=\"$uname\"";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function getFuelProfilesList() {
- $uname = $_SESSION ['username'];
- $query = "SELECT * FROM fuelProfiles";
- //CHANGES MADE ON 26th June 2015 DUE TO LOGICAL GROUPING IN V5
- //$query = "SELECT fuelProfiles.* FROM adminTrackersMap INNER JOIN trackers ON adminTrackersMap.username = \"$uname\" AND adminTrackersMap.trackerid = trackers.trackerid INNER JOIN fuelProfiles ON trackers.name = fuelProfiles.name";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function getTemperatureProfilesList() {
- $query = "SELECT * FROM temperatureProfiles";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function getMCProfilesList($adminUserName = false) {
- if ($adminUserName == false)
- $query = "SELECT * FROM monitoringCentres";
- else {
- $adminUserName = $this->dbclass->get_escape_string($adminUserName);
- $query = "SELECT * FROM monitoringCentres WHERE adminUserName = '{$adminUserName}'";
- }
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function trackerid_exist($tidrand) {
- $query = "SELECT COUNT(*) FROM trackers WHERE trackerid=\"$tidrand\"";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer [0] ["COUNT(*)"] > 0)
- return true;
- return false;
- }
- public function moveTrackerCard($trackerid, $username) {
- $username = $this->dbclass->get_escape_string ( $username );
- $QUERY = "UPDATE trackers SET username=\"$username\",logicalGroup=\"DEFAULT\" WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function addPublicTracker($trackerid, $username) {
- $username = $this->dbclass->get_escape_string ( $username );
- $QUERY = "SELECT COUNT(*) FROM publicmaps WHERE username=\"$username\" AND trackerid=\"{$trackerid}\"";
- $result = $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer [0] ["COUNT(*)"] > 0)
- return true;
- $QUERY = "INSERT INTO publicmaps SET username=\"$username\",trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function removePublicTracker($trackerid, $username) {
- $username = $this->dbclass->get_escape_string ( $username );
- $QUERY = "DELETE FROM publicmaps WHERE username=\"$username\" AND trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function cleanTracker($trackerid, $sDate, $sTime, $eDate, $eTime) {
- $periodClause = basicTransactions::getPeriodClause ( $sDate, $sTime, $eDate, $eTime );
- $tblStart = array (
- "A",
- "E",
- "M"
- );
- for($i = 0; $i < count ( $tblStart ); $i ++) {
- $QUERY = "DELETE FROM " . $tblStart [$i] . $trackerid . " WHERE $periodClause";
- $this->dbclass->execute_query ( $QUERY );
- // $QUERY = "OPTIMIZE TABLE " . $tblStart [$i] . $trackerid;
- // $this->dbclass->execute_query ( $QUERY );
- $QUERY = "ALTER TABLE " . $tblStart [$i] . $trackerid . " DROP PRIMARY KEY, DROP COLUMN id";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "ALTER TABLE " . $tblStart [$i] . $trackerid . " ADD COLUMN id bigint auto_increment primary key first";
- $this->dbclass->execute_query ( $QUERY );
- }
- }
- public function checkDriverLogin($user, $pass) {
- $user = $this->dbclass->get_escape_string($user);
- $QUERY = "SELECT tagID,name,lpass,licno FROM drivers WHERE luser=\"$user\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete();
- if ($ans == false) return ERROR;
- if ($ans[0]['lpass'] == $pass) {
- return $ans[0];
- }
- return ERROR;
- }
- public function getEJMS_PreInsList($username) {
- $username = $this->dbclass->get_escape_string($username);
- $QUERY = "SELECT id, data FROM ejmspreins WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete();
- }
- public function getEJMS_PreInsRecord($username, $id) {
- $username = $this->dbclass->get_escape_string($username);
- $id = $this->dbclass->get_escape_string($id);
- $QUERY = "SELECT data FROM ejmspreins WHERE username=\"$username\" AND id = \"$id\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete();
- }
- public function updateEJMS_PreInsRecord($username, $id, $data) {
- $username = $this->dbclass->get_escape_string($username);
- $id = $this->dbclass->get_escape_string($id);
- $data = $this->dbclass->get_escape_string($data);
- $QUERY = "UPDATE ejmspreins SET data='$data' WHERE id=\"$id\" AND username='$username'";
- $this->dbclass->execute_query ( $QUERY );
- return $id;
- }
- public function deleteEJMS_PreInsRecord($username, $id) {
- $id = $this->dbclass->get_escape_string($id);
- $username = $this->dbclass->get_escape_string($username);
- $QUERY = "DELETE FROM ejmspreins WHERE id=\"$id\" AND username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- return SUCCESS;
- }
- public function eJMSPreInspectionStore($username, $data) {
- $username = $this->dbclass->get_escape_string($username);
- $data = $this->dbclass->get_escape_string($data);
- $QUERY = "INSERT INTO ejmspreins SET id = 0, username=\"$username\",data=\"$data\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_insert_id();
- }
- public function cleanDatabase($sDate, $sTime, $eDate, $eTime) {
- global $GMONGO;
- //if ($_SESSION['accounttype'] == USERTYPE_SUPERUSER)
- $query = "SELECT trackerid FROM trackers";
- /*elseif ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR)
- $query = "SELECT trackerid ";*/
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false)
- return false;
- $tc = count ( $answer );
- for($i = 0; $i < $tc; $i ++) {
- //$this->cleanTracker ( $answer [$i] ['trackerid'], $sDate, $sTime, $eDate, $eTime );
- $GMONGO->cleanTracker( $answer [$i] ['trackerid'], $sDate, $sTime, $eDate, $eTime );
- }
- return true;
- }
- private function deactivateUserFences($uname) {
- // $uname = $this->dbclass->get_escape_string($uname);
- // Username is already espaced
- $query = "SELECT * FROM activeGeofences WHERE username='{$uname}'";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false)
- return;
- $fcount = count ( $answer );
- for($i = 0; $i < $fcount; $i ++) {
- $query = "INSERT INTO ACTIVEGEO_CACHE (id,geoid,username,fencename,trackerid,sdate,shr,smin,edate,ehr,emin,speedLimit,actType,timezone,weekDays,monthDays,operation) select id,geoid,username,fencename,trackerid,sdate,shr,smin,edate,ehr,emin,speedLimit,actType,timezone,weekDays,monthDays,'D' from activeGeofences where id=" . $answer [$i] ['id'];
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM activeGeofences WHERE id=" . $answer [$i] ['id'];
- $this->dbclass->execute_query ( $query );
- }
- }
- public function deactivateTrackerFences($trackerid) {
- $query = "SELECT * FROM activeGeofences WHERE trackerid='{$trackerid}'";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false)
- return;
- $fcount = count ( $answer );
- for($i = 0; $i < $fcount; $i ++) {
- $query = "INSERT INTO ACTIVEGEO_CACHE (id,geoid,username,fencename,trackerid,sdate,shr,smin,edate,ehr,emin,speedLimit,actType,timezone,weekDays,monthDays,operation) select id,geoid,username,fencename,trackerid,sdate,shr,smin,edate,ehr,emin,speedLimit,actType,timezone,weekDays,monthDays,'D' from activeGeofences where id=" . $answer [$i] ['id'];
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM activeGeofences WHERE id=" . $answer [$i] ['id'];
- $this->dbclass->execute_query ( $query );
- }
- }
- public function deactivateUserTrackerFences($uname, $trackerid) {
- $uname = $this->dbclass->get_escape_string ( $uname );
- $query = "SELECT id FROM activeGeofences WHERE username='{$uname}' AND trackerid='{$trackerid}'";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false)
- return;
- $fcount = count ( $answer );
- for($i = 0; $i < $fcount; $i ++) {
- $query = "INSERT INTO ACTIVEGEO_CACHE (id,geoid,username,fencename,trackerid,sdate,shr,smin,edate,ehr,emin,speedLimit,actType,timezone,weekDays,monthDays,operation) select id,geoid,username,fencename,trackerid,sdate,shr,smin,edate,ehr,emin,speedLimit,actType,timezone,weekDays,monthDays,'D' from activeGeofences where id=" . $answer [$i] ['id'];
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM activeGeofences WHERE id=" . $answer [$i] ['id'];
- $this->dbclass->execute_query ( $query );
- }
- }
- private function deactivateTrackerPaths($trackerid) {
- $query = "SELECT * FROM ACTIVEPATH WHERE trackerid='{$trackerid}'";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false)
- return;
- $fcount = count ( $answer );
- for($i = 0; $i < $fcount; $i ++) {
- $record = $answer [$i];
- $fname = $this->dbclass->get_escape_string ( $record ['fencename'] );
- $uname = $this->dbclass->get_escape_string ( $record ['username'] );
- $query = "DELETE FROM ACTIVEPATH WHERE username='{$uname}' AND fencename='{$fname}' AND trackerid='{$record['trackerid']}' AND sdate='{$record['sdate']}' AND ";
- $query .= "edate='{$record['edate']}' AND alertOffRoute ='{$record['alertOffRoute']}' AND daysGap='{$record['daysGap']}' AND speedLimit='{$record['speedLimit']}' AND stime='{$record['stime']}' AND etime='{$record['etime']}'";
- $this->dbclass->execute_query ( $query );
- }
- }
- public function deactivateUserTrackerPaths($uname, $trackerid) {
- $uname = $this->dbclass->get_escape_string ( $uname );
- $query = "SELECT * FROM ACTIVEPATH WHERE username = '$uname' and trackerid='{$trackerid}'";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false)
- return;
- $fcount = count ( $answer );
- for($i = 0; $i < $fcount; $i ++) {
- $record = $answer [$i];
- $fname = $this->dbclass->get_escape_string ( $record ['fencename'] );
- $uname = $this->dbclass->get_escape_string ( $record ['username'] );
- $query = "DELETE FROM ACTIVEPATH WHERE username='{$uname}' AND fencename='{$fname}' AND trackerid='{$record['trackerid']}' AND sdate='{$record['sdate']}' AND ";
- $query .= "edate='{$record['edate']}' AND alertOffRoute ='{$record['alertOffRoute']}' AND daysGap='{$record['daysGap']}' AND speedLimit='{$record['speedLimit']}' AND stime='{$record['stime']}' AND etime='{$record['etime']}'";
- $this->dbclass->execute_query ( $query );
- }
- }
- public function removeTrackerCard($trackerid) {
- global $GMONGO;
- $this->deactivateTrackerFences ( $trackerid );
- $this->deactivateTrackerPaths ( $trackerid );
- $QUERY = "DELETE FROM archiveFences WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM remindersCache WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM reportSchedules WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM schedules WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM trips WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM alertSettings WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM trackers WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM trackersMap WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM odoTuning WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM trackersExInfo WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM trackersNotifications WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM trackersFeatures WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM trackersDetails WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM alertSettings WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM reminders WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM napt WHERE vehicleid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DELETE FROM driverMaps WHERE trackerid=\"{$trackerid}\"";
- $this->dbclass->execute_query ( $QUERY );
- $query = "DELETE FROM adminTrackersMap WHERE trackerid = \"{$trackerid}\""; //Added in V5
- $this->dbclass->execute_query ( $query );
- $QUERY = "DROP TABLE IF EXISTS A{$trackerid}";
- $this->dbclass->execute_query ( $QUERY );
- $GMONGO -> dropCollectionA($trackerid);
- $QUERY = "DROP TABLE IF EXISTS M{$trackerid}";
- $this->dbclass->execute_query ( $QUERY );
- $GMONGO -> dropCollectionM($trackerid);
- $QUERY = "DROP TABLE IF EXISTS E{$trackerid}";
- $this->dbclass->execute_query ( $QUERY );
- $GMONGO -> dropCollectionE($trackerid);
- $QUERY = "DROP TABLE IF EXISTS R{$trackerid}";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DROP TABLE IF EXISTS RN{$trackerid}";
- $this->dbclass->execute_query ( $QUERY );
- $QUERY = "DROP TABLE IF EXISTS RT{$trackerid}";
- $this->dbclass->execute_query ( $QUERY );
- $filename = TRACKER_IMAGES_FOLDER . "/T{$trackerid}.png";
- if (file_exists ( $filename ))
- unlink ( $filename );
- }
- public function backupDatabase_zip($download, $store) {
- global $GMONGO;
- $name = $this->dbclass->perform_backup ();
- $arr = explode ( "/", $name );
- $myfname = $arr [count ( $arr ) - 1];
- $mongoname = $GMONGO->performMongoBackup();
- //$fname = $mongoname = BACKUP_FOLDER.'/backup';
- $arr = explode ( "/", $mongoname );
- $mongofname = $arr [count ( $arr ) - 1];
- //$query = "INSERT INTO backup_log SET filename = \"{$fname}.gz\", stored = $store, datetime = UTC_TIMESTAMP, downloaded = $download";
- $query = "INSERT INTO backup_log SET filename = \"{$mongofname}.zip\", stored = $store, datetime = UTC_TIMESTAMP, downloaded = $download";
- $this->dbclass->execute_query ( $query );
- $mongoname = realpath($mongoname);
- $files = new RecursiveIteratorIterator(
- new RecursiveDirectoryIterator($mongoname),
- RecursiveIteratorIterator::LEAVES_ONLY
- );
- $zip = new ZipArchive();
- $file_name = "{$mongoname}.zip";
- $res = $zip->open($file_name, ZipArchive::CREATE);
- if ($res === true) {
- $zip->addFile($name, $myfname);
- foreach ($files as $names => $file) {
- if (!$file->isDir()) {
- $filePath = $file->getRealPath();
- $relativePath = substr($filePath, strlen($mongofname) + 1);
- $zip->addFile($filePath, $relativePath);
- }
- }
- $zip->close();
- } else return ERROR;
- if ($download == "1") {
- header ( 'Content-Description: File Transfer' );
- header ( 'Content-Type: application/octet-stream' );
- header ( 'Content-Disposition: attachment; filename=' . basename ( $file_name ) );
- header ( 'Content-Transfer-Encoding: binary' );
- header ( 'Expires: 0' );
- header ( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
- header ( 'Pragma: public' );
- header ( 'Content-Length: ' . filesize ( $file_name ) );
- ob_clean ();
- flush ();
- $fp = fopen ( $file_name, "rb" );
- while ( ! feof ( $fp ) ) {
- print fread ( $fp, 1024 * 512 );
- }
- fclose ( $fp );
- } // if
- if ($store != "1") {
- unlink ( $file_name );
- } // if
- $cmd = "rm -R $mongoname $name";
- system ( $cmd );
- }
- public function backupDatabase($download, $store) {
- $name = $this->dbclass->perform_backup ();
- $arr = explode ( "/", $name );
- $fname = $arr [count ( $arr ) - 1];
- $query = "INSERT INTO backup_log SET filename = \"{$fname}.gz\", stored = $store, datetime = UTC_TIMESTAMP, downloaded = $download";
- $this->dbclass->execute_query ( $query );
- $cmd = "gzip $name";
- system ( $cmd );
- $file_name = "{$name}.gz";
- if ($download == "1") {
- header ( 'Content-Description: File Transfer' );
- header ( 'Content-Type: application/octet-stream' );
- header ( 'Content-Disposition: attachment; filename=' . basename ( $file_name ) );
- header ( 'Content-Transfer-Encoding: binary' );
- header ( 'Expires: 0' );
- header ( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
- header ( 'Pragma: public' );
- header ( 'Content-Length: ' . filesize ( $file_name ) );
- ob_clean ();
- flush ();
- $fp = fopen ( $file_name, "rb" );
- while ( ! feof ( $fp ) ) {
- print fread ( $fp, 1024 * 512 );
- }
- fclose ( $fp );
- } // if
- if ($store != "1") {
- unlink ( $file_name );
- } // if
- }
- public function backupMongoDatabase($download, $store) {
- global $GMONGO;
- //$name = $this->dbclass->perform_backup ();
- $name = $GMONGO->performMongoBackup();
- $arr = explode ( "/", $name );
- $fname = $arr [count ( $arr ) - 1];
- $query = "INSERT INTO backup_log SET filename = \"{$fname}.gz\", stored = $store, datetime = UTC_TIMESTAMP, downloaded = $download";
- $this->dbclass->execute_query ( $query );
- //$cmd = "gzip $name";
- $cmd = "tar -czf {$name}.gz $name";
- system ( $cmd );
- /*$cmd = "rm -R $name";
- system ( $cmd );*/
- $file_name = "{$name}.gz";
- if ($download == "1") {
- header ( 'Content-Description: File Transfer' );
- header ( 'Content-Type: application/octet-stream' );
- header ( 'Content-Disposition: attachment; filename=' . basename ( $file_name ) );
- header ( 'Content-Transfer-Encoding: binary' );
- header ( 'Expires: 0' );
- header ( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
- header ( 'Pragma: public' );
- header ( 'Content-Length: ' . filesize ( $file_name ) );
- ob_clean ();
- flush ();
- $fp = fopen ( $file_name, "rb" );
- while ( ! feof ( $fp ) ) {
- print fread ( $fp, 1024 * 512 );
- }
- fclose ( $fp );
- } // if
- if ($store != "1") {
- unlink ( $file_name );
- } // if
- }
- public function saveFuelProfile() {
- $query = "REPLACE INTO fuelProfiles SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- //return $query . mysql_error ( $this->dbclass->dblink );
- return $query . $this->dbclass->dblink->error;
- }
- return SUCCESS;
- }
- public function saveTemperatureProfile() {
- $query = "REPLACE INTO temperatureProfiles SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- //return $query . mysql_error ( $this->dbclass->dblink );
- return $query . $this->dbclass->dblink->error;
- }
- return SUCCESS;
- }
- public function saveMCProfile() {
- $query = "REPLACE INTO monitoringCentres SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- //return $query . mysql_error ( $this->dbclass->dblink );
- return $query . $this->dbclass->dblink->error;
- }
- $tblName = $_POST ['shortName'];
- $query = "CREATE TABLE IF NOT EXISTS $tblName LIKE mcTable";
- $result = $this->dbclass->execute_query ( $query );
- return SUCCESS;
- }
- public function removeMCProfile($name) {
- $name = $this->dbclass->get_escape_string ( $name );
- $query = "DELETE FROM monitoringCentres WHERE shortName=\"$name\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DROP TABLE \"$name\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "UPDATE trackersExInfo SET monitoringCentre=NULL WHERE monitoringCentre=\"$name\"";
- $result = $this->dbclass->execute_query ( $query );
- }
- public function removeFuelProfile($name) {
- $name = $this->dbclass->get_escape_string ( $name );
- $query = "DELETE FROM fuelProfiles WHERE name=\"$name\"";
- $result = $this->dbclass->execute_query ( $query );
- }
- public function removeTemperatureProfile($name) {
- $name = $this->dbclass->get_escape_string ( $name );
- $query = "DELETE FROM temperatureProfiles WHERE name=\"$name\"";
- $result = $this->dbclass->execute_query ( $query );
- }
- public function updatePassword($user, $pass) {
- $username = $this->dbclass->get_escape_string ( $user);
- $password = $this->dbclass->get_escape_string ( $pass);
- $query = "UPDATE Users SET password = \"$password\" WHERE username=\"$username\"";
- $result = $this->dbclass->execute_query ( $query );
- return 1;
- }
- public function modifyPassword($curr, $pass) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT password FROM Users Where username=\"$username\"";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false)
- return - 1;
- if ($answer [0] ['password'] != $curr)
- return 0;
- $pass = $this->dbclass->get_escape_string ( $pass );
- $QUERY = "UPDATE Users SET password=\"$pass\" WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- return 1;
- }
- public function saveSystemPreferences() {
- $query = "UPDATE languages SET selected =0";
- $result = $this->dbclass->execute_query ( $query );
- $query = "UPDATE languages SET selected =1 where lcode=\"{$_POST['defaultLanguage']}\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "UPDATE systemPreferences SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- //return $query . mysql_error ( $this->dbclass->dblink );
- return $query . $this->dbclass->dblink->error;
- }
- return SUCCESS;
- }
- public function getUserPreferences() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT * FROM userPreferences WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getAdminPreferences() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT * FROM adminPreferences WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getUTrackersDetails($tid) {
- $QUERY = "SELECT * FROM trackers LEFT JOIN trackersDetails USING(trackerid) WHERE trackerid=\"{$tid}\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getTEventsSettings($tid) {
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT * FROM alertSettings WHERE trackerid=\"$tid\" AND username=\"$uname\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function saveTEventsSettings($tid) {
- $QUERY = "SELECT MAX(id) FROM alertSettings WHERE trackerid=\"{$_POST['trackerid']}\" and (type=\"{$_POST['type']}\" or id=\"{$_POST['id']}\")";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans [0] ['MAX(id)'] != NULL) {
- if ($_POST ['id'] != $ans [0] ['MAX(id)'])
- return EXISTS;
- $prefix = "UPDATE";
- $returnID = $_POST ['id'];
- $postfix = " WHERE trackerid=\"{$_POST['trackerid']}\" and id=\"{$_POST['id']}\"";
- } else {
- if ($_POST ['id'] != 0)
- return ERROR;
- $returnID = $_POST ['id'] = 0;
- $prefix = "INSERT INTO";
- $postfix = "";
- }
- $_POST ['timezone'] = $_SESSION ['timezone'];
- $_POST ['username'] = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = $prefix . " alertSettings SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $query .= $postfix;
- $result = $this->dbclass->execute_query ( $query );
- if (! $returnID)
- $returnID = $this->dbclass->dblink->insert_id;
- return $returnID;
- }
- public function removeTEventsSettings($tid, $id) {
- $QUERY = "DELETE FROM alertSettings WHERE trackerid=\"{$tid}\" AND id=\"{$id}\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function removeUserTrackerAlerts($uname, $tid) {
- $QUERY = "SELECT id FROM alertSettings WHERE trackerid=\"$tid\" AND username=\"$uname\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false)
- return;
- foreach ( $ans as $v ) {
- $QUERY = "DELETE FROM alertSettings WHERE id=\"{$v['id']}\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- }
- public function saveUTrackerDetails() {
- $tname = $this->dbclass->get_escape_string ( $_POST ['name'] );
- $tid = $this->dbclass->get_escape_string ( $_POST ['trackerid'] );
- unset ( $_POST ['name'] );
- unset ( $_POST ['imei'] );
- unset ( $_POST ['username'] );
- unset ( $_POST ['type'] );
- unset ( $_POST ['simno'] );
- unset ( $_POST ['trackerType'] );
- unset ( $_POST ['fileData'] );
- $query = "REPLACE INTO trackersDetails SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- if ($result == false) {
- //$this->writeDebugLog ( mysql_error ( $this->dbclass->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- return ERROR;
- }
- $query = "UPDATE trackers SET name=\"$tname\" WHERE trackerid=\"{$tid}\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result == false) {
- //$this->writeDebugLog ( mysql_error ( $this->dbclass->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- return ERROR;
- }
- return SUCCESS;
- }
- public function updateCompleteReminderCache($nCache) {
- $QUERY = "DELETE FROM remindersCache WHERE cacheCounter != \"$nCache\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function updateReminderCacheRec($nc, $tid, $id, $date, $time, $cdist, $enhr) {
- $QUERY = "UPDATE remindersCache SET cacheCounter = \"$nc\", date=\"$date\", time=\"$time\", cDistance=\"$cdist\", engineHrs = \"$enhr\" WHERE id=\"$id\"";
- $result = $this->dbclass->execute_query ( $QUERY );
- if ($result == false) {
- //$this->writeDebugLog ( mysql_error ( $this->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- }
- }
- public function insertReminderCacheRec($id, $nc, $tid, $sdate, $dist, $date, $time, $cdist, $enhr) {
- $query = "INSERT INTO remindersCache SET id = \"$id\", cacheCounter=\"$nc\", trackerid=\"$tid\", sDate=\"$sdate\", date=\"$date\", time=\"$time\", cDistance=\"$cdist\", distance=\"$dist\", engineHrs = \"$enhr\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result == false) {
- //$this->writeDebugLog ( mysql_error ( $this->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- }
- }
- public function removeReminderCacheRec($id) {
- $QUERY = "DELETE FROM remindersCache WHERE id=\"$id\"";
- $result = $this->dbclass->execute_query ( $QUERY );
- if ($result == false) {
- //$this->writeDebugLog ( mysql_error ( $this->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- }
- }
- public function getReminderCacheRec($id) {
- $QUERY = "SELECT * FROM remindersCache WHERE id=\"$id\"";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function getRC_counter() {
- $QUERY = "SELECT MAX(cacheCounter) FROM remindersCache";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function insertExpiredReminders ($record, $mailStatus) {
- $QUERY = "INSERT INTO expiredReminders SET reminderid = ".$record['id'].", username = '".$record['username']."', trackerid = '".$record['trackerid']."', startDate = '".$record['startDate']."', basedOn = '".$record['basedOn']."', endDate = '".$record['endDate'];
- $QUERY .= ", distance = '".$record['distance'].", reminderDate = '".$record['reminderDate']."', remarks = '".$record['remarks']."', engineHrs = '".$record['engineHrs']."', language = '".$record['language']."', engInputs = '".$record['engInputs'];
- $QUERY .= "', timezone = '".$record['timezone']."', mailStatus = $mailStatus";
- $this->dbclass->execute_query($QUERY);
- return $this->dbclass->get_result_complete();
- }
- public function saveTrackerWorkSchedule ($tid, $schedule) {
- $tid = $this->dbclass->get_escape_string($tid);
- $schedule = $this->dbclass->get_escape_string($schedule);
- $query = 'UPDATE trackersFeatures SET workSchedule = "'.$schedule.'" WHERE trackerid = "'.$tid.'"';
- return $this->dbclass->execute_query($query);
- }
- public function getTrackerWorkingSchedule ($trackeid) {
- $query = 'SELECT workSchedule FROM trackersFeatures WHERE trackerid = "'.$trackeid.'"';
- $this->dbclass->execute_query($query);
- $answer = $this->dbclass->get_result_complete();
- $result = json_decode($answer[0]['workSchedule'], true);
- return $result;
- }
- public function getNextRecord() {
- if ($this->oldARecord == false)
- $drow = $this->dbclass->get_result_row ();
- else
- $drow = $this->oldARecord;
- if ($drow == false) {
- if (isset ( $this->result1 ) && gettype ( $this->result1 ) == "resource") {
- mysql_free_result ( $this->result1 );
- unset ( $this->result1 );
- }
- if ($this->COMBINE_MODE == RECORD_EXISTS) {
- if (isset ( $this->result2 ) && gettype ( $this->result2 ) == "resource") {
- mysql_free_result ( $this->result2 );
- unset ( $this->result2 );
- }
- return false;
- }
- }
- if (isset ( $this->result2 ) && gettype ( $this->result2 ) == "resource") {
- while ( 1 ) {
- if ($this->oldMRecord == false) {
- $mrow = $this->dbclass_2->get_result_row ();
- } else {
- $mrow = $this->oldMRecord;
- }
- if ($mrow == false) {
- mysql_free_result ( $this->result2 );
- unset ( $this->result2 );
- $this->oldMRecord = false;
- break;
- }
- if ($drow == false) {
- $this->oldMRecord = false;
- $drow = $mrow;
- break;
- }
- if ($mrow ['TIMESTAMP'] > $drow ['TIMESTAMP']) {
- $this->oldMRecord = $mrow;
- $this->oldARecord = false;
- break;
- } else if ($drow ['TIMESTAMP'] == $mrow ['TIMESTAMP']) {
- $drow = array_merge ( $drow, $mrow );
- $this->oldARecord = false;
- break;
- } else {
- if ($this->COMBINE_MODE == RECORD_EXISTS) {
- $this->oldMRecord = false;
- continue;
- } else {
- $this->oldMRecord = false;
- $this->oldARecord = $drow;
- $drow = $mrow;
- break;
- }
- }
- }
- }
- return $drow;
- }
- public function queryForDistance($tid, $date, $time) { //Function similar to this is made in MongoDB with name queryForDistanceMongo($tid, $timestamp) in mysqlQueries.php
- $this->oldARecord = false;
- $this->oldMRecord = false;
- $QUERY = "SELECT *, UNIX_TIMESTAMP(CONCAT(date,' ', SEC_TO_TIME(time))) as TIMESTAMP from A{$tid} WHERE (date = \"$date\" AND time > $time) OR date > \"$date\" ORDER BY date, time";
- $this->result1 = $this->dbclass->execute_query ( $QUERY );
- $QUERY = "SELECT *, UNIX_TIMESTAMP(CONCAT(date,' ', SEC_TO_TIME(time))) as TIMESTAMP from M{$tid} WHERE (date = \"$date\" AND time > $time) OR date > \"$date\" ORDER BY date,time";
- $this->result2 = $this->dbclass_2->execute_query ( $QUERY );
- $this->COMBINE_MODE = RECORD_EXISTS;
- }
- public function queryForDistanceMongo($tid, $timestamp) {
- global $GMONGO;
- $GMONGO->getAMRecordCursor($tid, array('timestamp' => array('$gt' => $timestamp)));
- }
- public function getCompleteReminders() {
- $QUERY = "SELECT * FROM reminders";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getReminders($tid) {
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT * FROM reminders WHERE trackerid=\"$tid\" and username=\"$uname\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getExpiredReminders($tid) {
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT * FROM expiredReminders WHERE trackerid=\"$tid\" and username=\"$uname\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- //public function saveReminder() {
- public function saveReminder($trackerid) {
- $_POST['trackerid'] = $trackerid;
- $QUERY = "SELECT MAX(id) FROM reminders WHERE trackerid=\"{$_POST['trackerid']}\" and id=\"{$_POST['id']}\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans [0] ['MAX(id)'] != NULL) {
- if ($_POST ['id'] != $ans [0] ['MAX(id)'])
- return ERROR;
- $prefix = "UPDATE";
- $returnID = $_POST ['id'];
- $postfix = " WHERE trackerid=\"{$_POST['trackerid']}\" and id=\"{$_POST['id']}\"";
- $this->removeReminderCacheRec ( $_POST ['trackerid'] );
- } else {
- if ($_POST ['id'] != 0)
- return ERROR;
- $returnID = $_POST ['id'] = 0;
- $prefix = "INSERT INTO";
- $postfix = "";
- }
- $_POST ['username'] = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $_POST ['timezone'] = $this->dbclass->get_escape_string ( $_SESSION ['timezone'] );
- $_POST ['language'] = $_SESSION ['language'];
- $query = $prefix . " reminders SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $query .= $postfix;
- $result = $this->dbclass->execute_query ( $query );
- if (! $returnID)
- $returnID = $this->dbclass->dblink->insert_id;
- return $returnID;
- }
- public function removeReminder($tid, $id) {
- $query = "DELETE FROM reminders WHERE trackerid=\"{$tid}\" and id = \"{$id}\"";
- $result = $this->dbclass->execute_query ( $query );
- $this->removeReminderCacheRec ( $id );
- return SUCCESS;
- }
- public function removeUserTrackerReminders($uname, $tid) {
- $QUERY = "SELECT id FROM reminders WHERE trackerid=\"{$tid}\" and username=\"{$uname}\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false)
- return;
- foreach ( $ans as $v ) {
- $query = "DELETE FROM reminders WHERE id = \"{$v['id']}\"";
- $result = $this->dbclass->execute_query ( $query );
- $this->removeReminderCacheRec ( $v ['id'] );
- }
- return SUCCESS;
- }
- public function getADT($tagid) {
- $QUERY = "SELECT trackerid FROM driversMap WHERE tagID=\"$tagid\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function assignDriverTrackers() {
- $tagid = $this->dbclass->get_escape_string ( $_POST ['tagID'] );
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT * FROM drivers WHERE tagID=\"" . $_POST ['tagID'] . "\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- $dc = $ans [0];
- $query = "DELETE FROM driversMap WHERE tagID=\"$tagid\" AND username=\"$uname\"";
- $result = $this->dbclass->execute_query ( $query );
- $exceptions = array ();
- for($i = 0; $i < count ( $_POST ['trackers'] ); $i ++) {
- if ($dc ['type'] == "S") {
- $QUERY = "SELECT * FROM driversMap inner join drivers using (tagID) WHERE trackerid=\"" . $_POST ['trackers'] [$i] . "\" AND type='S'";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans != false) {
- array_push ( $exceptions, $_POST ['trackers'] [$i] );
- continue;
- }
- }
- $query = "INSERT INTO driversMap SET tagID=\"$tagid\", username=\"$uname\", trackerid=\"" . $_POST ['trackers'] [$i] . "\"";
- $result = $this->dbclass->execute_query ( $query );
- }
- return $exceptions;
- }
- public function saveDriverCard() {
- $_POST ['username'] = $_SESSION ['username'];
- $n1 = "";
- $n2 = "";
- if ($_POST ['type'] == "S" && $_POST ['tagID'] == '') {
- // Generate New TAG
- for($i = 0; $i < 13; $i ++) {
- $n1 .= chr ( rand ( 48, 57 ) );
- $n2 .= chr ( rand ( 65, 90 ) );
- }
- $_POST ['tagID'] = "ST_" . $n2 . $n1;
- }
- $query = "REPLACE INTO drivers SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- if ($_POST ['type'] == "E") {
- $tagid = $this->dbclass->get_escape_string ( $_POST ['tagID'] );
- $query = "DELETE * FROM driversMap WHERE tagID=\"" . $tagid . "\"";
- $result = $this->dbclass->execute_query ( $query );
- }
- if ($result != true) {
- //$this->writeDebugLog ( mysql_error ( $this->dbclass->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- return ERROR;
- }
- return $_POST ['tagID'];
- }
- public function expireDriverCard($tagID) {
- global $GMONGO;
- $tagid = $this->dbclass->get_escape_string ( $tagID );
- srand ();
- $newid = "";
- $n1 = "";
- $n2 = "";
- // Generate New TAG
- do {
- for($i = 0; $i < 13; $i ++) {
- $n1 .= chr ( rand ( 48, 57 ) );
- $n2 .= chr ( rand ( 65, 90 ) );
- }
- $rawnewid = "EXP_" . $n2 . $n1;
- $newid = $this->dbclass->get_escape_string ( $rawnewid );
- // Updates new tag
- $query = "UPDATE drivers SET tagID=\"$newid\" WHERE tagID=\"$tagid\"";
- $result = $this->dbclass->execute_query ( $query );
- } while ( $result != true );
- // Get Trackers List
- $query = "SELECT trackerid FROM trackersMap";
- $this->dbclass->execute_query ( $query );
- $trackers = $this->dbclass->get_result_complete ();
- if ($trackers == false)
- return $rawnewid;
- $tCount = count ( $trackers );
- // Update all old tags in E & M tables with new tagID
- for($i = 0; $i < $tCount; $i ++) {
- $updateCriteria = array('driverid' => $tagid);
- $updateQuery = array('$set' => array('$driverid' => $newid));
- $options = array('multiple' => true);
- $GMONGO -> updateCollectionM($trackers[$i]['trackerid'], $updateCriteria, $updateQuery, $options);
- /*$query = "UPDATE M{$trackers[$i]['trackerid']} SET driverid=\"$newid\" WHERE driverid=\"$tagid\"";
- $this->dbclass->execute_query ( $query );*/
- $GMONGO -> updateCollectionE($trackers[$i]['trackerid'], $updateCriteria, $updateQuery, $options);
- /*$query = "UPDATE E{$trackers[$i]['trackerid']} SET description=\"$newid\" WHERE description=\"$tagid\"";
- $this->dbclass->execute_query ( $query );*/
- }
- return $rawnewid;
- }
- public function removeUserDrivers($username) {
- // $username is already escaped
- $QUERY = "SELECT tagID FROM drivers username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- for($v = 0; $v < count ( $ans ); $v ++) {
- $this->removeDriverCard ( $ans [$v] ['tagID'] );
- }
- }
- public function removeDriverCard($tagID) {
- $tagid = $this->dbclass->get_escape_string ( $tagID );
- $query = "DELETE FROM drivers WHERE tagID=\"$tagid\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM driversMap WHERE tagID=\"$tagid\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- return ERROR;
- }
- return SUCCESS;
- }
- public function getDriverCard($driverID, $fields = "*", $useSession = true) {
- $driverID = $this->dbclass->get_escape_string ( $driverID );
- if ($useSession) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT $fields FROM drivers WHERE username=\"$username\" AND tagID=\"$driverID\"";
- }else{
- $QUERY = "SELECT $fields FROM drivers WHERE tagID=\"$driverID\"";
- }
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- return $ans [0];
- }
- public function getDriversList($fields = "*") {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT $fields FROM drivers WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getGeoContactsList($fencename, $fields_list = "*") {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $fencename = $this->dbclass->get_escape_string ( $fencename );
- $QUERY = "SELECT {$fields_list} FROM geoContacts WHERE username=\"$username\" and fencename=\"$fencename\" ORDER by contact";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function checkDriverID($id) {
- $id = $this->dbclass->get_escape_string ( $id );
- $QUERY = "SELECT COUNT(*) FROM drivers WHERE tagID=\"$id\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans [0] ['COUNT(*)'] > 0)
- return EXISTS;
- return SUCCESS;
- }
- public function resetGeofenceContacts($fence) {
- $fence = $this->dbclass->get_escape_string ( $fence );
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "DELETE FROM geoContacts where username=\"{$username}\" and fencename=\"{$fence}\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- return ERROR;
- }
- return SUCCESS;
- }
- public function removeGeofenceContact($fence, $contact) {
- $fence = $this->dbclass->get_escape_string ( $fence );
- $contact = $this->dbclass->get_escape_string ( $contact );
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "DELETE FROM geoContacts where username=\"{$username}\" and fencename=\"{$fence}\" and contact =\"{$contact}\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- return ERROR;
- }
- return SUCCESS;
- }
- public function updateGeofenceContact($fence, $contact, $email, $sms, $method, $timebased, $stime, $etime) {
- $fence = $this->dbclass->get_escape_string ( $fence );
- $contact = $this->dbclass->get_escape_string ( $contact );
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $timezone = $this->dbclass->get_escape_string ( $_SESSION ['timezone'] );
- $query = "UPDATE geoContacts SET email=\"{$email}\",sms=\"{$sms}\",method=\"{$method}\",timeBased=\"$timebased\", startTime=\"$stime\", endTime=\"$etime\", timezone=\"$timezone\" where username=\"{$username}\" and fencename=\"{$fence}\" and contact =\"{$contact}\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- return ERROR;
- }
- return SUCCESS;
- }
- public function addGeofenceContact($fence, $contact, $email, $sms, $method) {
- $fence = $this->dbclass->get_escape_string ( $fence );
- $contact = $this->dbclass->get_escape_string ( $contact );
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT COUNT(*) from geoContacts Where username=\"{$username}\" and fencename=\"{$fence}\" and contact=\"{$contact}\"";
- $result = $this->dbclass->execute_query ( $query );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans [0] ['COUNT(*)'] > 0)
- return EXISTS;
- $query = "INSERT into geoContacts SET email=\"{$email}\",sms=\"{$sms}\",method=\"{$method}\", username=\"{$username}\" , fencename=\"{$fence}\" , contact =\"{$contact}\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- return ERROR;
- }
- return SUCCESS;
- }
- public function getContactsList($fields_list = "*") {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT {$fields_list} FROM contacts WHERE username=\"$username\" ORDER BY name";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false)
- return ERROR;
- return $answer;
- }
- public function removeContactCard($id) {
- $query = "SELECT * FROM contacts where id=\"{$id}\"";
- $this->dbclass->execute_query ( $query );
- $ans = $this->dbclass->get_result_complete ();
- $contact = $this->dbclass->get_escape_string ( $ans [0] ['name'] );
- $username = $this->dbclass->get_escape_string ( $ans [0] ['username'] );
- $query = "DELETE FROM contacts WHERE id=\"$id\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM geoContacts where username=\"{$username}\" and contact=\"{$contact}\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- return ERROR;
- }
- return SUCCESS;
- }
- public function saveContactCard() {
- $_POST ['username'] = $_SESSION ['username'];
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "REPLACE INTO contacts SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- if ($result == FALSE) {
- //$this->writeDebugLog ( mysql_error ( $this->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- }
- //return mysql_insert_id ( $this->dblink );
- return $this->dbclass->dblink->insert_id;
- }
- public function getTLGroupWise($name) {
- $name = $this->dbclass->get_escape_string ( $name );
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT name,trackerid FROM trackers WHERE logicalGroup=\"$name\" AND username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function addGroup($name, $desc) {
- $name = $this->dbclass->get_escape_string ( $name );
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT COUNT(*) FROM logicalGroups WHERE username=\"$username\" AND name=\"$name\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans [0] ['COUNT(*)'] > 0)
- return "exists";
- $query = "INSERT INTO logicalGroups SET username=\"$username\", name=\"$name\", description=\"$desc\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- //return $query . mysql_error ( $this->dbclass->dblink );
- return $query . $this->dbclass->dblink->error;
- }
- return SUCCESS;
- }
- public function removeGroup($name) {
- $name = $this->dbclass->get_escape_string ( $name );
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "UPDATE trackers SET logicalGroup=\"DEFAULT\" WHERE username=\"$username\" AND logicalGroup=\"$name\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM logicalGroups WHERE username=\"$username\" AND name=\"$name\"";
- $result = $this->dbclass->execute_query ( $query );
- return SUCCESS;
- }
- public function moveTracker($gname, $tid) {
- $gname = $this->dbclass->get_escape_string ( $gname );
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "UPDATE trackers SET logicalGroup=\"$gname\" WHERE username=\"$username\" AND trackerid=\"$tid\"";
- $result = $this->dbclass->execute_query ( $query );
- return SUCCESS;
- }
- public function isDriverIDEnabled($tid) {
- $QUERY = "SELECT driverID FROM trackersFeatures WHERE trackerid=\"$tid\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans [0] ['driverID'] == 1)
- return true;
- return false;
- }
- public function verifyDriverTag($driver, $tid) {
- if ($driver ['map'] == "E") {
- $username = $this->dbclass->get_escape_string ( $driver ['username'] );
- $QUERY = "SELECT trackerid FROM trackersMap WHERE username=\"" . $username . "\" AND trackerid = \"$tid\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false)
- return false;
- return true;
- } else {
- $QUERY = "SELECT trackerid FROM driversMap WHERE tagID = \"" . $driver ['tagID'] . "\" AND trackerid =\"$tid\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false)
- return false;
- return true;
- }
- return false;
- }
- public function getDriverTagForTimestamp($tid, $ts){
- global $LANGUAGE;
- global $GMONGO;
- // Check if Driver Identification is turned ON on this unit or not
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $obj = new emptyClass ();
- if ($this->isDriverIDEnabled ( $tid ) == false) {
- $QUERY = "SELECT name,tagID FROM driversMap INNER JOIN drivers USING(tagID) WHERE trackerid =\"$tid\" AND type='S'";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans != false && $ans [0] ['name'] != NULL && $ans [0] ['name'] != '') {
- $obj->rvalue = DRIVERID_SUCCESS;
- $obj->name = $ans [0] ['name'];
- $obj->tagID = $ans [0] ['tagID'];
- return $obj;
- }
- $obj->rvalue = DRIVERID_NOT_ENABLED;
- return $obj;
- }
- $ans = $GMONGO->getAMRecord($tid, array('driverID' => array('$exists' => 1, '$ne' => 0, '$ne' => '', '$ne' => null), 'timestamp' => array('$lte', $ts)), 1);
- $tag = 0;
- if ($ans != false) {
- if ($ans [0] ['driverID'] != NULL && $ans [0] ['driverID'] != '') {
- $tag = $ans [0] ['driverID'];
- }
- }
- if ($tag == 0) {
- $ans = $GMONGO->getERecords_reverseSorted($tid, array('event' => EVENT_RFID_SWEEP, 'timestamp' => array('$lte', $ts)), 1);
- if ($ans == false) {
- $obj->rvalue = DRIVERID_NOEVENT;
- return $obj;
- }
- $tag = $this->dbclass->get_escape_string ( $ans [0] ['description'] );
- }
- $QUERY = "SELECT * FROM drivers WHERE tagID=\"$tag\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false) {
- $obj->rvalue = DRIVERID_NOT_FOUND;
- return $obj;
- }
- $auth = $this->verifyDriverTag ( $ans [0], $tid );
- $obj->rvalue = DRIVERID_SUCCESS;
- $obj->name = $ans [0] ['name'] . " (" . $ans [0] ['mobile'] . ")";
- if ($auth == false)
- $obj->name . " " . $LANGUAGE ['UNAUTHORIZED'];
- $obj->tagid = $ans [0] ['tagID'];
- return $obj;
- }
- public function getDriverName($tid) {
- global $LANGUAGE;
- global $GMONGO;
- // Check if Driver Identification is turned ON on this unit or not
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $obj = new emptyClass ();
- if ($this->isDriverIDEnabled ( $tid ) == false) {
- $QUERY = "SELECT name,tagID FROM driversMap INNER JOIN drivers USING(tagID) WHERE trackerid =\"$tid\" AND type='S'";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans != false && $ans [0] ['name'] != NULL && $ans [0] ['name'] != '') {
- $obj->rvalue = DRIVERID_SUCCESS;
- $obj->name = $ans [0] ['name'];
- $obj->tagID = $ans [0] ['tagID'];
- return $obj;
- }
- $obj->rvalue = DRIVERID_NOT_ENABLED;
- return $obj;
- }
- // $ans = $GMONGO->getAMRecord_reverseSorted($tid, array('driverID' => array('$exists' => 1,'$ne' => 0,'$ne' => '', '$ne' => null)), 1);
- $ans = $GMONGO->getAMRecord_reverseSorted($tid, array('driverID' => array('$exists' => 1),'driverID' => array('$ne' => 0),'driverID' => array('$ne' => ''),'driverID' => array('$ne' => null), 'driverID' => array('$ne' => "0")), 1);
- $tag = 0;
- if ($ans != false) {
- if ($ans [0] ['driverID'] != NULL && $ans [0] ['driverID'] != '') {
- $tag = $ans [0] ['driverID'];
- }
- }
- if ($tag == 0) {
- $ans = $GMONGO->getERecords_reverseSorted($tid, array('event' => EVENT_RFID_SWEEP), 1);
- if ($ans == false) {
- $obj->rvalue = DRIVERID_NOEVENT;
- return $obj;
- }
- $tag = $this->dbclass->get_escape_string ( $ans [0] ['description'] );
- }
- $QUERY = "SELECT * FROM drivers WHERE tagID=\"$tag\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false) {
- $obj->rvalue = DRIVERID_NOT_FOUND;
- return $obj;
- }
- $auth = $this->verifyDriverTag ( $ans [0], $tid );
- $obj->rvalue = DRIVERID_SUCCESS;
- $obj->name = $ans [0] ['name'] . " (" . $ans [0] ['mobile'] . ")";
- if ($auth == false)
- $obj->name . " " . $LANGUAGE ['UNAUTHORIZED'];
- $obj->tagid = $ans [0] ['tagID'];
- return $obj;
- }
- public function isIgnitionEnabled($tid) {
- $QUERY = "SELECT ignitionSensor FROM trackersFeatures WHERE trackerid=\"$tid\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans [0] ['ignitionSensor'] != 1) {
- return false;
- }
- return true;
- }
- public function getFeatures($tid) {
- $QUERY = "SELECT * FROM trackersFeatures INNER JOIN trackersExInfo USING(trackerid) WHERE trackerid=\"$tid\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- return $ans [0];
- }
- public function getTrackerDuration_withIgnition($tid, $status) {
- global $GMONGO;
- /*$fdate = new FNSDateTime($_SESSION['timezone']);
- $fdate->setUTCDate("1970-01-01", 0);
- $sinceBeginning = array(array('timestamp' => $fdate->dateTime->getTimestamp()));*/
- $sinceBeginning = array(array('timestamp' => 0));
- switch ($status) {
- case "s" :
- $lastIgnition = $GMONGO->getAMLastIgnition($tid);
- if ($lastIgnition == false)
- $lastIgnition = $sinceBeginning;
- //$ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $lastIgnition[0]['timestamp'])),1);
- $ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $lastIgnition[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- break;
- case "i" : //Have changed this
- //$ans = $GMONGO->getAMRecord_reverseSorted($tid, array('speed' => array('$gt' => 0)),1);
- $result = $GMONGO->getAMRecord_reverseSorted($tid, array('speed' => array('$gt' => 0)),1);
- //$ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $result[0]['timestamp'])),1);
- $ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $result[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- break;
- case "n" :
- case "g" :
- $ans = $GMONGO->getAMRecord_reverseSorted($tid, array('latitude' => array('$exists' => 1, '$ne' => null)),1);
- if ($ans == false)
- return false;
- break;
- case "m" :
- $ans = $GMONGO->getAMLastStopped($tid);
- if ($ans == false) {
- $ans = $sinceBeginning;
- }
- //$ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $ans[0]['timestamp'])),1);
- $ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $ans[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- break;
- default :
- return false;
- }
- $obj = new emptyClass ();
- $obj->date = $ans [0] ['date'];
- $obj->time = $ans [0] ['time'];
- $obj->timestamp = $ans [0] ['timestamp'];
- return $obj;
- }
- public function getTrackerDuration_withoutIgnition($tid, $status) {
- global $GMONGO;
- /*$fdate = new FNSDateTime($_SESSION['timezone']);
- $fdate->setUTCDate("1970-01-01", 0);
- $sinceBeginning = array(array('timestamp' => $fdate->dateTime->getTimestamp()));*/
- $sinceBeginning = array(array('timestamp' => 0));
- switch ($status) {
- case "s" :
- //$ans = $GMONGO->getAMRecord_reverseSorted($tid, array('speed' => array('$gt' => 0)),1);
- $ans = $GMONGO->getAMRecord_reverseSorted($tid, array('speed' => array('$gt' => 0), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- if ($ans == false)
- $ans = $sinceBeginning;
- //$ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $ans[0]['timestamp'])),1);
- $ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $ans[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- break;
- case "n" :
- case "g" :
- $ans = $GMONGO->getAMRecord_reverseSorted($tid, array('latitude' => array('$exists' => 1, '$ne' => null)),1);
- if ($ans == false)
- return false;
- break;
- case "m" :
- //$ans = $GMONGO->getAMRecord_reverseSorted($tid, array('speed' => 0),1);
- $ans = $GMONGO->getAMRecord_reverseSorted($tid, array('speed' => 0, 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- if ($ans == false)
- $ans = $sinceBeginning;
- //$ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $ans[0]['timestamp'])),1);
- $ans = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $ans[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- break;
- default :
- return false;
- }
- $obj = new emptyClass ();
- $obj->date = $ans [0] ['date'];
- $obj->time = $ans [0] ['time'];
- $obj->timestamp = $ans [0] ['timestamp'];
- return $obj;
- }
- // Returns duration for the tracker in stopped or nodata mode
- public function getTrackerDuration($tid, $status) {
- if ($this->isIgnitionEnabled ( $tid ))
- return $this->getTrackerDuration_withIgnition ( $tid, $status );
- return $this->getTrackerDuration_withoutIgnition ( $tid, $status );
- }
- private function getCurrentTrip_withoutIgnition($tid, $status) {
- global $GMONGO;
- // If status is not moving then fetch last packet with GPS location and send
- if ($status == 'n' || $status == 'g') {
- //return $GMONGO->getLastAMRecord($tid);
- return $GMONGO->getLastARecord($tid);
- }
- if ($status == 's') {
- // Get last Ignition on packet
- //return $GMONGO->getAMRecord_reverseSorted($tid, array('speed' => 0),1);
- //$start = time();
- $queryCriteria = array('speed' => array('$gt' => 0), 'latitude' => array('$exists' => 1, '$ne' => null)); //Logic is different from V4, changed in V5
- $lastIgnition = $GMONGO->getAMRecord_reverseSorted($tid, $queryCriteria, 1);
- //$end = time() - $start;
- //$this->writeDebugLog("\r\nStop without ignition time TRACKERID $end seconds");
- if ($lastIgnition == false || count ( $lastIgnition ) == 0) // NO ignition packet
- $answer = $GMONGO->getLastARecord($tid);
- else {
- //$answer = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $lastIgnition[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)),1);
- $answer = $GMONGO->getLastARecord($tid);
- }
- //return $lastIgnition;
- return $answer;
- }
- if ($status == 'm') {
- // Get last Ignition on packet
- //$lastIgnition = $GMONGO->getAMRecord_reverseSorted($tid, array('speed' => 0),1);
- $queryCriteria = array('speed' => 0, 'latitude' => array('$exists' => 1, '$ne' => null));
- $lastIgnition = $GMONGO->getAMRecord_reverseSorted($tid, $queryCriteria,1);
- if ($lastIgnition == false) {
- $lastIgnition = array ();
- $lastIgnition[0] = array();
- $lastIgnition [0]['timestamp'] = 0;
- }
- return $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $lastIgnition[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)));
- //return $GMONGO->getAMRecord($tid, array('timestamp' => array('$gte' => $lastIgnition[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)));
- }
- return false;
- }
- private function getCurrentTrip_withIgnition($tid, $status) {
- global $GMONGO;
- // If status is not moving then fetch last packet and send
- if ($status == 'n' || $status == 'g') {
- $answer = $GMONGO->getLastAMRecord($tid);
- if ($answer != false) {
- if (strpos ( $answer [0] ['IO'], "j" ) === false) {
- $status = "s";
- } else {
- $status = "m";
- }
- } else
- return false;
- }
- if ($status == 's') {
- // Get last Ignition on packet
- //$start = time();
- $lastIgnition = $GMONGO->getAMLastIgnition($tid);
- //$ignTime = time() - $start;
- //$this->writeDebugLog("\r\nIgnition TRACKERID $tid $ignTime seconds");
- if ($lastIgnition == false || count ( $lastIgnition ) == 0) {
- $answer = $GMONGO->getLastARecord($tid);
- } // NO ignition packet
- else {
- //$answer = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $lastIgnition[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)),1); //in use
- //$answer = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $lastIgnition[0]['timestamp'])),1);
- $answer = $GMONGO->getLastARecord($tid);
- }
- return $answer;
- }
- if ($status == 'i' || $status == 'm') {
- // Get last Ignition on packet
- //$start = time();
- $lastIgnition = $GMONGO->getAMLastStopped($tid);
- //$end = time() - $start;
- //$this->writeDebugLog("\r\nLast stopped time TRACKERID $tid $end seconds");
- if ($lastIgnition == false ) {
- $lastIgnition = array ();
- $lastIgnition[0] = array();
- $lastIgnition [0]['timestamp'] = 0;
- }
- /*$answer = $GMONGO->getAMRecord($tid, array('timestamp' => array('$gte' => $lastIgnition[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)));
- if ($answer == false)
- $answer = $GMONGO->getLastARecord($tid);*/
- //return $GMONGO->getAMRecord($tid, array('timestamp' => array('$gte' => $lastIgnition[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)));
- return $GMONGO->getAMRecord($tid, array('timestamp' => array('$gt' => $lastIgnition[0]['timestamp']), 'latitude' => array('$exists' => 1, '$ne' => null)));
- }
- return false;
- }
- public function getCurrentTrip($tid, $status, $checkAccess = false) {
- if ($this->isIgnitionEnabled ( $tid ))
- return $this->getCurrentTrip_withIgnition ( $tid, $status );
- return $this->getCurrentTrip_withoutIgnition ( $tid, $status );
- }
- public function getLiveDetails($tid, $lat, $lng, $status, $geocode = true) {
- // Fetch Driver if status is moving or idling
- $reply = new emptyClass ();
- $reply->driver = $this->getDriverName ( $tid );
- $reply->duration = $this->getTrackerDuration ( $tid, $status );
- if ($geocode == true) {
- $geo = new GEOCODER ();
- $reply->location = $geo->search ( $lat, $lng, true );
- }
- return $reply;
- }
- public function addPOI() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "INSERT INTO POI SET username=\"$username\",";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- $no = new emptyClass ();
- if ($result != true) {
- //$this->writeDebugLog ( mysql_error ( $this->dbclass->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- $no->result = ERROR;
- $no->id = - 1;
- return $no;
- }
- $no->result = SUCCESS;
- //$no->id = mysql_insert_id ( $this->dbclass->dblink );
- $no->id = $this->dbclass->dblink->insert_id;
- return $no;
- }
- public function addPOI2User($poi, $users) {
- $poiCount = count ( $poi );
- $execute = true;
- $index = 0;
- $ucount = count ( $users );
- while ( $execute ) {
- $v = $poiCount - 50;
- if ($v < 0) {
- $v = $poiCount;
- $execute = false;
- } else {
- $v = 50;
- $poiCount -= 50;
- }
- $id = "";
- for($x = 0; $x < $v; $x ++, $index ++) {
- if ($x != 0)
- $id .= " OR ";
- $id .= "id = " . $poi [$index];
- }
- for($x = 0; $x < $ucount; $x ++) {
- $username = $this->dbclass->get_escape_string ( $users [$x] );
- $query = "INSERT INTO POI (username, latitude, longitude, color, radius, shortName, description, icontype, metric, keywords) SELECT \"{$username}\" as username, latitude, longitude, color, radius, shortName, description, icontype, metric, keywords FROM POI WHERE " . $id;
- $result = $this->dbclass->execute_query ( $query );
- }
- }
- return SUCCESS;
- }
- public function addPOI_processor($fields, $fcount) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $id = 0;
- $fieldsTxt = '"' . $username . '"';
- for($v = 0; $v < $fcount; $v ++) {
- $fieldsTxt .= ',"' . $this->dbclass->get_escape_string ( $fields [$v] ) . '"';
- }
- $query = "INSERT INTO POI (username,latitude,longitude,color,radius,shortName,description, icontype,metric,keywords) VALUES({$fieldsTxt})";
- $result = $this->dbclass->execute_query ( $query );
- if ($result == false)
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- }
- public function updatePOI() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $id = $_POST ['id'];
- unset ( $_POST ['id'] );
- $query = "UPDATE POI SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $query .= " WHERE username=\"$username\" AND id=\"$id\"";
- $result = $this->dbclass->execute_query ( $query );
- $no = new emptyClass ();
- if ($result != true) {
- //$this->writeDebugLog ( mysql_error ( $this->dbclass->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- $no->result = ERROR;
- $no->id = - 1;
- return $no;
- }
- $no->result = SUCCESS;
- $no->id = $id;
- return $no;
- }
- public function deletePOI($id) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "DELETE FROM POI WHERE id=\"$id\" and username=\"$username\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- //$this->writeDebugLog ( mysql_error ( $this->dbclass->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- return ERROR;
- }
- return SUCCESS;
- }
- public function verifyStudentTag($tag) {
- $QUERY = "SELECT COUNT(*) FROM students WHERE tag =\"$tag\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans [0] ['COUNT(*)'] > 0)
- return ERROR;
- return SUCCESS;
- }
- public function getStudentInfo($tag) {
- $QUERY = "SELECT *,students.name as sname FROM students inner join schools on (students.school = schools.id) WHERE students.tag='$tag'";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- return $ans;
- }
- public function getSchoolsList($fields = "*") {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT $fields FROM schools WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false)
- return ERROR;
- return $ans;
- }
- public function saveSchool() {
- $query = "REPLACE INTO schools SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- if ($result == false)
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- //return mysql_insert_id ( $this->dblink );
- return $this->dbclass->dblink->insert_id;
- }
- public function removeSchool($id) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "DELETE FROM schools WHERE id=\"{$id}\" AND username = \"$username\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "SELECT id FROM students WHERE school=\"{$id}\" AND username=\"$username\"";
- $result = $this->dbclass->execute_query ( $query );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false)
- return;
- $c = count ( $ans );
- for($i = 0; $i < $c; $i ++) {
- $this->removeStudent ( $ans [$i] ['id'] );
- }
- }
- public function getStudentsList() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT * FROM students WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false)
- return ERROR;
- return $ans;
- }
- public function saveStudent() {
- $query = "REPLACE INTO students SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- if ($result == false)
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- //return mysql_insert_id ( $this->dblink );
- return $this->dbclass->dblink->insert_id;
- }
- public function removeUserStudents($uname) {
- // uname is already escaped
- $QUERY = "SELECT * FROM students WHERE username=\"$uname\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- for($i = 0; $i < count ( $ans ); $i ++) {
- $query = "DELETE FROM students WHERE id=\"{$ans[$i]['id']}\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM studentsCache WHERE id=\"{$ans[$i]['id']}\"";
- $result = $this->dbclass->execute_query ( $query );
- }
- }
- public function removeStudent($id) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "DELETE FROM students WHERE id=\"{$id}\" AND username=\"$username\"";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM studentsCache WHERE id=\"{$id}\"";
- $result = $this->dbclass->execute_query ( $query );
- }
- public function getPOIList($username) {
- $username = $this->dbclass->get_escape_string ( $username );
- $QUERY = "SELECT id, latitude,longitude,radius,color,shortName,description,icontype, metric, keywords FROM POI WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false)
- return ERROR;
- return $ans;
- }
- function getHardwareType($tid) {
- $query = "SELECT type FROM trackers WHERE trackerid = \"{$tid}\"";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- } // function
- public function getHardwareInfo($tid) {
- $QUERY = "SELECT * FROM trackers as A2 LEFT JOIN (select ip,port,vehicleid as trackerid, protocol from napt) as A1 using(trackerid) where trackerid=\"$tid\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function outputEvent($tid, $ecode) {
- global $GMONGO;
- $tdate = gmdate ( "Y-m-d", time () );
- $ttime = gmdate ( "H-i-s", time () );
- $attime = explode ( "-", $ttime );
- $tsec = ($attime [0] * 60 * 60) + ($attime [1] * 60) + ($attime [2]);
- /*$query = "INSERT INTO E{$tid} SET date=\"{$tdate}\", time = {$tsec},latitude =0, longitude=0, speed=0, direction=0,event={$ecode}";
- $result = $this->dbclass->execute_query ( $query );*/
- $records = array();
- $records['date'] = $tdate;
- $records['time'] = $tsec;
- $records['latitude'] = 0;
- $records['longitude'] = 0;
- $records['speed'] = 0;
- $records['direction'] = 0;
- $records['event'] = $ecode;
- $records['description'] = '';
- $result = $GMONGO->insertRecordIntoE($tid, $records);
- /*if ($result != true) {
- return mysql_error ( $this->dbclass->dblink );
- }*/
- return SUCCESS;
- }
- public function saveTripName() {
- $query = "SELECT COUNT(*) FROM trips WHERE sDate=\"{$_POST['sdate']}\" AND eDate=\"{$_POST['edate']}\" AND sTime=\"{$_POST['stime']}\" AND eTime=\"{$_POST['etime']}\" AND trackerid=\"{$_POST['tid']}\"";
- $result = $this->dbclass->execute_query ( $query );
- $ans = $this->dbclass->get_result_complete ();
- $name = $this->dbclass->get_escape_string ( $_POST ['name'] );
- if ($ans [0] ['COUNT(*)'] > 0)
- $query = "UPDATE trips SET name=\"{$name}\" WHERE sDate=\"{$_POST['sdate']}\" AND eDate=\"{$_POST['edate']}\" AND sTime=\"{$_POST['stime']}\" AND eTime=\"{$_POST['etime']}\" AND trackerid=\"{$_POST['tid']}\"";
- else
- $query = "INSERT INTO trips SET sDate=\"{$_POST['sdate']}\",eDate=\"{$_POST['edate']}\",sTime=\"{$_POST['stime']}\",eTime=\"{$_POST['etime']}\",trackerid=\"{$_POST['tid']}\",name=\"{$name}\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- //$this->writeDebugLog ( mysql_error ( $this->dbclass->dblink ) );
- $this->writeDebugLog ( $this->dbclass->dblink->error );
- return ERROR;
- }
- return SUCCESS;
- }
- public function remOdometerTune($id) {
- $QUERY = "DELETE FROM odoTuning WHERE id='$id'";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function getOdotuneList($tid) {
- $QUERY = "SELECT * FROM odoTuning WHERE trackerid='$tid' ORDER BY date,time";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans != false) {
- foreach ( $ans as $k => $v ) {
- $odo = $this->getOdometer ( $tid, $v ['date'], $v ['time'], ODOMETER_NOADJUST );
- $ans [$k] ['odo'] = $v ['odo'] + $odo;
- }
- }
- return $ans;
- }
- public function addOdometerTune($tid, $date, $time, $value) {
- $fdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $fdate->setDate ( $date, $time );
- $date = $fdate->UTCDateString;
- $time = $fdate->UTCTime;
- $odo = $this->getOdometer ( $tid, $date, $time, ODOMETER_NOADJUST );
- $value = $value - $odo;
- $QUERY = "INSERT INTO odoTuning SET date='$date',time='$time', trackerid='$tid', odo='$value' ";
- $this->dbclass->execute_query ( $QUERY );
- $r = new emptyClass ();
- //$r->id = mysql_insert_id ( $this->dblink );
- $r->id = $this->dbclass->dblink->insert_id;
- $r->dateString = $fdate->getFormattedString ();
- $r->odo = $odo + $value;
- $r->tid = $tid;
- print json_encode ( $r );
- }
- public function getHardwareCode($type) {
- $QUERY = "SELECT * FROM trackerHW WHERE fscode=\"$type\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- return $ans [0] ['hwcode'];
- }
- public function getOdometerSum($tid, $fromDate, $fromTime, $date, $time) {
- $periodClause = basicTransactions::getPeriodClause_excludeStartTime ( $fromDate, $fromTime, $date, $time );
- $QUERY = "SELECT SUM(odometer) FROM M{$tid} WHERE ($periodClause)";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- return $ans [0] ['SUM(odometer)'];
- }
- public function getOdometer($tid, $date, $time, $mode = ODOMETER_NONE) {
- global $GMONGO;
- $features = $this->getTrackerInformation ( $tid );
- $features = $features [0];
- $fdate = new FNSDateTime($_SESSION['timezone']);
- $QUERY = "SELECT * FROM trackerHW WHERE fscode=\"{$features['type']}\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- $TELTONIKA = false;
- if ($ans [0] ['hwcode'] == 'TELT')
- $TELTONIKA = true;
- if (isset ( $features ['odometerSensor'] ) && $features ['odometerSensor'] == 1) {
- // Check for value in the odometer cache
- $QUERY = "SELECT * FROM odoTuning WHERE (trackerid='$tid' AND ((date < '$date') or (date = '$date' AND time <= $time))) ORDER BY date desc, time desc LIMIT 0,1";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false) {
- if (isset ( $features ['odometerValue'] ) == false || $features ['odometerValue'] == null)
- $ov = 0;
- else
- $ov = $features ['odometerValue'];
- } else {
- $ov = $ans [0] ['odo'];
- }
- if ($TELTONIKA == true) {
- $QUERY = "SELECT * FROM odoCache WHERE (trackerid='$tid' AND ((date < '$date') or (date = '$date' AND time <= $time))) ORDER BY date desc, time desc LIMIT 0,1";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- //var_dump($ans);
- $cacheValue = 0;
- $fromdate = "1970-01-01";
- $fromtime = 0;
- if ($ans != false) {
- $fromdate = $ans [0] ['date'];
- $fromtime = $ans [0] ['time'];
- $cacheValue = $ans [0] ['odo'];
- }
- $fdate->setUTCDate($fromdate, $fromtime);
- $fromts = $fdate->dateTime->getTimestamp();
- $fdate->setUTCDate($date, $time);
- $tots = $fdate->dateTime->getTimestamp();
- $odo = $GMONGO->getOdometerSum($tid, $fromts, $tots);
- //$odo = $GMONGO->getOdometerSum($tid, $fdate->dateTime->getTimestamp(), time());
- $cOdo = $cacheValue + $odo['result'][0]['odometer'];
- //var_dump($odo);
- //die;
- switch ($mode) {
- case ODOMETER_NONE :
- break;
- case ODOMETER_NOADJUST :
- $ov = 0;
- break;
- }
- } else {
- $fdate->setUTCDate($date, $time);
- $ts = $fdate->dateTime->getTimestamp();
- switch ($mode) {
- case ODOMETER_NONE :
- $inputs = $GMONGO->getAMRecord($tid, array('timestamp' => $ts), 1);
- break;
- case ODOMETER_NOADJUST :
- $inputs = $GMONGO->getAMRecord_reverseSorted($tid, array('timestamp' => array('$lte' => $ts)), 1);
- $ov = 0;
- break;
- }
- $cOdo = $inputs [0] ['odometer'];
- }
- $cOdo += $ov;
- } else
- $cOdo = false;
- return $cOdo;
- }
- /*public function getOdometerHistory($tid, $date, $time, $mode = ODOMETER_NONE) {
- global $GMONGO;
- $features = $this->getTrackerInformation ( $tid );
- $features = $features [0];
- $fdate = new FNSDateTime($_SESSION['timezone']);
- $QUERY = "SELECT * FROM trackerHW WHERE fscode=\"{$features['type']}\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- $TELTONIKA = false;
- if ($ans [0] ['hwcode'] == 'TELT')
- $TELTONIKA = true;
- if (isset ( $features ['odometerSensor'] ) && $features ['odometerSensor'] == 1) {
- // Check for value in the odometer cache
- $QUERY = "SELECT * FROM odoTuning WHERE (trackerid='$tid' AND ((date < '$date') or (date = '$date' AND time <= $time))) ORDER BY date desc, time desc LIMIT 0,1";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false) {
- if (isset ( $features ['odometerValue'] ) == false || $features ['odometerValue'] == null)
- $ov = 0;
- else
- $ov = $features ['odometerValue'];
- } else {
- $ov = $ans [0] ['odo'];
- }
- if ($TELTONIKA == true) {
- $QUERY = "SELECT * FROM odoCache WHERE (trackerid='$tid' AND ((date < '$date') or (date = '$date' AND time <= $time))) ORDER BY date desc, time desc LIMIT 0,1";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- $cacheValue = 0;
- $fromdate = "1970-01-01";
- $fromtime = 0;
- if ($ans != false) {
- $fromdate = $ans [0] ['date'];
- $fromtime = $ans [0] ['time'];
- $cacheValue = $ans [0] ['odo'];
- }
- $fdate->setUTCDate($fromdate, $fromtime);
- $fromts = $fdate->dateTime->getTimestamp();
- $fdate->setUTCDate($date, $time);
- $tots = $fdate->dateTime->getTimestamp();
- //$odo = $GMONGO->getOdometerSum($tid, $fdate->dateTime->getTimestamp(), time());
- $odo = $GMONGO->getOdometerSum($tid, $fromts, $tots);
- $cOdo = $cacheValue + $odo['result'][0]['odometer'];
- //var_dump($cOdo);
- //die;
- switch ($mode) {
- case ODOMETER_NONE :
- break;
- case ODOMETER_NOADJUST :
- $ov = 0;
- break;
- }
- } else {
- $fdate->setUTCDate($date, $time);
- $ts = $fdate->dateTime->getTimestamp();
- switch ($mode) {
- case ODOMETER_NONE :
- $inputs = $GMONGO->getAMRecord($tid, array('timestamp' => $ts), 1);
- break;
- case ODOMETER_NOADJUST :
- $inputs = $GMONGO->getAMRecord_reverseSorted($tid, array('timestamp' => array('$lte' => $ts)), 1);
- $ov = 0;
- break;
- }
- $cOdo = $inputs [0] ['odometer'];
- }
- $cOdo += $ov;
- } else
- $cOdo = false;
- return $cOdo;
- }*/
- public function getHistoryDriverName($tid, $date, $time) {
- // Driver name
- global $LANGUAGE;
- global $GMONGO;
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- if ($this->isDriverIDEnabled ( $tid ) == false) {
- $QUERY = "SELECT name,tagID FROM driversMap INNER JOIN drivers USING(tagID) WHERE trackerid =\"$tid\" AND type='S'";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans != false && $ans [0] ['name'] != NULL && $ans [0] ['name'] != '') {
- return $ans [0] ['name'];
- }
- }
- $tag = 0;
- $fdate = new FNSDateTime('UTC');
- $fdate->setDate($date, $time);
- $timestamp = $fdate->dateTime->getTimestamp();
- $queryCriteria = array('timestamp' => $timestamp);
- $field = array('driverID' => true);
- $ans = $GMONGO->getAMRecordLimitedField($tid, $queryCriteria, $field);
- /*$QUERY = "SELECT driverID from M{$tid} WHERE (date =\"" . $date . "\" AND time =\"" . $time . "\")";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();*/
- if ($ans != false && $ans [0] ['driverID'] != NULL && $ans [0] ['driverID'] != '') {
- $tag = $ans [0] ['driverID'];
- } else {
- $fdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $fdate->setDate ( $fdate->UTCDateString, 0 );
- $dayts = $fdate->dateTime->getTimestamp();
- $ans = $GMONGO->getERecords_reverseSorted($tid, array('event' => EVENT_RFID_SWEEP, '$or' => array(array('timestamp' => array('$lte' => $timestamp)), array('date' => $fdate->UTCDateString) ) ));
- /*$QUERY = "SELECT * from E{$tid} WHERE event=\"" . EVENT_RFID_SWEEP . "\" AND ((date =\"" . $date . "\" AND time <=\"" . $time . "\") OR (date = \"" . $fdate->UTCDateString . "\")) ORDER BY date desc, time desc LIMIT 0,1";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();*/
- if ($ans != false) {
- $tag = $ans [0] ['description'];
- } else
- return false;
- }
- $QUERY = "SELECT * FROM drivers WHERE tagID=\"{$tag}\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans != false) {
- return $ans [0] ['name'] . " " . ($this->verifyDriverTag ( $ans [0], $tid ) ? '' : $LANGUAGE ['UNAUTHORIZED']);
- }
- return false;
- }
- public function getExtendedTrackerInformation($tid) {
- $info = array ();
- $features = $this->getTrackerInformation ( $tid );
- $info ['features'] = $features [0];
- $QUERY = "SELECT * FROM trackerHW WHERE fscode=\"{$features[0]['type']}\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- $info ['hardware'] = $ans [0];
- return $info;
- }
- public function getOdometerTuning_periodWise($tid, $sDate, $sTime, $eDate, $eTime) {
- $periodClause = basicTransactions::getPeriodClause ( $sDate, $sTime, $eDate, $eTime );
- $QUERY = "SELECT date,time,odo FROM odoTuning WHERE (trackerid='$tid' AND ((date < '$sDate') or (date = '$sDate' AND time <= $sTime))) ORDER BY date desc, time desc LIMIT 0,1";
- $this->dbclass->execute_query ( $QUERY );
- $previousTune = $this->dbclass->get_result_complete ();
- $QUERY = "SELECT date,time,odo FROM odoTuning WHERE (trackerid='$tid' AND ($periodClause)) ORDER BY date, time";
- $this->dbclass->execute_query ( $QUERY );
- $tuneValues = $this->dbclass->get_result_complete ();
- if ($previousTune != false) {
- if ($tuneValues == false)
- $tuneValues = $previousTune;
- else
- $tuneValues = array_merge ( $previousTune, $tuneValues );
- }
- $fdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $tuneTimes = array ();
- if ($tuneValues != false) {
- foreach ( $tuneValues as $k => $v ) {
- $fdate->setUTCDate ( $v ['date'], $v ['time'] );
- $n = new emptyClass ();
- $n->ts = $fdate->dateTime->getTimestamp ();
- $n->odo = $v ['odo'];
- array_push ( $tuneTimes, $n );
- }
- }
- return $tuneTimes;
- }
- public function getTrips($tid, $sDate, $sTime, $eDate, $eTime) {
- require_once FLEET_FOLDER . '/tripsLogic.php';
- global $GMONGO;
- $info = $this->getExtendedTrackerInformation ( $tid );
- $features = &$info ['features'];
- $hardware = &$info ['hardware'];
- $features = $this->getFeatures ( $tid );
- if ($features ['ignitionSensor'] != 1) {
- $tripWise = false;
- } else {
- $tripWise = true;
- }
- //$periodClause = basicTransactions::getPeriodClause ( $sDate, $sTime, $eDate, $eTime );
- $periodClauseMongo = array();
- $periodClauseMongo = basicTransactions::getPeriodClauseMongo ( $sDate, $sTime, $eDate, $eTime );
- $odometer = new OdometerHelper ();
- $odometer->initialize ( $tid, $sDate, $sTime, $eDate, $eTime );
- /*$QUERY = "SELECT * FROM A{$tid} WHERE " . $periodClause . " ORDER BY date,time";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- $QUERY = "SELECT * FROM M{$tid} WHERE " . $periodClause . " ORDER BY date,time";
- $this->dbclass->execute_query ( $QUERY );
- $mtable = $this->dbclass->get_result_complete ();*/
- //$periodClause = basicTransactions::getPeriodClause ( $sDate, $sTime, $eDate, $eTime );
- $periodClauseMongo ['latitude'] = array('$exists' => 1, '$ne' => null);
- //$mtable = $GMONGO->getAMRecord($tid, $periodClauseMongo);
- $ans = $GMONGO->getAMRecord($tid, $periodClauseMongo);
- //print_r($mtable);
- //die;
- $fnsdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $rtype = array ();
- $odoInitialized = false;
- if ($ans != false) {
- $acount = count ( $ans );
- /*$comp = 0;
- $mcount = count ( $mtable );*/
- $fprofiles = $this->getTrackerFuelProfiles ( $tid );
- $tprofiles = $this->getTrackerTemperatureProfiles ( $tid );
- for($x = 0; $x < $acount; $x ++) {
- //echo "check".$ans[$x]['odometer']."\r\n";
- //echo $x;
- //die;
- //for(; $comp < $mcount; $comp ++) {
- //if ($ans [$x] ['date'] == $mtable [$comp] ['date'] && $ans [$x] ['time'] == $mtable [$comp] ['time']) {
- for($i = 0; $i < 5; $i ++) {
- if ($fprofiles [$i] != false) {
- $ans [$x] ['fuel' . ($i + 1)] = $this->getFuelFromProfile ( $fprofiles [$i], $ans [$x] ['fuel' . ($i + 1)] );
- } else {
- unset ( $ans [$x] ['fuel' . ($i + 1)] );
- }
- if ($tprofiles [$i] != false) {
- $ans [$x] ['temperature' . ($i + 1)] = $this->getTemperatureFromProfile ( $tprofiles [$i], $ans [$x] ['temperature' . ($i + 1)] );
- } else {
- unset ( $ans [$x] ['temperature' . ($i + 1)] );
- }
- }
- //$ans [$x] = array_merge ( $ans [$x], $mtable [$comp] );
- if ($odoInitialized) {
- $ans[$x]['odometer'] = $odometer->getValue($ans[$x]['odometer'],$ans[$x]['date'], $ans[$x]['time']);
- } else {
- $ans [$x] ['odometer'] = $odometer->begin($ans[$x]['date'], $ans[$x]['time']);
- $odoInitialized = true;
- }
- //$comp ++;
- //break;
- //} //if
- //} //inner for $mcount
- if ($ans [$x] ['speed'] > 0)
- $status = "m";
- else {
- if (isset ( $ans [$x] ['IO'] )) {
- if (strpos ( $ans [$x] ['IO'], "j" ) === false)
- $status = "s";
- else
- $status = "i";
- } else
- $status = "s";
- }
- $ans [$x] ['s'] = $status;
- $fnsdate->setUTCDate ( $ans [$x] ['date'], $ans [$x] ['time'] );
- $ans [$x] ['dateString'] = $fnsdate->getFormattedString ();
- } //Outer for loop, traversing $ans
- if ($tripWise == true) {
- $rtype ['mode'] = "trip";
- $rtype ['data'] = tripsLogic::tripsWithIgnition ( $ans );
- $c = count ( $rtype ['data'] );
- for($i = 0; $i < $c; $i ++) {
- // Trips name
- $QUERY = "SELECT name from trips WHERE sDate=\"" . $rtype ['data'] [$i] ['sdate'] . "\" AND eDate=\"" . $rtype ['data'] [$i] ['edate'] . "\" AND sTime =\"" . $rtype ['data'] [$i] ['stime'] . "\" AND eTime=\"" . $rtype ['data'] [$i] ['etime'] . "\" AND trackerid=\"$tid\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans != false) {
- $rtype ['data'] [$i] ['name'] = $ans [0] ['name'];
- } else {
- $rtype ['data'] [$i] ['name'] = '';
- }
- // Driver name
- $dname = $this->getHistoryDriverName ( $tid, $rtype ['data'] [$i] ['sdate'], $rtype ['data'] [$i] ['stime'] );
- $rtype ['data'] [$i] ['dname'] = $dname;
- }
- } else {
- $rtype ['mode'] = "continuous";
- $rtype ['data'] = array (
- 'data' => tripsLogic::tripsWithoutIgnition ( $ans )
- );
- }
- }
- /*if ($ans != false) {
- $acount = count ( $ans );
- $comp = 0;
- $mcount = count ( $mtable );
- $fprofiles = $this->getTrackerFuelProfiles ( $tid );
- $tprofiles = $this->getTrackerTemperatureProfiles ( $tid );
- for($x = 0; $x < $acount; $x ++) {
- for(; $comp < $mcount; $comp ++) {
- if ($ans [$x] ['date'] == $mtable [$comp] ['date'] && $ans [$x] ['time'] == $mtable [$comp] ['time']) {
- for($i = 0; $i < 5; $i ++) {
- if ($fprofiles [$i] != false) {
- $mtable [$comp] ['fuel' . ($i + 1)] = $this->getFuelFromProfile ( $fprofiles [$i], $mtable [$comp] ['fuel' . ($i + 1)] );
- } else {
- unset ( $mtable [$comp] ['fuel' . ($i + 1)] );
- }
- if ($tprofiles [$i] != false) {
- $mtable [$comp] ['temperature' . ($i + 1)] = $this->getTemperatureFromProfile ( $tprofiles [$i], $mtable [$comp] ['temperature' . ($i + 1)] );
- } else {
- unset ( $mtable [$comp] ['temperature' . ($i + 1)] );
- }
- }
- $ans [$x] = array_merge ( $ans [$x], $mtable [$comp] );
- if ($odoInitialized) {
- $ans[$x]['odometer'] = $odometer->getValue($ans[$x]['odometer'],$ans[$x]['date'], $ans[$x]['time']);
- } else {
- $ans [$x] ['odometer'] = $odometer->begin($ans[$x]['date'], $ans[$x]['time']);
- $odoInitialized = true;
- }
- $comp ++;
- break;
- }
- }
- if ($ans [$x] ['speed'] > 0)
- $status = "m";
- else {
- if (isset ( $ans [$x] ['IO'] )) {
- if (strpos ( $ans [$x] ['IO'], "j" ) === false)
- $status = "s";
- else
- $status = "i";
- } else
- $status = "s";
- }
- $ans [$x] ['s'] = $status;
- $fnsdate->setUTCDate ( $ans [$x] ['date'], $ans [$x] ['time'] );
- $ans [$x] ['dateString'] = $fnsdate->getFormattedString ();
- }
- if ($tripWise == true) {
- $rtype ['mode'] = "trip";
- $rtype ['data'] = tripsLogic::tripsWithIgnition ( $ans );
- $c = count ( $rtype ['data'] );
- for($i = 0; $i < $c; $i ++) {
- // Trips name
- $QUERY = "SELECT name from trips WHERE sDate=\"" . $rtype ['data'] [$i] ['sdate'] . "\" AND eDate=\"" . $rtype ['data'] [$i] ['edate'] . "\" AND sTime =\"" . $rtype ['data'] [$i] ['stime'] . "\" AND eTime=\"" . $rtype ['data'] [$i] ['etime'] . "\" AND trackerid=\"$tid\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans != false) {
- $rtype ['data'] [$i] ['name'] = $ans [0] ['name'];
- } else {
- $rtype ['data'] [$i] ['name'] = '';
- }
- // Driver name
- $dname = $this->getHistoryDriverName ( $tid, $rtype ['data'] [$i] ['sdate'], $rtype ['data'] [$i] ['stime'] );
- $rtype ['data'] [$i] ['dname'] = $dname;
- }
- } else {
- $rtype ['mode'] = "continuous";
- $rtype ['data'] = array (
- 'data' => tripsLogic::tripsWithoutIgnition ( $ans )
- );
- }
- }*/
- // Fetch Events
- /*$QUERY = "SELECT * FROM E{$tid} WHERE " . basicTransactions::getPeriodClause ( $sDate, $sTime, $eDate, $eTime ) . " ORDER BY date,time";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();*/
- $ans = $GMONGO->getERecords($tid, $periodClauseMongo);
- if ($ans != false) {
- $ecount = count ( $ans );
- for($i = 0; $i < $ecount; $i ++) {
- $fnsdate->setUTCDate ( $ans [$i] ['date'], $ans [$i] ['time'] );
- $ans [$i] ['dateString'] = $fnsdate->getFormattedString ();
- $ans [$i] ['description'] = utf8_encode($ans [$i] ['description']->bin);
- unset ( $ans [$i] ['date'] );
- unset ( $ans [$i] ['time'] );
- }
- $rtype ['events'] = $ans;
- }
- return $rtype;
- }
- public function getCompleteGeofences() {
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT id,radius,fencename,type,color FROM geofences WHERE username='$uname' ORDER BY fencename";
- $this->dbclass->execute_query ( $QUERY );
- $geofences = $this->dbclass->get_result_complete ();
- $c = count ( $geofences );
- for($i = 0; $i < $c; $i ++) {
- $QUERY = "SELECT * FROM geofencesPoints WHERE id = " . $geofences [$i] ['id'] . " LIMIT 0,1";
- $this->dbclass->execute_query ( $QUERY );
- $gp = $this->dbclass->get_result_complete ();
- $geofences [$i] ['latitude'] = $gp [0] ['latitude'];
- $geofences [$i] ['longitude'] = $gp [0] ['longitude'];
- }
- return $geofences;
- }
- public function getGeofences($trackerid) {
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT geoid FROM activeGeofences WHERE username=\"$uname\" AND trackerid =\"$trackerid\" GROUP BY geoid";
- $this->dbclass->execute_query ( $QUERY );
- $result = $this->dbclass->get_result_complete ();
- if ($result == false)
- return ERROR;
- $c = count ( $result );
- $fences = array ();
- $fences ['t0'] = array ();
- $fences ['t1'] = array ();
- $fences ['t2'] = array ();
- for($i = 0; $i < $c; $i ++) {
- $QUERY = "SELECT * FROM geofences WHERE id = " . $result [$i] ['geoid'];
- $this->dbclass->execute_query ( $QUERY );
- $geofence = $this->dbclass->get_result_complete ();
- $QUERY = "SELECT latitude, longitude FROM geofencesPoints WHERE id = " . $result [$i] ['geoid'];
- $this->dbclass->execute_query ( $QUERY );
- $geofence [0] ['points'] = $this->dbclass->get_result_complete ();
- array_push ( $fences ['t' . $geofence [0] ['type']], $geofence [0] );
- }
- return $fences;
- }
- private function deactivateGeofence($uname, $fid) {
- $QUERY = "SELECT * FROM activeGeofences WHERE username=\"$uname\" AND geoid =\"$fid\"";
- $this->dbclass->execute_query ( $QUERY );
- $result = $this->dbclass->get_result_complete ();
- if ($result == false)
- return;
- $fcount = count ( $result );
- for($i = 0; $i < $fcount; $i ++) {
- $query = "DELETE FROM activeGeofences WHERE username='{$uname}' and id='{$result[$i]['id']}'";
- $rs = $this->dbclass->execute_query ( $query );
- if ($rs != true) {
- //$this->writeDebugLog ( "\r\n" . mysql_error ( $this->dbclass->dblink ) );
- $this->writeDebugLog ( "\r\n" . $this->dbclass->dblink->error );
- return ERROR;
- }
- $query = "INSERT INTO ACTIVEGEO_CACHE SET id='{$result[$i]["id"]}', geoid='{$result[$i]["geoid"]}', username='{$uname}' , fencename='{$result[$i]["fencename"]}' , trackerid='{$result[$i]['trackerid']}' , sdate='{$result[$i]['sdate']}' , shr='{$result[$i]['shr']}' , ";
- $query .= "smin='{$result[$i]['smin']}' , edate='{$result[$i]['edate']}' , ehr='{$result[$i]['ehr']}' , emin='{$result[$i]['emin']}', operation='D',speedLimit = '{$result[$i]['speedLimit']}', actType = '{$result[$i]['type']}', timezone = '{$result[$i]['timezone']}', weekDays = '{$result[$i]['weekDays']}', monthDays='{$result[$i]['monthDays']}'";
- $rs = $this->dbclass->execute_query ( $query );
- if ($rs != true) {
- $this->writeDebugLog ( "\r\n" . $this->dbclass->dblink->error );
- return ERROR;
- }
- }
- }
- public function deleteUserGeofences($uname) {
- // uname is already escaped
- $query = "SELECT id from geofences WHERE username=\"" . $uname . "\"";
- $this->dbclass->execute_query ( $query );
- $result = $this->dbclass->get_result_complete ();
- for($i = 0; $i < count ( $result ); $i ++) {
- $fid = $result [$i] ['id'];
- $query = "DELETE FROM geofences WHERE username=\"" . $uname . "\" and id = \"" . $fid . "\"";
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM geofencesPoints WHERE id = \"" . $fid . "\"";
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM geoContacts where username=\"{$uname}\" and fencename=\"{$fid}\"";
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM POI WHERE id IN (SELECT POIID from checkpoints WHERE id={$fid})";
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM checkpoints where id=\"{$fid}\"";
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM archiveFences where geoid=\"{$fid}\"";
- $this->dbclass->execute_query ( $query );
- }
- return SUCCESS;
- }
- public function deleteGeofence($fid) {
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT id from geofences WHERE username=\"" . $uname . "\" and id = \"" . $fid . "\"";
- $this->dbclass->execute_query ( $query );
- $result = $this->dbclass->get_result_complete ();
- if ($result [0] ['id'] != $fid)
- return ERROR;
- $this->deactivateGeofence ( $uname, $fid );
- $query = "DELETE FROM geofences WHERE username=\"" . $uname . "\" and id = \"" . $fid . "\"";
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM geofencesPoints WHERE id = \"" . $fid . "\"";
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM geoContacts where username=\"{$uname}\" and fencename=\"{$fid}\"";
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM POI WHERE id IN (SELECT POIID from checkpoints WHERE id={$fid})";
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM checkpoints where id=\"{$fid}\"";
- $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM archiveFences where geoid=\"{$fid}\"";
- $this->dbclass->execute_query ( $query );
- return SUCCESS;
- }
- public function getActiveGeofences($fid) {
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT * FROM activeGeofences WHERE username=\"$uname\" AND geoid=\"$fid\"";
- $result = $this->dbclass->execute_query ( $query );
- return $this->dbclass->get_result_complete ();
- }
- public function getCompleteActiveGeofences() {
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- if (isset ( $_GET ['type'] ) && $_GET ['type'] == 2) {
- $query = "SELECT activeGeofences.* FROM activeGeofences inner join geofences ON (geoid = geofences.id) WHERE geofences.username=\"$uname\" and type = 2";
- } else {
- $query = "SELECT activeGeofences.* FROM activeGeofences inner join geofences ON (geoid = geofences.id) WHERE geofences.username=\"$uname\" and (type = 0 or type = 1)";
- }
- $result = $this->dbclass->execute_query ( $query );
- return $this->dbclass->get_result_complete ();
- }
- public function setActiveGeofences($result, $fid) {
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- if ($result == false)
- return;
- $fcount = count ( $result );
- $fname = $this->dbclass->get_escape_string ( $result [0] ['fencename'] );
- for($i = 0; $i < $fcount; $i ++) {
- $query = "INSERT INTO activeGeofences SET id = 0, geoid = $fid, username='{$uname}' , fencename='{$fname}' , trackerid='{$result[$i]['trackerid']}' , sdate='{$result[$i]['sdate']}' , shr='{$result[$i]['shr']}' , ";
- $query .= "smin='{$result[$i]['smin']}' , edate='{$result[$i]['edate']}' , ehr='{$result[$i]['ehr']}' , emin='{$result[$i]['emin']}', speedLimit = '{$result[$i]['speedLimit']}', actType = '{$result[$i]['actType']}', timezone = '{$result[$i]['timezone']}', weekDays = '{$result[$i]['weekDays']}', monthDays='{$result[$i]['monthDays']}'";
- $this->dbclass->execute_query ( $query );
- //$id = mysql_insert_id ( $this->dblink );
- $id = $this->dbclass->dblink->insert_id;
- $query = "INSERT INTO ACTIVEGEO_CACHE SET id = $id, geoid = $fid, username='{$uname}' , fencename='{$fname}' , trackerid='{$result[$i]['trackerid']}' , sdate='{$result[$i]['sdate']}' , shr='{$result[$i]['shr']}' , ";
- $query .= "smin='{$result[$i]['smin']}' , edate='{$result[$i]['edate']}' , ehr='{$result[$i]['ehr']}' , emin='{$result[$i]['emin']}', operation='A', speedLimit = '{$result[$i]['speedLimit']}', actType = '{$result[$i]['actType']}', timezone = '{$result[$i]['timezone']}', weekDays = '{$result[$i]['weekDays']}', monthDays='{$result[$i]['monthDays']}'";
- $this->dbclass->execute_query ( $query );
- }
- }
- public function deactivateTrackerFence($record) {
- $fname = $this->dbclass->get_escape_string ( rawurldecode ( $record ['fencename'] ) );
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "DELETE FROM activeGeofences WHERE username='{$uname}' AND id='{$record['id']}'";
- $this->dbclass->execute_query ( $query );
- $query = "INSERT INTO ACTIVEGEO_CACHE SET id = '{$record['id']}', geoid = '{$record['geoid']}', username='{$uname}' , fencename='{$fname}' , trackerid='{$record['trackerid']}' , sdate='{$record['sdate']}' , shr='{$record['shr']}' , ";
- $query .= "smin='{$record['smin']}' , edate='{$record['edate']}' , ehr='{$record['ehr']}' , emin='{$record['emin']}', operation = 'D', speedLimit = 0, actType = '{$record['type']}', timezone = '{$_SESSION['timezone']}', weekDays = '{$record['weekDays']}', monthDays='{$record['monthDays']}'";
- $this->dbclass->execute_query ( $query );
- }
- public function activateGeofence($record) {
- $fname = $this->dbclass->get_escape_string ( $record ['fencename'] );
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "INSERT INTO activeGeofences SET id = 0, geoid={$record['geoid']}, username='{$uname}' , fencename='{$fname}' , trackerid='{$record['trackerid']}' , sdate='{$record['sdate']}' , shr='{$record['shr']}' , ";
- $query .= "smin='{$record['smin']}' , edate='{$record['edate']}' , ehr='{$record['ehr']}' , emin='{$record['emin']}', speedLimit = '{$record['speedLimit']}', actType = '{$record['type']}', timezone = '{$_SESSION['timezone']}', weekDays = '{$record['weekDays']}', monthDays='{$record['monthDays']}'";
- $result = $this->dbclass->execute_query ( $query );
- if ($result == false) {
- //$this->writeDebugLog ( mysql_error ( $this->dblink ) );
- $this->writeDebugLog ( $this->dbclas->dblink->error );
- }
- //$fid = mysql_insert_id ( $this->dblink );
- $fid = $this->dbclass->dblink->insert_id;
- $query = "INSERT INTO ACTIVEGEO_CACHE SET id = $fid, geoid={$record['geoid']}, username='{$uname}' , fencename='{$fname}' , trackerid='{$record['trackerid']}' , sdate='{$record['sdate']}' , shr='{$record['shr']}' , ";
- $query .= "smin='{$record['smin']}' , edate='{$record['edate']}' , ehr='{$record['ehr']}' , emin='{$record['emin']}', operation = 'A', speedLimit = '{$record['speedLimit']}',actType = '{$record['type']}', timezone = '{$_SESSION['timezone']}', weekDays = '{$record['weekDays']}', monthDays='{$record['monthDays']}'";
- $result = $this->dbclass->execute_query ( $query );
- if ($result == false) {
- //$this->writeDebugLog ( mysql_error ( $this->dblink ) );
- $this->writeDebugLog ( $this->dbclas->dblink->error );
- }
- }
- public function saveGeofence($record) {
- $fname = $this->dbclass->get_escape_string ( $record->fencename );
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "INSERT INTO geofences SET username=\"$username\", fencename=\"$fname\", radius=" . $record->radius . ", type = " . $record->type . ",color = '" . $record->color . "'";
- $result = $this->dbclass->execute_query ( $query );
- //$geoid = mysql_insert_id ( $this->dblink );
- $geoid = $this->dbclass->dblink->insert_id;
- $count = count ( $record->locations );
- for($i = 0; $i < $count; $i ++) {
- $query = "INSERT INTO geofencesPoints SET id=\"$geoid\", latitude=" . $record->locations [$i]->latitude . ", longitude = " . $record->locations [$i]->longitude;
- $result = $this->dbclass->execute_query ( $query );
- }
- if ($record->type == 2) {
- $count = count ( $record->checkpoints );
- for($i = 0; $i < $count; $i ++) {
- $cname = $this->dbclass->get_escape_string ( $record->checkpoints [$i]->chkname );
- $poiid = '';
- if ($record->checkpoints [$i]->addpoi == 1) {
- $query = "INSERT INTO POI SET username='$username', latitude = " . $record->checkpoints [$i]->latitude;
- $query .= ", longitude = " . $record->checkpoints [$i]->longitude . ", color='" . $record->color . "', radius = " . $record->checkpoints [$i]->chkradius;
- $query .= ", shortName = '" . $cname . "', metric='KILOMETERS',icontype='de', keywords = '$username, $cname'";
- $result = $this->dbclass->execute_query ( $query );
- //$poiid = ",POIID = " . mysql_insert_id ( $this->dblink );
- $poiid = ",POIID = " . $this->dbclass->dblink->insert_id;
- }
- $query = "INSERT INTO checkpoints SET id=\"$geoid\", name = '" . $cname . "', latitude=" . $record->checkpoints [$i]->latitude . ", longitude = " . $record->checkpoints [$i]->longitude . ", radius = " . $record->checkpoints [$i]->chkradius . $poiid;
- $result = $this->dbclass->execute_query ( $query );
- }
- }
- return $geoid;
- }
- public function loadGeofence($fid) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT * FROM geofences WHERE username=\"$username\" AND id=\"$fid\"";
- $result = $this->dbclass->execute_query ( $query );
- $basic_settings = $this->dbclass->get_result_complete ();
- if ($basic_settings == false)
- return ERROR;
- $query = "SELECT latitude,longitude FROM geofencesPoints WHERE id=\"$fid\"";
- $result = $this->dbclass->execute_query ( $query );
- $adv_settings = $this->dbclass->get_result_complete ();
- $basic_settings = $basic_settings [0];
- $basic_settings ['locations'] = $adv_settings;
- if ($basic_settings ['type'] == 2) {
- $query = "SELECT * FROM checkpoints WHERE id=\"$fid\"";
- $result = $this->dbclass->execute_query ( $query );
- $checkpoints = $this->dbclass->get_result_complete ();
- $basic_settings ['checkpoints'] = $checkpoints;
- }
- return $basic_settings;
- }
- public function getGeofenceList($fields_list = "*") {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT {$fields_list} FROM geofences WHERE username=\"$username\" AND (type = 0 OR type = 1)";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false)
- return ERROR;
- return $ans;
- }
- public function getPathList($fields_list = "*") {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT {$fields_list} FROM geofences WHERE username=\"$username\" AND type = 2";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getCompleteActivePaths() {
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT * FROM ACTIVEPATH WHERE username=\"$uname\"";
- $result = $this->dbclass->execute_query ( $query );
- return $this->dbclass->get_result_complete ();
- }
- public function getActivePaths($fencename) {
- $fname = $this->dbclass->get_escape_string ( $fencename );
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT * FROM ACTIVEPATH WHERE username=\"$uname\" AND fencename=\"$fname\"";
- $result = $this->dbclass->execute_query ( $query );
- return $this->dbclass->get_result_complete ();
- }
- public function setActivePaths($result, $fencename) {
- $fname = $this->dbclass->get_escape_string ( $fencename );
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- if ($result == false)
- return;
- $fcount = count ( $result );
- for($i = 0; $i < $fcount; $i ++) {
- $query = "INSERT INTO ACTIVEPATH SET username='{$uname}' , fencename='{$fname}' , trackerid='{$result[$i]['trackerid']}' , sdate='{$result[$i]['sdate']}' , ";
- $query .= "edate='{$result[$i]['edate']}' , alertOffRoute='{$result[$i]['alertOffRoute']}' , daysGap='{$result[$i]['daysGap']}', speedLimit='{$result[$i]['speedLimit']}', stime='{$result[$i]['stime']}', etime='{$result[$i]['etime']}'";
- $this->dbclass->execute_query ( $query );
- }
- }
- public function activatePath($record) {
- $fname = $this->dbclass->get_escape_string ( $record ['fencename'] );
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "INSERT INTO ACTIVEPATH SET username='{$uname}' , fencename='{$fname}' , trackerid='{$record['trackerid']}' , sdate='{$record['sdate']}' ,";
- $query .= "edate='{$record['edate']}' , alertOffRoute='{$record['alertOffRoute']}' , daysGap='{$record['daysGap']}', speedLimit='{$record['speedLimit']}', stime='{$record['stime']}', etime='{$record['etime']}'";
- $this->dbclass->execute_query ( $query );
- }
- private function deactivatePath($uname, $fname) {
- $QUERY = "SELECT * FROM ACTIVEPATH WHERE username=\"$uname\" AND fencename =\"$fname\"";
- $this->dbclass->execute_query ( $QUERY );
- $result = $this->dbclass->get_result_complete ();
- if ($result == false)
- return;
- $fcount = count ( $result );
- for($i = 0; $i < $fcount; $i ++) {
- $query = "DELETE FROM ACTIVEPATH WHERE username='{$uname}' and fencename='{$fname}' and trackerid='{$result[$i]['trackerid']}' and sdate='{$result[$i]['sdate']}' and ";
- $query .= " edate='{$result[$i]['edate']}' and alertOffRoute='{$result[$i]['alertOffRoute']}' and daysGap='{$result[$i]['daysGap']}' and speedLimit='{$result[$i]['speedLimit']}' and stime='{$result[$i]['stime']}' and etime='{$result[$i]['etime']}'";
- $this->dbclass->execute_query ( $query );
- }
- }
- public function deactivateTrackerPath($record) {
- $fname = $this->dbclass->get_escape_string ( rawurldecode ( $record ['fencename'] ) );
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "DELETE FROM ACTIVEPATH WHERE username='{$uname}' AND fencename='{$fname}' AND trackerid='{$record['trackerid']}' AND sdate='{$record['sdate']}' AND ";
- $query .= " edate='{$record['edate']}' AND alertOffRoute='{$record['alertOffRoute']}' AND daysGap='{$record['daysGap']}' AND speedLimit='{$record['speedLimit']}' AND stime='{$record['stime']}' AND etime='{$record['etime']}'";
- $this->dbclass->execute_query ( $query );
- }
- public function loadPath($fname) {
- $n = new emptyClass ();
- $n->fencename = $fname;
- $fname = $this->dbclass->get_escape_string ( $fname );
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT radius FROM PATHS WHERE username=\"$username\" AND fencename=\"$fname\" LIMIT 0,1";
- $result = $this->dbclass->execute_query ( $query );
- $radius = $this->dbclass->get_result_complete ();
- if ($radius == false)
- return false;
- $n->radius = $radius [0] ['radius'];
- $query = "SELECT latitude,longitude FROM PATHS WHERE username=\"$username\" AND fencename=\"$fname\"";
- $result = $this->dbclass->execute_query ( $query );
- $locations = $this->dbclass->get_result_complete ();
- $n->locations = $locations;
- return $n;
- }
- public function deletePath($fencename) {
- $fname = $this->dbclass->get_escape_string ( $fencename );
- $uname = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $this->deactivatePath ( $uname, $fname );
- $query = "DELETE FROM PATHS WHERE username=\"" . $uname . "\" and fencename = \"" . $fname . "\"";
- $this->dbclass->execute_query ( $query );
- }
- public function savePath($record) {
- $fname = $this->dbclass->get_escape_string ( $record->fencename );
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $query = "SELECT COUNT(*) FROM PATHS WHERE username=\"$username\" AND fencename=\"$fname\"";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer [0] ['COUNT(*)'] > 0)
- return EXISTS;
- $count = count ( $record->locations );
- for($i = 0; $i < $count; $i ++) {
- $query = "INSERT INTO PATHS SET username=\"$username\", fencename=\"$fname\", latitude=" . $record->locations [$i]->lat . ", longitude = " . $record->locations [$i]->lng . ",radius = " . $record->radius;
- $result = $this->dbclass->execute_query ( $query );
- }
- return SUCCESS;
- }
- //public function getActiveFenceDetails ($fid = false, $fenceName, $trackerid) {
- public function getActiveFenceDetails ($fenceName, $trackerid) {
- $fenceName = $this->dbclass->get_escape_string($fenceName);
- $query = "SELECT * FROM activeGeofences WHERE fencename = '{$fenceName}' AND trackerid = '{$trackerid}'";
- $result = $this->dbclass->execute_query($query);
- if ($result)
- return $this->dbclass->get_result_complete();
- return $result;
- }
- public function getTrackerName($tid) {
- $query = "SELECT name FROM trackers WHERE trackerid=\"$tid\"";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function getFleetTrackersFuelTanks() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT trackerid, tankCapacity FROM trackersMap inner join trackersDetails using (trackerid) WHERE username=\"{$username}\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getEJMSTrackersList($username, $fields_list = "*") {
- $username = $this->dbclass->get_escape_string($username);
- $QUERY = "SELECT trackerid, name, licensePlate FROM trackersMap inner join trackers using (trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) WHERE username=\"{$username}\"";
- $this->dbclass->execute_query ( $QUERY );
- $trackers = $this->dbclass->get_result_complete ();
- $trackers = $this->filterExpiredTrackers ( $trackers );
- if (count ( $trackers ) == 0)
- return false;
- if ($fields_list == "*")
- return $trackers;
- $sp = explode ( ",", $fields_list );
- $newlist = array ();
- foreach ( $trackers as $t ) {
- $n = array ();
- foreach ( $sp as $v ) {
- $n [$v] = $t [$v];
- }
- array_push ( $newlist, $n );
- }
- return $newlist;
- }
- public function getEJMSDriversList($username) {
- $username = $this->dbclass->get_escape_string($username);
- $QUERY = "SELECT tagID, name, licno FROM drivers WHERE username=\"{$username}\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- private function getTrackerGroups ($tid) {
- $query = "SELECT * FROM groupTrackersMap INNER JOIN trackersLogicalGroups USING (groupid) WHERE trackerid = '{$tid}'";
- $this->dbclass->execute_query($query);
- $groups = $this->dbclass->get_result_complete();
- if ($groups != false) {
- $gid = array_map(function ($a) {
- return $a['groupName'];
- }, $groups);
- return implode(',', $gid);
- }
- return false;
- }
- public function getTrackersList($fields_list = "*") {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- if ($_SESSION ['accounttype'] == USERTYPE_ADMINISTRATOR) {
- //$QUERY = "SELECT {$fields_list} FROM trackers inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid)";
- $QUERY = "SELECT {$fields_list} FROM adminTrackersMap INNER JOIN trackers USING(trackerid) INNER JOIN trackersExInfo USING (trackerid) LEFT JOIN trackersDetails USING (trackerid) LEFT JOIN trackersFeatures USING (trackerid) WHERE username = '$username'";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- } else {
- $QUERY = "SELECT {$fields_list} FROM trackersMap inner join trackers using (trackerid) inner join trackersExInfo using (trackerid) left join trackersDetails using (trackerid) left join trackersFeatures using(trackerid) WHERE username=\"{$username}\"";
- $this->dbclass->execute_query ( $QUERY );
- $trackers = $this->dbclass->get_result_complete ();
- $trackers = $this->filterExpiredTrackers ( $trackers );
- if (count ( $trackers ) == 0)
- return false;
- if ($fields_list == "*")
- return $trackers;
- $sp = explode ( ",", $fields_list );
- $newlist = array ();
- foreach ( $trackers as $t ) {
- $groups = $this->getTrackerGroups($t['trackerid']);
- $n = array ();
- foreach ( $sp as $v ) {
- $n [$v] = $t [$v];
- }
- if ($groups != false)
- $n ['groups'] = $groups;
- array_push ( $newlist, $n );
- }
- return $newlist;
- }
- }
- public function driverTrackersList($did) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT trackerid,name FROM driversMap inner join trackers using (trackerid) WHERE tagID=\"$did\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getFutureSchedulesList() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $fdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $QUERY = "SELECT * FROM schedules WHERE username=\"$username\" AND ((sdate = \"{$fdate->UTCDateString}\" AND stime > \"{$fdate->UTCTime}\") OR (sdate > \"{$fdate->UTCDateString}\"))";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getPastSchedulesList() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $fdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $QUERY = "SELECT * FROM schedules WHERE username=\"$username\" AND ((sdate = \"{$fdate->UTCDateString}\" AND stime <= \"{$fdate->UTCTime}\") OR (sdate < \"{$fdate->UTCDateString}\"))";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- private function getScheduleForTracker($tid, $sdate, $stime, $edate, $etime) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $fdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $QUERY = "SELECT sdate,stime,edate,etime FROM schedules WHERE username=\"$username\" AND trackerid=\"$tid\" AND ((sdate = \"{$sdate}\" AND stime > \"{$fdate->UTCTime}\") OR (sdate > \"{$fdate->UTCDateString}\"))";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false)
- return false;
- $c = count ( $answer );
- $fdate->setUTCDate ( $sdate, $stime );
- $des_start = $fdate->dateTime->getTimestamp ();
- $fdate->setUTCDate ( $edate, $etime );
- $des_end = $fdate->dateTime->getTimestamp ();
- $busy = false;
- for($i = 0; $i < $c; $i ++) {
- $fdate->setUTCDate ( $answer [$i] ['sdate'], $answer [$i] ['stime'] );
- $sch_start = $fdate->dateTime->getTimestamp ();
- $fdate->setUTCDate ( $answer [$i] ['edate'], $answer [$i] ['etime'] );
- $sch_end = $fdate->dateTime->getTimestamp ();
- if ($des_start >= $sch_start && $des_start <= $sch_end)
- $busy = true;
- else if ($des_end >= $sch_start && $des_end <= $sch_end)
- $busy = true;
- }
- return $busy;
- }
- public function SCH_GetTrackers($sdate, $stime, $edate, $etime) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT trackerid,name,color,vtype,trackerExpiry FROM trackersMap inner join trackers using (trackerid) inner join trackersExInfo using(trackerid) inner join trackersDetails using (trackerid) WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- $answer = $this->filterExpiredTrackers ( $answer );
- $c = count ( $answer );
- $ri = 0;
- $response = array ();
- for($i = 0; $i < $c; $i ++) {
- $busy = $this->getScheduleForTracker ( $answer [$i] ['trackerid'], $sdate, $stime, $edate, $etime );
- $groups = $this->getTrackerGroups($answer [$i] ['trackerid']);
- if ($groups != false)
- $answer [$i] ['groups'] = $groups;
- if ($busy != true)
- array_push ( $response, $answer [$i] );
- }
- return $response;
- }
- private function getScheduleForDriver($tagid, $sdate, $stime, $edate, $etime) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $fdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $QUERY = "SELECT sdate,stime,edate,etime FROM schedules WHERE username=\"$username\" AND dtag=\"$tagid\" AND ((sdate = \"{$sdate}\" AND stime > \"{$fdate->UTCTime}\") OR (sdate > \"{$fdate->UTCDateString}\"))";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false)
- return false;
- $c = count ( $answer );
- $fdate->setUTCDate ( $sdate, $stime );
- $des_start = $fdate->dateTime->getTimestamp ();
- $fdate->setUTCDate ( $edate, $etime );
- $des_end = $fdate->dateTime->getTimestamp ();
- $busy = false;
- for($i = 0; $i < $c; $i ++) {
- $fdate->setUTCDate ( $answer [$i] ['sdate'], $answer [$i] ['stime'] );
- $sch_start = $fdate->dateTime->getTimestamp ();
- $fdate->setUTCDate ( $answer [$i] ['edate'], $answer [$i] ['etime'] );
- $sch_end = $fdate->dateTime->getTimestamp ();
- if ($des_start >= $sch_start && $des_start <= $sch_end)
- $busy = true;
- else if ($des_end >= $sch_start && $des_end <= $sch_end)
- $busy = true;
- }
- return $busy;
- }
- public function SCH_GetDrivers($sdate, $stime, $edate, $etime) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT name,tagID FROM drivers WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- $c = count ( $answer );
- $ri = 0;
- $response = array ();
- for($i = 0; $i < $c; $i ++) {
- $busy = $this->getScheduleForDriver ( $answer [$i] ['tagID'], $sdate, $stime, $edate, $etime );
- if ($busy != true)
- array_push ( $response, $answer [$i] );
- }
- return $response;
- }
- public function SCH_RemoveSchedule($id) {
- $query = "DELETE FROM schedules WHERE id=\"$id\"";
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- return ERROR;
- }
- return SUCCESS;
- }
- public function SCH_SaveSchedule() {
- $_POST ['username'] = $_SESSION ['username'];
- $fdate = new FNSDateTime ( $_SESSION ['timezone'] );
- $stime = $_POST ['shr'] * 3600 + $_POST ['smin'] * 60;
- $fdate->setDate ( $_POST ['sdate'], $stime );
- $_POST ['sdate'] = $fdate->UTCDateString;
- $_POST ['stime'] = $fdate->UTCTime;
- $stime_str = $fdate->getFormattedString ();
- $etime = $_POST ['ehr'] * 3600 + $_POST ['emin'] * 60;
- $fdate->setDate ( $_POST ['edate'], $etime );
- $_POST ['edate'] = $fdate->UTCDateString;
- $_POST ['etime'] = $fdate->UTCTime;
- $etime_str = $fdate->getFormattedString ();
- unset ( $_POST ['shr'] );
- unset ( $_POST ['smin'] );
- unset ( $_POST ['ehr'] );
- unset ( $_POST ['emin'] );
- $query = "REPLACE INTO schedules SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- if ($result != true) {
- $reply ['id'] = "-1";
- $reply ['ans'] = ERROR;
- return $reply;
- }
- if ($_POST ['id'] == 0 || $_POST ['id'] == NULL)
- $_POST ['id'] = $this->dbclass->dblink->insert_id;
- $reply ['id'] = $_POST ['id'];
- $reply ['stime'] = $stime_str;
- $reply ['etime'] = $etime_str;
- $reply ['ans'] = SUCCESS;
- return $reply;
- }
- public function saveAdminSettings () {
- $username = $_SESSION['username'];
- $QUERY = "SELECT * FROM adminPreferences WHERE username = \"{$username}\"";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false) {
- $_POST['username'] = $_SESSION['username'];
- $query = "REPLACE INTO adminPreferences SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- } else {
- $query = "UPDATE adminPreferences SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest () . " WHERE username = \"{$username}\"";
- $result = $this->dbclass->execute_query ( $query );
- }
- if ($result != true) {
- return ERROR;
- }
- return SUCCESS;
- }
- public function saveUserSettings() {
- if ($_SESSION['accounttype'] == USERTYPE_FLEET)
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- elseif ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR)
- $username = $this->dbclass->get_escape_string ( $_POST ['username'] );
- $QUERY = "SELECT * FROM userPreferences WHERE username = \"{$username}\"";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false) {
- //$_POST ['username'] = $_SESSION ['username'];
- $_POST ['username'] = $username;
- $query = "REPLACE INTO userPreferences SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- } else {
- $query = "UPDATE userPreferences SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest () . " WHERE username = \"{$username}\"";
- $result = $this->dbclass->execute_query ( $query );
- }
- if ($result != true) {
- return ERROR;
- }
- return SUCCESS;
- }
- public function saveAccountPassword($opass, $npass) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "SELECT * FROM Users WHERE username = \"{$username}\"";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false) {
- return ERROR;
- }
- if ($answer [0] ['password'] == $opass) {
- $password = $this->dbclass->get_escape_string ( $npass );
- $QUERY = "UPDATE Users SET password = \"{$password}\" where username = \"{$username}\"";
- $this->dbclass->execute_query ( $QUERY );
- return SUCCESS;
- } else {
- return ERROR;
- }
- }
- public function resetMessageLimits($type, $tid) {
- if ($type == 'sms') {
- $QUERY = "UPDATE msgLimits SET cSMSValue = NULL where trackerid = \"{$tid}\"";
- $this->dbclass->execute_query ( $QUERY );
- } else if ($type == 'email') {
- $QUERY = "UPDATE msgLimits SET cEmailValue = NULL where trackerid = \"{$tid}\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- }
- private function filterExpiredTrackers($list) {
- $gmmtime = time ();
- $nlist = array ();
- if ($list == false)
- return $nlist;
- foreach ( $list as $k => $v ) {
- if (isset ( $v ['trackerExpiry'] ) && $v ['trackerExpiry'] != NULL) {
- if (($gmmtime - $v ['trackerExpiry']) <= 0) {
- array_push ( $nlist, $v );
- }
- } else {
- array_push ( $nlist, $v );
- }
- }
- return $nlist;
- }
- public function getTrackersCredit() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "select * from trackersMap inner join trackers using (trackerid) inner join trackersExInfo using (trackerid) left join msgLimits using(trackerid) where username = \"{$username}\"";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false)
- return false;
- $answer = $this->filterExpiredTrackers ( $answer );
- if (count ( $answer ) == 0)
- return false;
- $ups = $this->getUserPreferences ( $_SESSION ['username'] );
- $sps = $this->getSystemPreferences ();
- $tz = $sps [0] ['defaultTimezone'];
- if ($ups != false && isset ( $ups [0] ['settings'] )) {
- $settings = json_decode ( $ups [0] ['settings'], true );
- if (isset ( $settings ['timezone'] ) && $settings ['timezone'] != null)
- $tz = $settings ['timezone'];
- }
- $fdate = new FNSDateTime ( $tz );
- $myear = $fdate->dateTime->format ( "m-Y" ); // $dt->month . "-" . $dt->year;
- foreach ( $answer as $k => $v ) {
- if ($v ['cDate'] != NULL && $v ['cDate'] != $fdate->DateString) {
- $answer [$k] ['consumedEmail'] = 0;
- $answer [$k] ['cEmailValue'] = $answer [$k] ['emailLimitValue'];
- } else {
- if ($answer [$k] ['sEmailValue'] === NULL)
- $answer [$k] ['sEmailValue'] = $answer [$k] ['emailLimitValue'];
- if ($answer [$k] ['cEmailValue'] === NULL)
- $answer [$k] ['cEmailValue'] = $answer [$k] ['sEmailValue'];
- $answer [$k] ['consumedEmail'] = $answer [$k] ['sEmailValue'] - $answer [$k] ['cEmailValue'];
- if ($answer [$k] ['sEmailValue'] != $answer [$k] ['emailLimitValue']) {
- $answer [$k] ['cEmailValue'] = $answer [$k] ['emailLimitValue'] - $answer [$k] ['consumedEmail'];
- }
- }
- if ($v ['cMonthYear'] != NULL && $v ['cMonthYear'] != $myear) {
- $answer [$k] ['consumedSMS'] = 0;
- $answer [$k] ['cSMSValue'] = $answer [$k] ['smsLimitValue'];
- } else {
- if ($answer [$k] ['sSMSValue'] === NULL)
- $answer [$k] ['sSMSValue'] = $answer [$k] ['smsLimitValue'];
- if ($answer [$k] ['cSMSValue'] === NULL)
- $answer [$k] ['cSMSValue'] = $answer [$k] ['sSMSValue'];
- $answer [$k] ['consumedSMS'] = $answer [$k] ['sSMSValue'] - $answer [$k] ['cSMSValue'];
- if ($answer [$k] ['sSMSValue'] != $answer [$k] ['smsLimitValue']) {
- $answer [$k] ['cSMSValue'] = $answer [$k] ['smsLimitValue'] - $answer [$k] ['consumedSMS'];
- }
- }
- }
- return $answer;
- }
- public function ccare_printAccountsList() {
- $QUERY = "select username,company,mobile,email,website from Users where accounttype = \"" . USERTYPE_FLEET . "\"";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function report_removeSchedule($id) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "DELETE FROM reportSchedules WHERE id = \"$id\" and username='{$username}'";
- $this->dbclass->execute_query ( $QUERY );
- //if (mysql_errno ( $this->dbclass->dblink ) == 0)
- if ( $this->dbclass->dblink->errno == 0)
- return SUCCESS;
- return ERROR;
- }
- public function report_removeUserTrackerSchedule($uname, $tid) {
- $uname = $this->dbclass->get_escape_string ( $uname );
- $QUERY = "SELECT id,getParams FROM reportSchedules WHERE username = \"$uname\"";
- $this->dbclass->execute_query ( $QUERY );
- $ans = $this->dbclass->get_result_complete ();
- if ($ans == false)
- return;
- foreach ( $ans as $v ) {
- $data = json_decode ( $v ['getParams'], true );
- $trackers = explode ( ",", $data ['trackers'] );
- $newlist = array ();
- $updated = false;
- foreach ( $trackers as $t ) {
- if ($t != $tid)
- array_push ( $newlist, $t );
- else
- $updated = true;
- }
- if ($updated) {
- if (count ( $newlist ) > 0) {
- $data ['trackers'] = implode ( ",", $newlist );
- $json = $this->dbclass->get_escape_string ( json_encode ( $data ) );
- $QUERY = "UPDATE reportSchedules SET getParams='$json' WHERE id=" . $v ['id'];
- $this->dbclass->execute_query ( $QUERY );
- } else {
- $QUERY = "DELETE FROM reportSchedules WHERE id=" . $v ['id'];
- $this->dbclass->execute_query ( $QUERY );
- }
- }
- }
- //if (mysql_errno ( $this->dbclass->dblink ) == 0)
- if ( $this->dbclass->dblink->errno == 0)
- return SUCCESS;
- return ERROR;
- }
- public function report_getSchedulesList() {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $QUERY = "select * from reportSchedules where username=\"{$username}\" order by id ";
- $this->dbclass->execute_query ( $QUERY );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer == false)
- return false;
- $newanswer = array ();
- foreach ( $answer as $k => $a ) {
- $getParams = json_decode ( $a ['getParams'], true );
- $trackers = explode ( ",", $getParams ['trackers'] );
- $newlist = array ();
- foreach ( $trackers as $t ) {
- $tinfo = $this->getTrackerInformation ( $t );
- if (isset ( $tinfo [0] ['trackerExpiry'] ) && $tinfo [0] ['trackerExpiry'] != 0 && (time () - $tinfo [0] ['trackerExpiry']) > 0)
- continue;
- array_push ( $newlist, $t );
- }
- if (count ( $newlist ) == 0)
- continue;
- $getParams ['trackers'] = implode ( ",", $newlist );
- $answer [$k] ['getParams'] = json_encode ( $getParams );
- array_push ( $newanswer, $answer [$k] );
- }
- return $newanswer;
- }
- public function report_updateScheduleDate($id, $date, $time) {
- $QUERY = "UPDATE reportSchedules SET date=\"$date\", time=\"$time\" WHERE id=\"$id\"";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function report_saveSchedule($sess, $get, $post, $sch) {
- $username = $this->dbclass->get_escape_string ( $_SESSION ['username'] );
- $sess = $this->dbclass->get_escape_string ( $sess );
- $get = $this->dbclass->get_escape_string ( $get );
- $post = $this->dbclass->get_escape_string ( $post );
- $sch = $this->dbclass->get_escape_string ( $sch );
- $QUERY = "INSERT INTO reportSchedules SET id = 0, username=\"{$username}\", sessParams=\"$sess\", getParams = \"$get\", postParams=\"$post\", schParams=\"$sch\"";
- $this->dbclass->execute_query ( $QUERY );
- //return mysql_insert_id ( $this->dblink );
- return $this->dbclass->dblink->insert_id;
- }
- public function rp_getTrackersDetails($tid) {
- $QUERY = "SELECT * FROM trackers LEFT JOIN trackersDetails USING(trackerid) WHERE trackerid=\"$tid\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function rp_getTrackerFeatures($tid) {
- $QUERY = "SELECT * FROM trackersFeatures WHERE trackerid=\"$tid\"";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getEJMSTripRecord($username, $id) {
- $username = $this->dbclass->get_escape_string ( $username );
- $QUERY = "SELECT ejms.*, drivers.name as dname FROM ejms INNER JOIN drivers ON (drivers.tagID = ejms.driver) WHERE ejms.username=\"$username\" and ejms.id='$id'";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function getEJMSList($username) {
- $result = array();
- $username = $this->dbclass->get_escape_string ( $username );
- $user = $this->getUserRecord($_SESSION['username']);
- $features = json_decode($user[0]['features'],true);
- if (isset($features['driversMgmt']) == false || $features['driversMgmt'] == 0 ){
- $QUERY = "SELECT * FROM ejms WHERE username=\"$username\" and driver='". $_SESSION['driverdata']['tagID']."'";
- }else {
- $QUERY = "SELECT * FROM ejms WHERE username=\"$username\"";
- }
- $this->dbclass->execute_query ( $QUERY );
- $result['ejms'] = $this->dbclass->get_result_complete ();
- $QUERY = "SELECT name, tagID FROM drivers WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- $result['drivers'] = $this->dbclass->get_result_complete ();
- $QUERY = "SELECT * FROM trackersMap INNER JOIN trackersDetails USING(trackerID) WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- $result['trackers'] = $this->dbclass->get_result_complete ();
- $QUERY = "SELECT * FROM trackersMap INNER JOIN trackersDetails USING(trackerID) WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- $result['trackers'] = $this->dbclass->get_result_complete ();
- $QUERY = "SELECT * FROM ejms_levelx_people WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- $result['levels'] = $this->dbclass->get_result_complete ();
- return $result;
- }
- public function getEJMSRecord($username, $id) {
- $username = $this->dbclass->get_escape_string ( $username );
- $QUERY = "SELECT * FROM ejms WHERE username=\"$username\" and id='$id'";
- $this->dbclass->execute_query ( $QUERY );
- $result['ejms'] = $this->dbclass->get_result_complete ();
- $QUERY = "SELECT * FROM ejms_levelx_people WHERE username=\"$username\"";
- $this->dbclass->execute_query ( $QUERY );
- $result['levels'] = $this->dbclass->get_result_complete ();
- return $result;
- }
- public function getEJMSData($id){
- $id = $this->dbclass->get_escape_string ( $id );
- $QUERY = "SELECT * FROM ejms INNER JOIN trackers ON (vehicleno = trackerid) WHERE id='$id'";
- $this->dbclass->execute_query ( $QUERY );
- return $this->dbclass->get_result_complete ();
- }
- public function approveEJMS($level, $id, $key, $email) {
- $key = $this->dbclass->get_escape_string($key);
- $id = $this->dbclass->get_escape_string($id);
- $level = $this->dbclass->get_escape_string($level);
- $email = $this->dbclass->get_escape_string($email);
- $levelkey = 'level'.$level.'_approved';
- $keyfield = 'level'.$level.'_approve_key';
- $emailfield = 'level'.$level.'_approver';
- $QUERY = "UPDATE ejms SET $levelkey = 1, $emailfield='$email' WHERE id='$id' and $keyfield = '$key'";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function markEJMSTrip_approve_sent($username, $id) {
- $username = $this->dbclass->get_escape_string ( $username );
- $QUERY = "UPDATE ejms SET approval_sent = 1 WHERE username=\"$username\" and id='$id'";
- $this->dbclass->execute_query ( $QUERY );
- }
- public function saveEJMSTrip($username) {
- $username = $_POST['username'] = $this->dbclass->get_escape_string ( $username );
- if ($_POST['id'] != 0) {
- $id = $this->dbclass->get_escape_string ( $_POST['id'] );
- $query = "UPDATE ejms SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ()." WHERE username='$username' and id = '$id'";
- $result = $this->dbclass->execute_query ( $query );
- } else {
- $query = "INSERT INTO ejms SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- }
- $code = array();
- if ($result == false) {
- $code['code'] = ERROR;
- $code['id'] = 0;
- }else {
- $code['code'] = SUCCESS;
- //$code['id'] = mysql_insert_id($this->dblink);
- $code['id'] = $this->dbclass->dblink->insert_id;
- }
- return $code;
- }
- public function removeEJMSTrip($username, $id) {
- $username = $this->dbclass->get_escape_string ( $username );
- $id = $this->dbclass->get_escape_string ( $id);
- $query = "SELECT preins_id FROM ejms WHERE username='$username' and id='$id' ";
- $result = $this->dbclass->execute_query ( $query );
- $result = $this->dbclass->get_result_complete();
- $preid = $result[0]['preins_id'];
- $query = "DELETE FROM ejmspreins WHERE username='$username' and id='$preid' ";
- $result = $this->dbclass->execute_query ( $query );
- $query = "DELETE FROM ejms WHERE username='$username' and id='$id' ";
- $result = $this->dbclass->execute_query ( $query );
- }
- public function EJMSLevelSave($username) {
- $username = $this->dbclass->get_escape_string ( $username );
- $level = $this->dbclass->get_escape_string ( $_POST ['level'] );
- $query = "SELECT COUNT(*) FROM ejms_levelx_people WHERE username='$username' and level = '$level'";
- $result = $this->dbclass->execute_query ( $query );
- $result = $this->dbclass->get_result_complete();
- if ($result[0]['COUNT(*)'] > 0) {
- $query = "UPDATE ejms_levelx_people SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $query .= " WHERE username = '$username' and level = '$level'";
- $result = $this->dbclass->execute_query ( $query );
- }else {
- $_POST['username'] = $_SESSION['username'];
- $query = "INSERT INTO ejms_levelx_people SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- }
- }
- /*******************************************************************/
- /*******************NEW ADMIN DATABASE QUERIES*********************/
- /*******************************************************************/
- public function get_admin_users($ccare = false) {
- $adminUserName = $_SESSION['username'];
- $usersList = array();
- $query = "SELECT Users.* FROM logicalGroups_V5 AS lg INNER JOIN Users ON lg.adminUserName = \"$adminUserName\" and lg.username = Users.username order by Users.username";
- $result = $this->dbclass->execute_query ( $query );
- $usersList = $this->dbclass->get_result_complete ();
- if ($usersList == "") {
- return false;
- }
- return $usersList;
- }
- /*
- public function get_fleetcare_users($ccare = false) {
- $adminUserName = $_SESSION['username'];
- $query = "SELECT Users.* FROM logicalGroups_V5 AS lg INNER JOIN Users ON lg.adminUserName = \"$adminUserName\" and lg.username = Users.username order by Users.username";
- $result = $this->dbclass->execute_query ( $query );
- $usersList = $this->dbclass->get_result_complete ();
- if ($usersList == "") {
- return false;
- }
- return $usersList;
- }*/
- public function getTrackerIDInAdmin ($username = false) {
- if(!$username)
- $username = $_SESSION['username'];
- $query = "SELECT trackerid FROM adminTrackersMap WHERE username = \"" . $username . "\"";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function getAllAdminTrackersList($username = false) {
- global $GMONGO;
- //if ($username != false && $username != null)
- //$result = $this->getTrackerIDInAdmin($username);
- /*else
- $result = $this->getTrackerIDInAdmin();*/
- if (!$username)
- $username = $_SESSION['username'];
- $query = "SELECT t.trackerid, name, imei, simno, searchKeywords, trackerExpiry, t.type, chassisNo, licensePlate FROM adminTrackersMap AS atm INNER JOIN trackers AS t USING (trackerid) INNER JOIN trackersExInfo USING (trackerid) INNER JOIN trackersDetails USING (trackerid) WHERE atm.username = \"$username\"";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- /*$trackersList = array();
- if ($result != false) {
- foreach ($result as $v){
- $query = "SELECT trackerid,name,imei,simno,searchKeywords,trackerExpiry,type FROM trackers inner join trackersExInfo using (trackerid) WHERE trackerid = ".$v['trackerid'];
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- if ($answer[0] !== NULL)
- array_push($trackersList, $answer[0]);
- }
- }
- $answer = $trackersList;*/
- if ($answer != false) {
- foreach ( $answer as $k => $v ) {
- $answer [$k] ['trackerExpiry'] = TrackerExpiry::checkExpiry ( $v ['trackerExpiry'] );
- $addKeywords = null;
- $query = "SELECT username FROM trackersMap WHERE trackerid=\"{$v['trackerid']}\"";
- $this->dbclass->execute_query ( $query );
- $users = $this->dbclass->get_result_complete();
- if ($users != false) {
- $arr = array_map(function($a){ return $a['username']; }, $users);
- $answer [$k] ['users'] = implode(",", $arr);
- }
- //$lastRecord = $GMONGO->getLastAMRecord($v['trackerid']);
- //$fdate->setTimestamp($lastRecord[0]['timestamp']);
- //$answer [$k] ['datetime'] = $fdate->getFormattedString();
- }
- }
- return $answer;
- }
- public function countAdminTrackers () {
- $query = "SELECT COUNT(*) FROM adminTrackersMap WHERE username = \"" . $_SESSION['username'] . "\"";
- $this->dbclass->execute_query ($query);
- $answer = $this->dbclass->get_result_complete($query);
- return $answer [0] ['COUNT(*)'];
- }
- public function countUserTrackers ($username = false) {
- if ($username == false)
- $username = $_SESSION['username'];
- $query = "SELECT COUNT(*) FROM trackersMap WHERE username = \"" . $username . "\"";
- $this->dbclass->execute_query ($query);
- $answer = $this->dbclass->get_result_complete($query);
- return $answer [0] ['COUNT(*)'];
- }
- //RETURNS LICENSES ALLOTED TO ADMIN BY SUPER USER
- public function getAdminLicenses ($username = false) {
- if (!$username)
- $username = $_SESSION['username'];
- $query = "SELECT licenses FROM licenses WHERE username = \"" . $username . "\"";
- $this->dbclass->execute_query ($query);
- $answer = $this->dbclass->get_result_complete ($query);
- return $answer;
- }
- public function get_users_list_POI() {
- $uname = $_SESSION['username'];
- $fields = "Users.username, Users.name, Users.company";
- $wClause = "Users.accounttype = " . USERTYPE_FLEET;
- //$query = "SELECT Users.username, Users.name, Users.company FROM logicalGroups_V5 INNER JOIN Users ON logicalGroups_V5.adminUserName = \"admin\" AND logicalGroups_V5.username = Users.username WHERE Users.accounttype = ".USERTYPE_FLEET." ORDER BY Users.username";
- $query = "SELECT $fields FROM logicalGroups_V5 INNER JOIN Users ON logicalGroups_V5.adminUserName = \"$uname\" AND logicalGroups_V5.username = Users.username WHERE ".$wClause." ORDER BY Users.username";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- /*******************************************************************/
- /*******************************************************************/
- /*******************************************************************/
- /*******************SUPER USER DATABASE QUERIES*********************/
- /*******************************************************************/
- public function getLicsAlloted ( $username = false ) { //this function logically incorrect have to correct it
- if (!$username) {
- $query = "SELECT COUNT(trackerid) FROM trackers";
- $this->dbclass->execute_query ( $query );
- return $this->dbclass->get_result_complete();
- }
- }
- public function getMongoDatabaseStats() {
- global $GMONGO;
- $query = "SELECT * FROM trackers";
- $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- $returnAnswer = new databaseCounting ();
- if ($answer == false) {
- $returnAnswer->eventRecords = 0;
- $returnAnswer->locationRecords = 0;
- return $returnAnswer;
- }
- $tracker_count = count ( $answer );
- for($i = 0; $i < $tracker_count; $i ++) {
- $cans = $GMONGO->countDocumentsInA($answer[$i]['trackerid']);
- if ($cans != false) {
- $returnAnswer->locationRecords += $cans;
- }
- $cans = $GMONGO->countDocumentsInE($answer[$i]['trackerid']);
- if ($cans != false) {
- $returnAnswer->eventRecords += $cans;
- }
- $cans = $GMONGO->countDocumentsInM($answer[$i]['trackerid']);
- if ($cans != false) {
- $returnAnswer->miscellaneousRecords += $cans;
- }
- }
- return $returnAnswer;
- } // function
- public function get_admin_users_list($ccare = false) {
- $fields = "*";
- $wClause = "accounttype = " . USERTYPE_ADMINISTRATOR . " OR accounttype = " . USERTYPE_CUSTOMERCARE;
- $query = "SELECT $fields FROM Users LEFT JOIN licenses USING(username) WHERE " . $wClause . " ORDER BY username";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- public function getLicenseInformation($username, $year) {
- $username = $this->dbclass->get_escape_string($username);
- $year = $this->dbclass->get_escape_string($year);
- /*if (isset($year) == false || $year == null) {
- //$query = "SELECT SUM(licenses) as lics, MONTHNAME(date) as month, YEAR(date) as year FROM licenseInfo Where username='$username' AND YEAR(date) = YEAR(NOW()) GROUP BY MONTHNAME(date), YEAR(date) ORDER BY MONTH(date)"; //for current year
- $query = "SELECT SUM(licenses) as lics, MONTHNAME(date) as month, YEAR(date) as year FROM licenseInfo Where username='$username' GROUP BY MONTHNAME(date), YEAR(date) ORDER BY MONTH(date)"; //for all year
- }else {
- $query = "SELECT SUM(licenses) as lics, MONTHNAME(date) as month, YEAR(date) as year FROM licenseInfo Where username='$username' AND YEAR(date) = '$year' GROUP BY MONTHNAME(date), YEAR(date) ORDER BY MONTH(date)";
- }*/
- $query = "SELECT licenseID, tCount, issueDate, creationDate, rate, comments, periodicity, tax, surcharge FROM licenseInfo AS li INNER JOIN paymentRecords AS pr ON li.username = '$username' AND li.licenseID = pr.recordID AND pr.typeId = 1 ORDER BY issueDate";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- return $result;
- }
- public function getIssuedLicenses () {
- $query = "SELECT SUM(licenses) FROM licenses";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- return $result;
- }
- public function escapePostData () {
- foreach ($_POST as $x => $y) {
- $_POST [$x] = $this->dbclass->get_escape_string($y);
- }
- }
- public function getLicenses ($licenseID) {
- $query = "SELECT licenses FROM licenseInfo WHERE licenseID = $licenseID";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- return $result [0] ['licenses'];
- }
- public function addLicenses () {
- $_POST['typeId'] = 1;
- $data = $this->insertPaymentRecord(true);
- $query = "INSERT INTO licenseInfo SET username = '".$data['username']."', licenseID = ".$data['recordID'].", licenses = ".$data['tCount'];
- $this->dbclass->execute_query($query);
- $query = "INSERT INTO licenses SET username = '".$data['username']."', licenses = '".$data['tCount']."' ON DUPLICATE KEY UPDATE licenses = licenses + ".$data['tCount'];
- $this->dbclass->execute_query($query);
- $result ['licenseID'] = $data ['recordID'];
- $result ['creationDate'] = $data ['creationDate'];
- return $result;
- }
- //public function modifyLicenses ($iDate) {
- public function modifyLicenses () {
- $_POST['typeId'] = 1;
- $_POST['recordID'] = $_POST ['licenseID'];
- unset($_POST ['licenseID']);
- $amount = $this->updatePaymentRecord(true);
- $username = $_POST['username'];
- //$licenseID = $_POST['licenseID'];
- $licenseID = $_POST['recordID'];
- $licenses = $_POST['tCount'];
- $issueDate = $_POST['issueDate'];
- $rate = $_POST['rate'];
- $comments = $_POST['comments'];
- $periodicity = $_POST['periodicity'];
- $cul = $this->getLicenses ($licenseID);
- $query = "UPDATE licenseInfo SET licenses = $licenses WHERE username = '$username' AND licenseID = $licenseID";
- $this->dbclass->execute_query($query);
- if ($_POST['periodicity'] == 0) {
- $query = "DELETE FROM paymentHistory WHERE typeId = 1 AND recordID = $licenseID AND isPaid = 0";
- $this->dbclass->execute_query($query);
- } else {
- $query = "SELECT * FROM paymentHistory WHERE typeId = 1 AND recordID = $licenseID AND isPaid = 0";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- if (!$result) {
- $query = "INSERT INTO paymentHistory SET typeId = 1, recordID = $licenseID, date = '$issueDate', amount = $amount, isPaid = 0";
- $this->dbclass->execute_query($query);
- }
- }
- $licenses -= $cul;
- $query = "UPDATE licenses SET licenses = licenses + $licenses WHERE username = '$username'";
- $this->dbclass->execute_query($query);
- //echo "\r\n".$query;
- //$query = "SELECT licenseID, creationDate FROM licenseInfo WHERE licenseID = ".$licenseID;
- $query = "SELECT recordID as licenseID, creationDate FROM paymentRecords WHERE recordID = $licenseID AND typeId = 1";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- return $result[0];
- }
- public function removeLicenses ($username, $licenseID) {
- $username = $this->dbclass->get_escape_string($username);
- $licenses = $this->getLicenses($licenseID);
- $query = "DELETE FROM licenseInfo WHERE username = '$username' AND licenseID = $licenseID";
- $this->dbclass->execute_query($query);
- $query = "DELETE FROM paymentRecords WHERE username = '$username' AND recordID = $licenseID AND typeId = 1";
- $this->dbclass->execute_query($query);
- $query = "UPDATE licenses SET licenses = licenses - $licenses WHERE username = '$username'";
- $this->dbclass->execute_query($query);
- $query = "DELETE FROM paymentHistory WHERE recordID = $licenseID, typeId = 1";
- $this->dbclass->execute_query($query);
- return;
- }
- public function getUserLicenses ($username) {
- $username = $this->dbclass->get_escape_string($username);
- $query = "SELECT licenses FROM licenses WHERE username = '$username'";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- return $result [0] ['licenses'];
- }
- //RETURNS LIST OF USER TYPE ADMINISTRATOR
- public function getAdminUserName () {
- $query = "SELECT username FROM Users WHERE accounttype = ".USERTYPE_ADMINISTRATOR;
- $this->dbclass->execute_query($query);
- $ans = $this->dbclass->get_result_complete();
- return $ans;
- }
- public function getAdminOfUSer ($user = false) {
- if ($user)
- $user = $this->dbclass->get_escape_string($user);
- else
- $user = $this->dbclass->get_escape_string($_SESSION['username']);
- $query = "SELECT adminUserName FROM logicalGroups_V5 WHERE username = '{$user}'";
- $result = $this->dbclass->execute_query($query);
- if ($result) {
- $ans = $this->dbclass->get_result_complete();
- return $ans[0]['adminUserName'];
- }
- return false;
- }
- //RETURNS LIST OF PAYMENT TYPE WITH THEIR typeId
- public function getPaymentType () {
- if ($_SESSION['username'] == 'root')
- $query = "SELECT * FROM paymentType";
- else if ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR)
- $query = "SELECT * FROM adminPaymentType WHERE adminUserName = '".$_SESSION['username']."'";
- $this->dbclass->execute_query ( $query );
- $ans = $this->dbclass->get_result_complete();
- return $ans;
- }
- //ADD CUSTOM PAYMENT TYPE IN paymentType TABLE
- public function addPaymentType () {
- $pType = $this->dbclass->get_escape_string($_POST['pType']);
- if ($_SESSION['username'] == 'root')
- $query = "INSERT INTO paymentType set pType = '$pType'";
- else if ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR)
- $query = "INSERT INTO adminPaymentType set pType = '$pType'";
- $this->dbclass->execute_query ( $query );
- }
- //RETURNS LICENSE INFO OF A USER OF TYPE ADMIN
- public function getUserLicInfo ($username) { //NAME OF THE FUNCTIONS NEED TO BE CHANGED, IT IS NOT MATCHING ITS FUNCTIONALITY
- $username = $this->dbclass->get_escape_string($username);
- $typeId = $this->dbclass->get_escape_string($_POST['typeId']);
- $ans =array();
- if ($typeId == 1){
- $query = "SELECT licenseInfo.username, licenses as tCount, DATE(date) as sdate, licenseInfo.rate, licenseID as recordID, comments FROM licenseInfo ";
- $query .= "LEFT OUTER JOIN paymentRecords ON licenseInfo.licenseId = paymentRecords.recordId AND paymentRecords.typeId = 1 WHERE paymentRecords.recordID IS NULL AND licenseInfo.username = '$username' ORDER BY DATE(date)";
- $this->dbclass->execute_query($query);
- $new = $this->dbclass->get_result_complete();
- $query = "SELECT * FROM paymentRecords WHERE typeId = 1 AND username = '$username' ORDER BY sdate";
- //$query = "SELECT paymentRecords.* FROM paymentRecords INNER JOIN licenseInfo ON paymentRecords.recordID = licenseInfo.licenseID AND paymentRecords.typeId = 1 AND paymentRecords.username = '$username' ORDER BY sdate";
- //$query = "SELECT licenses, DATE(date) as date, rate, licenseID as recordID, comments FROM licenseInfo WHERE username = '$username' ORDER BY DATE(date)";
- $this->dbclass->execute_query($query);
- $present = $this->dbclass->get_result_complete();
- $ans ['new'] = $new;
- $ans ['present'] = $present;
- return $ans;
- }
- //$query = "SELECT licenseInfo.licenses, licenseInfo.DATE(date) as date, licenseInfo.rate, licenseInfo.licenseID as recordID, licenseInfo.comments FROM licenseInfo WHERE username = '$username' ORDER BY DATE(date)";
- //$query = "SELECT paymentRecords.* FROM paymentRecords INNER JOIN licenseInfo ON paymentRecords.recordID = licenseInfo.licenseID AND paymentRecords.typeId = $typeId ORDER BY sdate";
- $query = "SELECT * FROM paymentRecords WHERE username = '$username' AND typeId = $typeId ORDER BY sdate";
- //$query = "SELECT licenses, DATE(date) as date, rate, licenseID as recordID, comments FROM licenseInfo WHERE username = '$username' ORDER BY DATE(date)";
- $this->dbclass->execute_query($query);
- $present = $this->dbclass->get_result_complete();
- $ans ['new'] = false;
- $ans ['present'] = $present;
- return $ans;
- }
- //INSERT NEW PAYMENT RECORD IN TABLE paymentRecords
- public function insertPaymentRecord ($license = false) {
- $check = true;
- $query = "INSERT INTO paymentRecords SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest();
- $this->dbclass->execute_query($query);
- $fields = "typeId, recordID, issueDate, periodicity, creationDate, updationDate";
- if ($license) {
- $fields .= ", username, tCount";
- $check = false;
- }
- //$query = "SELECT typeId, recordID, issueDate, periodicity, creationDate, updationDate FROM paymentRecords WHERE ";
- $query = "SELECT $fields FROM paymentRecords WHERE ";
- $query .= basicTransactions::prepareMySQL_POSTRequest('AND');
- $this->dbclass->execute_query($query);
- $ans = $this->dbclass->get_result_complete();
- //echo $query;
- if (($license && $_POST['periodicity'] > 0) || $check) {
- $amount = $_POST['tCount'] * $_POST['rate'];
- $t = json_decode($_POST['tax'], true);
- $tax = 0;
- foreach ($t as $k => $v) {
- $tax += $v;
- }
- $amount = ($amount * ($tax + 100)) / 100;
- $schrge = json_decode($_POST['surcharge'], true);
- foreach ($schrge as $k => $v) {
- $amount += $v;
- }
- $query = "INSERT INTO paymentHistory SET recordID = " . $ans [0] ['recordID'] . ", date = '" . $ans [0] ['issueDate'] . "', typeId = " . $ans [0] ['typeId'] . ", amount = $amount";
- $this->dbclass->execute_query($query);
- $data ['amount'] = $amount;
- $data ['recordID'] = $ans [0] ['recordID'];
- $data ['creationDate'] = $ans [0] ['creationDate'];
- $data ['updationDate'] = $ans [0] ['updationDate'];
- $data ['date'] = $ans [0] ['issueDate'];
- $newDate = new FNSDateTime($_SESSION ['timezone']);
- $newDate->setUTCDate($data ['issueDate'], 0);
- $newDate->addMonth($ans [0] ['periodicity']);
- $data ['edate'] = $newDate->dateTime->format('Y-m-d');
- }
- if ($license)
- return $ans [0];
- return $data;
- }
- public function updatePaymentRecord ($license = false) {
- //$this->escapePostData();
- $check = true;
- $query = "UPDATE paymentRecords SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest();
- $query .= " WHERE username = '".$_POST['username']."' AND typeId = ".$_POST['typeId']." AND recordID = ".$_POST['recordID'];
- $this->dbclass->execute_query($query);
- if ($license) {
- $check = false;
- }
- if (($license && $_POST['periodicity'] > 0) || $check) {
- $amount = $_POST['tCount'] * $_POST['rate'];
- $t = json_decode($_POST['tax'], true);
- $tax = 0;
- foreach ($t as $k => $v) {
- $tax += $v;
- }
- $amount = ($amount * ($tax + 100)) / 100;
- $schrge = json_decode($_POST['surcharge'], true);
- foreach ($schrge as $k => $v) {
- $amount += $v;
- }
- $query = "UPDATE paymentHistory set amount = $amount WHERE recordID = " . $_POST['recordID'] . " AND typeId = " . $_POST['typeId'] . " AND isPaid = 0";
- $this->dbclass->execute_query($query);
- if (!$check && $license)
- return $amount;
- }
- if ($license)
- return;
- /*if ($_POST['typeId'] == 1) {
- $query = "UPDATE licenseInfo SET issueDate = '".$_POST['sdate']."', rate = ".$_POST['rate']." WHERE username = '".$_POST['username']."' AND licenseID = ".$_POST['recordID'];
- $this->dbclass->execute_query($query);
- }*/
- //$query = "SELECT sdate AS date, periodicity FROM paymentRecords WHERE username = '".$_POST['username']."' AND typeId = ".$_POST['typeId']." AND recordID = ".$_POST['recordID'];
- $query = "SELECT pR.*, pH.date, pH.amount FROM paymentRecords as pR INNER JOIN paymentHistory as pH ON pR.username = '".$_POST['username']."' AND pR.recordID = ".$_POST['recordID']." AND pR.typeID = ".$_POST['typeId']." AND pR.recordID = pH.recordID AND pR.typeId = pH.typeId AND pH.isPaid = 0";
- $this->dbclass->execute_query($query);
- $ans = $this->dbclass->get_result_complete();
- $date = $ans [0] ['date'];
- $newDate = new FNSDateTime( $_SESSION ['timezone'] );
- $newDate->setUTCDate($date, 0);
- $newDate->addMonth($ans [0] ['periodicity']);
- $ans [0] ['edate'] = $newDate->dateTime->format('Y-m-d');
- return $ans;
- }
- public function removePaymentRecord () {
- $this->escapePostData();
- if ($_POST['typeID'] != 1){
- $query = "DELETE FROM paymentRecords WHERE username = '".$_POST['username']."' AND typeId = ".$_POST['typeId']." AND recordID = ".$_POST['recordID'];
- $this->dbclass->execute_query($query);
- $query = "DELETE FROM paymentHistory WHERE typeId = ".$_POST['typeId']." AND recordID = ".$_POST['recordID']." AND isPaid = 0";
- $this->dbclass->execute_query($query);
- return SUCCESS;
- }
- return ERROR;
- }
- /*public function dateFormat ($date, $format) {
- $dt = new FNSDateTime( $_SESSION['timezone'] );
- $dt->setUTCDate($date, 0);
- return $dt->dateTime->format($format);
- }*/
- //RETURNS THE PAYMENT RECORDS PRESENT IN TABLE paymentRecords
- public function getPaymentRecords ($username, $fields = '*') {
- $username = $this->dbclass->get_escape_string($username);
- $ans = array();
- $query = "SELECT pR.*, pH.date, pH.amount FROM paymentRecords as pR INNER JOIN paymentHistory as pH ON pR.username = '$username' AND pR.recordID = pH.recordID AND pR.typeId = pH.typeId AND pH.isPaid = 0";
- $this->dbclass->execute_query($query);
- $ans['np'] = $this->dbclass->get_result_complete();
- foreach ($ans['np'] as $x => $v) {
- $newDate = new FNSDateTime( $_SESSION ['timezone'] );
- $newDate->setUTCDate($ans['np'][$x] ['date'], 0);
- $newDate->addMonth($ans['np'][$x] ['periodicity']);
- $ans['np'][$x] ['edate'] = $newDate->dateTime->format('Y-m-d');
- }
- $query = "SELECT pR.*, pH.date, pH.amount, pH.amtRecv, pH.amtRecOn FROM paymentRecords as pR INNER JOIN paymentHistory as pH ON pR.username = '$username' AND pR.recordID = pH.recordID AND pR.typeId = pH.typeId AND pH.isPaid = 1";
- $this->dbclass->execute_query($query);
- $ans['paid'] = $this->dbclass->get_result_complete();
- foreach ($ans['paid'] as $x => $v) {
- $newDate = new FNSDateTime( $_SESSION ['timezone'] );
- $newDate->setUTCDate($ans['paid'][$x] ['date'], 0);
- $newDate->addMonth($ans['paid'][$x] ['periodicity']);
- $ans['paid'][$x] ['edate'] = $newDate->dateTime->format('d-m-Y');
- $ans['paid'][$x]['amtDue'] = $ans['paid'][$x]['amount'] - $ans['paid'][$x]['amtRecv'];
- }
- return $ans;
- }
- public function getPaymentRecordID ($fields = '*') {
- $query = "SELECT recordID, sdate FROM paymentRecords WHERE ";
- $query .= basicTransactions::prepareMySQL_POSTRequest('AND');
- echo $query;
- $this->dbclass->execute_query($query);
- $ans = $this->dbclass->get_result_complete();
- echo "<br>";
- print_r($ans);
- $query = "INSERT INTO paymentHistory SET recordID = '".$ans [0] ['recordID']."', date = '".$ans [0] ['sdate']."'";
- $this->dbclass->execute_query($query);
- echo "<br>".$query;
- die;
- return $ans [0] ['recordID'];
- }
- public function paymentApproved ()
- {
- $recordID = $this->dbclass->get_escape_string($_POST['recordID']);
- $date = $this->dbclass->get_escape_string($_POST['date']);
- $typeId = $this->dbclass->get_escape_string($_POST['typeId']);
- $amtRecv = $this->dbclass->get_escape_string($_POST['amtRecv']);
- $amtRecOn = $this->dbclass->get_escape_string($_POST['amtRecOn']);
- $status = $this->dbclass->get_escape_string($_POST['status']);
- if ($status == 'due') {
- $query = "UPDATE paymentHistory set amtRecv = $amtRecv, amtRecOn = '$amtRecOn', isPaid = 1 WHERE recordID = $recordID AND date = '$date' AND typeId = $typeId";
- $this->dbclass->execute_query($query);
- }
- else {
- $periodicity = $this->dbclass->get_escape_string($_POST['periodicity']);
- $query = "UPDATE paymentHistory set amtRecv = '$amtRecv', amtRecOn = '$amtRecOn', isPaid = 1 WHERE recordID = $recordID AND date = '$date' AND typeId = $typeId";
- $this->dbclass->execute_query($query);
- //echo $query."\r\n";
- $query = "SELECT recordID, date, typeId, amount FROM paymentHistory where recordID = $recordID AND date = '$date' AND isPaid = 1 AND typeId = $typeId";
- $this->dbclass->execute_query($query);
- $ans = $this->dbclass->get_result_complete();
- $newDate = new FNSDateTime($_SESSION ['timezone']);
- $newDate->setUTCDate($ans [0] ['date'], 0);
- $newDate->addMonth($periodicity);
- $dt = $newDate->dateTime->format('Y-m-d');
- $query = "INSERT INTO paymentHistory SET recordID = " . $ans [0] ['recordID'] . ", date = '" . $dt . "', typeId = " . $ans [0] ['typeId'] . ", amount = " . $ans [0] ['amount'];
- $this->dbclass->execute_query($query);
- }
- }
- public function getPaymentRecordsReport ($typeId, $uname) {
- //$uname = $this->dbclass->get_escape_string($_POST['username']);
- $pr = array();
- $query = "SELECT pr.recordID, pr.typeId, pr.rate, pr.periodicity, pr.tax, pr.surcharge, pr.tCount, ph.date FROM paymentRecords AS pr INNER JOIN paymentHistory AS ph ON pr.username = '$uname' AND pr.typeId = $typeId AND pr.typeID = ph.typeId AND pr.recordId = ph.recordId AND ph.isPaid = 1";
- $this->dbclass->execute_query($query);
- $pr ['paid'] = $this->dbclass->get_result_complete();
- //echo $query;
- $query = "SELECT pr.recordID, pr.typeId, pr.rate, pr.periodicity, pr.tax, pr.tCount, ph.date FROM paymentRecords AS pr INNER JOIN paymentHistory AS ph ON pr.username = '$uname' AND pr.typeId = $typeId AND pr.typeID = ph.typeId AND pr.recordId = ph.recordId AND ph.isPaid = 0";
- $this->dbclass->execute_query($query);
- $pr ['np'] = $this->dbclass->get_result_complete();
- return $pr;
- }
- public function sendMessage () {
- global $GMONGO;
- $sender = $_SESSION['username'];
- $receiver = $this->dbclass->get_escape_string($_POST['receiver']);
- $msg = $this->dbclass->get_escape_string($_POST['message']);
- if (strlen($msg) > 0) {
- $record = array('sender' => $sender, 'receiver' => $receiver, 'sent' => true, 'received' => false, 'message' => $msg, 'timestamp' => time(), 'isRead' => false);
- $GMONGO -> insertRecord('messages', $record);
- //$GMONGO->checkIndex('messages', array('timestamp' => 1, 'timestamp'=> -1), false);
- } else
- return ERROR;
- }
- public function getMessages ($sender = false, $limit = false, $lastMessage = false) {
- global $GMONGO;
- $sender = $this->dbclass->get_escape_string($sender);
- $receiver = $_SESSION['username'];
- if ($receiver != false) {
- $receiver = $this->dbclass->get_escape_string($receiver);
- if (!$lastMessage)
- $options = array('sender' => $sender, 'receiver' => $receiver, 'isRead' => false);
- elseif ($lastMessage)
- $options = array('sender' => $sender, 'receiver' => $receiver);
- } else
- $options = array('sender' => $sender, 'isRead' => false);
- $sort = array('timestamp' => -1);
- //$ans = $GMONGO -> getRecords('messages', $options, $sort);
- $ans = $GMONGO -> getRecords('messages', $options, $sort, $limit);
- return $ans;
- }
- public function getNewMessages () {
- global $GMONGO;
- $receiver = $_SESSION['username'];
- $options = array('receiver' => $receiver, 'isRead' => false);
- //$sort = array('timestamp' => -1);
- //$ans = $GMONGO -> getRecords('messages', $options, $sort);
- $ans = $GMONGO -> getRecords('messages', $options);
- return $ans;
- }
- public function getChatUsers () {
- switch ($_SESSION ['accounttype']) {
- case USERTYPE_ADMINISTRATOR:
- $query = "SELECT username FROM logicalGroups_V5 WHERE adminUserName = '".$_SESSION['username']."'";
- break;
- case USERTYPE_CUSTOMERCARE:
- $query = "SELECT username FROM Users WHERE accounttype = ".USERTYPE_FLEET." OR accounttype = ".USERTYPE_ADMINISTRATOR;
- break;
- case USERTYPE_FLEETCARE:
- $QUERY = "SELECT * from logicalGroups_V5 WHERE username = '".$_SESSION['username']."'" ;
- $result = $this->dbclass->execute_query ( $QUERY );
- $un = $this -> dbclass -> get_result_complete();
- $query = "SELECT username FROM logicalGroups_V5 WHERE adminUserName = '".$un [0] ['adminUserName']."' AND accounttype = ".USERTYPE_FLEET;
- break;
- case USERTYPE_FLEET:
- $list = array();
- $QUERY = "SELECT * from logicalGroups_V5 WHERE username = '".$_SESSION['username']."'" ;
- $result = $this->dbclass->execute_query ( $QUERY );
- $un = $this -> dbclass -> get_result_complete();
- $list [0] ['username'] = $un [0] ['adminUserName'];
- $query = "SELECT username FROM logicalGroups_V5 WHERE adminUserName = '".$un [0] ['adminUserName']."' AND accounttype = ".USERTYPE_FLEETCARE;
- $this->dbclass->execute_query($query);
- $ans = $this->dbclass->get_result_complete();
- if (isset($ans) && $ans != false)
- $list = array_merge($list, $ans);
- $query = "SELECT username FROM Users WHERE accounttype = ".USERTYPE_CUSTOMERCARE;
- $this->dbclass->execute_query($query);
- $ans = $this->dbclass->get_result_complete();
- if (isset($ans) && $ans != false)
- $list = array_merge($list, $ans);
- return $list;
- }
- /*if ($_SESSION ['accounttype'] == USERTYPE_ADMINISTRATOR)
- $query = "SELECT username FROM logicalGroups_V5 WHERE adminUserName = '".$_SESSION['username']."'";
- else if ($_SESSION ['accounttype'] == USERTYPE_CUSTOMERCARE)
- $query = "SELECT username FROM Users WHERE accounttype = ".USERTYPE_FLEET." OR accounttype = ".USERTYPE_ADMINISTRATOR;
- else if ($_SESSION ['accounttype'] == USERTYPE_FLEETCARE) {
- $QUERY = "SELECT * from logicalGroups_V5 WHERE username = '".$_SESSION['username']."'" ;
- $result = $this->dbclass->execute_query ( $QUERY );
- $un = $this -> dbclass -> get_result_complete();
- $query = "SELECT username FROM logicalGroups_V5 WHERE adminUserName = '".$un [0] ['adminUserName']."' AND accounttype = ".USERTYPE_FLEET;
- }*/
- $this->dbclass->execute_query($query);
- $ans = $this->dbclass->get_result_complete();
- return $ans;
- }
- /*******************************************************************/
- /*******************************************************************/
- //For Maliatec API
- public function getTrackerIDFromName ($tname) {
- $query = "SELECT trackerid FROM trackers WHERE name = '$tname'";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- if ($result)
- return $result [0] ['trackerid'];
- else
- return $result;
- }
- //Returns last sync date and time, used in Maliatec Mobile Computer
- public function lastSyncDateTime () {
- $query = "SELECT * FROM lastSyncDateTime";
- $this->dbclass->execute_query($query);
- $ans = $this->dbclass->get_result_complete($query);
- return $ans [0] ['dateTime'];
- }
- public function updateLastSyncDateTime ($dt) {
- $query = "UPDATE lastSyncDateTime SET dateTime = '$dt'";
- $this->dbclass->execute_query($query);
- }
- public function insertIntoAEM ($tid, $data) {
- $query = "INSERT INTO A{$tid} SET date = '".$data['date']."', time = ".$data['time'].", latitude = ".$data['latitude'].", longitude = ".$data['longitude'].", ";
- $query .= "speed = 0, direction = 0, pdatetime = timestamp(\"".$data['dateTime']."\")";
- $this->dbclass->execute_query($query);
- }
- public function getTrackerID () {
- $query = "SELECT trackerid FROM trackers";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- return $result;
- }
- /*Maliatec Mobile Computer End*/
- /*Maliatec Eduvation*/
- public function insertBusSchedule () {
- $query = "REPLACE INTO busSchedules SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- return $this->dbclass->execute_query($query);
- }
- public function getBusSchedule ($username) {
- $query = "SELECT * FROM busSchedules WHERE username = '".$username."'";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- return $result;
- }
- public function getLatestAlertsList ($fields = false) {
- if ($fields == false)
- $fields = '*';
- if ($_SESSION['accounttype'] == USERTYPE_ADMINISTRATOR )
- $query = "SELECT $fields FROM adminTrackersMap LEFT JOIN EGLOBAL ON trackerid = tid WHERE username = '".$_SESSION['username']."'";
- else if ($_SESSION['accounttype'] == USERTYPE_FLEET)
- $query = "SELECT $fields FROM trackersMap LEFT JOIN EGLOBAL ON trackerid = tid WHERE username = '".$_SESSION['username']."'";
- else if ($_SESSION['accounttype'] == USERTYPE_CUSTOMERCARE)
- $query = "SELECT $fields FROM trackers LEFT JOIN EGLOBAL ON trackerid = tid";
- else if ($_SESSION['accounttype'] == USERTYPE_FLEETCARE) {
- $QUERY = "SELECT adminUserName from logicalGroups_V5 WHERE username = '".$_SESSION['username']."'" ;
- $result = $this->dbclass->execute_query ( $QUERY );
- $un = $this -> dbclass -> get_result_complete();
- $query = "SELECT * FROM adminTrackersMap LEFT JOIN EGLOBAL ON trackerid = tid WHERE username = '".$un[0]['adminUserName']."'";
- }
- $this -> dbclass -> execute_query($query);
- $result = $this -> dbclass -> get_result_complete();
- return $result;
- }
- /*****FOR MIGRATION FROM MySQL TO MongoDB*****/
- public function getARecords ($tid) {
- $query = "SELECT * FROM A{$tid} WHERE (date = '2015-09-01' AND time >= 0) OR (date >= '2015-09-01') ORDER BY date, time" ;
- return $this -> dbclass ->execute_query($query);
- //$result = $this -> dbclass -> get_result_complete();
- //return $result;
- }
- public function getERecords ($tid) {
- $query = "SELECT * FROM E{$tid} WHERE (date = '2015-09-01' AND time >= 0) OR (date >= '2015-09-01') ORDER BY date, time" ;
- return $this -> dbclass ->execute_query($query);
- //$result = $this -> dbclass -> get_result_complete();
- //return $result;
- }
- public function getAMRecords ($tid) {
- /*$query = "CREATE INDEX dateTime on A{$tid} (date,time)";
- $this -> dbclass -> execute_query($query);
- $query = "CREATE INDEX dateTime on M{$tid} (date,time)";
- $this -> dbclass -> execute_query($query);*/
- $query = "SELECT * FROM M{$tid} LEFT JOIN A{$tid} USING (date, time) WHERE (date = '2015-09-01' AND time >= 0) OR (date >= '2015-09-01') ORDER BY date, time" ;
- return $this -> dbclass ->execute_query($query);
- //$result = $this -> dbclass -> get_result_complete();
- //return $result;
- }
- public function getResultRow () {
- return $this->dbclass->get_result_row();
- }
- /************************************************************/
- /*******************************************************************/
- /*******************FLEETCARE QUERIES*********************/
- /*******************************************************************/
- public function fleetcare_get_users_list () {
- $fields = "username,name,company,mobile,email,city,country,reseller";
- $wClause = "accounttype = " . USERTYPE_FLEET;
- $query = "SELECT * from logicalGroups_V5 WHERE username = '".$_SESSION['username']."'" ;
- $result = $this->dbclass->execute_query ( $query );
- $un = $this -> dbclass -> get_result_complete();
- $query = "SELECT $fields FROM logicalGroups_V5 INNER JOIN Users USING (username) WHERE adminUserName = '".$un [0] ['adminUserName']."' AND Users.accounttype = ".USERTYPE_FLEET;
- //$query = "SELECT $fields FROM Users WHERE " . $wClause . " ORDER BY name";
- $result = $this->dbclass->execute_query ( $query );
- $answer = $this->dbclass->get_result_complete ();
- return $answer;
- }
- /*******************************************************************/
- /*******************************************************************/
- /*public function insertIntoA ($tid, $data) {
- $query = "INSERT INTO A{$tid} SET date = '".$data['date']."', time = ".$data['time'].", latitude = ".$data['latitude'].", longitude = ".$data['longitude'].", ";
- $query .= "speed = ".$data['speed'].", direction = ".$data['direction'].", pdatetime = timestamp(\"".$data['dateTime']."\")";
- $this->dbclass->execute_query($query);
- }
- public function insertIntoE ($tid, $data) {
- $query = "INSERT INTO E{$tid} SET date = '".$data['date']."', time = ".$data['time'].", latitude = ".$data['latitude'].", longitude = ".$data['longitude'].", ";
- $query .= "speed = ".$data['speed'].", direction = ".$data['direction'].", event = ".$data['event'].", description = ".$data['description'].", pdatetime = timestamp(\"".$data['dateTime']."\")";
- $this->dbclass->execute_query($query);
- }
- public function insertIntoM ($tid, $data) {
- $query = "INSERT INTO M{$tid} SET date = '".$data['date']."', time = ".$data['time'].", odometer = ".$data['odometer'].", private = ".$data['private'].", IO = '".$data['IO']."', misc = '".$data['misc']."', driverID = '".$data['driverID']."', ";
- $query .= "siteID = '".$data['siteID']."', fuel1 = ".$data['fuel1'].", fuel2 = ".$data['fuel2'].", fuel3 = ".$data['fuel3'].", fuel4 = ".$data['fuel4'].", fuel5 = ".$data['fuel5'].", temperature1 = ".$data['temperature1'].", ";
- $query .= "temperature2 = ".$data['temperature2'].", temperature3 = ".$data['temperature3'].", temperature4 = ".$data['temperature4'].", temperature5 = ".$data['temperature5'].", ";
- //$query .= "speed = ".$data['speed'].", direction = ".$data['direction'].", pdatetime = timestamp(\"".$data['dateTime']."\")";
- $this->dbclass->execute_query($query);
- }*/
- public function createAEM ($tid) {
- $query = "CREATE TABLE A{$tid} like dataTable";
- $result = $this->dbclass->execute_query ( $query );
- $query = "CREATE TABLE E{$tid} like eventsTable";
- $result = $this->dbclass->execute_query ( $query );
- $query = "CREATE TABLE M{$tid} like miscTable";
- $result = $this->dbclass->execute_query ( $query );
- }
- public function insertIntoMAGlobals ($trackerRecord) {
- $query = "INSERT INTO MAGLOBALS SET ";
- $initial = true;
- foreach ($trackerRecord as $k => $v) {
- if ($initial == true)
- {
- $initial = false;
- }else {
- $query .= ", ";
- }
- $query .= $k ." = \"".$this->dbclass->get_escape_string($v)."\"";
- }
- $this->dbclass->execute_query($query);
- //$query = "INSERT INTO MAGLOBALS SET ".basicTransactions::prepareMySQL_POSTRequest($_POST);
- echo $query;
- }
- public function insertIntoAGlobals ($trackerRecord) {
- $query = "INSERT INTO AGLOBALS SET ";
- $initial = true;
- foreach ($trackerRecord as $k => $v) {
- if ($initial == true)
- {
- $initial = false;
- }else {
- $query .= ", ";
- }
- $query .= $k ." = \"".$this->dbclass->get_escape_string($v)."\"";
- }
- $this->dbclass->execute_query($query);
- //$query = "INSERT INTO MAGLOBALS SET ".basicTransactions::prepareMySQL_POSTRequest($_POST);
- echo $query;
- }
- public function getTrackerMARecord ($trackerid) {
- $query = "SELECT * FROM MAGLOBALS WHERE trackerid = '".$trackerid."'";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- return $result;
- }
- public function getTrackerARecord ($trackerid) {
- $query = "SELECT * FROM AGLOBALS WHERE trackerid = '".$trackerid."'";
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- return $result;
- }
- public function getTrackerIDFromSearchKeywords ($keyword) {
- $query = "SELECT trackerid FROM trackersExInfo WHERE searchKeywords LIKE '".$keyword."'";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete($query);
- }
- public function getLastSentRecordId ($trackerid) {
- $query = "SELECT * FROM sentRecordId WHERE trackerid = '".$trackerid."'";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete();
- }
- public function updateLastSentMiscRecordId ($trackerid, $miscRecordId) {
- //$query = "INSERT INTO sentRecordId UPDATE sentRecordId SET miscRecordId = $miscRecordId WHERE trackerid = '".$trackerid."'";
- $query = "INSERT INTO sentRecordId SET miscRecordId = $miscRecordId, trackerid = '".$trackerid."' ON DUPLICATE KEY UPDATE miscRecordId = $miscRecordId";
- return $this->dbclass->execute_query($query);
- }
- public function updateLastSentEventRecordId ($trackerid, $eventsRecordId) {
- //$query = "UPDATE sentRecordId SET eventsRecordId = $eventsRecordId WHERE trackerid = '".$trackerid."'";
- $query = "INSERT INTO sentRecordId SET eventsRecordId = $eventsRecordId, trackerid = '".$trackerid."' ON DUPLICATE KEY UPDATE eventsRecordId = $eventsRecordId";
- return $this->dbclass->execute_query($query);
- }
- public function getARecordsFromRecordId ($trackerid, $recordId) {
- $query = "SELECT * FROM A{$trackerid} WHERE id > $recordId ORDER BY id";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete();
- }
- public function getERecordsFromRecordId ($trackerid, $recordId) {
- $query = "SELECT * FROM E{$trackerid} WHERE id > $recordId ORDER BY id";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete();
- }
- public function getMRecordsFromRecordId ($trackerid, $recordId) {
- $query = "SELECT * FROM M{$trackerid} WHERE id > $recordId ORDER BY id";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete();
- }
- public function getARecord ($trackerid, $date, $time) {
- $query = "SELECT * FROM A{$trackerid} WHERE date = '$date' AND time = $time";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete();
- }
- public function getMRecord ($trackerid, $date, $time) {
- $query = "SELECT * FROM M{$trackerid} WHERE date = '$date' AND time = $time";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete();
- }
- public function getLastMRecordFromId ($trackerid) {
- $query = "SELECT * from M{$trackerid} ORDER BY id DESC LIMIT 0, 1";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete();
- }
- public function getLastERecordFromId ($trackerid) {
- $query = "SELECT * from E{$trackerid} ORDER BY id DESC LIMIT 0, 1";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete();
- }
- //public function saveLogisticSchedule ($username, $trackerid, $datePeriod) {
- public function saveLogisticSchedule () {
- $_POST['username'] = $_SESSION['username'];
- $query = "INSERT INTO logisticScheduler SET ";
- $query .= basicTransactions::prepareMySQL_POSTRequest ();
- $result = $this->dbclass->execute_query ( $query );
- return $result;
- }
- /*public function removeLogisticSchedule ($id) {
- $query = "DELETE FROM logisticScheduler WHERE id = $id";
- $result = $this->dbclass->execute_query ( $query );
- return $result;
- }*/
- public function getReportLogisticSchedule ($username, $trackerid, $datePeriod) {
- $query = "SELECT * FROM logisticScheduler WHERE username = '".$username."' AND trackerid = '".$trackerid."'";
- $query .= " AND stimestamp >= ".$datePeriod['stimestamp']." AND etimestamp <= ".$datePeriod['etimestamp'];
- //echo $query;
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- return $result;
- }
- public function getLogisticSchedule ($username) {
- /*$query = "SELECT * FROM logisticScheduler WHERE username = '".$username."' AND trackerid = '".$trackerid."'";
- $query .= " AND stimestamp >= ".$datePeriod['stimestamp']." AND etimestamp <= ".$datePeriod['etimestamp'];*/
- $query = "SELECT * FROM logisticScheduler WHERE username = '".$username."'";
- //echo $query;
- $this->dbclass->execute_query($query);
- $result = $this->dbclass->get_result_complete();
- return $result;
- }
- public function removeLogisticSchedule ($id) {
- $id = $this->dbclass->get_escape_string($id);
- $query = "DELETE FROM logisticScheduler WHERE id = $id";
- $result = $this->dbclass->execute_query($query);
- return $result;
- }
- public function insertIntoTrackersGallery ($imageData) {
- foreach ($imageData as $k => $v) {
- $imageData[$k] = $this->dbclass->get_escape_string($v);
- }
- //$query = "INSERT INTO trackersGallery SET trackerid = '".$imageData['trackerid']."', name = '".$imageData['name']."', description = '".$imageData['description']."'";
- $query = "INSERT INTO trackersGallery SET trackerid = '".$imageData['trackerid']."', name = '".$imageData['name']."', type = '".$imageData['type']."', description = '".$imageData['description']."', timestamp = ".$imageData['timestamp'];
- return $this->dbclass->execute_query($query);
- }
- public function getImageDetails ($name) {
- $name = $this->dbclass->get_escape_string($name);
- $query = "SELECT * FROM trackersGallery WHERE name = '".$name."'";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete();
- }
- public function getImageDetailsFromId ($id) {
- $id = $this->dbclass->get_escape_string($id);
- $query = "SELECT * FROM trackersGallery WHERE id = $id";
- $this->dbclass->execute_query($query);
- return $this->dbclass->get_result_complete();
- }
- public function removeImagesFromTrackersGallery ($value, $using = 'id') {
- $value = $this->dbclass->get_escape_string($value);
- if ($using == 'id')
- $clause = 'id = '.$value;
- elseif ($using == 'name')
- $clause = "name = '{$value}'";
- //$id = $this->dbclass->get_escape_string($id);
- //$query = "DELETE FROM trackersGallery WHERE id = $id";
- $query = "DELETE FROM trackersGallery WHERE ".$clause;
- return $this->dbclass->execute_query($query);
- }
- public function saveTrackerGroup ($group) {
- $group = $this->dbclass->get_escape_string($group);
- $username = $this->dbclass->get_escape_string($_SESSION['username']);
- $query = "SELECT * FROM trackersLogicalGroups WHERE groupName = '{$group}', username = '{$username}'";
- $this->dbclass->execute_query($query);
- $answer = $this->dbclass->get_result_complete();
- if ($answer != false)
- return EXISTS;
- $query = "INSERT INTO trackersLogicalGroups SET groupName = '{$group}', username = '{$username}'";
- $result = $this->dbclass->execute_query($query);
- if ($result) {
- //$returnID = mysql_insert_id ( $this->dblink );
- //$returnID = $this->dbclass->get_insert_id();
- $returnID = $this->dbclass->dblink->insert_id;
- //var_dump($this->dblink);
- //$returnID = $this->dblink->insert_id;
- //var_dump($returnID);
- return $returnID;
- }
- $errorno = $this->dbclass->get_error_no();
- if ($errorno == 1062)
- $result = EXISTS;
- return $result;
- }
- public function getFleetUserGroups () {
- $username = $this->dbclass->get_escape_string($_SESSION['username']);
- $query = "SELECT * FROM trackersLogicalGroups WHERE username = '{$username}'";
- $this->dbclass->execute_query($query);
- $answer = $this->dbclass->get_result_complete();
- return $answer;
- }
- public function assignTrackerToGroup ($groupid, $trackerid) {
- $groupid = $this->dbclass->get_escape_string($groupid);
- $trackerid = $this->dbclass->get_escape_string($trackerid);
- $query = "INSERT INTO groupTrackersMap SET groupid = $groupid, trackerid = '{$trackerid}'";
- return $this->dbclass->execute_query($query);
- }
- public function removeTrackerGroup ($groupid) {
- $groupid = $this->dbclass->get_escape_string($groupid);
- $query = 'DELETE FROM trackersLogicalGroups WHERE groupid = '.$groupid;
- $result = $this->dbclass->execute_query($query);
- if ($result == false)
- return $result;
- $query = 'DELETE FROM groupTrackersMap WHERE groupid = '.$groupid;
- return $this->dbclass->execute_query($query);
- }
- public function removeTrackerFromGroup ($groupid, $trackerid) {
- $groupid = $this->dbclass->get_escape_string($groupid);
- $trackerid = $this->dbclass->get_escape_string($trackerid);
- $query = "DELETE FROM groupTrackersMap WHERE groupid = $groupid AND trackerid = '{$trackerid}'";
- return $this->dbclass->execute_query($query);
- }
- public function saveFinancialData () {
- $returnid = false;
- if (($_POST['id'] == 0)) {
- $query = 'INSERT INTO financialPackage SET ';
- $query .= basicTransactions::prepareMySQL_POSTRequest();
- } elseif ($_POST['id'] > 0) {
- $query = 'UPDATE financialPackage SET ';
- $query .= basicTransactions::prepareMySQL_POSTRequest();
- $query .= " WHERE id = {$_POST['id']} AND trackerid = '{$_POST['trackerid']}'";
- $returnid = $_POST['id'];
- }
- $result = $this->dbclass->execute_query($query);
- if ($result) {
- if (!$returnid)
- $returnid = $this->dbclass->dblink->insert_id;
- return $returnid;
- }
- return ERROR;
- }
- public function savePercentageFinancialData ($trackerid) {
- $trackerid = $this->dbclass->get_escape_string($trackerid);
- $isRecord = $this->getFinancialData($trackerid);
- if ($isRecord) {
- $overall = $this->dbclass->get_escape_string($_POST['overall']);
- $partial = $this->dbclass->get_escape_string($_POST['partial']);
- $query = "UPDATE financialPackage SET overall = '{$overall}', partial = '{$partial}' WHERE trackerid = '{$trackerid}'";
- $result = $this->dbclass->execute_query($query);
- if ($result)
- return $result;
- return false;
- }
- return false;
- }
- public function getFinancialData ($trackerid) {
- $trackerid = $this->dbclass->get_escape_string($trackerid);
- $query = "SELECT * FROM financialPackage WHERE trackerid = '{$trackerid}'";
- $result = $this->dbclass->execute_query($query);
- if ($result) {
- $ans = $this->dbclass->get_result_complete();
- return $ans;
- }
- return false;
- }
- //public function getFinancialDetails ($jstime, $jetime, $tid) {
- public function getFinancialDetails ($tid, $isEntireDay = false) {
- $tid = $this->dbclass->get_escape_string($tid);
- if ($isEntireDay)
- $query = "SELECT MAX(rate) FROM financialPackage WHERE trackerid = '{$tid}'";
- else {
- $query = "SELECT * FROM financialPackage WHERE trackerid = '{$tid}' ORDER by stime, etime";
- }
- //$CONDITION = "( (stime <= {$jstime} && {$jetime} < etime) || ( (stime <= {$jstime} && {$jetime} > etime) || ) )";
- //$query = "SELECT * FROM financialPackage WHERE ";
- $result = $this->dbclass->execute_query($query);
- if ($result) {
- return $this->dbclass->get_result_complete();
- }
- return false;
- }
- public function createShift ($shiftName, $shiftSchedule, $description) {
- $shiftName = $this->dbclass->get_escape_string($shiftName);
- $shiftSchedule = $this->dbclass->get_escape_string($shiftSchedule);
- $description = $this->dbclass->get_escape_string($description);
- $username = $this->dbclass->get_escape_string($_SESSION['username']);
- $returnid = false;
- if ($_POST['shiftid'] == 0) {
- $query = "SELECT * FROM shifts WHERE username = '{$username}' AND shiftName = '{$shiftName}'";
- $this->dbclass->execute_query($query);
- $answer = $this->dbclass->get_result_complete();
- if ($answer != false) return EXISTS;
- $query = "INSERT INTO shifts SET username = '{$username}', shiftName = '{$shiftName}', shiftSchedule = '{$shiftSchedule}', description = '{$description}'";
- $returnid = true;
- } elseif ($_POST['shiftid'] > 0) {
- $query = "UPDATE shifts SET shiftName = '{$shiftName}', shiftSchedule = '{$shiftSchedule}', description = '{$description}' WHERE shiftid = {$_POST['shiftid']}";
- }
- $result = $this->dbclass->execute_query($query);
- if ($result) {
- if ($returnid)
- return $this->dbclass->dblink->insert_id;
- return $_POST['shiftid'];
- }
- return ERROR;
- }
- public function getShifts () {
- $username = $this->dbclass->get_escape_string($_SESSION['username']);
- $query = "SELECT * FROM shifts WHERE username = '{$username}'";
- $result = $this->dbclass->execute_query($query);
- if ($result) {
- $answer = $this->dbclass->get_result_complete();
- foreach ($answer as $k => $v) {
- $query = "SELECT trackerid FROM shiftsMapper WHERE shiftid = {$v['shiftid']}";
- $this->dbclass->execute_query($query);
- $trackers = $this->dbclass->get_result_complete();
- $firstTracker = true;
- $answer [$k] ['trackers'] = '';
- if ($trackers) {
- foreach ($trackers as $a => $b) {
- if ($firstTracker) {
- $answer [$k] ['trackers'] .= $b['trackerid'];
- $firstTracker = false;
- } else
- $answer [$k] ['trackers'] .= ','.$b['trackerid'];
- }
- }
- }
- return $answer;
- }
- return false;
- }
- public function removeShifts ($shiftid) {
- $query = "DELETE FROM shifts WHERE shiftid = $shiftid";
- $result = $this->dbclass->execute_query($query);
- if ($result) {
- $query = "DELETE FROM shiftsMapper WHERE shiftid = {$shiftid}";
- $this->dbclass->execute_query($query);
- }
- return $result;
- }
- public function assignShift ($shiftid, $tid) {
- $query = "INSERT INTO shiftsMapper SET shiftid = {$shiftid}, trackerid = '{$tid}'";
- //echo $query;
- return $this->dbclass->execute_query($query);
- }
- public function removeAssignedShift ($shiftid, $tid) {
- $query = "DELETE FROM shiftsMapper WHERE shiftid = {$shiftid} AND trackerid = '{$tid}'";
- //echo $query;
- return $this->dbclass->execute_query($query);
- }
- public function getShiftDetails ($shiftid) {
- $query = "SELECT * FROM shifts WHERE shiftid = {$shiftid}";
- $result = $this->dbclass->execute_query($query);
- if ($result) {
- return $this->dbclass->get_result_complete();
- }
- return false;
- }
- public function getShiftTrackers ($shiftid) {
- $query = "SELECT trackerid FROM shiftsMapper WHERE shiftid = '{$shiftid}'";
- $result = $this->dbclass->execute_query($query);
- if ($result)
- return $this->dbclass->get_result_complete();
- return false;
- }
- public function saveTrackerIcon ($iconName, $icon, $description = '') {
- //basicTransactions::prepareMySQL_POSTRequest();
- $username = $this->dbclass->get_escape_string($_SESSION['username']);
- $iconName = $this->dbclass->get_escape_string($iconName);
- $icon = $this->dbclass->get_escape_string($icon);
- $description = $this->dbclass->get_escape_string($description);
- $query = "INSERT INTO trackerIcons SET username = '{$username}', iconName = '{$iconName}', icon = '{$icon}', description = '{$description}'";
- $result = $this->dbclass->execute_query($query);
- if ($result) {
- return $this->dbclass->dblink->insert_id;
- }
- return ERROR;
- }
- public function getTrackerIcon () {
- $username = $this->dbclass->get_escape_string($_SESSION['username']);
- $query = "SELECT * FROM trackerIcons WHERE username = '{$username}'";
- $result = $this->dbclass->execute_query($query);
- if ($result)
- return $this->dbclass->get_result_complete();
- return false;
- }
- public function assignIcon ($iconid, $tid){
- $query = "INSERT INTO trackersIconsMap SET iconid = $iconid, trackerid = '{$tid}'";
- return $this->dbclass->execute_query($query);
- }
- public function getTrackerIconid ($tid) {
- $username = $this->dbclass->get_escape_string($_SESSION['username']);
- $query = "SELECT iconid FROM trackerIcons INNER JOIN trackersIconsMap USING (iconid) WHERE username = '{$username}' AND trackerid = '{$tid}'";
- $result = $this->dbclass->execute_query($query);
- if ($result->num_rows)
- return $this->dbclass->get_result_complete();
- else {
- //var_dump(array('0' => array('iconid' => 'default')));
- //die;
- return array('0' => array('iconid' => 'default'));
- }
- return false;
- }
- public function __construct() {
- $this->dbclass = new MDATABASE ();
- $this->dblink = $this->dbclass->connect ( databaseConfiguration::$usernameSD, databaseConfiguration::$passwordSD, databaseConfiguration::$hostnameSD, databaseConfiguration::$systemDatabase );
- $this->dbclass_2 = new MDATABASE ();
- $this->dblink_2 = $this->dbclass_2->connect ( databaseConfiguration::$usernameSD, databaseConfiguration::$passwordSD, databaseConfiguration::$hostnameSD, databaseConfiguration::$systemDatabase );
- $this->openDebugLog ();
- //$this->keyText = "9c24447e34340438654673081ce909b0553be329f5eb5e6e1d718e29fb666666";
- $this->keyText = "9c24447e34340438654673081ce909b0553be329f5eb5e6e1d718e29fb210033";
- $this->key = pack('H*', $this->keyText);
- }
- public function __destruct() {
- $this->closeDebugLog ();
- }
- }
- ?>
Add Comment
Please, Sign In to add comment