This commit is contained in:
pero1203 2021-10-14 15:17:43 +02:00
commit 434ae9ae33
6 changed files with 202 additions and 7 deletions

View File

@ -6179,8 +6179,7 @@ class SurveyAdminSettings {
if(($comment_count['survey_resp']['unresolved']+$comment_count['survey_admin']['unresolved']) > 0) echo '</span>';
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 '</span>';
@ -6669,7 +6668,7 @@ class SurveyAdminSettings {
if($comment_count['question']['unresolved'] > 0) echo '</span>';
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 '</span>';

View File

@ -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
@ -369,6 +370,17 @@ switch ( $_GET['m'] ) {
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:

View File

@ -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)
@ -91,6 +95,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 '<pre>';
print_r($this->vprasanja_report2);
echo '</pre>';*/
}
// Prikazemo radar graf po temah
public function displayRadar(){
@ -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 '<div>';
echo 'Rscript '.$script;
//echo '<br />'.$out.'<br />';
var_dump($output);
echo '</div>';
}*/
// 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, '<br><strong>');
$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;

View File

@ -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',

View File

@ -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',

View File

@ -183,6 +183,19 @@ class DisplayController extends Controller
echo '</p></div>';
}
// 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 '<div id="icon_bar">';
echo '<br class="clr"/><div><p>';
echo '<a href="' . $pdf_url . '" class="pdfExport" target="_blank"><span class="sprites pdf_white"></span> '.self::$lang['srv_report_pdf'].'</a>';
echo '</p></div>';
}
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')));