From 75160b12821f7f4299cce7f0b69c83c1502ae071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Mon, 27 May 2024 13:08:29 +0200 Subject: 2024-02-19 upstream --- .../classes/surveyAnalysis/class.SurveyBreak.php | 783 ++++++++++++--------- 1 file changed, 464 insertions(+), 319 deletions(-) (limited to 'admin/survey/classes/surveyAnalysis/class.SurveyBreak.php') diff --git a/admin/survey/classes/surveyAnalysis/class.SurveyBreak.php b/admin/survey/classes/surveyAnalysis/class.SurveyBreak.php index aa2a829..e510b2a 100644 --- a/admin/survey/classes/surveyAnalysis/class.SurveyBreak.php +++ b/admin/survey/classes/surveyAnalysis/class.SurveyBreak.php @@ -8,8 +8,8 @@ * */ -define("EXPORT_FOLDER", "admin/survey/SurveyData"); -define("BREAK_OPTION_LIMIT", 15); +if(!defined("EXPORT_FOLDER"))define("EXPORT_FOLDER", "admin/survey/SurveyData"); +if(!defined("BREAK_OPTION_LIMIT"))define("BREAK_OPTION_LIMIT", 15); class SurveyBreak { @@ -42,17 +42,24 @@ class SurveyBreak private $num_digit_percent = NUM_DIGIT_PERCENT; function __construct($sid) { + global $global_user_id; + if ((int)$sid > 0) { + $this->sid = $sid; SurveyAnalysisHelper::getInstance()->Init($this->sid); # polovimo vrsto tabel (aktivne / neaktivne) SurveyInfo :: getInstance()->SurveyInit($this->sid); - if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) { - $this->db_table = '_active'; - } + $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString(); + $this->_CURRENT_STATUS_FILTER = STATUS_FIELD.' ~ /6|5/'; + + // Pri glasovanju tega ne pustimo + if(SurveyInfo::getInstance()->getSurveyColumn("survey_type") == 0){ + die(); + } #inicializiramo class za datoteke $this->SDF = SurveyDataFile::get_instance(); @@ -204,16 +211,9 @@ class SurveyBreak $SSH -> displayTestDataBar(true); } - /*echo '
'; - SurveyStatusProfiles::displayOnlyValidCheckbox(); - echo '
';*/ - # ali prikazujemo tabele ali grafe $this->break_charts = (isset($this->sessionData['break']['break_show_charts']) && (int)$this->sessionData['break']['break_show_charts'] == 1) ? 1 : 0; - //$this->DisplayLinks(); - //$this->DisplayFilters(); - echo '
'; $this->displayData(); echo '
'; #id="div_break_data" @@ -256,43 +256,58 @@ class SurveyBreak function displayData() { global $lang; - echo '
'; + $variables = $this->getVariableList(2); - - echo ''; - echo $lang['srv_break_label1']; - echo '
'; - echo ''; echo ''; if (count($variables)) { foreach ($variables as $variable) { - echo ''; } } - echo ''; # name="breakSpremenljivka" - echo '
'; + echo ''; - echo '' ; + echo '
'; + + // Dodatne nastavitve + echo '
' ; + + echo ''.$lang['settings'].':'; + + echo ''; $this->displayLinePercent(); - $this->displayLineCharts(); // V DELU... - echo ''; + echo ''; + + echo ''; + $this->displayLineCharts(); + echo ''; + + echo '
'; - echo '
'; - echo ''; # id="break_variables" + echo ''; + + + echo '
'; if (isset($this->sessionData['break']['spr']) && (int)$this->sessionData['break']['spr'] > 0 && isset($this->sessionData['break']['seq']) && (int)$this->sessionData['break']['seq'] > 0) { - echo '
'; + $this->doBreakForSpremenljivka(); - echo '
'; # id="breakResults" - } else { - echo '
'; - } + } + echo '
'; # id="breakResults" } /** funkcija vrne seznam primern variabel za crostabe @@ -304,7 +319,7 @@ class SurveyBreak # zloopamo skozi header in dodamo variable (potrebujemo posamezne sekvence) foreach ($this->_HEADERS AS $skey => $spremenljivka) { - $tip = $spremenljivka['tip']; + $tip = isset($spremenljivka['tip'])?$spremenljivka['tip']:null; { #drugi dropdown # tekstovnih in numeričnih tipov ne dodajamo @@ -410,7 +425,7 @@ class SurveyBreak if (count($spremenljivka['grids']) == 1 ) { # če imamo samo en grid ( lahko je več variabel zaradi polja drugo. $grid = $spremenljivka['grids'][0]; - if (count ($grid['variables']) > 0) { + if (isset($grid['variables'])&&count ($grid['variables']) > 0) { foreach ($grid['variables'] AS $vid => $variable ){ if ($variable['other'] != 1) { $this->variablesList[] = array( @@ -428,7 +443,7 @@ class SurveyBreak # imamo multicheckbox foreach($spremenljivka['grids'] AS $gid => $grid) { $sub = 0; - if ($grid['variable'] != '') { + if (isset($grid['variable'])&&$grid['variable'] != '') { $sub++; $this->variablesList[] = array( 'tip'=>$tip, @@ -444,7 +459,7 @@ class SurveyBreak # imamo več gridov - tabele foreach($spremenljivka['grids'] AS $gid => $grid) { $sub = 0; - if ($grid['variable'] != '') { + if (isset($grid['variable'])&&$grid['variable'] != '') { $sub++; $this->variablesList[] = array( 'tip'=>$tip, @@ -525,10 +540,10 @@ class SurveyBreak } } } + $this->displayBreak($spr,$frequencys); - - } else { - echo '
'; + } + else { echo '

'.$lang['srv_break_error_note_1'].'

'; } } @@ -574,11 +589,8 @@ class SurveyBreak } function displayBreak($forSpr, $frequencys) { - - + ob_start(); // outer buffer - # če imamo filter spremenljivk ga izpišemo - echo '
'; # če ne uporabljamo privzetega časovnega profila izpišemo opozorilo SurveyTimeProfiles :: printIsDefaultProfile(false); @@ -592,13 +604,16 @@ class SurveyBreak # filtriranje po spremenljivkah $_FILTRED_VARIABLES = SurveyVariablesProfiles::getProfileVariables(SurveyVariablesProfiles::checkDefaultProfile(), true); + + foreach ($this->_HEADERS AS $skey => $spremenljivka) { - if ((int)$spremenljivka['hide_system'] == 1 && in_array($spremenljivka['variable'],array('email','ime','priimek','telefon','naziv','drugo'))) { + if (isset($spremenljivka['hide_system'])&&(int)$spremenljivka['hide_system'] == 1 && in_array($spremenljivka['variable'],array('email','ime','priimek','telefon','naziv','drugo'))) { continue; } + $spremenljivka['id'] = $skey; - $tip = $spremenljivka['tip']; + $tip = isset($spremenljivka['tip'])?$spremenljivka['tip']:null; if ( is_numeric($tip) && $tip != 4 #text && $tip != 5 #label @@ -610,7 +625,8 @@ class SurveyBreak ) { $this->displayBreakSpremenljivka($forSpr,$frequencys,$spremenljivka); - } else if ( is_numeric($tip) + } + else if ( is_numeric($tip) && ( $tip == 4 #text || $tip == 19 #multitext @@ -618,6 +634,7 @@ class SurveyBreak || $tip == 20 #multi numer* ) && ( count($_FILTRED_VARIABLES) == 0 || (count($_FILTRED_VARIABLES) > 0 && isset($_FILTRED_VARIABLES[$skey]) ) ) ) { + $this->displayBreakSpremenljivka($forSpr,$frequencys,$spremenljivka); } @@ -654,9 +671,10 @@ class SurveyBreak # checkbox case 2: - $this->displayCrosstabTable($forSpr,$frequencys,$spremenljivka); - break; - #number + $this->displayCrosstabTable($forSpr,$frequencys,$spremenljivka); + break; + + #number case 7: #ranking case 17: @@ -666,10 +684,11 @@ class SurveyBreak case 20: $this->displayBreakTableNumber($forSpr,$frequencys,$spremenljivka); break ; - + case 19: $this->displayBreakTableText($forSpr,$frequencys,$spremenljivka); break ; + #multicheck case 16: $this->displayCrosstabTable($forSpr,$frequencys,$spremenljivka); @@ -679,8 +698,6 @@ class SurveyBreak case 21: # po novem besedilo izpisujemo v klasični tabeli $this->displayBreakTableText($forSpr,$frequencys,$spremenljivka); - - #$this->displayCrosstabTable($forSpr,$frequencys,$spremenljivka); break; default: @@ -727,38 +744,53 @@ class SurveyBreak # ce imamo vec kot 20 kategorij,izpisujemo samo tiste ki imajo vrednosti $displayAll = (count($options) > 20) ? false : true; - echo '
'; - if (isset($spremenljivka['double']) && $spremenljivka['double'] > 1) { + if (isset($spremenljivka['double']) && $spremenljivka['double'] > 1) { $doubleGridParts = $spremenljivka['double']; $multiply = 1; $isDoubleGrid = true; - } else { + } + else { $doubleGridParts[1]['subtitle'] = ''; $multiply = 2; $isDoubleGrid = false; } - - + # če imamo dvojno tabelo - $rowspan = ' rowspan="3"'; $colspan = ' colspan="'.($multiply*count($sequences)).'"'; + foreach ($doubleGridParts AS $part => $doubleGridTitle) { - echo '
'; + + echo '
'; + + + // Zvezdica za vkljucitev v porocilo + echo '
'; + + $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; + $spr2 = $spremenljivka['grids'][0]['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; + SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); + + echo '
'; + + # če ni multicheck in multi grid - echo ''; - echo ''; - echo ''; + echo '
'; + + + echo ''; + + echo ''; + + echo ''; + echo ''; - echo ''; + + echo ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { if ($isDoubleGrid == false || ($isDoubleGrid == true && $grid['part'] == $part)) { foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; } } } + echo ''; - echo ''; + + + echo ''; foreach ($spremenljivka['grids'] AS $gkey => $grid) { if ($isDoubleGrid == false || ($isDoubleGrid == true && $grid['part'] == $part)) { foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; - echo ''; + echo ''; + echo ''; } } } echo ''; + + $cnt=0; foreach ($frequencys AS $fkey => $fkeyFrequency) { $cbxLabel = $forSpremenljivka['grids'][0]['variables'][$cnt]['naslov']; $cnt++; foreach ($options AS $oKey => $option) { if ($means[$fkey][$oKey] != null || $displayAll) { - echo ''; - echo ''; + + echo ''; + + echo ''; - $css = ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { if ($isDoubleGrid == false || ($isDoubleGrid == true && $grid['part'] == $part)) { foreach ($grid['variables'] AS $vkey => $variable) { $sequence = $variable['sequence']; if ($variable['other'] != 1) { + #povprečja - echo ''; + echo ''; + # enote - echo ''; $totalMeans[$sequence] += ($means[$fkey][$oKey][$sequence]*(int)$frequencys[$fkey][$oKey][$sequence]['validCnt']); @@ -831,44 +874,48 @@ class SurveyBreak } } } + echo ''; } } } + + #dodamo še skupno sumo in povprečje echo ''; - echo ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { if ($isDoubleGrid == false || ($isDoubleGrid == true && $grid['part'] == $part)) { foreach ($grid['variables'] AS $vkey => $variable) { $sequence = $variable['sequence']; if ($variable['other'] != 1) { + #povprečja - echo ''; + # enote - echo ''; } - } } } + echo ''; - echo '
'; echo ''; echo ''; echo $forSpremenljivka['naslov']; echo '('.$forSpremenljivka['variable'].')'; echo ''; echo ''; - - echo ''; - echo ''; + echo ''; echo ''; echo ''; echo $spremenljivka['naslov']; @@ -768,60 +800,71 @@ class SurveyBreak echo ' - '.$doubleGridTitle['subtitle']; } echo ''; - echo ''; + echo '
'; + echo ''; echo $variable['naslov']; echo '('.$variable['variable'].')'; - echo ''; + echo '
Povprečje'.$lang['']; - echo 'Št. enot'.$lang['']; - echo 'PovprečjeŠt. enot
'; if ($forSpremenljivka['tip'] == 2) { echo $cbxLabel; - } else { + } + else { echo $forSpremenljivka['options'][$oKey]; } echo ''; echo $this->formatNumber($means[$fkey][$oKey][$sequence],$this->num_digit_average,''); echo ''; + echo ''; echo (int)$frequencys[$fkey][$oKey][$sequence]['validCnt']; echo '
'; + + echo ''; echo 'Skupaj'; echo ''; + echo ''; $totalMean = $totalFreq[$sequence] > 0 ? $totalMeans[$sequence] / $totalFreq[$sequence] : 0; echo $this->formatNumber($totalMean ,$this->num_digit_average,''); echo ''; + echo ''; echo (int)$totalFreq[$sequence]; echo '
';//$forSpremenljivka['grids'][0]['variables'] - + + echo ''; + + echo '
'; } - // Zvezdica za vkljucitev v porocilo - $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; - $spr2 = $spremenljivka['grids'][0]['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; - SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); - echo '
'; } } @@ -877,7 +924,8 @@ class SurveyBreak #ranking - 17: #vsota - 18: #multinumber - 20: - + global $lang; + $keysCount = count($frequencys); $sequences = explode('_',$spremenljivka['sequences']); $forSpremenljivka = $this->_HEADERS[$forSpr]; @@ -939,11 +987,10 @@ class SurveyBreak } // Ce izrisujemo tabelo else{ - - echo '
'; - echo '
'; + # za multi number naredimo po skupinah if ($tip != 20 ) { + $rowspan = ' rowspan="3"'; $colspan = ' colspan="'.(2*count($sequences)).'"'; @@ -951,90 +998,126 @@ class SurveyBreak if ((int)$this->break_percent > 0) { $break_percentRowSpan = ' rowspan="2"'; } + + echo '
'; + + + // Zvezdica za vkljucitev v porocilo + echo '
'; + + $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; + $spr2 = $spremenljivka['grids'][0]['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; + SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); + + echo '
'; + + # če ni multicheck in multi grid - echo ''; - echo ''; - echo ''; + echo '
'; + + + echo ''; + + echo ''; + + echo ''; + echo ''; + - echo ''; + echo ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; } } + echo ''; - echo ''; + + + echo ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; - echo ''; + echo ''; + echo ''; } } + echo ''; + foreach ($frequencys AS $fkey => $fkeyFrequency) { foreach ($options AS $oKey => $option) { if ($displayAll || $means[$fkey][$oKey] != null) { + echo ''; - echo ''; + + echo ''; - $css = ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { foreach ($grid['variables'] AS $vkey => $variable) { $sequence = $variable['sequence']; if ($variable['other'] != 1) { + + $means1 = isset($means[$fkey][$oKey][$sequence])?$means[$fkey][$oKey][$sequence]:0; + $validCnt1 = isset($frequencys[$fkey][$oKey][$sequence]['validCnt'])?$frequencys[$fkey][$oKey][$sequence]['validCnt']:0; + #povprečja - echo ''; - echo $this->formatNumber($means[$fkey][$oKey][$sequence],$this->num_digit_average,''); - #echo $this->formatNumber($means[$fkey][$sequence],SurveyDataSettingProfiles :: getSetting('NUM_DIGIT_AVERAGE'),''); + echo ''; + # enote - echo ''; - #$totalMeans[$sequence] += ($this->getMeansFromKey($fkeyFrequency[$sequence])*(int)$frequencys[$fkey][$sequence]['validCnt']); - #$totalFreq[$sequence]+= (int)$frequencys[$fkey][$sequence]['validCnt']; - $totalMeans[$sequence] += ($means[$fkey][$oKey][$sequence]*(int)$frequencys[$fkey][$oKey][$sequence]['validCnt']); - $totalFreq[$sequence]+= (int)$frequencys[$fkey][$oKey][$sequence]['validCnt']; + + $totalMeans[$sequence] = (isset($totalMeans[$sequence])? + $totalMeans[$sequence] += ($means1*(int)$validCnt1): $means1*(int)$validCnt1); + $totalFreq[$sequence] = (isset($totalFreq[$sequence])? + $totalFreq[$sequence] += ((int)$validCnt1): (int)$validCnt1); } } } + echo ''; + + if ((int)$this->break_percent) { + echo ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { foreach ($grid['variables'] AS $vkey => $variable) { if ($variable['other'] != 1) { + $sequence = $variable['sequence']; - echo ''; } } } } + + #dodamo še skupno sumo in povprečje echo ''; - echo ''; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { foreach ($grid['variables'] AS $vkey => $variable) { $sequence = $variable['sequence']; if ($variable['other'] != 1) { + #povprečja - echo ''; + # enote - echo ''; } } - } + echo ''; + echo '
'; echo ''; echo ''; echo $forSpremenljivka['naslov']; echo '('.$forSpremenljivka['variable'].')'; echo ''; echo ''; - - echo ''; - echo ''; + echo ''; echo ''; echo ''; echo $spremenljivka['naslov']; echo '('.$spremenljivka['variable'].')'; echo ''; echo ''; - echo ''; + echo '
'; + echo ''; echo $variable['naslov']; echo '('.$variable['variable'].')'; - echo ''; + echo '
Povprečje'.$lang['']; - echo 'Št. enot'.$lang['']; - echo 'PovprečjeŠt. enot
'; echo $forSpremenljivka['options'][$oKey]; echo ''; + echo $this->formatNumber($means1,$this->num_digit_average,''); echo ''; - echo (int)$frequencys[$fkey][$oKey][$sequence]['validCnt']; - #echo (int)$frequencys[$fkey][$sequence]['validCnt']; + echo ''; + echo (int)$validCnt1; echo '
'; - #echo (int)$frequencys[$fkey][$sequence]['validCnt']; + + echo ''; $percent = 0; if ($frequencys[$fkey][$sequence]['validCnt'] > 0 ) { $percent = 100; @@ -1045,81 +1128,103 @@ class SurveyBreak } } + echo '
'; - echo $lang[''].'Skupaj'; + + echo ''; + echo 'Skupaj'; echo ''; + echo ''; $totalMean = $totalFreq[$sequence] > 0 ? $totalMeans[$sequence] / $totalFreq[$sequence] : 0; echo $this->formatNumber($totalMean ,$this->num_digit_average,''); echo ''; + echo ''; echo (int)$totalFreq[$sequence]; echo '
'; - - // Zvezdica za vkljucitev v porocilo - $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; - $spr2 = $spremenljivka['grids'][0]['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; - - #xxxxx - SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); - - - } else if ($tip == 20){ + echo '
'; + } + else if ($tip == 20){ + # za multi number razdelimo na grupe - skupine $rowspan = ' rowspan="3"'; $colspan = ' colspan="'.(2*count($spremenljivka['grids'][0]['variables'])).'"'; + foreach ($spremenljivka['grids'] AS $gkey => $grid) { // Ce smo v porocilu po meri in ni prava tabela jo preskocimo if(isset($spremenljivka['break_sub_table']['key']) && $spremenljivka['break_sub_table']['key'] != $gkey){ continue; } + + echo '
'; + + echo '
'; + // Ce smo v porocilu po meri in je prava tabelo jo izpisemo brez naslova if(!isset($spremenljivka['break_sub_table']['sequence'])){ - echo '
'.$lang['srv_break_table_for']; + echo '
'; + + echo $lang['srv_break_table_for']; echo $spremenljivka['naslov'].' ('; echo $spremenljivka['variable'].') = '; echo $grid['naslov']; echo ' ('.$grid['variable'].')'; - echo ''; + + echo '
'; } + + // Zvezdica za vkljucitev v porocilo + $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; + $spr2 = $grid['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; + SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); + + echo '
'; + - echo ''; + echo '
'; + + #labele - echo ''; - echo ''; + echo ''; + + echo ''; - echo ''; + echo ''; + echo''; + + #labele - echo ''; + echo ''; + foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; } echo ''; - echo ''; + + + echo ''; + foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; - echo ''; + echo ''; + echo ''; } + echo ''; + + $cnt=0; foreach ($frequencys AS $fkey => $fkeyFrequency) { $cbxLabel = $forSpremenljivka['grids'][0]['variables'][$cnt]['naslov']; $cnt++; + foreach ($forSpremenljivka['options'] AS $oKey => $option) { if ($displayAll || $means[$fkey][$oKey] != null) { + # če je osnova checkbox vzamemo samo tam ko je 1 if(($forSpremenljivka['tip'] == 2 && $option == 1) || $forSpremenljivka['tip'] != 2 ) { - echo ''; - echo ''; + + echo ''; + + echo ''; + foreach ($grid['variables'] AS $vkey => $variable) { $sequence = $variable['sequence']; + #povprečje - echo ''; + # enote - echo ''; + $totalMeans[$sequence] += ($means[$fkey][$oKey][$sequence]*(int)$frequencys[$fkey][$oKey][$sequence]['validCnt']); $totalFreq[$sequence]+= (int)$frequencys[$fkey][$oKey][$sequence]['validCnt']; @@ -1183,46 +1304,46 @@ class SurveyBreak } } } + + #dodamo še skupno sumo in povprečje echo ''; - echo ''; + foreach ($grid['variables'] AS $vkey => $variable) { $sequence = $variable['sequence']; if ($variable['other'] != 1) { + #povprečja - echo ''; + # enote - echo ''; } } + echo ''; + echo '
'; echo ''; echo ''; echo $forSpremenljivka['naslov']; echo '('.$forSpremenljivka['variable'].')'; echo ''; echo ''; - echo ''; + echo ''; echo ''; echo ''; echo $spremenljivka['naslov']. ' - '; @@ -1127,53 +1232,69 @@ class SurveyBreak echo '('.$grid['variable'].')'; echo ''; echo ''; - echo ''; + echo '
'; + echo ''; echo $variable['naslov']; echo '('.$variable['variable'].')'; - echo ''; + echo '
Povprečje'.$lang['']; - echo 'Št. enot'.$lang['']; - echo 'PovprečjeŠt. enot
'; if ($forSpremenljivka['tip'] == 2) { echo $cbxLabel; - } else { + } + else { echo $forSpremenljivka['options'][$oKey]; } - #echo ' ('.$oKey.')'; echo ''; + echo ''; echo $this->formatNumber($means[$fkey][$oKey][$sequence],$this->num_digit_average,''); echo ''; + echo ''; echo (int)$frequencys[$fkey][$oKey][$sequence]['validCnt']; echo '
'; + + echo ''; echo 'Skupaj'; echo ''; + echo ''; $totalMean = $totalFreq[$sequence] > 0 ? $totalMeans[$sequence] / $totalFreq[$sequence] : 0; echo $this->formatNumber($totalMean ,$this->num_digit_average,''); echo ''; + echo ''; echo (int)$totalFreq[$sequence]; echo '
'; - - - // Zvezdica za vkljucitev v porocilo - $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; - $spr2 = $grid['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; - SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); - - echo '
'; + + echo '
'; } - - } - echo '
'; - } - + } + } } + #text - 21: + #multi text - 19: function displayBreakTableText($forSpr,$frequencys,$spremenljivka){ - #text - 21: - #multi text - 19: + global $lang; $keysCount = count($frequencys); $sequences = explode('_',$spremenljivka['sequences']); $forSpremenljivka = $this->_HEADERS[$forSpr]; @@ -1234,11 +1355,12 @@ class SurveyBreak $totalFreq = array(); $forSequences = array(); $cnt = array(); + foreach ($frequencys AS $fkey => $fkeyFrequency) { $forSequences[] = $fkey; foreach ($forSpremenljivka['options'] AS $oKey => $option) { foreach ($sequences AS $sequence) { - $txt = $this->getTextFromKey($fkeyFrequency[$oKey][$sequence]); + $txt = isset($fkeyFrequency[$oKey][$sequence])?$this->getTextFromKey($fkeyFrequency[$oKey][$sequence]):array(); if ($txt) { $cnt[$fkey]++; $texts[$fkey][$oKey][$sequence] = $txt; @@ -1248,123 +1370,143 @@ class SurveyBreak } # če imamo več kot 20 kategorij,izpisujemo samo tiste ki imajo vrednosti - $displayAll = (count($forSpremenljivka['options']) > 20) ? false : true; - - echo '
'; - echo '
'; - # za multi text razdelimo na grupe - skupine - $rowspan = ' rowspan="2"'; - $colspan = ' colspan="'.(count($spremenljivka['grids'][0]['variables'])).'"'; - foreach ($spremenljivka['grids'] AS $gkey => $grid) { - - // Ce smo v porocilu po meri in ni prava tabela jo preskocimo - if(isset($spremenljivka['break_sub_table']['sequence']) && $spremenljivka['break_sub_table']['key'] != $gkey){ - continue; - } - - // Ce smo v porocilu po meri in je prava tabelo jo izpisemo brez naslova - if(!isset($spremenljivka['break_sub_table']['sequence'])){ - echo '
'; - if($tip != '21'){ - echo ''; - echo $lang['srv_break_table_for']; - echo $spremenljivka['naslov'].' ('; - echo $spremenljivka['variable'].') = '; - echo $grid['naslov']; - echo ' ('.$grid['variable'].')'; - echo ''; - } - } - - echo ''; - #labele - echo ''; - echo ''; - echo ''; - echo ''; - echo $forSpremenljivka['naslov']; - echo '('.$forSpremenljivka['variable'].')'; - echo ''; - echo ''; - echo ''; - - echo ''; - echo ''; - echo ''; - echo $spremenljivka['naslov']. ' - '; - echo $grid['naslov']; - echo '('.$grid['variable'].')'; - echo ''; - echo ''; - echo ''; - echo''; - #labele - echo ''; - foreach ($grid['variables'] AS $vkey => $variable) { - echo ''; - } - echo ''; - $cntCbx= 0; - foreach ($forSequences AS $fKey => $forSequence) { - $cbxLabel = $forSpremenljivka['grids'][0]['variables'][$cntCbx]['naslov']; - $cntCbx++; - foreach ($forSpremenljivka['options'] AS $oKey => $option) { - if ($displayAll || $texts[$forSequence][$oKey] != null) { - if(($forSpremenljivka['tip'] == 2 && $option == 1) || $forSpremenljivka['tip'] != 2 ) { - echo ''; - echo ''; - if ($forSpremenljivka['tip'] == 2) { - echo $cbxLabel; - } else { - echo $forSpremenljivka['options'][$oKey]; - } - echo ''; - foreach ($grid['variables'] AS $vkey => $variable) { - $sequence = $variable['sequence']; - #povprečje - echo ''; - - } - echo ''; - } - } - } - } - echo '
'; - echo $variable['naslov']; - echo '('.$variable['variable'].')'; - echo '('.$variable['sequence'].')'; - echo '
'; - if (count($texts[$forSequence][$oKey][$sequence]) > 0) { - $cnt=1; - $count = count($texts[$forSequence][$oKey][$sequence]); - foreach ($texts[$forSequence][$oKey][$sequence] AS $ky => $units) { - echo '
'; - echo $units['text']; - echo '
'; - $cnt++; - } - } - - - #echo $this->formatNumber($texts[$oKey][$sequence],$this->num_digit_average,''); - echo '
'; - - - // Zvezdica za vkljucitev v porocilo - $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; - $spr2 = $grid['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; - SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); - - echo '
'; - } + $displayAll = (count($forSpremenljivka['options']) > 20) ? false : true; + + # za multi text razdelimo na grupe - skupine + $rowspan = ' rowspan="2"'; + $colspan = ' colspan="'.(count($spremenljivka['grids'][0]['variables'])).'"'; + + + foreach ($spremenljivka['grids'] AS $gkey => $grid) { + + // Ce smo v porocilu po meri in ni prava tabela jo preskocimo + if(isset($spremenljivka['break_sub_table']['sequence']) && $spremenljivka['break_sub_table']['key'] != $gkey){ + continue; + } + + echo '
'; + + + echo '
'; + + // Ce smo v porocilu po meri in je prava tabelo jo izpisemo brez naslova + if(!isset($spremenljivka['break_sub_table']['sequence'])){ - echo '
'; - + if($tip != '21'){ + echo '
'; + + echo $lang['srv_break_table_for']; + echo $spremenljivka['naslov'].' ('; + echo $spremenljivka['variable'].') = '; + echo $grid['naslov']; + echo ' ('.$grid['variable'].')'; + + echo '
'; + } + } + + // Zvezdica za vkljucitev v porocilo + $spr1 = $this->sessionData['break']['seq'].'-'. $this->sessionData['break']['spr'].'-undefined'; + $spr2 = $grid['variables'][0]['sequence'].'-'.$spremenljivka['id'].'-undefined'; + SurveyAnalysisHelper::getInstance()->addCustomReportElement($type=9, $sub_type=0, $spr1, $spr2); + + echo '
'; + + + echo ''; + + + #labele + echo ''; + + echo ''; + + echo ''; + + echo''; + + + #labele + echo ''; + + foreach ($grid['variables'] AS $vkey => $variable) { + echo ''; + } + + echo ''; + + + $cntCbx= 0; + foreach ($forSequences AS $fKey => $forSequence) { + $cbxLabel = $forSpremenljivka['grids'][0]['variables'][$cntCbx]['naslov']; + $cntCbx++; + + foreach ($forSpremenljivka['options'] AS $oKey => $option) { + if ($displayAll || $texts[$forSequence][$oKey] != null) { + if(($forSpremenljivka['tip'] == 2 && $option == 1) || $forSpremenljivka['tip'] != 2 ) { + + echo ''; + + echo ''; + + foreach ($grid['variables'] AS $vkey => $variable) { + $sequence = $variable['sequence']; + #povprečje + echo ''; + } + + echo ''; + } + } + } + } + + echo '
'; + echo ''; + echo ''; + echo $forSpremenljivka['naslov']; + echo '('.$forSpremenljivka['variable'].')'; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo $spremenljivka['naslov']. ' - '; + echo $grid['naslov']; + echo isset($grid['variable'])?'('.$grid['variable'].')':''; + echo ''; + echo ''; + echo '
'; + echo $variable['naslov']; + echo '('.$variable['variable'].')'; + echo '('.$variable['sequence'].')'; + echo '
'; + if ($forSpremenljivka['tip'] == 2) { + echo $cbxLabel; + } + else { + echo $forSpremenljivka['options'][$oKey]; + } + echo ''; + if (isset($texts[$forSequence][$oKey][$sequence])&&count($texts[$forSequence][$oKey][$sequence]) > 0) { + $cnt=1; + $count = count($texts[$forSequence][$oKey][$sequence]); + foreach ($texts[$forSequence][$oKey][$sequence] AS $ky => $units) { + echo '
'; + echo $units['text']; + echo '
'; + $cnt++; + } + } + + echo '
'; + + echo '
'; + } } function displayCrosstabTable($forSpr,$frequencys,$spremenljivka){ - + global $lang; #polovimo sekvence in spremenljivke // Ce smo v creportu imamo nastavljeno prvo spremenljivko posebej (ne v sessionu) if(isset($spremenljivka['break_sub_table']['sequence'])){ @@ -1406,14 +1548,18 @@ class SurveyBreak // Ce smo v porocilu po meri in je prava tabelo jo izpisemo brez naslova if(!isset($spremenljivka['break_sub_table']['sequence']) && ($spremenljivka['tip'] == 16 || $spremenljivka['tip'] == 6) && $this->break_charts != 1){ - echo '
'.$lang['srv_break_table_for']; + + echo '
'; + + echo $lang['srv_break_table_for']; echo $spremenljivka['naslov'].' ('; echo $spremenljivka['variable'].') = '; echo $grid['naslov']; if ($spremenljivka['tip'] != 6) { echo ' ('.$grid['variable'].')'; } - echo ''; + + echo '
'; } $seq2 = $grid['variables'][0]['sequence']; @@ -1435,26 +1581,24 @@ class SurveyBreak $this->SurveyCrosstab->setVariables($seq1,$spr1,$grd1,$seq2,$spr2,$grd2); $this->SurveyCrosstab->displayCrosstabsTable(); } - - echo '
'; } - } + function getMeansFromKey($frequencys) { $sum = 0; - if (count($frequencys['valid']) > 0) { + if (isset($frequencys['valid'])&&count($frequencys['valid']) > 0) { foreach ($frequencys['valid'] AS $fkey => $tmp) { $sum += (int)$fkey * (int)$tmp['cnt']; } } - $mean = (int)$frequencys['validCnt'] > 0 ? (int)$sum / (int)$frequencys['validCnt'] : 0; + $mean = isset($frequencys['validCnt'])&&(int)$frequencys['validCnt'] > 0 ? (int)$sum / (int)$frequencys['validCnt'] : 0; return $mean; } function getTextFromKey($frequencys) { $texts = array(); - if (count($frequencys['valid']) > 0) { + if (isset($frequencys['valid'])&&count($frequencys['valid']) > 0) { foreach ($frequencys['valid'] AS $fkey => $tmp) { $texts[] = $tmp; } @@ -1514,21 +1658,21 @@ class SurveyBreak echo '
'; - echo ''.$lang['srv_custom_report_comments_add'].''; - - echo ''; - echo ''; - echo ''; - echo ''; + echo ''; + + echo ''; + //echo ''; + //echo ''; echo ''; - echo ''; + echo ''; echo '
'; // Javascript s katerim povozimo urlje za izvoze, ki niso na voljo v paketu - global $app_settings; - if($app_settings['commercial_packages'] == true){ + if(AppSettings::getInstance()->getSetting('app_settings-commercial_packages') === true){ echo ''; } } @@ -1561,18 +1705,19 @@ class SurveyBreak function displayLinePercent() { global $lang; - echo ''; + + echo 'break_percent == 1 ? ' checked="checked" ' : '') . ' autocomplete="off"/>'; + echo ''; } function displayLineCharts() { global $lang; - echo ''; - - echo ' '; - echo ' '; - - echo ''; + echo 'break_charts == 0 ? ' checked="checked" ' : '').' onClick="change_break_charts(this.value)" />'; + echo ''; + + echo 'break_charts == 1 ? ' checked="checked" ' : '').' onClick="change_break_charts(this.value)" />'; + echo ''; } + } \ No newline at end of file -- cgit v1.2.3