2020-08-14 13:36:36 +02:00
< ? php
class SurveyReminderTracking {
private $anketa ; # id ankete
private $db_table ; # katere tabele uporabljamo
public $_HEADERS = array (); # shranimo podatke vseh variabel
private $headFileName = null ; # pot do header fajla
private $dataFileName = null ; # pot do data fajla
private $dataFileStatus = null ; # status data datoteke
public $variablesList = null ; # Seznam vseh variabel nad katerimi lahko izvajamo (zakeširamo)
public $_CURRENT_STATUS_FILTER = '' ; # filter po statusih, privzeto izvažamo 6 in 5
public $_PROFILE_ID_VARIABLE = '' ; # filter po statusih, privzeto izvažamo 6 in 5
public $_HAS_TEST_DATA = false ; # ali anketa vsebuje testne podatke
private $sessionData ; # podatki ki so bili prej v sessionu - za nastavitve, ki se prenasajo v izvoze...
private $_missings = array ();
private $_unsets = array ();
private $displayEditIconsSettings = false ; # ali prikazujemo okno s checkboxi za nastavitve tabele s podatki
private $cols_with_value = array (); # kateri stolpci imajo vrednosti
private $show_with_zero = false ; # Ali prikazujemo stolpce z vrednostmi 0
private $show_details = false ; # Ali prikazujemo stolpce s podrobnimi vrednostmi (-1, -2...)
private $show_calculations = false ; # Ali prikazujemo stolpce s podrobnimi izracuni (UML, UNL...)
private $show_with_other = true ; # Ali prikazujemo vrstice "Drugo"
private $show_with_text = true ; # Ali prikazujemo vrstice tipa "besedilo"
public $bottom_usable_limit = 50 ; # Spodnja meja za usable respondente (def. 50%)
public $top_usable_limit = 80 ; # Zgornja meja za usable respondente (def. 80%) - unusable (50-), partially usable (50-80), usable(80+)
//private $sortField = 'recnum'; # Polje po katerem sortiramo tabelo
private $sortField = '' ; # Polje po katerem sortiramo tabelo
private $sortType = 0 ; # Nacin sortiranja (narascajoce/padajoce)
function __construct ( $anketa , $generateDataFile = true ){
global $lang ;
if (( int ) $anketa > 0 ){
$this -> anketa = $anketa ;
SurveyAnalysisHelper :: getInstance () -> Init ( $this -> anketa );
# polovimo vrsto tabel (aktivne / neaktivne)
SurveyInfo :: getInstance () -> SurveyInit ( $this -> anketa );
2021-07-23 12:25:40 +02:00
$this -> db_table = SurveyInfo :: getInstance () -> getSurveyArchiveDBString ();
2020-08-14 13:36:36 +02:00
$this -> _CURRENT_STATUS_FILTER = STATUS_FIELD . ' ~ /6|5/' ;
Common :: deletePreviewData ( $this -> anketa );
// Poskrbimo za datoteko s podatki
$SDF = SurveyDataFile :: get_instance ();
$SDF -> init ( $this -> anketa );
if ( $generateDataFile )
$SDF -> prepareFiles ();
$this -> headFileName = $SDF -> getHeaderFileName ();
$this -> dataFileName = $SDF -> getDataFileName ();
$this -> dataFileStatus = $SDF -> getStatus ();
if ( $this -> dataFileStatus == FILE_STATUS_NO_DATA || $this -> dataFileStatus == FILE_STATUS_SRV_DELETED ) {
Common :: noDataAlert ();
exit ();
}
# Inicializiramo in polovimo nastavitve missing profila
SurveyStatusProfiles :: Init ( $this -> anketa );
SurveyUserSetting :: getInstance () -> Init ( $this -> anketa , $global_user_id );
SurveyConditionProfiles :: Init ( $this -> anketa , $global_user_id );
SurveyTimeProfiles :: Init ( $this -> anketa , $global_user_id );
SurveyVariablesProfiles :: Init ( $this -> anketa , $global_user_id );
SurveyDataSettingProfiles :: Init ( $this -> anketa );
// preberemo nastavitve iz baze (prej v sessionu)
SurveyUserSession :: Init ( $this -> anketa );
$this -> sessionData = SurveyUserSession :: getData ();
if ( isset ( $_SESSION [ 'sid_' . $this -> anketa ][ 'usabilityIcons_settings' ]))
$this -> displayEditIconsSettings = ( $_SESSION [ 'sid_' . $this -> anketa ][ 'usabilityIcons_settings' ]);
if ( $this -> headFileName !== null && $this -> headFileName != '' ){
$this -> _HEADERS = unserialize ( file_get_contents ( $this -> headFileName ));
}
# nastavimo vse filtre
$this -> setUpFilter ();
# nastavimo filtre uporabnika
$this -> setUserFilters ();
# nastavimo sortiranje
if ( isset ( $_GET [ 'sortField' ]))
$this -> sortField = $_GET [ 'sortField' ];
if ( isset ( $_GET [ 'sortType' ]))
$this -> sortType = $_GET [ 'sortType' ];
}
else {
echo 'Invalid Survey ID!' ;
exit ();
}
}
public function getMissings (){
return $this -> _missings ;
}
public function getUnsets (){
return $this -> _unsets ;
}
public function getColsWithValue (){
return $this -> cols_with_value ;
}
public function showCalculations (){
return $this -> show_calculations ;
}
public function showDetails (){
return $this -> show_details ;
}
public function showWithZero (){
return $this -> show_with_zero ;
}
function displayTable (){
global $lang ;
# ali imamo testne podatke
if ( $this -> _HAS_TEST_DATA ){
# izrišemo bar za testne podatke
$SSH = new SurveyStaticHtml ( $this -> anketa );
$SSH -> displayTestDataBar ( true );
}
// Izracunamo vse podatke
$usability = $this -> calculateData (); //podatki po respondentih
$userData = $usability [ 'data' ];
$vars = $this -> calculateDataVars ( $userData [ 1 ][ 'usr_id' ]); //podatki po spremenljivkah
if ( $_GET [ 'm' ] == A_REMINDER_TRACKING_RECNUM ){ //ce je prikaz po respondentih
$this -> sortField = 'recnum' ;
}
else if ( $_GET [ 'm' ] == A_REMINDER_TRACKING_VAR ){ //ce je prikaz po spremenljivkah
$this -> sortField = 'vars' ;
}
// Sortiramo podatke
foreach ( $userData as $key => $row ) {
$mid [ $key ] = $row [ $this -> sortField ];
}
if ( $this -> sortType == 0 )
array_multisort ( $mid , SORT_ASC , $userData );
else
array_multisort ( $mid , SORT_DESC , $userData );
# ali odstranimo stolpce kateri imajo same 0
if ( $this -> show_with_zero == false ) {
# odstranimo missinge brez vrednosti
foreach ( $this -> _missings AS $_key => $_missing ) {
if ( ! isset ( $this -> cols_with_value [ $_key ]) || $this -> cols_with_value [ $_key ] == false ) {
unset ( $this -> _missings [ $_key ]);
}
}
# odstranimo neveljavne brez vrednosti
foreach ( $this -> _unsets AS $_key => $_unset ) {
if ( ! isset ( $this -> cols_with_value [ $_key ]) || $this -> cols_with_value [ $_key ] == false ) {
unset ( $this -> _unsets [ $_key ]);
}
}
}
if ( $_GET [ 'm' ] == A_REMINDER_TRACKING_RECNUM ){ //ce je prikaz po respondentih
echo '<h2>' . $lang [ 'srv_reminder_tracking_title_recnum' ] . '</h2>' ;
$naslovStolpecMoznaOpozorila = $lang [ 'srv_reminder_tracking_possible_errors_resp' ];
}
else if ( $_GET [ 'm' ] == A_REMINDER_TRACKING_VAR ){ //ce je prikaz po spremenljivkah
echo '<h2>' . $lang [ 'srv_reminder_tracking_title_vars' ] . '</h2>' ;
$naslovStolpecMoznaOpozorila = $lang [ 'srv_reminder_tracking_possible_errors_var' ];
}
echo '<div id="table_reminder_tracking"><table class="reminder_tracking_table" ' . ( $this -> show_details == true && $this -> show_calculations == true ? '' : ' style="width:100%"' ) . '>' ;
// Header row
echo '<tr>' ;
if ( $this -> sortType == 1 ){
$sortType = 0 ;
$arrow = ' <span class="faicon sort_ascending"></span>' ;
}
else {
$sortType = 1 ;
$arrow = ' <span class="faicon sort_descending"></span>' ;
}
if ( $_GET [ 'm' ] == A_REMINDER_TRACKING_RECNUM ){ //ce je prikaz po respondentih
echo '<th class="recnum" rowspan="2" style="width:60px;"><a href="index.php?anketa=' . $this -> anketa . '&a=reminder_tracking&m=' . A_REMINDER_TRACKING_RECNUM . '&sortField=recnum&sortType=' . $sortType . '">Recnum' ./* $lang [ 'recnum' ] .*/ ( $this -> sortField == 'recnum' ? $arrow : '' ) . '</a></th>' ;
//$qualityRowSpan = count($userData) + 2;
$qualityRowSpan = count ( $userData ) + 3 ;
$numOf = count ( $userData );
}
else if ( $_GET [ 'm' ] == A_REMINDER_TRACKING_VAR ){ //ce je prikaz po spremenljivkah
//echo '<th class="vars" rowspan="2" style="width:100px;"><a href="index.php?anketa='.$this->anketa.'&a=reminder_tracking&m='.A_REMINDER_TRACKING_VAR.'&sortField=vars&sortType='.$sortType.'">Spremenljivka'./*$lang['recnum'].*/($this->sortField=='vars' ? $arrow : '').'</a></th>';
echo '<th class="vars" rowspan="2" style="width:100px;">Vprašanje</th>' ;
//$qualityRowSpan = count($vars) + 2;
$qualityRowSpan = count ( $vars ) + 3 ;
$numOf = count ( $vars );
}
//echo '<th class="usable" colspan="2">Opozorila obveznih vprašanj</th>';
//Obvezna vprasanja
echo '<th class="usable" colspan="2">' . $lang [ 'srv_reminder_tracking_question' ] . '</th>' ;
//echo '<th class="data" colspan=2>Num opozorila</th>';
//Vnos stevil
echo '<th class="data" colspan=2>' . $lang [ 'srv_reminder_tracking_num' ] . '</th>' ;
//echo '<th class="data" colspan=2>Sum opozorila</th>';
//Vsota stevil
echo '<th class="data" colspan=2>' . $lang [ 'srv_reminder_tracking_sum' ] . '</th>' ;
//echo '<th class="usable" colspan="2">Validacije</th>';
//Validacije
echo '<th class="usable" colspan="2">' . $lang [ 'srv_reminder_tracking_validation' ] . '</th>' ;
echo '<th class="sprozenaOpozorila" rowspan="2">' . $naslovStolpecMoznaOpozorila . '</th>' ; //naslov stolpca "Število možnih opozoril"
echo '<th class="sprozenaOpozorila" rowspan="2">' . $lang [ 'srv_reminder_tracking_sum_of_errors' ] . '</th>' ; //naslov stolpca "Vsota sprozenih opozoril"
echo '<th class="sprozenaOpozorilaLine" rowspan="2">' . $lang [ 'srv_reminder_tracking_activated_errors' ] . '</th>' ; //naslov stolpca "Stevilo sprozenih opozoril"
//$qualityRowSpan = count($userData) + 2;
echo '<th class="sprozenaOpozorilaLine" rowspan="' . $qualityRowSpan . '">' . $lang [ 'srv_reminder_tracking_quality' ] . ' ' . Help :: display ( 'srv_reminder_tracking_quality' ) . '</th>' ;
echo '</tr>' ; // Header row - konec
//Second title row
echo '<tr>' ;
echo '<th class="data">' . $lang [ 'srv_reminder_tracking_hard' ] . '</th>' ;
echo '<th class="data">' . $lang [ 'srv_reminder_tracking_soft' ] . '</th>' ;
echo '<th class="data">' . $lang [ 'srv_reminder_tracking_hard' ] . '</th>' ;
echo '<th class="data">' . $lang [ 'srv_reminder_tracking_soft' ] . '</th>' ;
echo '<th class="data">' . $lang [ 'srv_reminder_tracking_hard' ] . '</th>' ;
echo '<th class="data">' . $lang [ 'srv_reminder_tracking_soft' ] . '</th>' ;
echo '<th class="data">' . $lang [ 'srv_reminder_tracking_hard' ] . '</th>' ;
echo '<th class="data">' . $lang [ 'srv_reminder_tracking_soft' ] . '</th>' ;
echo '</tr>' ; //Second title row - konec
if ( $_GET [ 'm' ] == A_REMINDER_TRACKING_RECNUM )
{ //ce je prikaz po respondentih
$sprozenaOpozorilaAll = 0 ;
$sumObveznihVprasanjHard = 0 ;
$sumObveznihVprasanjSoft = 0 ;
$sumNumAlertHard = 0 ;
$sumNumAlertSoft = 0 ;
$sumSumAlertHard = 0 ;
$sumSumAlertSoft = 0 ;
$sumValidationHard = 0 ;
$sumValidationSoft = 0 ;
// Izpis podatkov vsakega respondenta
foreach ( $userData as $key => $user ){
// Prva vrstica z vrednostmi
echo '<tr>' ;
echo '<td rowspan="1" class="recnum"><a href="index.php?anketa=' . $this -> anketa . '&a=data&m=quick_edit&usr_id=' . $user [ 'usr_id' ] . '&quick_view=1">' . $user [ 'recnum' ] . '</a></td>' ;
$sprozenaOpozorila = 0 ;
$steviloVsehMoznihOpozoril = 0 ;
// Alerti obveznih vprasanj Hard
$this -> izrisPodatka ( $user [ 'rowHardAlert' ]);
//$sprozenaOpozorila = $sprozenaOpozorila + $user['rowHardAlert'];
if ( $user [ 'rowHardAlert' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Alerti obveznih vprasanj Soft
$this -> izrisPodatka ( $user [ 'rowSoftAlert' ]);
//$sprozenaOpozorila = $sprozenaOpozorila + $user['rowSoftAlert'];
if ( $user [ 'rowSoftAlert' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Num Alerti Hard
$this -> izrisPodatka ( $user [ 'rowNumHard' ]);
//$sprozenaOpozorila = $sprozenaOpozorila + $user['rowNumHard'];
if ( $user [ 'rowNumHard' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Num Alerti Soft
$this -> izrisPodatka ( $user [ 'rowNumSoft' ]);
//$sprozenaOpozorila = $sprozenaOpozorila + $user['rowNumSoft'];
if ( $user [ 'rowNumSoft' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Sum Alerti Hard
$this -> izrisPodatka ( $user [ 'rowSumHard' ]);
//$sprozenaOpozorila = $user['rowSumHard'];
if ( $user [ 'rowSumHard' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Sum Alerti Soft
$this -> izrisPodatka ( $user [ 'rowSumSoft' ]);
//$sprozenaOpozorila = $sprozenaOpozorila + $user['rowSumSoft'];
if ( $user [ 'rowSumSoft' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Alerti Hard Validation
$this -> izrisPodatka ( $user [ 'rowHardValidation' ]);
//$sprozenaOpozorila = $sprozenaOpozorila + $user['rowHardValidation'];
if ( $user [ 'rowHardValidation' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Alerti Soft Validation
$this -> izrisPodatka ( $user [ 'rowSoftValidation' ]);
//$sprozenaOpozorila = $sprozenaOpozorila + $user['rowSoftValidation'];
if ( $user [ 'rowSoftValidation' ] != 0 ){ $sprozenaOpozorila ++ ;}
//Izracun vsote sprozenih opozoril - po stolpcih
//Alerti obveznih vprasanj
$sumObveznihVprasanjHard = $sumObveznihVprasanjHard + $user [ 'rowHardAlert' ];
$sumObveznihVprasanjSoft = $sumObveznihVprasanjSoft + $user [ 'rowSoftAlert' ];
//Num Alerti
$sumNumAlertHard = $sumNumAlertHard + $user [ 'rowNumHard' ];
$sumNumAlertSoft = $sumNumAlertSoft + $user [ 'rowNumSoft' ];
//Sum Alerti
$sumSumAlertHard = $sumSumAlertHard + $user [ 'rowSumHard' ];
$sumSumAlertSoft = $sumSumAlertSoft + $user [ 'rowSumSoft' ];
//Alerti validation
$sumValidationHard = $sumValidationHard + $user [ 'rowHardValidation' ];
$sumValidationSoft = $sumValidationSoft + $user [ 'rowSoftValidation' ];
//Izracun vsote sprozenih opozoril - po stolpcih - konec
//Izracun stevila vseh moznih opozoril, ki ga potrebujemo za izracun kakovosti
$steviloVsehMoznihOpozorilSumHard = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilSumHard' );
$steviloVsehMoznihOpozorilSumSoft = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilSumSoft' );
$steviloVsehMoznihOpozorilNumHard = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilNumHard' );
$steviloVsehMoznihOpozorilNumSoft = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilNumSoft' );
$steviloVsehMoznihOpozorilHard = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilHard' );
$steviloVsehMoznihOpozorilSoft = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilSoft' );
$steviloVsehMoznihOpozorilValHard = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilValHard' );
$steviloVsehMoznihOpozorilValSoft = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilValSoft' );
//$steviloVsehMoznihOpozoril = $steviloVsehMoznihOpozorilSumHard + $steviloVsehMoznihOpozorilSumSoft + $steviloVsehMoznihOpozorilNumHard + $steviloVsehMoznihOpozorilNumSoft + $steviloVsehMoznihOpozorilHard + $steviloVsehMoznihOpozorilSoft + $steviloVsehMoznihOpozorilValHard + $steviloVsehMoznihOpozorilValSoft;
if ( $steviloVsehMoznihOpozorilSumHard != 0 ){ $steviloVsehMoznihOpozoril ++ ;}
if ( $steviloVsehMoznihOpozorilSumSoft != 0 ){ $steviloVsehMoznihOpozoril ++ ;}
if ( $steviloVsehMoznihOpozorilNumHard != 0 ){ $steviloVsehMoznihOpozoril ++ ;}
if ( $steviloVsehMoznihOpozorilNumSoft != 0 ){ $steviloVsehMoznihOpozoril ++ ;}
if ( $steviloVsehMoznihOpozorilHard != 0 ){ $steviloVsehMoznihOpozoril ++ ;}
if ( $steviloVsehMoznihOpozorilSoft != 0 ){ $steviloVsehMoznihOpozoril ++ ;}
if ( $steviloVsehMoznihOpozorilValHard != 0 ){ $steviloVsehMoznihOpozoril ++ ;}
if ( $steviloVsehMoznihOpozorilValSoft != 0 ){ $steviloVsehMoznihOpozoril ++ ;}
//Izracun stevila vseh moznih opozoril, ki ga potrebujemo za izracun kakovosti - konec
//Stevilo moznih opozoril
$steviloMoznihOpozorilPoResp = $steviloVsehMoznihOpozorilSumHard + $steviloVsehMoznihOpozorilSumSoft + $steviloVsehMoznihOpozorilNumHard + $steviloVsehMoznihOpozorilNumSoft + $steviloVsehMoznihOpozorilHard + $steviloVsehMoznihOpozorilSoft + $steviloVsehMoznihOpozorilValHard + $steviloVsehMoznihOpozorilValSoft ;
$this -> izrisPodatka ( $steviloMoznihOpozorilPoResp , 1 );
//Stevilo moznih opozoril - konec
//Izracun vsote sprozenih opozoril - po vrsticah
$vsotaSprozenihOpozoril = $user [ 'rowHardAlert' ] +
$user [ 'rowSoftAlert' ] +
$user [ 'rowNumHard' ] +
$user [ 'rowNumSoft' ] +
$user [ 'rowSumHard' ] +
$user [ 'rowSumSoft' ] +
$user [ 'rowHardValidation' ] +
$user [ 'rowSoftValidation' ]
;
//Izracun vsote sprozenih opozoril - po vrsticah - konec
echo '<td class="usable bold">' . $vsotaSprozenihOpozoril ; //Vsota sprozenih opozoril
echo '<td class="sprozenaOpozorilaLine">' . $sprozenaOpozorila ; //Stevilo sprozenih opozoril
/* //Izracun in prikazovanje kakovosti
$kakovost = $this -> izracunKakovosti ( count ( $userData ), $sprozenaOpozorila , $steviloVsehMoznihOpozoril );
$kakovost = SurveyAnalysis :: formatNumber ( $kakovost , 3 , '' );
echo '<td class="sprozenaOpozorila">' . $kakovost ;
//Izracun in prikazovanje kakovosti - konec
echo '</td>' ; */
echo '</tr>' ;
$sprozenaOpozorilaAll = $sprozenaOpozorilaAll + $sprozenaOpozorila ;
}
}
else if ( $_GET [ 'm' ] == A_REMINDER_TRACKING_VAR )
{ //ce je prikaz po spremenljivkah
$sprozenaOpozorilaAll = 0 ;
$sumObveznihVprasanjHard = 0 ;
$sumObveznihVprasanjSoft = 0 ;
$sumNumAlertHard = 0 ;
$sumNumAlertSoft = 0 ;
$sumSumAlertHard = 0 ;
$sumSumAlertSoft = 0 ;
$sumValidationHard = 0 ;
$sumValidationSoft = 0 ;
$varsData = array ();
// Izpis podatkov za vsako spremenljivko
foreach ( $vars as $key => $var ){
// Prva vrstica z vrednostmi
echo '<tr>' ;
//echo '<td rowspan="1" class="vars"><a href="index.php?anketa='.$this->anketa.'&a=data&m=quick_edit&spr_id='.$var['spr_id'].'&quick_view=1">'.$var['spr_id'].'</a></td>';
echo '<td rowspan="1" class="vars">' . $var [ 'variable' ] . '</td>' ;
//echo '<td rowspan="1" class="vars">'.$var['variable'].' '.count($vars).'</td>';
$sprozenaOpozorila = 0 ;
$steviloVsehMoznihOpozoril = 0 ;
//Alerti obveznih vprasanj Hard
$this -> izrisPodatka ( $var [ 'rowHardAlert' ]);
if ( $var [ 'rowHardAlert' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Alerti obveznih vprasanj Soft
$this -> izrisPodatka ( $var [ 'rowSoftAlert' ]);
if ( $var [ 'rowSoftAlert' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Num Alerti Hard
$this -> izrisPodatka ( $var [ 'rowNumHard' ]);
if ( $var [ 'rowNumHard' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Num Alerti Soft
$this -> izrisPodatka ( $var [ 'rowNumSoft' ]);
if ( $var [ 'rowNumSoft' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Sum Alerti Hard
$this -> izrisPodatka ( $var [ 'rowSumHard' ]);
if ( $var [ 'rowSumHard' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Sum Alerti Soft
$this -> izrisPodatka ( $var [ 'rowSumSoft' ]);
if ( $var [ 'rowSumSoft' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Alerti Hard Validation
$this -> izrisPodatka ( $var [ 'rowHardValidation' ]);
if ( $var [ 'rowHardValidation' ] != 0 ){ $sprozenaOpozorila ++ ;}
// Alerti Soft Validation
$this -> izrisPodatka ( $var [ 'rowSoftValidation' ]);
if ( $var [ 'rowSoftValidation' ] != 0 ){ $sprozenaOpozorila ++ ;}
//echo '<td class="sprozenaOpozorila">'.$sprozenaOpozorila;
//echo '</tr>';
//Izracun vsote sprozenih opozoril - po stolpcih
//Alerti obveznih vprasanj
$sumObveznihVprasanjHard = $sumObveznihVprasanjHard + $var [ 'rowHardAlert' ];
$sumObveznihVprasanjSoft = $sumObveznihVprasanjSoft + $var [ 'rowSoftAlert' ];
//Num Alerti
$sumNumAlertHard = $sumNumAlertHard + $var [ 'rowNumHard' ];
$sumNumAlertSoft = $sumNumAlertSoft + $var [ 'rowNumSoft' ];
//Sum Alerti
$sumSumAlertHard = $sumSumAlertHard + $var [ 'rowSumHard' ];
$sumSumAlertSoft = $sumSumAlertSoft + $var [ 'rowSumSoft' ];
//Alerti validation
$sumValidationHard = $sumValidationHard + $var [ 'rowHardValidation' ];
$sumValidationSoft = $sumValidationSoft + $var [ 'rowSoftValidation' ];
//Izracun vsote sprozenih opozoril - po stolpcih - konec
//Izracun stevila vseh moznih opozoril, ki ga potrebujemo za izracun kakovosti
$steviloVsehMoznihOpozorilSumHard = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilSumHard' );
$steviloVsehMoznihOpozorilSumSoft = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilSumSoft' );
$steviloVsehMoznihOpozorilNumHard = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilNumHard' );
$steviloVsehMoznihOpozorilNumSoft = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilNumSoft' );
$steviloVsehMoznihOpozorilHard = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilHard' );
$steviloVsehMoznihOpozorilSoft = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilSoft' );
$steviloVsehMoznihOpozorilValHard = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilValHard' );
$steviloVsehMoznihOpozorilValSoft = $this -> steviloMoznihOpozoril ( $vars , 'steviloVsehMoznihOpozorilValSoft' );
if ( $steviloVsehMoznihOpozorilSumHard != 0 ){ $steviloVsehMoznihOpozoril ++ ; }
if ( $steviloVsehMoznihOpozorilSumSoft != 0 ){ $steviloVsehMoznihOpozoril ++ ; }
if ( $steviloVsehMoznihOpozorilNumHard != 0 ){ $steviloVsehMoznihOpozoril ++ ; }
if ( $steviloVsehMoznihOpozorilNumSoft != 0 ){ $steviloVsehMoznihOpozoril ++ ; }
if ( $steviloVsehMoznihOpozorilHard != 0 ){ $steviloVsehMoznihOpozoril ++ ; }
if ( $steviloVsehMoznihOpozorilSoft != 0 ){ $steviloVsehMoznihOpozoril ++ ; }
if ( $steviloVsehMoznihOpozorilValHard != 0 ){ $steviloVsehMoznihOpozoril ++ ; }
if ( $steviloVsehMoznihOpozorilValSoft != 0 ){ $steviloVsehMoznihOpozoril ++ ; }
//Izracun stevila vseh moznih opozoril, ki ga potrebujemo za izracun kakovosti - konec
//Izracun stevila moznih opozoril po var
//echo '<script>console.log("za spremenljivko je: '.$var['steviloVsehMoznihOpozorilSoft'].' ")</script>';
$steviloMoznihOpozorilPoVar =
$var [ 'steviloVsehMoznihOpozorilSumHard' ] +
$var [ 'steviloVsehMoznihOpozorilSumSoft' ] +
$var [ 'steviloVsehMoznihOpozorilNumHard' ] +
$var [ 'steviloVsehMoznihOpozorilNumSoft' ] +
$var [ 'steviloVsehMoznihOpozorilHard' ] +
$var [ 'steviloVsehMoznihOpozorilSoft' ] +
$var [ 'steviloVsehMoznihOpozorilValHard' ] +
$var [ 'steviloVsehMoznihOpozorilValSoft' ];
$this -> izrisPodatka ( $steviloMoznihOpozorilPoVar , 1 );
//Izracun stevila moznih opozoril po var - konec
//Izracun vsote sprozenih opozoril - po vrsticah
$vsotaSprozenihOpozoril = $var [ 'rowHardAlert' ] +
$var [ 'rowSoftAlert' ] +
$var [ 'rowNumHard' ] +
$var [ 'rowNumSoft' ] +
$var [ 'rowSumHard' ] +
$var [ 'rowSumSoft' ] +
$var [ 'rowHardValidation' ] +
$var [ 'rowSoftValidation' ]
;
//Izracun vsote sprozenih opozoril - po vrsticah - konec
echo '<td class="usable bold">' . $vsotaSprozenihOpozoril ; //Vsota sprozenih opozoril
echo '<td class="sprozenaOpozorilaLine">' . $sprozenaOpozorila ; //Stevilo sprozenih opozoril
echo '</tr>' ;
$sprozenaOpozorilaAll = $sprozenaOpozorilaAll + $sprozenaOpozorila ;
}
}
//predzadnja vrstica preglednice, ki prikazuje sprozenih opozoril po stolpcih
echo '<tr class="sum">' ;
//echo '<td> Možnih opozoril za celotno anketo</td>';
//stevilo moznih opozoril po stolpih
echo '<td>' . $lang [ 'srv_reminder_tracking_sum_of_errors' ] . '</td>' ;
//echo '<td> '.$this->anketa.'</td>';
//1. stolpec - Vsota obveznih vprasanj Hard
echo '<td> ' . $sumObveznihVprasanjHard . '</td>' ;
//1. stolpec - Vsota obveznih vprasanj Hard - konec
//2. stolpec - Vsota obveznih vprasanj Soft
echo '<td> ' . $sumObveznihVprasanjSoft . '</td>' ;
//2. stolpec - Vsota obveznih vprasanj Soft - konec
//3. stolpec - Vsota Num opozorila Hard
echo '<td> ' . $sumNumAlertHard . '</td>' ;
//3. stolpec - Vsota Num opozorila Hard - konec
//4. stolpec - Vsota Num opozorila Soft
echo '<td> ' . $sumNumAlertSoft . '</td>' ;
//4. stolpec - Vsota Num opozorila Soft - konec
//5. stolpec - Vsota Sum opozorila Hard
echo '<td> ' . $sumSumAlertHard . '</td>' ;
//5. stolpec - Vsota Sum opozorila Hard - konec
//6. stolpec - Vsota Sum opozorila Soft
echo '<td> ' . $sumSumAlertSoft . '</td>' ;
//6. stolpec - Vsota Sum opozorila Soft - konec
//7. stolpec - Vsota Validacije Hard
echo '<td> ' . $sumValidationHard . '</td>' ;
//7. stolpec - Vsota Validacije Hard - konec
//8. stolpec - Vsota Validacije Soft
echo '<td> ' . $sumValidationSoft . '</td>' ;
//8. stolpec - Vsota Validacije Soft - konec
/* //9. stolpec - Vsota vseh moznih opozoril
echo '<td> ' . $steviloVsehMoznihOpozoril . '</td>' ;
//9. stolpec - Vsota vseh moznih opozoril - konec */
//9. stolpec - Stevilo moznih opozoril po vrsticah
//echo '<td> '.$steviloMoznihOpozorilPoVrsticah.'</td>';
echo '<td> </td>' ;
//9. stolpec - Stevilo moznih opozoril po vrsticah - konec */
//10. stolpec - Stevilo moznih opozoril po vrsticah
//echo '<td> '.$steviloMoznihOpozorilPoVrsticah.'</td>';
echo '<td> </td>' ;
//10. stolpec - Stevilo moznih opozoril po vrsticah - konec */
//11. stolpec - Prikaz stevila vseh sprozenih opozoril in vseh moznih opozoril
echo '<td class="sprozenaOpozorilaLine"> </td>' ;
//11. stolpec - Prikaz stevila vseh sprozenih opozoril in vseh moznih opozoril - konec
echo '</tr>' ;
//predzadnja vrstica preglednice, ki prikazuje sprozenih opozoril po stolpcih - konec
//zadnja vrstica preglednice, ki prikazuje stevilo vseh moznih opozoril
echo '<tr class="sumSprozenih">' ;
//echo '<td> Možnih opozoril za celotno anketo</td>';
//stevilo moznih opozoril po stolpih
echo '<td>' . $lang [ 'srv_reminder_tracking_possible_errors' ] . '</td>' ;
//echo '<td> '.$this->anketa.'</td>';
//1. stolpec - Opozorila obveznih vprasanj Hard
echo '<td> ' . $steviloVsehMoznihOpozorilHard . '</td>' ;
//1. stolpec - Opozorila obveznih vprasanj Hard - konec
//2. stolpec - Opozorila obveznih vprasanj Soft
echo '<td> ' . $steviloVsehMoznihOpozorilSoft . '</td>' ;
//2. stolpec - Opozorila obveznih vprasanj Soft - konec
//3. stolpec - Num opozorila Hard
echo '<td> ' . $steviloVsehMoznihOpozorilNumHard . '</td>' ;
//3. stolpec - Num opozorila Hard - konec
//4. stolpec - Num opozorila Soft
echo '<td> ' . $steviloVsehMoznihOpozorilNumSoft . '</td>' ;
//4. stolpec - Num opozorila Soft - konec
//5. stolpec - Sum opozorila Hard
echo '<td> ' . $steviloVsehMoznihOpozorilSumHard . '</td>' ;
//5. stolpec - Sum opozorila Hard - konec
//6. stolpec - Sum opozorila Soft
echo '<td> ' . $steviloVsehMoznihOpozorilSumSoft . '</td>' ;
//6. stolpec - Sum opozorila Soft - konec
//7. stolpec - Validacije Hard
echo '<td> ' . $steviloVsehMoznihOpozorilValHard . '</td>' ;
//7. stolpec - Validacije Hard - konec
//8. stolpec - Validacije Soft
echo '<td> ' . $steviloVsehMoznihOpozorilValSoft . '</td>' ;
//8. stolpec - Validacije Soft - konec
/* //9. stolpec - Vsota vseh moznih opozoril
echo '<td> ' . $steviloVsehMoznihOpozoril . '</td>' ;
//9. stolpec - Vsota vseh moznih opozoril - konec */
//9. stolpec - Stevilo moznih opozoril po vrsticah
//echo '<td> '.$steviloMoznihOpozorilPoVrsticah.'</td>';
echo '<td> </td>' ;
//9. stolpec - Stevilo moznih opozoril po vrsticah - konec */
//10. stolpec - Vsota sprozenih
echo '<td> </td>' ;
//10. stolpec - Vsota sprozenih - konec
//11. stolpec - Prikaz stevila vseh sprozenih opozoril in vseh moznih opozoril
echo '<td > ' . $sprozenaOpozorilaAll . '/' . $steviloVsehMoznihOpozoril . '</td>' ;
//11. stolpec - Prikaz stevila vseh sprozenih opozoril in vseh moznih opozoril - konec
//Izracun in prikazovanje kakovosti
//$kakovost = $this->izracunKakovosti(count($userData), $sprozenaOpozorilaAll, $steviloVsehMoznihOpozoril);
$kakovost = $this -> izracunKakovosti ( $numOf , $sprozenaOpozorilaAll , $steviloVsehMoznihOpozoril );
$kakovost = SurveyAnalysis :: formatNumber ( $kakovost , 3 , '' );
echo '<td class="sprozenaOpozorilaLine">' . $kakovost ;
echo '</td>' ;
//Izracun in prikazovanje kakovosti - konec
echo '</tr>' ;
//zadnja vrstica preglednice, ki prikazuje stevilo vseh moznih opozoril - konec
echo '</table>' ;
echo '</div>' ;
}
//metoda, ki skrbi za izbiro sloga podatka v preglednici
private function izrisPodatka ( $podatek , $stolpec1 = 0 ){
if ( $podatek != 0 ){ //ce je podatek razlicen od 0
if ( $stolpec1 ){
$redBg = '' ;
} else {
$redBg = ' redCell' ;
}
//$slog = 'data sum bold'; //naj bo slog bold
//$slog = 'data sum bold red'; //naj bo slog bold in stevilke rdece barve
$slog = 'data bold' . $redBg ; //naj bo slog bold in ozadje celice rdece barve, ce niso celice zadnjega stolpca
} else {
$slog = 'data' ;
}
echo '<td class="' . $slog . '">' . $podatek . '</td>' ;
}
function displayUsableSettings (){
global $lang ;
// Div z nastavitvami ki se razpre
echo '<div id="dataSettingsCheckboxes" ' . ( $this -> displayEditIconsSettings ? '' : ' style="display:none;"' ) . '>' ;
echo '<div id="toggleDataCheckboxes2" onClick="toggleDataCheckboxes(\'usability\');"><span class="faicon close icon-orange" style="padding-bottom:2px;"></span> ' . $lang [ 'srv_data_settings_checkboxes2' ] . '</div>' ;
echo '<div id="usable_respondents_settings">' ;
echo $lang [ 'srv_usableResp_limit' ] . ': ' ;
echo '<span class="spaceLeft spaceRight">' . $lang [ 'srv_usableResp_bottom_limit' ] . ': <input type="text" id="bottom_usable_limit" size="2" onblur="changeUsableRespSetting(this);" value="' . $this -> bottom_usable_limit . '" />%</span>' ;
echo '<span class="spaceLeft spaceRight">' . $lang [ 'srv_usableResp_top_limit' ] . ': <input type="text" id="top_usable_limit" size="2" onblur="changeUsableRespSetting(this);" value="' . $this -> top_usable_limit . '" />%</span>' ;
echo '<br />' ;
echo '<div style="margin-top:10px;">' ;
echo $lang [ 'srv_usableResp_show' ] . ': ' ;
// Prikaz neničelnih stolpcev
echo '<label class="spaceLeft spaceRight">' ;
echo '<input type="checkbox" id="show_with_zero" onclick="changeUsableRespSetting(this);" ' . ( $this -> show_with_zero == true ? ' checked="checked"' : '' ) . ' autocomplete="off">' ;
echo $lang [ 'srv_usableResp_showZero' ];
echo '</label>' ;
// Prikaz podrobnosti
echo '<label class="spaceLeft spaceRight">' ;
echo '<input type="checkbox" id="show_details" onclick="changeUsableRespSetting(this);" ' . ( $this -> show_details == true ? ' checked="checked"' : '' ) . ' autocomplete="off">' ;
echo $lang [ 'srv_usableResp_showDetails' ];
echo '</label>' ;
// Prikaz podrobnih izracunov
echo '<label class="spaceLeft">' ;
echo '<input type="checkbox" id="show_calculations" onclick="changeUsableRespSetting(this);" ' . ( $this -> show_calculations == true ? ' checked="checked"' : '' ) . ' autocomplete="off">' ;
echo $lang [ 'srv_usableResp_showCalc' ];
echo '</label>' ;
echo '</div>' ;
echo '</div>' ;
echo '</div>' ;
}
/** Funkcija ki nastavi vse filtre
*
*/
private function setUpFilter (){
/* if ( $this -> dataFileStatus == FILE_STATUS_NO_DATA
|| $this -> dataFileStatus == FILE_STATUS_NO_FILE
|| $this -> dataFileStatus == FILE_STATUS_SRV_DELETED )
{
return false ;
} */
# poiščemo kater profil uporablja uporabnik
$_currentMissingProfile = SurveyUserSetting :: getInstance () -> getSettings ( 'default_missing_profile' );
$this -> currentMissingProfile = ( isset ( $_currentMissingProfile ) ? $_currentMissingProfile : 1 );
# filtriranje po statusih
$this -> _CURRENT_STATUS_FILTER = SurveyStatusProfiles :: getStatusAsAWKString ();
# filtriranje po časih
$_time_profile_awk = SurveyTimeProfiles :: getFilterForAWK ( $this -> _HEADERS [ 'unx_ins_date' ][ 'grids' ][ '0' ][ 'variables' ][ '0' ][ 'sequence' ]);
# dodamo še ife
SurveyConditionProfiles :: setHeader ( $this -> _HEADERS );
$_condition_profile_AWK = SurveyConditionProfiles :: getAwkConditionString ();
if (( $_condition_profile_AWK != " " && $_condition_profile_AWK != null )
|| ( $_time_profile_awk != " " && $_time_profile_awk != null ))
{
$this -> _CURRENT_STATUS_FILTER = '(' . $this -> _CURRENT_STATUS_FILTER ;
if ( $_condition_profile_AWK != " " && $_condition_profile_AWK != null )
{
$this -> _CURRENT_STATUS_FILTER .= ' && ' . $_condition_profile_AWK ;
}
if ( $_time_profile_awk != " " && $_time_profile_awk != null )
{
$this -> _CURRENT_STATUS_FILTER .= ' && ' . $_time_profile_awk ;
}
$this -> _CURRENT_STATUS_FILTER .= ')' ;
}
$status_filter = $this -> _CURRENT_STATUS_FILTER ;
if ( $this -> dataFileStatus == FILE_STATUS_OK || $this -> dataFileStatus == FILE_STATUS_OLD )
{
if ( isset ( $this -> _HEADERS [ 'testdata' ]))
{
$this -> _HAS_TEST_DATA = true ;
}
}
$smv = new SurveyMissingValues ( $this -> anketa );
$smv -> Init ();
$smv_array = $smv -> GetSurveyMissingValues ( $this -> anketa );
if ( ! empty ( $smv_array [ 1 ])){
foreach ( $smv_array [ 1 ] AS $_survey_missings )
{
$this -> _missings [ $_survey_missings [ 'value' ]] = $_survey_missings [ 'text' ];
}
}
if ( ! empty ( $smv_array [ 2 ])){
foreach ( $smv_array [ 2 ] AS $_survey_unsets )
{
$this -> _unsets [ $_survey_unsets [ 'value' ]] = $_survey_unsets [ 'text' ];
}
}
}
private function setUserFilters (){
# Nastavimo filtre variabel
$dvp = SurveyUserSetting :: getInstance () -> getSettings ( 'default_variable_profile' );
$_currentVariableProfile = SurveyVariablesProfiles :: checkDefaultProfile ( $dvp );
if ( $dvp != $_currentVariableProfile ) {
SurveyUserSetting :: getInstance () -> saveSettings ( 'default_variable_profile' , $_currentVariableProfile );
}
$this -> _PROFILE_ID_VARIABLE = $_currentVariableProfile ;
# ali prikazujemo tudi stolpce z 0 vrednostmi
if ( isset ( $this -> sessionData [ 'usable_resp' ][ 'show_with_zero' ])) {
$this -> show_with_zero = $this -> sessionData [ 'usable_resp' ][ 'show_with_zero' ];
}
# ali prikazujemo tudi stolpce z 0 vrednostmi
if ( isset ( $this -> sessionData [ 'usable_resp' ][ 'show_details' ])) {
$this -> show_details = $this -> sessionData [ 'usable_resp' ][ 'show_details' ];
}
# ali prikazujemo tudi stolpce z izracuni
if ( isset ( $this -> sessionData [ 'usable_resp' ][ 'show_calculations' ])) {
$this -> show_calculations = $this -> sessionData [ 'usable_resp' ][ 'show_calculations' ];
}
# ali prikazujemo vrstice "Drugo"
$this -> show_with_other = true ;
if ( isset ( $this -> sessionData [ 'usable_resp' ][ 'show_with_other' ])) {
$this -> show_with_other = $this -> sessionData [ 'usable_resp' ][ 'show_with_other' ];
}
# ali prikazujemo vrstice tipa "besedilo"
$this -> show_with_text = true ;
if ( isset ( $this -> sessionData [ 'usable_resp' ][ 'show_with_text' ])) {
$this -> show_with_text = $this -> sessionData [ 'usable_resp' ][ 'show_with_text' ];
}
# Spodnja in zgornja meja za usable
if ( isset ( $this -> sessionData [ 'usable_resp' ][ 'bottom_usable_limit' ])) {
$this -> bottom_usable_limit = $this -> sessionData [ 'usable_resp' ][ 'bottom_usable_limit' ];
}
# ali prikazujemo tudi stolpce z 0 vrednostmi
if ( isset ( $this -> sessionData [ 'usable_resp' ][ 'top_usable_limit' ])) {
$this -> top_usable_limit = $this -> sessionData [ 'usable_resp' ][ 'top_usable_limit' ];
}
}
// Zgeneriramo datoteko in izracunamo frekvence (stevilo 1, -1, -2...) za vsako enoto
private function collectData (){
global $site_path ;
# polovimo frekvence statusov odgovorov za posameznega respondenta (stevilo -1, -2...)
$folder = $site_path . EXPORT_FOLDER . '/' ;
#array za imeni tmp fajlov, ki jih nato izbrišemo
$tmp_file = $folder . 'tmp_export_' . $this -> anketa . '_reminder_tracking_recnum.php' ;
# pobrišemo sfiltrirane podatke, ker jih več ne rabimo
if ( file_exists ( $tmp_file )) {
unlink ( $tmp_file );
}
$status_filter = $this -> _CURRENT_STATUS_FILTER ;
# s katero sekvenco se začnejo podatki, da ne delamo po nepotrebnem za ostala polja
$start_sequence = $this -> _HEADERS [ '_settings' ][ 'dataSequence' ];
# s katero sekvenco se končajo podatki da ne delamo po nepotrebnem za ostala polja
$end_sequence = $this -> _HEADERS [ '_settings' ][ 'metaSequence' ] - 1 ;
# sekvenca recnuma
$recnum_sequence = $this -> _HEADERS [ 'recnum' ][ 'sequences' ];
# naredimo datoteko z frekvencami
# za windows sisteme in za linux sisteme
if ( IS_WINDOWS ) {
# združimo v eno vrstico da bo strežnik bol srečen
$command = 'awk -F"|" "{{OFS=\"\x7C\"} {ORS=\"\n\"} {FS=\"\x7C\"} {SUBSEP=\"\x7C\"}} {{for (n in arr) {delete arr[n]}}} {delete arr} ' . $status_filter . ' {for (i=' . $start_sequence . ';i<=' . $end_sequence . ';i++) { arr[$i]++}} ' . $status_filter . ' {{for (n in arr) { print NR,$' . $recnum_sequence . ',$1,n,arr[n]}}}" ' . $this -> dataFileName ;
$command .= ' | sed "s*\x27*`*g" ' ;
$command .= ' | awk -F"|" "BEGIN {{OFS=\"\"} {ORS=\"\n\"}} { print \"$frequency[\",$1,\"]\",\"[\x27\",$4,\"\x27]\",\"=\",$5,\";\"} { print \"$frequency[\",$1,\"]\",\"[usr_id]\",\"=\",$3,\";\"} { print \"$frequency[\",$1,\"]\",\"[recnum]\",\"=\",$2,\";\"}" >> ' . $tmp_file ;
}
else {
# združimo v eno vrstico da bo strežnik bol srečen
$command = 'awk -F"|" \' {{OFS="|"} {ORS="\n"} {FS="|"} {SUBSEP="|"}} {{for (n in arr) {delete arr[n]}}} {delete arr} ' . $status_filter . ' {for (i=' . $start_sequence . ';i<=' . $end_sequence . ';i++) { arr[$i]++}} ' . $status_filter . ' {{for (n in arr) { print NR,$' . $recnum_sequence . ',$1,n,arr[n]}}}\' ' . $this -> dataFileName ;
$command .= ' | sed \'s*\x27*`*g\' ' ;
$command .= ' | awk -F"|" \'BEGIN {{OFS=""} {ORS="\n"}} { print "$frequency[",$1,"]","[\x27",$4,"\x27]","=\x27",$5,"\x27;"} { print "$frequency[",$1,"]","[usr_id]","=\x27",$3,"\x27;"} { print "$frequency[",$1,"]","[recnum]","=\x27",$2,"\x27;"}\' >> ' . $tmp_file ;
}
$file_handler = fopen ( $tmp_file , " w " );
fwrite ( $file_handler , " <?php \n " );
fclose ( $file_handler );
$out = shell_exec ( $command );
$file_handler = fopen ( $tmp_file , " a " );
fwrite ( $file_handler , '?>' );
fclose ( $file_handler );
include ( $tmp_file );
# pobrišemo sfiltrirane podatke, ker jih več ne rabimo
if ( file_exists ( $tmp_file )) {
unlink ( $tmp_file );
}
// Loop cez podatke da vidimo kateri stolpci so prazni
foreach ( $frequency AS $seq => $freqData ) {
if ( empty ( $freqData )) {
continue ;
}
foreach ( $freqData AS $key => $cnt ){
if ( is_numeric ( $key ) && ( isset ( $this -> _missings [( int ) $key ]) || isset ( $this -> _unsets [( int ) $key ])))
$this -> cols_with_value [( int ) $key ] += $cnt ;
elseif ( $key != 'recnum' )
$this -> cols_with_value [ 'valid' ] += $cnt ;
}
}
return $frequency ;
}
// Gremo cez enote in izracunamo uporabne vrednosti (uporabnost, breakoff...)
public function calculateData (){
// Preko datoteke preberemo frekvence za posamezne userje (1, -1, -2...)
$data = $this -> collectData ();
$ank_id = $this -> anketa ;
$css = '' ;
$usability = array ();
// Loop cez vse responente
$counter = 1 ;
foreach ( $data as $key1 => $frequencies ){
// Prestejemo vse in veljavne
$all = 0 ;
$valid = 0 ;
$usable = 0 ; // valid + nonsubstantive
$nonsubstantive = 0 ; // -97,-98...
$nonresponse = 0 ; // -1
$preskok = 0 ; // -2
$breakoff = 0 ; // -3
$naknadno = 0 ; // -4
$status = 0 ; // 0->unusable, 1->part. usable, 2->usable
foreach ( $frequencies as $key => $cnt ){
if ( ! array_key_exists ( $key , $this -> _missings ) && ! array_key_exists ( $key , $this -> _unsets ) && $key !== '' ){
$valid += $cnt ;
$usable += $cnt ;
}
if ( array_key_exists ( $key , $this -> _unsets )){
$nonsubstantive += $cnt ;
$usable += $cnt ;
}
if ( $key == - 1 )
$nonresponse += $cnt ;
if ( $key == - 3 )
$breakoff += $cnt ;
if ( $key == - 2 )
$preskok += $cnt ;
if ( $key == - 4 )
$naknadno += $cnt ;
$all += $cnt ;
}
// odstejemo polje recnum
$all -= $frequencies [ 'recnum' ];
$valid -= $frequencies [ 'recnum' ];
$usable -= $frequencies [ 'recnum' ];
// odstejemo polje usr_id
$all -= $frequencies [ 'usr_id' ];
$valid -= $frequencies [ 'usr_id' ];
$usable -= $frequencies [ 'usr_id' ];
/* echo '
< script >
console . log ( '.$frequencies[' usr_id '].' );
</ script >
' ; */
//*************************** Pobiranje in stetje alertov po respondentih *****************************************************
$user = $frequencies [ 'usr_id' ];
//poberi stevilo hard in soft alertov za vsoto
$sqlSumHard = sisplet_query ( " SELECT COUNT(d.usr_id) AS NumberOfSumHard FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE d.usr_id = ' $user ' AND d.ank_id=' $ank_id ' AND (a.type LIKE '%hard%' AND a.trigger_type = 'sum') " );
$sqlSumSoft = sisplet_query ( " SELECT COUNT(d.usr_id) AS NumberOfSumSoft FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE d.usr_id = ' $user ' AND d.ank_id=' $ank_id ' AND (a.type LIKE '%soft%' AND a.trigger_type = 'sum') " );
//poberi stevilo hard in soft alertov za stevilo
$sqlNumHard = sisplet_query ( " SELECT COUNT(d.usr_id) AS NumberOfNumHard FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE d.usr_id = ' $user ' AND d.ank_id=' $ank_id ' AND (a.type LIKE '%hard%' AND a.trigger_type = 'num') " );
$sqlNumSoft = sisplet_query ( " SELECT COUNT(d.usr_id) AS NumberOfNumSoft FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE d.usr_id = ' $user ' AND d.ank_id=' $ank_id ' AND (a.type LIKE '%soft%' AND a.trigger_type = 'num') " );
//poberi stevilo hard in soft alertov
$sqlHardAlert = sisplet_query ( " SELECT COUNT(d.usr_id) AS NumberOfHardAlert FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE d.usr_id = ' $user ' AND d.ank_id=' $ank_id ' AND trigger_type = 'har' " );
$sqlSoftAlert = sisplet_query ( " SELECT COUNT(d.usr_id) AS NumberOfSoftAlert FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE d.usr_id = ' $user ' AND d.ank_id=' $ank_id ' AND trigger_type = 'sof' " );
//poberi stevilo hard in soft validacij
$sqlHardValidation = sisplet_query ( " SELECT COUNT(d.usr_id) AS NumberOfHardValidation FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE d.usr_id = ' $user ' AND d.ank_id=' $ank_id ' AND (a.type LIKE '%hard%' AND a.trigger_type = 'val') " );
$sqlSoftValidation = sisplet_query ( " SELECT COUNT(d.usr_id) AS NumberOfSoftValidation FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE d.usr_id = ' $user ' AND d.ank_id=' $ank_id ' AND (a.type LIKE '%soft%' AND a.trigger_type = 'val') " );
$rowSumHard = mysqli_fetch_assoc ( $sqlSumHard );
$rowSumSoft = mysqli_fetch_assoc ( $sqlSumSoft );
$rowNumHard = mysqli_fetch_assoc ( $sqlNumHard );
$rowNumSoft = mysqli_fetch_assoc ( $sqlNumSoft );
$rowHardAlert = mysqli_fetch_assoc ( $sqlHardAlert );
$rowSoftAlert = mysqli_fetch_assoc ( $sqlSoftAlert );
$rowHardValidation = mysqli_fetch_assoc ( $sqlHardValidation );
$rowSoftValidation = mysqli_fetch_assoc ( $sqlSoftValidation );
//************************************************************************************************************* po respondentih - konec
//$validPercent = ($all > 0) ? ($valid / $all * 100) : 0;
//$nonsubstantivePercent = ($valid + $nonsubstantive > 0) ? ($nonsubstantive / ($valid + $nonsubstantive) * 100) : 0;
//$nonresponsePercent = ($valid + $nonsubstantive + $nonresponse > 0) ? ($nonresponse / ($valid + $nonsubstantive + $nonresponse) * 100) : 0;
$validPercent = ( $valid + $nonsubstantive + $nonresponse > 0 ) ? ( $valid / ( $valid + $nonsubstantive + $nonresponse ) * 100 ) : 0 ;
$nonsubstantivePercent = ( $valid + $nonsubstantive + $nonresponse > 0 ) ? ( $nonsubstantive / ( $valid + $nonsubstantive + $nonresponse ) * 100 ) : 0 ;
$nonresponsePercent = ( $valid + $nonsubstantive + $nonresponse > 0 ) ? ( $nonresponse / ( $valid + $nonsubstantive + $nonresponse ) * 100 ) : 0 ;
//$breakoffPercent = ($valid + $nonsubstantive + $nonresponse + $breakoff > 0) ? ($breakoff / ($valid + $nonsubstantive + $nonresponse + $breakoff) * 100) : 0;
$breakoffPercent = $breakoff / $all * 100 ;
//$usablePercent = ($valid + $nonsubstantive + $nonresponse + $breakoff > 0) ? ($usable / ($valid + $nonsubstantive + $nonresponse + $breakoff) * 100) : 0;
// Posebni izracuni
$UNL = (( $valid + $nonsubstantive + $nonresponse ) > 0 ) ? $nonresponse / ( $valid + $nonsubstantive + $nonresponse ) : 0 ; // Delez neodgovorov
$UBL = ( $all > 0 ) ? $breakoff / $all : 0 ; // Delez prekinitev
$UML = $UBL + ( 1 - $UBL ) * $UNL ;
$UCL = 1 - $UML ; // Uporabnost
$UIL = (( $valid + $nonsubstantive + $nonresponse + $preskok ) > 0 ) ? $preskok / ( $valid + $nonsubstantive + $nonresponse + $preskok ) : 0 ; // Delez preskokov
$UAQ = ( $all > 0 ) ? $naknadno / $all : 0 ; // Delez naknadnih
// Ce nimamo veljavnih in nevsebinskih je UCL vedno 0
$UCL = ( $valid + $nonsubstantive == 0 ) ? 0 : $UCL ;
$usablePercent = $UCL * 100 ;
if ( $usablePercent < ( int ) $this -> bottom_usable_limit ){
$css_usable = 'unusable' ;
$status = 0 ;
$usability [ 'unusable' ] ++ ;
}
elseif ( $usablePercent >= ( int ) $this -> bottom_usable_limit && $usablePercent < ( int ) $this -> top_usable_limit ){
$css_usable = 'partusable' ;
$status = 1 ;
$usability [ 'partusable' ] ++ ;
}
else {
$css_usable = 'usable' ;
$status = 2 ;
$usability [ 'usable' ] ++ ;
}
$usability [ 'all' ] ++ ;
// Nastavimo izracunane podatke za respondenta
$usability [ 'data' ][ $counter ][ 'recnum' ] = $frequencies [ 'recnum' ];
$usability [ 'data' ][ $counter ][ 'usr_id' ] = $frequencies [ 'usr_id' ];
$usability [ 'data' ][ $counter ][ 'css' ] = $css ;
$usability [ 'data' ][ $counter ][ 'status' ] = $status ;
$usability [ 'data' ][ $counter ][ 'all' ] = $all ;
$usability [ 'data' ][ $counter ][ 'valid' ] = $valid ;
$usability [ 'data' ][ $counter ][ 'nonsubstantive' ] = $nonsubstantive ;
$usability [ 'data' ][ $counter ][ 'nonresponse' ] = $nonresponse ;
$usability [ 'data' ][ $counter ][ 'breakoff' ] = $breakoff ;
$usability [ 'data' ][ $counter ][ 'usable' ] = $usable ;
$usability [ 'data' ][ $counter ][ 'validPercent' ] = $validPercent ;
$usability [ 'data' ][ $counter ][ 'usablePercent' ] = $usablePercent ;
$usability [ 'data' ][ $counter ][ 'nonsubstantivePercent' ] = $nonsubstantivePercent ;
$usability [ 'data' ][ $counter ][ 'nonresponsePercent' ] = $nonresponsePercent ;
$usability [ 'data' ][ $counter ][ 'breakoffPercent' ] = $breakoffPercent ;
$usability [ 'data' ][ $counter ][ 'UNL' ] = $UNL ;
$usability [ 'data' ][ $counter ][ 'UML' ] = $UML ;
$usability [ 'data' ][ $counter ][ 'UCL' ] = $UCL ;
$usability [ 'data' ][ $counter ][ 'UIL' ] = $UIL ;
$usability [ 'data' ][ $counter ][ 'UAQ' ] = $UAQ ;
//************ Za alerte ************
$usability [ 'data' ][ $counter ][ 'rowSumHard' ] = $rowSumHard [ 'NumberOfSumHard' ];
$usability [ 'data' ][ $counter ][ 'rowSumSoft' ] = $rowSumSoft [ 'NumberOfSumSoft' ];
$usability [ 'data' ][ $counter ][ 'rowNumHard' ] = $rowNumHard [ 'NumberOfNumHard' ];
$usability [ 'data' ][ $counter ][ 'rowNumSoft' ] = $rowNumSoft [ 'NumberOfNumSoft' ];
$usability [ 'data' ][ $counter ][ 'rowHardAlert' ] = $rowHardAlert [ 'NumberOfHardAlert' ];
$usability [ 'data' ][ $counter ][ 'rowSoftAlert' ] = $rowSoftAlert [ 'NumberOfSoftAlert' ];
$usability [ 'data' ][ $counter ][ 'rowHardValidation' ] = $rowHardValidation [ 'NumberOfHardValidation' ];
$usability [ 'data' ][ $counter ][ 'rowSoftValidation' ] = $rowSoftValidation [ 'NumberOfSoftValidation' ];
//***********************************
// ali odstranimo vse stolpce s podrobnimi vrednostmi (-1, -2...)
foreach ( $this -> _missings AS $value => $text ){
$usability [ 'data' ][ $counter ][ $value ] = ( isset ( $frequencies [ $value ]) ? $frequencies [ $value ] : '0' );
}
foreach ( $this -> _unsets AS $value => $text ){
$usability [ 'data' ][ $counter ][ $value ] = ( isset ( $frequencies [ $value ]) ? $frequencies [ $value ] : '0' );
}
$css = ( $css == 'colored' ) ? '' : 'colored' ;
$counter ++ ;
}
return $usability ;
}
private function calculateDataVars ( $usr_id ){
global $site_path ;
$usability_vars = array ();
//*************************** Pobiranje in stetje alertov po spremenljivkah *****************************************************
$defaultProfile = SurveyStatusProfiles :: getDefaultProfile (); //ce je 1, imamo "Vse enota", ce je 2, imamo "Ustrezne" enote
$ank_id = $this -> anketa ;
$counter = 0 ;
if ( $defaultProfile == 2 ){ //ce imamo "Ustrezne", najdi ne respondente
$sql_lurkers_hard_alert = sisplet_query ( " SELECT id FROM srv_user WHERE ank_id = ' $ank_id ' and lurker = 1 " ); //poberi podatki o lurker oz. ne respondentov
while ( $row_lurkers_hard_alert = mysqli_fetch_array ( $sql_lurkers_hard_alert )){
/* echo '
< script >
console . log ( '.$row_lurkers_hard_alert[' id '].' );
</ script >
' ; */
$lurkers = $lurkers . ' and usr_id !=' . $row_lurkers_hard_alert [ 'id' ];
}
/* echo '
< script >
console . log ( \ '' . $lurkers . ' \ ' );
</ script >
' ; */
}
$sql_spr_id = sisplet_query ( " SELECT element_spr FROM srv_branching WHERE ank_id = " . $ank_id ); //poberi id spremenljivk
while ( $row_spr_id = mysqli_fetch_array ( $sql_spr_id )){
$spr_id = $row_spr_id [ 'element_spr' ];
if ( $spr_id ){ //ce $spr_id ni nula
$sql_spr_variable = sisplet_query ( " SELECT variable FROM srv_spremenljivka WHERE id= $spr_id " ); //poberi id spremenljivk
$row_spr_variable = mysqli_fetch_assoc ( $sql_spr_variable );
$usability_vars [ $counter ][ 'variable' ] = $row_spr_variable [ 'variable' ];
//Hard alerts**************************
$query_variable_hard_alert = " SELECT COUNT(a.trigger_id) AS NumOfHardAlerts FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE a.trigger_id = ' $spr_id ' AND d.ank_id=' $ank_id ' AND a.trigger_type='har' " ;
if ( $defaultProfile == 2 ){ //ce imamo "Ustrezne"
$query_variable_hard_alert = $query_variable_hard_alert . '' . $lurkers ;
}
$sql_variable_hard_alert = sisplet_query ( $query_variable_hard_alert );
$row_variable_hard_alert = mysqli_fetch_assoc ( $sql_variable_hard_alert );
$usability_vars [ $counter ][ 'rowHardAlert' ] = $row_variable_hard_alert [ 'NumOfHardAlerts' ];
$query_steviloVsehMoznihOpozorilHard = " SELECT COUNT(id) AS steviloVsehMoznihOpozorilHard FROM `srv_spremenljivka` WHERE id = ' $spr_id ' AND reminder = 2 " ;
$sql_steviloVsehMoznihOpozorilHard = sisplet_query ( $query_steviloVsehMoznihOpozorilHard );
$row_steviloVsehMoznihOpozorilHard = mysqli_fetch_assoc ( $sql_steviloVsehMoznihOpozorilHard );
$usability_vars [ $counter ][ 'steviloVsehMoznihOpozorilHard' ] = $row_steviloVsehMoznihOpozorilHard [ 'steviloVsehMoznihOpozorilHard' ];
//Hard alerts - konec**************************
//Soft alerts**************************
$query_variable_soft_alert = " SELECT COUNT(a.trigger_id) AS NumOfSoftAlerts FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE a.trigger_id = ' $spr_id ' AND d.ank_id=' $ank_id ' AND a.trigger_type='sof' " ;
if ( $defaultProfile == 2 ){ //ce imamo "Ustrezne"
$query_variable_soft_alert = $query_variable_soft_alert . '' . $lurkers ;
}
$sql_variable_soft_alert = sisplet_query ( $query_variable_soft_alert );
$row_variable_soft_alert = mysqli_fetch_assoc ( $sql_variable_soft_alert );
$usability_vars [ $counter ][ 'rowSoftAlert' ] = $row_variable_soft_alert [ 'NumOfSoftAlerts' ];
$query_steviloVsehMoznihOpozorilSoft = " SELECT COUNT(id) AS steviloVsehMoznihOpozorilSoft FROM `srv_spremenljivka` WHERE id = ' $spr_id ' AND reminder = 1 " ;
$sql_steviloVsehMoznihOpozorilSoft = sisplet_query ( $query_steviloVsehMoznihOpozorilSoft );
$row_steviloVsehMoznihOpozorilSoft = mysqli_fetch_assoc ( $sql_steviloVsehMoznihOpozorilSoft );
$usability_vars [ $counter ][ 'steviloVsehMoznihOpozorilSoft' ] = $row_steviloVsehMoznihOpozorilSoft [ 'steviloVsehMoznihOpozorilSoft' ];
//Soft alerts - konec**************************
//Num Hard alerts**************************
$query_variable_num_hard_alert = " SELECT COUNT(a.trigger_id) AS NumOfNumHardAlerts FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE a.trigger_id = ' $spr_id ' AND d.ank_id=' $ank_id ' AND (a.type LIKE '%hard%' AND a.trigger_type = 'num') " ;
if ( $defaultProfile == 2 ){ //ce imamo "Ustrezne"
$query_variable_num_hard_alert = $query_variable_num_hard_alert . '' . $lurkers ;
}
$sql_variable_num_hard_alert = sisplet_query ( $query_variable_num_hard_alert );
$row_variable_num_hard_alert = mysqli_fetch_assoc ( $sql_variable_num_hard_alert );
$usability_vars [ $counter ][ 'rowNumHard' ] = $row_variable_num_hard_alert [ 'NumOfNumHardAlerts' ];
$query_steviloVsehMoznihOpozorilNumHard = " SELECT COUNT(id) AS steviloVsehMoznihOpozorilNumHard FROM `srv_spremenljivka` WHERE id = ' $spr_id ' AND vsota_reminder = 2 AND tip = 7 " ;
$sql_steviloVsehMoznihOpozorilNumHard = sisplet_query ( $query_steviloVsehMoznihOpozorilNumHard );
$row_steviloVsehMoznihOpozorilNumHard = mysqli_fetch_assoc ( $sql_steviloVsehMoznihOpozorilNumHard );
$usability_vars [ $counter ][ 'steviloVsehMoznihOpozorilNumHard' ] = $row_steviloVsehMoznihOpozorilNumHard [ 'steviloVsehMoznihOpozorilNumHard' ];
//Num Hard alerts - konec**************************
//Num Soft alerts**************************
$query_variable_num_soft_alert = " SELECT COUNT(a.trigger_id) AS NumOfNumSoftAlerts FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE a.trigger_id = ' $spr_id ' AND d.ank_id=' $ank_id ' AND (a.type LIKE '%soft%' AND a.trigger_type = 'num') " ;
if ( $defaultProfile == 2 ){ //ce imamo "Ustrezne"
$query_variable_num_soft_alert = $query_variable_num_soft_alert . '' . $lurkers ;
}
$sql_variable_num_soft_alert = sisplet_query ( $query_variable_num_soft_alert );
$row_variable_num_soft_alert = mysqli_fetch_assoc ( $sql_variable_num_soft_alert );
$usability_vars [ $counter ][ 'rowNumSoft' ] = $row_variable_num_soft_alert [ 'NumOfNumSoftAlerts' ];
$query_steviloVsehMoznihOpozorilNumSoft = " SELECT COUNT(id) AS steviloVsehMoznihOpozorilNumSoft FROM `srv_spremenljivka` WHERE id = ' $spr_id ' AND vsota_reminder = 1 AND tip = 7 " ;
$sql_steviloVsehMoznihOpozorilNumSoft = sisplet_query ( $query_steviloVsehMoznihOpozorilNumSoft );
$row_steviloVsehMoznihOpozorilNumSoft = mysqli_fetch_assoc ( $sql_steviloVsehMoznihOpozorilNumSoft );
$usability_vars [ $counter ][ 'steviloVsehMoznihOpozorilNumSoft' ] = $row_steviloVsehMoznihOpozorilNumSoft [ 'steviloVsehMoznihOpozorilNumSoft' ];
//Num Soft alerts - konec**************************
//Sum Hard alerts**************************
$query_variable_sum_hard_alert = " SELECT COUNT(a.trigger_id) AS NumOfSumHardAlerts FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE a.trigger_id = ' $spr_id ' AND d.ank_id=' $ank_id ' AND (a.type LIKE '%hard%' AND a.trigger_type = 'sum') " ;
if ( $defaultProfile == 2 ){ //ce imamo "Ustrezne"
$query_variable_sum_hard_alert = $query_variable_sum_hard_alert . '' . $lurkers ;
}
$sql_variable_sum_hard_alert = sisplet_query ( $query_variable_sum_hard_alert );
$row_variable_sum_hard_alert = mysqli_fetch_assoc ( $sql_variable_sum_hard_alert );
$usability_vars [ $counter ][ 'rowSumHard' ] = $row_variable_sum_hard_alert [ 'NumOfSumHardAlerts' ];
$query_steviloVsehMoznihOpozorilSumHard = " SELECT COUNT(id) AS steviloVsehMoznihOpozorilSumHard FROM `srv_spremenljivka` WHERE id = ' $spr_id ' AND vsota_reminder = 2 AND tip = 18 " ;
$sql_steviloVsehMoznihOpozorilSumHard = sisplet_query ( $query_steviloVsehMoznihOpozorilSumHard );
$row_steviloVsehMoznihOpozorilSumHard = mysqli_fetch_assoc ( $sql_steviloVsehMoznihOpozorilSumHard );
$usability_vars [ $counter ][ 'steviloVsehMoznihOpozorilSumHard' ] = $row_steviloVsehMoznihOpozorilSumHard [ 'steviloVsehMoznihOpozorilSumHard' ];
//Sum Hard alerts - konec**************************
//Sum Soft alerts**************************
$query_variable_sum_soft_alert = " SELECT COUNT(a.trigger_id) AS NumOfSumSoftAlerts FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE a.trigger_id = ' $spr_id ' AND d.ank_id=' $ank_id ' AND (a.type LIKE '%soft%' AND a.trigger_type = 'sum') " ;
if ( $defaultProfile == 2 ){ //ce imamo "Ustrezne"
$query_variable_sum_soft_alert = $query_variable_sum_soft_alert . '' . $lurkers ;
}
$sql_variable_sum_soft_alert = sisplet_query ( $query_variable_sum_soft_alert );
$row_variable_sum_soft_alert = mysqli_fetch_assoc ( $sql_variable_sum_soft_alert );
$usability_vars [ $counter ][ 'rowSumSoft' ] = $row_variable_sum_soft_alert [ 'NumOfSumSoftAlerts' ];
$query_steviloVsehMoznihOpozorilSumSoft = " SELECT COUNT(id) AS steviloVsehMoznihOpozorilSumSoft FROM `srv_spremenljivka` WHERE id = ' $spr_id ' AND vsota_reminder = 1 AND tip = 18 " ;
$sql_steviloVsehMoznihOpozorilSumSoft = sisplet_query ( $query_steviloVsehMoznihOpozorilSumSoft );
$row_steviloVsehMoznihOpozorilSumSoft = mysqli_fetch_assoc ( $sql_steviloVsehMoznihOpozorilSumSoft );
$usability_vars [ $counter ][ 'steviloVsehMoznihOpozorilSumSoft' ] = $row_steviloVsehMoznihOpozorilSumSoft [ 'steviloVsehMoznihOpozorilSumSoft' ];
//Sum Soft alerts - konec**************************
//Val Hard alerts**************************
$query_variable_val_hard_alert = " SELECT COUNT(a.trigger_id) AS NumOfValHardAlerts FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE a.trigger_id = ' $spr_id ' AND d.ank_id=' $ank_id ' AND (a.type LIKE '%hard%' AND a.trigger_type = 'val') " ;
if ( $defaultProfile == 2 ){ //ce imamo "Ustrezne"
$query_variable_val_hard_alert = $query_variable_val_hard_alert . '' . $lurkers ;
}
$sql_variable_val_hard_alert = sisplet_query ( $query_variable_val_hard_alert );
$row_variable_val_hard_alert = mysqli_fetch_assoc ( $sql_variable_val_hard_alert );
$usability_vars [ $counter ][ 'rowHardValidation' ] = $row_variable_val_hard_alert [ 'NumOfValHardAlerts' ];
$query_steviloVsehMoznihOpozorilValHard = " SELECT COUNT(reminder) AS steviloVsehMoznihOpozorilValHard FROM `srv_validation` WHERE spr_id = ' $spr_id ' AND reminder = '2' " ;
$sql_steviloVsehMoznihOpozorilValHard = sisplet_query ( $query_steviloVsehMoznihOpozorilValHard );
$row_steviloVsehMoznihOpozorilValHard = mysqli_fetch_assoc ( $sql_steviloVsehMoznihOpozorilValHard );
$usability_vars [ $counter ][ 'steviloVsehMoznihOpozorilValHard' ] = $row_steviloVsehMoznihOpozorilValHard [ 'steviloVsehMoznihOpozorilValHard' ];
//Val Hard alerts - konec**************************
//Val Soft alerts**************************
$query_variable_val_soft_alert = " SELECT COUNT(a.trigger_id) AS NumOfValSoftAlerts FROM srv_advanced_paradata_alert a INNER JOIN srv_advanced_paradata_page d ON a.page_id=d.id WHERE a.trigger_id = ' $spr_id ' AND d.ank_id=' $ank_id ' AND (a.type LIKE '%soft%' AND a.trigger_type = 'val') " ;
if ( $defaultProfile == 2 ){ //ce imamo "Ustrezne"
$query_variable_val_soft_alert = $query_variable_val_soft_alert . '' . $lurkers ;
}
$sql_variable_val_soft_alert = sisplet_query ( $query_variable_val_soft_alert );
$row_variable_val_soft_alert = mysqli_fetch_assoc ( $sql_variable_val_soft_alert );
$usability_vars [ $counter ][ 'rowSoftValidation' ] = $row_variable_val_soft_alert [ 'NumOfValSoftAlerts' ];
$query_steviloVsehMoznihOpozorilValSoft = " SELECT COUNT(reminder) AS steviloVsehMoznihOpozorilValSoft FROM `srv_validation` WHERE spr_id = ' $spr_id ' AND reminder = '1' " ;
$sql_steviloVsehMoznihOpozorilValSoft = sisplet_query ( $query_steviloVsehMoznihOpozorilValSoft );
$row_steviloVsehMoznihOpozorilValSoft = mysqli_fetch_assoc ( $sql_steviloVsehMoznihOpozorilValSoft );
$usability_vars [ $counter ][ 'steviloVsehMoznihOpozorilValSoft' ] = $row_steviloVsehMoznihOpozorilValSoft [ 'steviloVsehMoznihOpozorilValSoft' ];
//Val Soft alerts - konec**************************
/* //Hard alerts
$query_variable_hard_alert = " SELECT COUNT(spr_id_variable) AS NumOfHardAlerts FROM `srv_parapodatki` WHERE spr_id_variable = ' $spr_id ' AND what = 'hard alert' " ;
if ( $defaultProfile == 2 ){ //ce imamo "Ustrezne"
$query_variable_hard_alert = $query_variable_hard_alert . '' . $lurkers ;
}
$sql_variable_hard_alert = sisplet_query ( $query_variable_hard_alert );
$row_variable_hard_alert = mysqli_fetch_assoc ( $sql_variable_hard_alert );
$usability_vars [ $counter ][ 'rowHardAlert' ] = $row_variable_hard_alert [ 'NumOfHardAlerts' ];
//Hard alerts - konec */
//za ureditev stevila vseh moznih opozoril
//$query_steviloVsehmoznihOpozoril = "SELECT COUNT(spr_id_variable) AS NumOfHardAlerts FROM `srv_parapodatki` WHERE spr_id_variable = '$spr_id' AND what = 'hard alert' ";
//za ureditev stevila vseh moznih opozoril - konec
/* echo '
< script >
console . log ( '.$usability_vars[$counter][' steviloVsehMoznihOpozorilHard '].' );
</ script >
' ; */
$counter = $counter + 1 ;
}
}
//************************************************************************************************************* po spremenljivkah - konec
//******belezenje stevila moznih oziroma narejenih opozoril iz strani urejevalca ankete
//******belezenje stevila moznih oziroma narejenih opozoril iz strani urejevalca ankete - konec
return $usability_vars ;
}
// Ali imamo zgenerirano datoteko ali ne
public function hasDataFile (){
if ( $this -> dataFileStatus == FILE_STATUS_NO_DATA || $this -> dataFileStatus == FILE_STATUS_NO_FILE
|| $this -> dataFileStatus == FILE_STATUS_SRV_DELETED )
return false ;
else
return true ;
}
public function setStatusFilter ( $status = '' ){
$this -> _CURRENT_STATUS_FILTER = $status ;
}
function ajax (){
$action = $_GET [ 'a' ];
switch ( $action ){
case 'changeSetting' :
$this -> ajax_change_settings ();
break ;
}
}
private function ajax_change_settings (){
$value = $_POST [ 'value' ];
$what = $_POST [ 'what' ];
if ( $value == 'true' )
$value = true ;
elseif ( $value == 'false' )
$value = false ;
$this -> sessionData [ 'reminder_tracking' ][ $what ] = $value ;
// Shranimo spremenjene nastavitve v bazo
SurveyUserSession :: saveData ( $this -> sessionData );
}
private function steviloMoznihOpozoril ( $vars , $what ){
$steviloMoznihOpozoril = 0 ;
foreach ( $vars as $key => $var ){
$steviloMoznihOpozoril = $steviloMoznihOpozoril + $var [ $what ];
}
return $steviloMoznihOpozoril ;
}
//skrbi za racunanje kakovosti
private function izracunKakovosti ( $steviloRespondentov , $sprozenaOpozorila , $steviloVsehMoznihOpozoril ){
$kakovost = 1 - ( $sprozenaOpozorila / $steviloVsehMoznihOpozoril ) / $steviloRespondentov ;
return $kakovost ;
}
}