diff --git a/admin/survey/SurveyAdminSettings.php b/admin/survey/SurveyAdminSettings.php index e10d9b8da..a25045452 100644 --- a/admin/survey/SurveyAdminSettings.php +++ b/admin/survey/SurveyAdminSettings.php @@ -6179,8 +6179,7 @@ class SurveyAdminSettings { if(($comment_count['survey_resp']['unresolved']+$comment_count['survey_admin']['unresolved']) > 0) echo ''; echo ' '.$lang['srv_komentarji_odskupno'].' '; - echo $this->string_format((int)($comment_count['survey_resp']['all']+$comment_count['survey_admin']['all']), 'srv_cnt_komentarji_survey'); - + echo $this->string_format((int)($comment_count['survey_resp']['all']+$comment_count['survey_admin']['all']), 'srv_cnt_komentarji_survey_od'); echo ''; @@ -6669,7 +6668,7 @@ class SurveyAdminSettings { if($comment_count['question']['unresolved'] > 0) echo ''; echo ' '.$lang['srv_komentarji_odskupno'].' '; - echo $this->string_format((int)$comment_count['question']['all'], 'srv_cnt_komentar_na_vprs'); + echo $this->string_format((int)$comment_count['question']['all'], 'srv_cnt_komentar_na_vprs_od'); echo ''; diff --git a/admin/survey/izvoz.php b/admin/survey/izvoz.php index 8f1f6782d..dfbe5a856 100644 --- a/admin/survey/izvoz.php +++ b/admin/survey/izvoz.php @@ -51,6 +51,7 @@ define("M_REPORT_PDF_EMPLOYMETER","pdf_employmeter"); define("M_REPORT_PDF_MFDPS","pdf_mfpds"); define("M_REPORT_PDF_MJU","pdf_mju"); define("M_REPORT_PDF_MJU2","pdf_mju2"); +define("M_REPORT_PDF_NIJZ","pdf_nijz"); define("M_REPORT_BORZA","borza_chart"); define("M_REPORT_PDF_HEATMAP_IMAGE","heatmap_image_pdf"); define("M_REPORT_HIERARHIJA_PDF_IZPIS", "hierarhija_pdf_izpis"); @@ -139,7 +140,7 @@ if(in_array($_GET['a'], array('pdf_gdpr_individual', 'pdf_gdpr_activity', 'rtf_g $export_type = 'new'; } // Posebna porocila, ki so vedno stari izvozi -elseif(in_array($_GET['m'], array('pdf_teammeter','pdf_employmeter', 'pdf_evoli', 'maza_csv', 'borza_csv', 'pdf_mju', 'pdf_mju2', 'advanced_paradata_csv', 'json_survey'))){ +elseif(in_array($_GET['m'], array('pdf_teammeter','pdf_employmeter', 'pdf_evoli', 'maza_csv', 'borza_csv', 'pdf_mju', 'pdf_mju2', 'advanced_paradata_csv', 'json_survey', 'pdf_nijz'))){ $export_type = 'old'; } // Ce imamo vklopljeno nastavitev za nove izvoze @@ -368,6 +369,17 @@ switch ( $_GET['m'] ) { $sme->executeExport2($type, $enota); break; ///////////////////////////////////// + + //////////////////NIJZ///////////////// + case M_REPORT_PDF_NIJZ: + + $usr_id = (isset($_GET['usr_id']) && $_GET['usr_id'] > 0) ? $_GET['usr_id'] : 0; + $anketa = (isset($_GET['anketa']) && $_GET['anketa'] > 0) ? $_GET['anketa'] : 0; + + $nijz = new SurveyNIJZ($anketa, $usr_id, $nijz_type='2'); + $nijz->createReport2(); + break; + ///////////////////////////////////// //////////////////MFDPS///////////////// case M_REPORT_PDF_MFDPS: diff --git a/admin/survey/modules/mod_NIJZ/class.SurveyNIJZ.php b/admin/survey/modules/mod_NIJZ/class.SurveyNIJZ.php index ee3b9ecf2..f24025ede 100644 --- a/admin/survey/modules/mod_NIJZ/class.SurveyNIJZ.php +++ b/admin/survey/modules/mod_NIJZ/class.SurveyNIJZ.php @@ -12,6 +12,7 @@ class SurveyNIJZ{ private $db_table = ''; private $vprasanja_radar = array(); // array z vsemi vprasanji in odgovori na njih, ki jih obravnavamo + private $vprasanja_report2 = array(); // array z vsemi vprasanji in odgovori na njih, ki jih obravnavamo (2. porocilo za nijz) // Barve private $colors = array( @@ -32,7 +33,7 @@ class SurveyNIJZ{ ); - function __construct($anketa, $usr_id){ + function __construct($anketa, $usr_id, $type='1'){ // Ce imamo anketo, smo v status->ul evealvacija if ((int)$anketa > 0 && (int)$usr_id > 0){ @@ -52,8 +53,11 @@ class SurveyNIJZ{ //return false; } - // Zakesiramo vprasanja z odgovori v array - $this->cacheData(); + // Zakesiramo vprasanja z odgovori v array vprasanja_radar oz. radar2 + if($type == '1') + $this->cacheData(); + else + $this->cacheDataReport2(); } // Nastavimo imena vprasanj za vse teme (nijz radar) @@ -90,6 +94,73 @@ class SurveyNIJZ{ } } } + + // Nastavimo imena vprasanj za 2. pdf porocilo z radarjem + private function cacheDataReport2(){ + + // Napolnimo vprasanja + $sql = sisplet_query("SELECT s.id, s.naslov, s.variable, s.label + FROM srv_spremenljivka s, srv_grupa g + WHERE s.gru_id=g.id AND g.ank_id='".$this->anketa."' + AND s.variable LIKE 'Radar%'"); + while($row = mysqli_fetch_array($sql)){ + + $number = substr($row['variable'], 5); + + $this->vprasanja_report2['radar'][$number]['id'] = $row['id']; + $this->vprasanja_report2['radar'][$number]['variable'] = $row['variable']; + $this->vprasanja_report2['radar'][$number]['naslov'] = $row['label']; + } + + ksort($this->vprasanja_report2['radar']); + + // Napolnimo odgovore za vse teme + foreach($this->vprasanja_report2['radar'] as $st_vprasanja => $tema){ + + $sqlData = sisplet_query("SELECT v.naslov, v.variable + FROM srv_grupa g, srv_spremenljivka s, srv_vrednost v, srv_data_vrednost".$this->db_table." d + WHERE s.id='".$tema['id']."' AND g.ank_id='".$this->anketa."' AND d.usr_id='".$this->usr_id."' + AND s.id=v.spr_id AND s.gru_id=g.id AND d.vre_id=v.id AND d.spr_id=s.id + "); + + if(mysqli_num_rows($sqlData) == 1){ + $rowData = mysqli_fetch_array($sqlData); + $this->vprasanja_report2['radar'][$st_vprasanja]['data'] = $rowData['variable']; + } + } + + + // Napolnimo if-e + include_once('../../main/survey/app/global_function.php'); + new \App\Controllers\SurveyController(true); + save('usr_id', $this->usr_id); + $s = \App\Controllers\CheckController::getInstance(); + + $sql = sisplet_query("SELECT i.id AS if_id, s.id AS spr_id, s.naslov, i.label + FROM srv_if i, srv_branching b, srv_spremenljivka s + WHERE b.ank_id='".$this->anketa."' AND b.parent=i.id AND s.id=b.element_spr + AND (i.label LIKE 'VARIANTA%' + OR i.label LIKE 'SONCE%' + OR i.label LIKE 'OBLACILA%' + OR i.label LIKE 'KEMIJA%' + OR i.label LIKE 'SOLARIJ%') + "); + while($row = mysqli_fetch_array($sql)){ + + // If ni bil izpolnjen + if(!$s->checkIf($row['if_id'])) + continue; + + $number = substr($row['label'], -1); + $podrocje = substr($row['label'], 0, -1); + + $this->vprasanja_report2['priporocila'][$podrocje] = $row['naslov']; + } + + /*echo '
';
+        print_r($this->vprasanja_report2);
+        echo '
';*/ + } // Prikazemo radar graf po temah @@ -255,6 +326,86 @@ class SurveyNIJZ{ } + // Ustvarimo 2. pdf porocilo + public function createReport2(){ + global $site_path; + global $site_url; + global $admin_type; + + // Zgeneriramo zacasne csv datoteke + $this->prepareCSVReport2(); + + $script = $site_path . SCRIPT_FOLDER . '/Nijz2.R'; + + try{ + $out = exec('Rscript '.$script.' '.$this->usr_id.' 2>&1', $output, $return_var); + } + catch(Exception $e){ + return $e->getMessage(); + } + + $pdf_report = $site_url.RESULTS_FOLDER.'/report_'.$this->usr_id.'.pdf'; + + // Testiranje - izpis errorjev + /*if($admin_type == 0){ + echo '
'; + echo 'Rscript '.$script; + //echo '
'.$out.'
'; + var_dump($output); + echo '
'; + }*/ + + // Na koncu pobrisemo zacasne datoteke + $this->deleteTemp(); + + return $pdf_report; + } + + // Pripravimo zacasne datoteke za 2. pdf porocilo + private function prepareCSVReport2(){ + global $site_path; + + // Pobrisemo csv, ce obstaja slucajno star + $this->deleteTemp(); + + $temp_folder = $site_path . TEMP_FOLDER.'/'; + + // Ustvarimo CSV + $fd = fopen($temp_folder.'/nijz_'.$this->usr_id.'.csv', "w"); + + $convertType = 1; // kateri tip konvertiranja uporabimo + $convertTypes[1] = array('charSet' => 'windows-1250', + 'delimit' => ';', + 'newLine' => "\n", + 'BOMchar' => "\xEF\xBB\xBF"); + # dodamo boomchar za utf-8 + fwrite($fd, $convertTypes[$convertType]['BOMchar']); + + // Loop po radar podatkih + foreach ($this->vprasanja_report2['radar'] as $radar_number => $radar) { + + if (isset($radar['data']) && (int)$radar['data'] > 0) { + + $line = $radar['naslov'].';'.$radar['data'].';'; + fwrite($fd, $line."\r\n"); + } + } + + // Loop po podrocjih in textih + foreach ($this->vprasanja_report2['priporocila'] as $podrocje => $podrocje_text) { + + $podrocje_text = strip_tags($podrocje_text, '
'); + $podrocje_text = trim($podrocje_text); + $podrocje_text = preg_replace('/\s+/', ' ',$podrocje_text); + + $line = $podrocje.';'.$podrocje_text.';'; + fwrite($fd, $line."\r\n"); + } + + fclose($fd); + } + + // Zgeneriramo pdf analizo public function createRadar(){ global $site_path; diff --git a/lang/1.php b/lang/1.php index 3c1c7892c..24cc66de9 100644 --- a/lang/1.php +++ b/lang/1.php @@ -5311,6 +5311,11 @@ $lang = array ( "srv_cnt_komentar_na_vprs_2" => 'komentarja na vprašanja', "srv_cnt_komentar_na_vprs_3" => 'komentarje na vprašanja', "srv_cnt_komentar_na_vprs_4" => 'komentarje na vprašanja', + "srv_cnt_komentar_na_vprs_od_more" => 'komentarjev na vprašanja', + "srv_cnt_komentar_na_vprs_od_1" => 'komentarja na vprašanja', + "srv_cnt_komentar_na_vprs_od_2" => 'komentarjev na vprašanja', + "srv_cnt_komentar_na_vprs_od_3" => 'komentarjev na vprašanja', + "srv_cnt_komentar_na_vprs_od_4" => 'komentarjev na vprašanja', "srv_cnt_komentarji_more" => 'nerešenih komentarjev', "srv_cnt_komentarji_1" => 'nerešen komentar', "srv_cnt_komentarji_2" => 'nerešena komentarja', @@ -5321,6 +5326,11 @@ $lang = array ( "srv_cnt_komentarji_survey_2" => 'nerešena splošna komentarja', "srv_cnt_komentarji_survey_3" => 'nerešene splošne komentarje', "srv_cnt_komentarji_survey_4" => 'nerešene splošne komentarje', + "srv_cnt_komentarji_survey_od_more" => 'splošnih komentarjev', + "srv_cnt_komentarji_survey_od_1" => 'splošnega komentarja', + "srv_cnt_komentarji_survey_od_2" => 'splošnih komentarjev', + "srv_cnt_komentarji_survey_od_3" => 'splošnih komentarjev', + "srv_cnt_komentarji_survey_od_4" => 'splošnih komentarjev', "srv_cnt_komentarji_question_more" => 'nerešenih komentarjev na vprašanja', "srv_cnt_komentarji_question_1" => 'nerešen komentar na vprašanja', "srv_cnt_komentarji_question_2" => 'nerešena komentarja na vprašanja', diff --git a/lang/2.php b/lang/2.php index 5ce261af1..fdc495ce1 100644 --- a/lang/2.php +++ b/lang/2.php @@ -5273,6 +5273,11 @@ $lang = array ( "srv_cnt_komentar_na_vprs_2" => 'question comments', "srv_cnt_komentar_na_vprs_3" => 'question comments', "srv_cnt_komentar_na_vprs_4" => 'question comments', + "srv_cnt_komentar_na_vprs_od_more" => 'question comments', + "srv_cnt_komentar_na_vprs_od_1" => 'question comment', + "srv_cnt_komentar_na_vprs_od_2" => 'question comments', + "srv_cnt_komentar_na_vprs_od_3" => 'question comments', + "srv_cnt_komentar_na_vprs_od_4" => 'question comments', "srv_cnt_komentarji_more" => 'unresolved comments', "srv_cnt_komentarji_1" => 'unresolved comment', "srv_cnt_komentarji_2" => 'unresolved comments', @@ -5283,6 +5288,11 @@ $lang = array ( "srv_cnt_komentarji_survey_2" => 'unresolved survey comments', "srv_cnt_komentarji_survey_3" => 'unresolved survey comments', "srv_cnt_komentarji_survey_4" => 'unresolved survey comments', + "srv_cnt_komentarji_survey_od_more" => 'survey comments', + "srv_cnt_komentarji_survey_od_1" => 'survey comment', + "srv_cnt_komentarji_survey_od_2" => 'survey comments', + "srv_cnt_komentarji_survey_od_3" => 'survey comments', + "srv_cnt_komentarji_survey_od_4" => 'survey comments', "srv_cnt_komentarji_question_more" => 'unresolved question comments', "srv_cnt_komentarji_question_1" => 'unresolved question comment', "srv_cnt_komentarji_question_2" => 'unresolved question comments', diff --git a/main/survey/app/Controllers/DisplayController.php b/main/survey/app/Controllers/DisplayController.php index f4f8cd232..608ed8338 100644 --- a/main/survey/app/Controllers/DisplayController.php +++ b/main/survey/app/Controllers/DisplayController.php @@ -183,6 +183,19 @@ class DisplayController extends Controller echo '

'; } + // Ce gre za nijz anketo - posebno pdf porocilo (nijz2) + //elseif(get('anketa') == '125'){ + //elseif( ($site_domain == 'test.1ka.si' && get('anketa') == '8892') || ($site_domain == 'anketa.nijz.si' && get('anketa') == '127704') ){ + elseif( false ){ + + # parametre zapakiramo v array injih serializiramo in zakodiramo z base64 + $pdf_url = self::$site_url . 'admin/survey/izvoz.php?dc=' . base64_encode(serialize(array('m' => 'pdf_nijz', 'anketa' => get('anketa'), 'usr_id' => get('usr_id')))); + + #echo '
'; + echo '

'; + echo ' '.self::$lang['srv_report_pdf'].''; + echo '

'; + } else{ # parametre zapakiramo v array injih serializiramo in zakodiramo z base64 $pdf_url = self::$site_url . 'admin/survey/izvoz.php?dc=' . base64_encode(serialize(array('a' => 'pdf_results', 'anketa' => get('anketa'), 'usr_id' => get('usr_id'), 'type' => '0')));