';
if(isset($_GET['idrfe'])) {
$idficheEvaluation = '';
$resultatLignesFicheEvaluation = getResultatLignesFicheEvaluation($_GET['idrfe']);
$candidatId = $resultatLignesFicheEvaluation[0]['id_candidat'];
$blocks = [];
foreach ($resultatLignesFicheEvaluation as $row) {
if($idficheEvaluation == '')
$idficheEvaluation = $row['id_fiche_evaluation'];
if($row['id_parent'] == 0) {
$lignesblocks = [];
foreach ($resultatLignesFicheEvaluation as $row2) {
if($row['id_ligne_fiche_evaluation'] == $row2['id_parent'])
$lignesblocks[] = $row2;
}
$blocks[] = [$row, $lignesblocks];
}
}
$ficheEvaluation = getFicheEvaluationEdit($idficheEvaluation);
}
$annuel = $ficheEvaluation["annuel"];
$isCurrentUser = false;
if($candidatId == $_SESSION["glpiID"])
$isCurrentUser = true;
$isUserSupervisor = isUserSupervisor($candidatId, $_SESSION["glpiID"]);
$isDRH = ($_SESSION['glpiactiveprofile']['name'] == "Directeur RH" || $_SESSION['glpiactiveprofile']['name'] == "DRH");
$isMGX = ($_SESSION['glpiactiveprofile']['name'] == "Directeur MGX");
$user = getUserId($candidatId);
//print_r($user);
function addFicheEvaluation($pannuel) {
global $isUserSupervisor;
global $isDRH;
global $isMGX;
global $blocks;
$drhidResutLigneFiche = "";
for ($y = 0; $y < sizeof($_POST['InsertFormulaire']); $y++) {
$dinc = $_POST['InsertFormulaire'][$y];
$idResutLigneFiche = $_POST['idLigneFiche'][$y];
//$question = $_POST["question".$dinc];
$reponse = $_POST["reponse".$dinc];
$block = $_POST["block".$dinc];
$tablereponses = $_POST["tablereponse".$dinc];
$comment = $_POST["comment".$dinc];
$dateannuel = $_POST["dateannuel".$dinc];
$aoption = $_POST["aoption".$dinc];
$multireponses = $_POST["multireponse".$dinc];
$roptions = $_POST["roption".$dinc];
if($roptions != '') {
$obs = "[";
$icount = 0;
foreach ($roptions as $roption) {
$icount++;
if($icount == count($roptions))
$obs = $obs.$roption;
else
$obs = $obs.$roption.",";
}
$comment = $obs."]";
}
$finalreponse = $reponse;
if($block != '')
$finalreponse = $block;
if($tablereponses != '') {
$finalreponse = "[";
$icount = 0;
foreach ($tablereponses as $tablereponse) {
//walid
$tablereponse = str_replace(',',' ', $tablereponse);
//walid
$icount++;
if($icount == count($tablereponses))
$finalreponse = $finalreponse.$tablereponse;
else
$finalreponse = $finalreponse.$tablereponse.",";
}
$finalreponse = $finalreponse."]";
}
if($multireponses != '') {
$mr = "[";
$icount = 0;
foreach ($multireponses as $multireponse) {
$icount++;
if($icount == count($multireponses))
$mr = $mr.$multireponse;
else
$mr = $mr.$multireponse.";";
}
$finalreponse = $mr."]";
}
if($pannuel) {
$question = $blocks[$y][0]['question'];
if(strpos($question, '3.') !== false)
$drhidResutLigneFiche = $blocks[$y][0]['id_resultat_ligne_fiche_evaluation'];
$sizeannuel = sizeof($blocks[1][1])+2;
$sizeinsertform = sizeof($_POST['InsertFormulaire']);
if($dinc == 0) {
} else if(($dinc > 0 && $dinc <= $sizeannuel) || ($dinc > $sizeinsertform-21 && $dinc <= $sizeinsertform)) {
if($isCurrentUser) {
updateResultatLigneFicheEvaluationNoRepons($idResutLigneFiche, $comment);
} else
updateResultatLigneFicheEvaluation($idResutLigneFiche, $finalreponse, $comment);
updateResultatLigneFicheEvalAnnueld($idResutLigneFiche, $dateannuel);
updateResultatLigneFicheEvalAnnuel($idResutLigneFiche, $aoption);
/*
if($isUserSupervisor) {
if($dinc == $sizeannuel)
updateResultatLigneFicheEvaluation($idResutLigneFiche, $finalreponse, $comment);
else
updateResultatLigneFicheEvalAnnuel($idResutLigneFiche, $aoption);
}*/
} else if($isUserSupervisor) {
if($drhidResutLigneFiche == "" || $idResutLigneFiche < $drhidResutLigneFiche)
updateResultatLigneFicheEvaluation($idResutLigneFiche, $finalreponse, $comment);
if($aoption != "")
updateResultatLigneFicheEvalAnnuel($idResutLigneFiche, $aoption);
}
if($isDRH && $drhidResutLigneFiche+1 > 1 && ($idResutLigneFiche == $drhidResutLigneFiche+1 || $idResutLigneFiche == $drhidResutLigneFiche+2 || $idResutLigneFiche == $drhidResutLigneFiche+3) ) {
updateResultatLigneFicheEvaluation($idResutLigneFiche, $finalreponse, $comment);
}
if($isMGX && $drhidResutLigneFiche+1 > 1 && ($idResutLigneFiche == $drhidResutLigneFiche+5) ) {
updateResultatLigneFicheEvaluation($idResutLigneFiche, $finalreponse, $comment);
}
}
}
}
if(isset($_POST['save'])) {
if(isset($_GET['idrfe'])) {
if(sizeof($resultatLignesFicheEvaluation) > 0){
addFicheEvaluation($annuel);
evalTrack($_GET['idrfe'], $_SESSION["glpiname"]);
}
}
Html::redirect("fiche.resultat.evaluation.list.php");
}
$allNotes = array(); // used by result function
function visibleMenus($rowP) {
global $isDRH;
global $isMGX;
if($isDRH || $isMGX)
return $rowP['ordre'] == 1 || $rowP['ordre'] == 3 || $rowP['ordre'] == 10 || $rowP['ordre'] == 11 || $rowP['ordre'] == 12 || $rowP['ordre'] == 13;
return $rowP['ordre'] == 1 || $rowP['ordre'] == 3 || $rowP['ordre'] == 10 || $rowP['ordre'] == 11 ;
}
echo '
';
if($annuel) {
echo'
';
}
Html::footer();
function buildEnteteReponse($ebreponse) {
$mainreponseString = "";
if($ebreponse != "")
$mainreponseString = "";
return $mainreponseString;
}
function buildEnteteQuestion($ebquestion) {
$questionString = "".translate($ebquestion)." ";
$astrings = explode(':', $ebquestion, 2);
if(count($astrings) > 1 && count(explode(':', $ebquestion)) < 4)
$questionString = "".translate($astrings[0]).": ".translate($astrings[1])."
";
return $questionString;
}
function buildEnteteComment($ebcount, $cdata) {
$iscomment = $cdata['comment'];
if($iscomment != 1)
return "";
$observation = $cdata['observation'];
global $inc;
global $isUserSupervisor;
global $isCurrentUser;
global $annuel;
$disabled = "";
if($annuel && ($isUserSupervisor || ($ebcount == 2 && $isCurrentUser)))
$disabled = "";
return "";
}
function buildroption($lbobs) {
global $inc;
global $annueloptions;
$optionString = $optionString."
";
foreach ($annueloptions as $aoption) {
$opselected = "";
if($aoption == $lbobs) $opselected = "selected";
$optionString = $optionString."".translate($aoption)." ";
}
return $optionString." ";
}
function handleAbs($ajson) {
if(isset($ajson['absences']) && $ajson['absences'] != null && count($ajson['absences']) > 2) {
$absences = $ajson['absences'][2];
if($absences == 0)
return 5;
if($absences > 0 && $absences < 24 )
return 3;
if($absences >= 24 )
return 0;
}
return 5;
}
function isSpecialAnnuelBlock($blockscountp) {
global $annuel;
global $blockssize;
return $annuel && ($blockscountp == 1 || $blockscountp == $blockssize-1);
}
$wsresponse = "";
function buildLigneReponse($lbcount, $rdata, $lbquestion) {
$lbreponse = $rdata['reponse'];
$lbreponses = $rdata['reponses'];
$lbobservation = $rdata['observation'];
global $inc;
global $isUserSupervisor;
global $isDRH;
global $isMGX;
global $annuel;
global $user;
global $wsresponse;
global $DEFAULT_HSE_NOTE;
global $DEFAULT_RH_PONC_NOTE;
$leftstyle = 0;
//$disabled = "disabled";
//if($annuel && $isUserSupervisor && $lbcount != 1)
$disabled = "";
//$lbreponse = str_replace("'", " ",$lbreponse);
//$reponseString = " ";
$reponseString = "";
if($lbreponses == 'hidden')
$reponseString = "";
if($lbreponses == 'date')
$reponseString = " ";
if($annuel) { //($isUserSupervisor || $isDRH || $isMGX)
$choices = explode(';', $lbreponses);
if(count($choices) > 1) {
$selectDisabled = "";
if($isUserSupervisor && (strpos($lbquestion, '3.') !== false || strpos($lbquestion, '4.') !== false))
$selectDisabled = "";
if($isDRH && !(strpos($lbquestion, '3.') !== false))
$selectDisabled = "";
if($isMGX && !(strpos($lbquestion, '4.') !== false))
$selectDisabled = "";
if((strpos($lbquestion, '3.') !== false) && $rdata['question'] == "Absence Irregulière") {
if($wsresponse == "")
$wsresponse = callWebService($user['matricule'] , 'get_MonDossierRH');
/*$wsresponse = null;*/
$json = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $wsresponse), true );
if (isset($json['photo']) && $json['photo'] != null)
echo '';
$lbreponse = handleAbs($json);
}
if((strpos($lbquestion, '3.') !== false) && $rdata['question'] == "Discipline") {
$lbreponse = 5;
$json = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $wsresponse), true );
if(isset($json['sanctions']) && $json['sanctions'] != null) {
$sanctions = $json['sanctions'];
foreach ($sanctions as $sanction) {
$sanctionstring = trim($sanction['NatureSanction']);
if($sanctionstring == 'SAN04' || $sanctionstring === 'SAN05' || $sanctionstring == 'SAN06')
$lbreponse = 3;
if($sanction['NatureSanction'] == 'SAN07')
$lbreponse = 0;
}
}
}
if((strpos($lbquestion, '3.') !== false) && $rdata['question'] == "Ponctualité") {
$lbreponse = $DEFAULT_RH_PONC_NOTE;
}
if((strpos($lbquestion, '4.') !== false))
$lbreponse = $DEFAULT_HSE_NOTE;
$reponseString = "
";
foreach ($choices as $rowch) {
$selected = "";
if($rowch == $lbreponse) $selected = "selected";
$reponseString = $reponseString."".translate($rowch)." ";
}
$reponseString = $reponseString." ";
}
}
if( isMultiligne($lbreponses) ) {
$vobservation = substr($lbobservation, 1, strlen($lbobservation)-2);
$ostrings = explode(',', $vobservation);
$vreponse = substr($lbreponse, 1, strlen($lbreponse)-2);
$bstrings = explode(';', $vreponse);
$reponseString = "".buildroption($ostrings[0])."
";
$nbrlignes = substr($lbreponses, 1, strlen($lbreponses)-2);
if(count($bstrings) > $nbrlignes)
$nbrlignes = count($bstrings);
for($h=1; $h < $nbrlignes; $h++) {
$reponseString = $reponseString."".buildroption($ostrings[$h])."
";
}
$reponseString = $reponseString." ".translate('Ajouter')." ";
}
if( isTable($lbreponses) ) {
$treponse = substr($lbreponses, 1, strlen($lbreponses)-2);
$astrings = explode(',', $treponse);
if(count($astrings) > 1) {
$percent = 100/count($astrings);
$reponseString = "".translate($astrings[0])." ";
$aleft = 0;
for($i=1; $i < count($astrings); $i++) {
$aleft = $aleft+$percent-7;
$reponseString = $reponseString."".translate($astrings[$i])." ";
}
} else {
$vreponse = substr($lbreponse, 1, strlen($lbreponse)-2);
$bstrings = explode(',', $vreponse);
$percent = (100/$treponse)-7;
$reponseString = "";
$aleft = 0;
for($i=1; $i < $treponse; $i++) {
$aleft = $aleft+60;
$reponseString = $reponseString."";
}
}
}
if(isSpecialAnnuelBlock($lbcount)) {
$reponseString = "";
}
return $reponseString;
}
function buildLigneQuestion($question) {
global $inc;
$questionString = "".translate($question)." ";
$astrings = explode(':', $question, 2);
if(count($astrings) > 1 && count(explode(':', $question)) < 4)
$questionString = "".$astrings[0].": "." ".$astrings[1]." ";
return $questionString;
}
function buildLigneComment($lbcount, $cdata) {
$iscomment = '';
if(isset($cdata['comment']))
$iscomment = $cdata['comment'];
if($iscomment != 1)
return "";
$lbdate = '';
if(isset($cdata['date']))
$lbdate = $cdata['date'];
$lbeval = '';
if(isset($cdata['eval']))
$lbeval = $cdata['eval'];
$observation = '';
if(isset($cdata['eval']))
$observation = $cdata['observation'];
global $inc;
global $isCurrentUser;
global $isUserSupervisor;
global $annuel;
global $annueloptions;
global $blockssize;
$commentHeight = 50;
if($annuel)
$commentHeight = 25;
$adisabled = "disabled";
if(isSpecialAnnuelBlock($lbcount))// && $isCurrentUser
$adisabled = "";
if($annuel && $lbcount != 1 && $isUserSupervisor)
$adisabled = "";
$commentWidth = 300;
if(isSpecialAnnuelBlock($lbcount))
$commentWidth = 200;
if($annuel && $lbcount != $blockssize-1)
$commentString = "
";
else
$commentString = '';
if($annuel) {
if(isSpecialAnnuelBlock($lbcount))
$commentString = $commentString."
";
$adisabled = "";//"disabled";
if($isUserSupervisor)
$adisabled = "";
if($lbcount != $blockssize-1) {
$commentString = $commentString."
";
foreach ($annueloptions as $aoption) {
$opselected = "";
if($aoption == $lbeval) $opselected = "selected";
$commentString = $commentString."".translate($aoption)." ";
}
$commentString = $commentString."
";
}
}
return "".$commentString."
";
}
function calculeNotes($blocnoteP, $blocnotecountP, $rowP, $question, $reponseHTML) {
$rbeval = '';
if(isset($rowP['eval']))
$rbeval = $rowP['eval'];
$resultnote = annuelToNote($blocnoteP, $blocnotecountP, $rbeval);
$blocnote = $resultnote[0];
$blocnotecount = $resultnote[1];
if($rbeval == '') {
$rbreponse = $rowP['reponse'];
$resultnote = annuelToNote($blocnoteP, $blocnotecountP, $rbreponse);
$blocnote = $resultnote[0];
$blocnotecount = $resultnote[1];
}
if(strpos($question, '3.') !== false) {
$possele = strpos($reponseHTML, 'selected');
if($possele > 0) {
$rhabs = $reponseHTML[$possele+9];
$rhabs = $rhabs*2;
if($rowP['question'] == 'Ponctualité')
$rhabs = $rhabs*2;
$blocnote += $rhabs;
$blocnotecount = 4;
}
}
if(strpos($question, '4.') !== false && $rowP['reponse'] !=='') {
$blocnote = $rowP['reponse']*5;
$blocnotecount = 1;
}
$rbdata = $rowP['reponses'];
if (isMultiligne($rbdata)) {
$rbobservation = $rowP['observation'];
$vobservation = substr($rbobservation, 1, strlen($rbobservation)-2);
$ostrings = explode(',', $vobservation);
foreach($ostrings as $ostring) {
$resultnote = annuelToNote($blocnote, $blocnotecount, $ostring);
$blocnote = $resultnote[0];
$blocnotecount = $resultnote[1];
}
}
return [$blocnote, $blocnotecount];
}
// Affichage d'un block entier (entete + lignes) = plusieurs tr
function result($row_data, $blockscount){
global $inc;
global $annuel;
global $allNotes;
global $blockssize;
/* Affichage entete block */
$response = $row_data[0]['reponse'];
$mainreponseHTML = buildEnteteReponse($response);
$mainquestionHTML = buildEnteteQuestion($row_data[0]['question']);
$maincommentHTML = buildEnteteComment($blockscount, $row_data[0]);
$mainclospan = 3;
if($response != "")
$mainclospan = 2;
$widthMax = "";
if($annuel)
$widthMax = "style='width:60px;'";
echo " ";
$inc=$inc+1;
/* End Affichage entete block */
if(isSpecialAnnuelBlock($blockscount)) {
$str1 = "J’étais censé réaliser ce qui suit comme objectif";
$str2 = "J’ai réalisé ce qui suit";
$str3 = "Je serai censé de réaliser ce qui suit comme objectif";
$str4 = "Date de réalisation";
if($blockscount == 1)
echo "".translate($str1)."
".translate($str2)."
".translate($str4)."
";
if($blockscount == $blockssize-1)
echo "".translate($str3)."
";
}
/* Affichage lignes block */
$savedInc = -1;
$linges_blocks = $row_data[1];
$blocnote = 0;
$blocnotecount = 0;
foreach ($linges_blocks as $row) {
$isTable = isTable($row['reponses']);
$reponseHTML = buildLigneReponse($blockscount, $row, $row_data[0]['question']);
$questionHTML = buildLigneQuestion($row['question']);
if(isSpecialAnnuelBlock($blockscount) || $isTable)
$questionHTML = "";
$commentHTML = buildLigneComment($blockscount, $row);
if($annuel) {
$notesarray = calculeNotes($blocnote, $blocnotecount, $row, $row_data[0]['question'], $reponseHTML);
$blocnote = $notesarray[0];
$blocnotecount = $notesarray[1];
}
$qwidth = 420;
$hidetr="";
if(isSpecialAnnuelBlock($blockscount) || $isTable) {
$qwidth = 40;
if($savedInc == -1) $savedInc = $inc + 4;
if(!$isTable && $row['reponse'] == "")
$hidetr="hidden";
if($isTable && $inc > $savedInc) {
$areponse = substr($row['reponse'], 1, strlen($row['reponse'])-2);
$bstrings = explode(',', $areponse);
if($bstrings[0] == "" && $bstrings[0] == "")
$hidetr="hidden";
}
}
echo "
".$questionHTML." ";
if($reponseHTML != "")
echo "".$reponseHTML." ";
echo "".$commentHTML."
";
$inc=$inc+1;
}
/* End Affichage lignes block */
if($annuel && $blocnotecount != 0) {
$blocnote = $blocnote/$blocnotecount;
$allNotes[] = $blocnote;
echo ''.translate("Note").':'.round($blocnote, 2).'/10 ';
}
if($annuel && $blockscount == 1)
echo " ".translate('Ajouter')." ";
if($annuel && $blockscount == $blockssize-1)
echo " ".translate('Ajouter')." ";
if(isset($isTable) && $isTable)
echo " ".translate('Ajouter')." ";
}
?>