'0',
'brand' => '',
'drzava' => '',
'ser' => '',
'serenota' => '',
'sercenter' => ''
);
public function __construct($ank_id){
$this->ank_id = $ank_id;
if($this->ank_id > 0){
// Napolnimo sistemske spremenljivke potrebne za Gorenje analizo
$this->getGorenjeSpremenljivke();
// Napolnimo nastavljene filtre za anketo in urednika
$this->getGorenjeFilters();
}
else
die();
}
// Prikazemo filtre na vrhu v analizah
public function displayFilters(){
global $lang;
// Ce imamo ustrezne sistemske spremenljivke v anketi
if($this->hasSpremenljivke()){
echo '
';
//var_dump($data);
//var_dump($this->spremenljivke);
//var_dump($this->filters);
}
}
// Dobimo awk string za gorenje filtriranje
public function getAWKString($_HEADER){
$awkFilter = '';
// Sprehodimo se cez vse mozne filtre
foreach($this->filters as $key => $val){
// Ce je nastavljen filter za doloceno spremenljivko
if($key != 'rekid' && $val != ''){
$awkFilter .= '(';
$spr_id = $this->spremenljivke[$key]['spr_id'];
$vre_id = $this->spremenljivke[$key]['vre_id'];
$sequence = $this->getSequenceForAWKCondition($spr_id, $vre_id, $_HEADER);
$awkFilter .= '$'.$sequence.'==';
if (IS_WINDOWS) {
# za windows
$awkFilter .= "\\\"".$val."\\\"";
} else {
# za linux
$awkFilter .= '"'.$val.'"';
}
$awkFilter .= ')&&';
}
}
// Pobrisemo odvecen zadnji &&
$awkFilter = substr($awkFilter, 0, -2);
return $awkFilter;
}
// Dobimo sekvenco za ustrezno spremenljivko po kateri filtriramo
private function getSequenceForAWKCondition ($spr_id, $vre_id, $_HEADER){
if ($spr_id != null && count($_HEADER[$spr_id.'_0']['grids']) > 0) {
$grd = 0;
if ($vre_id > 0 && count($_HEADER[$spr_id.'_0']['grids'][$grd]['variables']) > 0) {
foreach ($_HEADER[$spr_id.'_0']['grids'][$grd]['variables'] AS $vkey =>$variables) {
if ($variables['vr_id'] == $vre_id && $variables['other'] != 1) {
$var = $vkey;
}
}
}
else {
$var = 0;
}
if ($grd !== null && $var !== null) {
return $_HEADER[$spr_id.'_0']['grids'][$grd]['variables'][$var]['sequence'];
}
}
return;
}
// Preverimo ce obstaja kaksen filter za doloceno anketo in urednika
public function hasFilters(){
if($this->filters['rekid'] == '0'
&& $this->filters['brand'] == ''
&& $this->filters['drzava'] == ''
&& $this->filters['ser'] == ''
&& $this->filters['servisni_enota'] == ''
&& $this->filters['sercenter'] == '')
return false;
else
return true;
}
// Preverimo ce obstajajo vse potrebne sistemske spremenljivke (rekid, brand, drzava, ser, serenota, sercenter)
public function hasSpremenljivke(){
$count = count($this->spremenljivke);
if($count == 6)
return true;
// Ce nimamo vseh preverimo katere manjkajo
if($count > 0){
if(!isset($this->spremenljivke['rekid']))
echo 'Manjka sistemska spremenljivka "rekid" (id reklamacije)!
';
if(!isset($this->spremenljivke['brand']))
echo 'Manjka sistemska spremenljivka "brand" (znamka)!
';
if(!isset($this->spremenljivke['drzava']))
echo 'Manjka sistemska spremenljivka "drzava"!
';
if(!isset($this->spremenljivke['ser']))
echo 'Manjka sistemska spremenljivka "ser" (serviser)!
';
if(!isset($this->spremenljivke['serenota']))
echo 'Manjka sistemska spremenljivka "serenota" (servisna enota)!
';
if(!isset($this->spremenljivke['sercenter']))
echo 'Manjka sistemska spremenljivka "sercenter (servisni center)"!
';
echo '
';
}
return false;
}
// Preberemo nastavljen filter za gorenje (ce obstaja)
private function getGorenjeFilters(){
global $global_user_id;
$sql = sisplet_query("SELECT brand, drzava, ser, serenota, sercenter FROM srv_gorenje_analysis WHERE ank_id='".$this->ank_id."' AND usr_id='".$global_user_id."'");
if(mysqli_num_rows($sql) > 0){
$row = mysqli_fetch_assoc($sql);
foreach($row as $key => $val){
$this->filters[$key] = $val;
}
}
}
// Pridobimo vse id-je spremenljivk in vrednosti vezanih na posebno analizo za Gorenje (rekid, brand, drzava, ser, serenota, sercenter)
private function getGorenjeSpremenljivke(){
global $global_user_id;
// Napolnimo spr_id in vre_id za potrebna sistemska vprasanja
$sql = sisplet_query("SELECT s.id AS spr_id, s.variable, v.id AS vre_id FROM srv_vrednost v, srv_spremenljivka s, srv_grupa g
WHERE s.variable IN ('rekid', 'brand', 'drzava', 'ser', 'serenota', 'sercenter')
AND g.ank_id='".$this->ank_id."' AND s.gru_id=g.id
AND v.spr_id=s.id");
while($row = mysqli_fetch_array($sql)){
$this->spremenljivke[$row['variable']]['spr_id'] = $row['spr_id'];
$this->spremenljivke[$row['variable']]['vre_id'] = $row['vre_id'];
}
}
// Dobimo vse mozne vrednosti (distinct vnose) za doloceno spremenljivko
private function getGorenjeData($vre_id){
$data = array();
$sql = sisplet_query("SELECT DISTINCT(text) AS text FROM srv_data_text_active WHERE vre_id='".$vre_id."'");
while($row = mysqli_fetch_array($sql)){
$data[] = $row['text'];
}
return $data;
}
// Ajax klici
public function ajax(){
global $global_user_id;
global $lang;
global $site_path;
$brand = (isset($_POST['brand'])) ? $_POST['brand'] : '';
$drzava = (isset($_POST['drzava'])) ? $_POST['drzava'] : '';
$ser = (isset($_POST['ser'])) ? $_POST['ser'] : '';
$serenota = (isset($_POST['serenota'])) ? $_POST['serenota'] : '';
$sercenter = (isset($_POST['sercenter'])) ? $_POST['sercenter'] : '';
$sql = sisplet_query("INSERT INTO srv_gorenje_analysis
(ank_id, usr_id, brand, drzava, ser, serenota, sercenter)
VALUES ('".$this->ank_id."', '".$global_user_id."', '".$brand."', '".$drzava."', '".$ser."', '".$serenota."', '".$sercenter."')
ON DUPLICATE KEY UPDATE
brand='".$brand."', drzava='".$drzava."', ser='".$ser."', serenota='".$serenota."', sercenter='".$sercenter."'");
if(!$sql)
echo mysqli_error($GLOBALS['connect_db']);
}
}