$value) { $url .= '&' . safe_url_extraclean($key) . '=' . safe_url_extraclean($value); } echo "
"; /* Map with the current position */ echo "
"; if (!gis_get_agent_map($id_agente, "500px", "100%", true, true, $period)) { ui_print_error_message( __("There is no default map. Please go to the setup for to set a default map.") ); echo ""; } switch ($config["dbtype"]) { case "mysql": $timestampLastOperation = db_get_value_sql( "SELECT UNIX_TIMESTAMP()"); break; case "postgresql": $timestampLastOperation = db_get_value_sql( "SELECT ceil(date_part('epoch', CURRENT_TIMESTAMP))"); break; case "oracle": $timestampLastOperation = db_get_value_sql( "SELECT ceil((sysdate - to_date('19700101000000','YYYYMMDDHH24MISS')) * (" . SECONDS_1DAY . ")) from dual"); break; } gis_activate_ajax_refresh(null, $timestampLastOperation); gis_activate_select_control(); if ($agentData === false) { ui_print_info_message ( __("There is no GIS data for this agent, so it's positioned in default position of map.") ); } $dataLastPosition = gis_get_data_last_position_agent($agentId); if ($dataLastPosition !== false) { echo "" . __("Last position in ") . $dataLastPosition['start_timestamp'] . ": " . $dataLastPosition['stored_longitude'] . ", " . $dataLastPosition['stored_latitude'] . ", " . $dataLastPosition['stored_altitude']; } echo "
"; echo ""; echo "
" . __("Period to show data as path") . ": "; echo ""; html_print_extended_select_for_time ('period', $period, '', '', '0', 10); echo ""; html_print_submit_button(__('Refresh path'), 'refresh', false, 'class = "sub upd" style="margin-top:0px"'); echo "
"; echo "

" . __("Positional data from the last") . " " . human_time_description_raw ($period) ."

"; /* Get the total number of Elements for the pagination */ $sqlCount = sprintf ("SELECT COUNT(*) FROM tgis_data_history WHERE tagente_id_agente = %d AND end_timestamp > FROM_UNIXTIME(%d) ORDER BY end_timestamp DESC", $agentId, get_system_time () - $period); $countData = db_get_value_sql($sqlCount); /* Get the elements to present in this page */ switch ($config["dbtype"]) { case "mysql": $sql = sprintf (" SELECT longitude, latitude, altitude, start_timestamp, end_timestamp, description, number_of_packages, manual_placement FROM tgis_data_history WHERE tagente_id_agente = %d AND end_timestamp > FROM_UNIXTIME(%d) ORDER BY end_timestamp DESC LIMIT %d OFFSET %d", $agentId, get_system_time () - $period, $config['block_size'], (int)get_parameter ('offset')); break; case "postgresql": case "oracle": $set = array (); $set['limit'] = $config['block_size']; $set['offset'] = (int)get_parameter ('offset'); $sql = sprintf (" SELECT longitude, latitude, altitude, start_timestamp, end_timestamp, description, number_of_packages, manual_placement FROM tgis_data_history WHERE tagente_id_agente = %d AND end_timestamp > FROM_UNIXTIME(%d) ORDER BY end_timestamp DESC", $agentId, get_system_time () - $period); $sql = oracle_recode_query ($sql, $set); break; } $result = db_get_all_rows_sql ($sql, true); if ($result === false) { $sql2 = sprintf (" SELECT current_longitude AS longitude, current_latitude AS latitude, current_altitude AS altitude, start_timestamp, description, number_of_packages, manual_placement FROM tgis_data_status WHERE tagente_id_agente = %d ORDER BY start_timestamp DESC LIMIT %d OFFSET %d", $agentId, $config['block_size'], (int)get_parameter ('offset')); $result2 = db_get_all_rows_sql ($sql2, true); if ($result2 === false) { ui_print_empty_data( __('This agent doesn\'t have any GIS data.') ); } else { $result2[0]['end_timestamp'] = date('Y-m-d H:i:s'); $result = $result2; } } if ($result !== false) { if(!$countData){ $countData = 1; } ui_pagination ($countData, false) ; $table->data = array(); foreach ($result as $key => $row) { $distance = 0; if (isset($result[$key - 1])) { $distance = gis_calculate_distance($row['latitude'], $row['longitude'], $result[$key - 1]['latitude'], $result[$key - 1]['longitude']); } else { $dataLastPosition = gis_get_data_last_position_agent($agentId); if ($dataLastPosition !== false) { $distance = gis_calculate_distance($row['latitude'], $row['longitude'], $dataLastPosition['stored_latitude'], $dataLastPosition['stored_longitude']); } } $rowdata = array( $row['longitude'], $row['latitude'], $row['altitude'], $row['start_timestamp'], $row['end_timestamp'], $row['description'], sprintf(__('%s Km'), $distance), $row['number_of_packages'], $row['manual_placement']); array_push($table->data, $rowdata); } $table->head = array( __("Longitude"), __("Latitude"), __("Altitude"), __("From"), __("To"), __("Description"), __('Distance'), __("# of Packages"), __("Manual placement")); $table->class = 'position_data_table'; $table->id = $agent_name.'_position_data_table'; $table->title = $agent_alias . " " . __("positional data"); $table->titlestyle = "background-color:#799E48;"; html_print_table($table); unset($table); ui_pagination ($countData, false) ; echo "

" . __('Total') . ' ' . $countData . ' ' . __('Data') . "

"; } ?>