2011-10-27 Juan Manuel Ramon <juanmanuel.ramon@artica.es>
* godmode/reporting/reporting_builder.item_editor.php: Added 1 week interval for SLA reports. Fixes: #3426516 * include/functions_forecast.php include/functions_reporting.php godmode/reporting/reporting_builder.php godmode/reporting/reporting_builder.item_editor.php: Changed precission to float of max and min intervals on prediction date report. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5086 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
576b6b8b43
commit
a23663a781
|
@ -1,3 +1,17 @@
|
|||
2011-10-27 Juan Manuel Ramon <juanmanuel.ramon@artica.es>
|
||||
|
||||
* godmode/reporting/reporting_builder.item_editor.php: Added 1 week
|
||||
interval for SLA reports.
|
||||
|
||||
Fixes: #3426516
|
||||
|
||||
* include/functions_forecast.php
|
||||
include/functions_reporting.php
|
||||
godmode/reporting/reporting_builder.php
|
||||
godmode/reporting/reporting_builder.item_editor.php: Changed
|
||||
precission to float of max and min intervals on prediction date
|
||||
report.
|
||||
|
||||
2011-10-27 Juan Manuel Ramon <juanmanuel.ramon@artica.es>
|
||||
|
||||
* godmode/agentes/agent_manager.php: Added confirmation at delete
|
||||
|
|
|
@ -56,8 +56,8 @@ $period_pg = 432000;
|
|||
$projection_period = 432000;
|
||||
$only_display_wrong = 0;
|
||||
// Added support for prediction date report
|
||||
$min_interval = 0;
|
||||
$max_interval = 0;
|
||||
$min_interval = '0.00';
|
||||
$max_interval = '0.00';
|
||||
$monday = true;
|
||||
$tuesday = true;
|
||||
$wednesday = true;
|
||||
|
@ -123,8 +123,12 @@ switch ($action) {
|
|||
$idAgent = db_get_value_filter('id_agente', 'tagente_modulo', array('id_agente_modulo' => $idAgentModule));
|
||||
// 'top_n' field will be reused for prediction_date report
|
||||
$max_interval = $item['top_n'];
|
||||
// 'top_n_value' field will be reused for prediction_date report
|
||||
$min_interval = $item['top_n_value'];
|
||||
$intervals_text = $item['text'];
|
||||
// Parse intervals text field
|
||||
$max_interval = substr($intervals_text, 0, strpos($intervals_text, ';'));
|
||||
$min_interval = substr($intervals_text, strpos($intervals_text, ';') + 1);
|
||||
// 'top_n_value' field will be reused for prediction_date report
|
||||
$period_pg = $item['period'];
|
||||
break;
|
||||
case 'custom_graph':
|
||||
|
@ -317,15 +321,14 @@ $intervals[300] = human_time_description_raw (300);
|
|||
$intervals[600] = human_time_description_raw (600);
|
||||
$intervals[86400] = human_time_description_raw (86400);
|
||||
$intervals[432000] = human_time_description_raw (432000);
|
||||
$intervals[604800] = human_time_description_raw (604800);
|
||||
$intervals[1296000] = human_time_description_raw (1296000);
|
||||
$intervals[2592000] = human_time_description_raw (2592000);
|
||||
|
||||
// Intervals for projection graph
|
||||
$intervals_1 = array ();
|
||||
/*$intervals_1[300] = human_time_description_raw (300);
|
||||
$intervals_1[600] = human_time_description_raw (600);
|
||||
$intervals_1[86400] = human_time_description_raw (86400);*/
|
||||
$intervals_1[432000] = human_time_description_raw (432000);
|
||||
$intervals_1[604800] = human_time_description_raw (604800);
|
||||
$intervals_1[1296000] = human_time_description_raw (1296000);
|
||||
$intervals_1[2592000] = human_time_description_raw (2592000);
|
||||
$intervals_1[5184000] = human_time_description_raw (5184000);
|
||||
|
@ -374,9 +377,9 @@ html_print_input_hidden('id_item', $idItem);
|
|||
<td style="vertical-align: top;"><?php echo __('Data range') . ui_print_help_tip(__('Between this interval will be search the prediction date'), true); ?></td>
|
||||
<td><?php
|
||||
echo __('Max') . " ";
|
||||
html_print_input_text('max_interval', $max_interval, '', 5, 5);
|
||||
html_print_input_text('max_interval', $max_interval, '', 5, 10);
|
||||
echo " " . __('Min') . " ";
|
||||
html_print_input_text('min_interval', $min_interval, '', 5, 5);
|
||||
html_print_input_text('min_interval', $min_interval, '', 5, 10);
|
||||
?></td>
|
||||
</tr>
|
||||
<tr id="row_only_display_wrong" style="" class="datos">
|
||||
|
|
|
@ -184,6 +184,7 @@ switch ($action) {
|
|||
$reportName = $report['name'];
|
||||
$idGroupReport = $report['id_group'];
|
||||
$description = $report['description'];
|
||||
$good_format = false;
|
||||
switch ($action) {
|
||||
case 'update':
|
||||
$values = array();
|
||||
|
@ -191,22 +192,33 @@ switch ($action) {
|
|||
$values['description'] = get_parameter('description');
|
||||
$values['type'] = get_parameter('type', null);
|
||||
// Added support for projection graphs and prediction_date reports
|
||||
// 'top_n_value' and 'top_n' fields will be reused for these types of report
|
||||
// 'top_n_value','top_n' and 'text' fields will be reused for these types of report
|
||||
if ($values['type'] == 'projection_graph'){
|
||||
$values['period'] = get_parameter('period1');
|
||||
$values['top_n_value'] = get_parameter('period2');
|
||||
$values['text'] = get_parameter('text');
|
||||
$good_format = true;
|
||||
}else if($values['type'] == 'prediction_date'){
|
||||
$values['period'] = get_parameter('period1');
|
||||
$values['top_n'] = get_parameter('max_interval');
|
||||
$values['top_n_value'] = get_parameter('min_interval');
|
||||
$values['top_n'] = get_parameter('radiobutton_max_min_avg');
|
||||
$values['top_n_value'] = get_parameter('quantity');
|
||||
$interval_max = get_parameter('max_interval');
|
||||
$interval_min = get_parameter('min_interval');
|
||||
// Checks intervals fields
|
||||
if (preg_match('/^(\-)*[0-9]*\.?[0-9]+$/', $interval_max) and preg_match('/^(\-)*[0-9]*\.?[0-9]+$/', $interval_min)){
|
||||
$good_format = true;
|
||||
}
|
||||
$intervals = get_parameter('max_interval') . ';' . get_parameter('min_interval');
|
||||
$values['text'] = $intervals;
|
||||
}else{
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['top_n'] = get_parameter('radiobutton_max_min_avg');
|
||||
$values['top_n_value'] = get_parameter('quantity');
|
||||
$values['text'] = get_parameter('text');
|
||||
$good_format = true;
|
||||
}
|
||||
$values['id_agent'] = get_parameter('id_agent');
|
||||
$values['id_gs'] = get_parameter('id_custom_graph');
|
||||
$values['text'] = get_parameter('text');
|
||||
$values['id_agent_module'] = get_parameter('id_agent_module');
|
||||
$values['only_display_wrong'] = get_parameter('checkbox_only_display_wrong');
|
||||
$values['monday'] = get_parameter('monday', 0);
|
||||
|
@ -264,7 +276,12 @@ switch ($action) {
|
|||
$style['show_in_landscape'] = get_parameter('show_in_landscape', 0);
|
||||
$values['style'] = io_safe_input(json_encode($style));
|
||||
|
||||
if ($good_format){
|
||||
$resultOperationDB = db_process_sql_update('treport_content', $values, array('id_rc' => $idItem));
|
||||
}
|
||||
else{
|
||||
$resultOperationDB = false;
|
||||
}
|
||||
break;
|
||||
case 'save':
|
||||
$values = array();
|
||||
|
@ -272,22 +289,33 @@ switch ($action) {
|
|||
$values['type'] = get_parameter('type', null);
|
||||
$values['description'] = get_parameter('description');
|
||||
// Support for projection graph and prediction_date reports
|
||||
// 'top_n_value' and 'top_n' fields will be reused for these types of report
|
||||
// 'top_n_value', 'top_n' and 'text' fields will be reused for these types of report
|
||||
if ($values['type'] == 'projection_graph'){
|
||||
$values['period'] = get_parameter('period1');
|
||||
$values['top_n_value'] = get_parameter('period2');
|
||||
$values['text'] = get_parameter('text');
|
||||
$good_format = true;
|
||||
}else if ($values['type'] == 'prediction_date'){
|
||||
$values['period'] = get_parameter('period1');
|
||||
$values['top_n'] = get_parameter('max_interval');
|
||||
$values['top_n_value'] = get_parameter('min_interval');
|
||||
$values['top_n'] = get_parameter('radiobutton_max_min_avg');
|
||||
$values['top_n_value'] = get_parameter('quantity');
|
||||
$interval_max = get_parameter('max_interval');
|
||||
$interval_min = get_parameter('min_interval');
|
||||
// Checks intervals fields
|
||||
if (preg_match('/^(\-)*[0-9]*\.?[0-9]+$/', $interval_max) and preg_match('/^(\-)*[0-9]*\.?[0-9]+$/', $interval_min)){
|
||||
$good_format = true;
|
||||
}
|
||||
$intervals = get_parameter('max_interval') . ';' . get_parameter('min_interval');
|
||||
$values['text'] = $intervals;
|
||||
}else{
|
||||
$values['period'] = get_parameter('period');
|
||||
$values['top_n'] = get_parameter('radiobutton_max_min_avg',0);
|
||||
$values['top_n_value'] = get_parameter('quantity');
|
||||
$values['text'] = get_parameter('text');
|
||||
$good_format = true;
|
||||
}
|
||||
$values['id_agent'] = get_parameter('id_agent');
|
||||
$values['id_gs'] = get_parameter('id_custom_graph');
|
||||
$values['text'] = get_parameter('text');
|
||||
$values['id_agent_module'] = get_parameter('id_agent_module');
|
||||
switch ($config['dbtype']){
|
||||
case "mysql":
|
||||
|
@ -368,6 +396,7 @@ switch ($action) {
|
|||
$style['show_in_landscape'] = get_parameter('show_in_landscape', 0);
|
||||
$values['style'] = io_safe_input(json_encode($style));
|
||||
|
||||
if ($good_format){
|
||||
$result = db_process_sql_insert('treport_content', $values);
|
||||
|
||||
if ($result === false) {
|
||||
|
@ -402,11 +431,15 @@ switch ($action) {
|
|||
db_process_sql_update('treport_content', array('"order"' => $max + 1), array('id_rc' => $idItem));
|
||||
break;
|
||||
}
|
||||
|
||||
$resultOperationDB = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
// If fields dont have good format
|
||||
else {
|
||||
$resultOperationDB = false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if ($enterpriseEnable) {
|
||||
|
|
|
@ -174,6 +174,7 @@ function forecast_projection_graph($module_id, $period = 5184000, $prediction_pe
|
|||
if ($current_ts - $last_timestamp >= 126144000){
|
||||
return false;
|
||||
}
|
||||
//html_debug_print(" Date " . $timestamp_f . " data: " . $output_data[$timestamp_f]);
|
||||
// Found it
|
||||
if ($max_value >= $output_data[$timestamp_f] and $min_value <= $output_data[$timestamp_f]){
|
||||
return $current_ts;
|
||||
|
@ -191,16 +192,17 @@ function forecast_projection_graph($module_id, $period = 5184000, $prediction_pe
|
|||
* Return a date when the date interval is reached
|
||||
*
|
||||
* @param int Module id.
|
||||
* @param int Given data period to make the prediction
|
||||
* @param int Max value in the interval.
|
||||
* @param int Min value in the interval.
|
||||
*
|
||||
* @return mixed timestamp with the prediction date or false
|
||||
*/
|
||||
function forecast_prediction_date ($module_id, $max_value = 0, $min_value = 0){
|
||||
function forecast_prediction_date ($module_id, $period = 5184000, $max_value = 0, $min_value = 0){
|
||||
// Checks interval
|
||||
if ($min_value > $max_value){
|
||||
return false;
|
||||
}
|
||||
|
||||
return forecast_projection_graph($module_id, 5184000, false, $max_value, $min_value);
|
||||
return forecast_projection_graph($module_id, $period, false, $max_value, $min_value);
|
||||
}
|
||||
|
|
|
@ -2120,7 +2120,10 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||
|
||||
$data = array ();
|
||||
$table->colspan[2][0] = 3;
|
||||
$value = forecast_prediction_date ($content['id_agent_module'], $content['top_n'], $content['top_n_value']);
|
||||
$intervals_text = $content['text'];
|
||||
$max_interval = substr($intervals_text, 0, strpos($intervals_text, ';'));
|
||||
$min_interval = substr($intervals_text, strpos($intervals_text, ';') + 1);
|
||||
$value = forecast_prediction_date ($content['id_agent_module'], $content['period'], $max_interval, $min_interval);
|
||||
|
||||
if ($value === false) {
|
||||
$value = __('Unknown');
|
||||
|
|
Loading…
Reference in New Issue