Popravek decimalk pri grafih pri numericnih tipih vprasanj
This commit is contained in:
parent
03b5a7c65a
commit
e90d4ee37b
@ -4333,6 +4333,8 @@ class SurveyChart {
|
||||
elseif($spremenljivka['tip'] == 7 || $spremenljivka['tip'] == 22){
|
||||
$dataArray = array();
|
||||
|
||||
$has_decimal = false;
|
||||
|
||||
$i=0;
|
||||
$N=0;
|
||||
if (count($spremenljivka['grids']) > 0)
|
||||
@ -4375,7 +4377,10 @@ class SurveyChart {
|
||||
$tempArray['percent'] = $_percent;
|
||||
$tempArray['valid'] = $_valid;
|
||||
|
||||
$tempArray['key'] = $vkey;
|
||||
$tempArray['key'] = $vkey;
|
||||
|
||||
if(floor($vkey) != $vkey)
|
||||
$has_decimal = true;
|
||||
|
||||
// racunamo povprecje (za prvo variablo)
|
||||
if($field == 0){
|
||||
@ -4488,8 +4493,8 @@ class SurveyChart {
|
||||
array_multisort($tmp, SORT_NUMERIC, SORT_ASC, $dataArray);
|
||||
}
|
||||
|
||||
$max = (int)$dataArray[count($dataArray,0)-1]['variable'];
|
||||
$min = (int)$dataArray[0]['variable'];
|
||||
$max = (double)$dataArray[count($dataArray,0)-1]['variable'];
|
||||
$min = (double)$dataArray[0]['variable'];
|
||||
$stIntervalov = ((int)$settings['interval'] == 0 ? 10 : (int)$settings['interval']);
|
||||
|
||||
|
||||
@ -4504,15 +4509,17 @@ class SurveyChart {
|
||||
else{
|
||||
// Nastavimo custom zgornjo mejo skale (razen v primeru ko ne ignoriramo vrednosti ki padejo ven in ce je max vnos vecji od nastavljenega max)
|
||||
if($settings['max'] != '' /*&& ($settings['open_up'] == 0 || (int)$settings['max'] > $max)*/)
|
||||
$max = (int)$settings['max'];
|
||||
$max = (double)$settings['max'];
|
||||
// Nastavimo custom spodnjo mejo skale (razen v primeru ko ne ignoriramo vrednosti ki padejo ven in ce je min vnos manjsi od nastavljenega min)
|
||||
if($settings['min'] != '' /*&& ($settings['open_down'] == 0 || (int)$settings['min'] < $min)*/)
|
||||
$min = (int)$settings['min'];
|
||||
$min = (double)$settings['min'];
|
||||
|
||||
|
||||
$stIntervalov = ($stIntervalov == -1 ? $max-$min : $stIntervalov);
|
||||
$part = ($max-$min) / $stIntervalov;
|
||||
$part = ($part < 1) ? 1 : round($part);
|
||||
$part = ($max-$min) / $stIntervalov;
|
||||
|
||||
if(!$has_decimal)
|
||||
$part = ($part < 1) ? 1 : round($part);
|
||||
}
|
||||
|
||||
// Poberemo podatke v posamezne tabele - po intervalih oz normalno
|
||||
@ -4557,9 +4564,16 @@ class SurveyChart {
|
||||
}
|
||||
// Ce imamo osnovne intervale (racunamo sproti)
|
||||
else{
|
||||
$maxVal = ($interval < ($stIntervalov-1) ? $min + (($interval+1) * $part) : $max);
|
||||
$minVal = ($interval > 0 ? $min + ($interval * $part) + 1 : $min);
|
||||
}
|
||||
// Ce imamo decimalke
|
||||
if($has_decimal){
|
||||
$maxVal = ($interval < ($stIntervalov-1) ? $min-0.01 + (($interval+1) * $part) : $max);
|
||||
$minVal = ($interval > 0 ? $min + ($interval * $part) : $min);
|
||||
}
|
||||
else{
|
||||
$maxVal = ($interval < ($stIntervalov-1) ? $min + (($interval+1) * $part) : $max);
|
||||
$minVal = ($interval > 0 ? $min + ($interval * $part) + 1 : $min);
|
||||
}
|
||||
}
|
||||
|
||||
// prekinemo ce zaradi zaokrozevanja pride do min > max
|
||||
if($minVal > $maxVal)
|
||||
@ -4567,12 +4581,12 @@ class SurveyChart {
|
||||
|
||||
// loop cez vse podatke
|
||||
for($i=0; $i<count($dataArray,0); $i++){
|
||||
|
||||
|
||||
// ce pripada intervalu
|
||||
if($dataArray[$i]['variable'] <= $maxVal && $dataArray[$i]['variable'] >= $minVal && $dataArray[$i]['field'] == 0){
|
||||
$count += $dataArray[$i]['freq'];
|
||||
$percent += $dataArray[$i]['percent'];
|
||||
$valid += $dataArray[$i]['valid'];
|
||||
$valid += $dataArray[$i]['valid'];
|
||||
}
|
||||
}
|
||||
|
||||
@ -4580,7 +4594,7 @@ class SurveyChart {
|
||||
$vrednosti[] = $count;
|
||||
$vrednostiPercent[] = $percent;
|
||||
$vrednostiValid[] = $valid;
|
||||
|
||||
|
||||
// Ce imamo napredne intervale (custom dolocene labele)
|
||||
if($settings['limits']['advanced_settings'] == 1 && $limits['interval_'.$interval]['label'] != ''){
|
||||
$vrednostiKey[] = $limits['interval_'.$interval]['label'];
|
||||
@ -4661,8 +4675,15 @@ class SurveyChart {
|
||||
}
|
||||
// Ce imamo osnovne intervale (racunamo sproti)
|
||||
else{
|
||||
$maxVal = ($interval < ($stIntervalov-1) ? $min + (($interval+1) * $part) : $max);
|
||||
$minVal = ($interval > 0 ? $min + ($interval * $part) + 1 : $min);
|
||||
// Ce imamo decimalke
|
||||
if($has_decimal){
|
||||
$maxVal = ($interval < ($stIntervalov-1) ? $min-0.01 + (($interval+1) * $part) : $max);
|
||||
$minVal = ($interval > 0 ? $min + ($interval * $part) : $min);
|
||||
}
|
||||
else{
|
||||
$maxVal = ($interval < ($stIntervalov-1) ? $min + (($interval+1) * $part) : $max);
|
||||
$minVal = ($interval > 0 ? $min + ($interval * $part) + 1 : $min);
|
||||
}
|
||||
}
|
||||
|
||||
// prekinemo ce zaradi zaokrozevanja pride do min > max
|
||||
|
Loading…
x
Reference in New Issue
Block a user