'; 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 '
'; echo''; } $blockssize = 0; echo "

".translate(str_replace('\'','"',$ficheEvaluation["nom_fiche_evaluation"]))."

"; if($annuel) { echo ""; echo ""; echo ""; } echo "
"; if(isset($blocks)){ if(sizeof($blocks) > 0){ $blockssize = count($blocks); $blocks_count = 0; foreach ($blocks as $row) { $isTable = false; if (count($row[1])>0){ $isTable = isTable($row[1][0]['reponses']); } if(($annuel && ($blocks_count == 3 || $blocks_count == $blockssize-2)) || $isTable) echo "
"; if($annuel && $blocks_count == $blockssize-1) echo "
"; if($annuel && $blocks_count != 0) result($row, $blocks_count); $blocks_count = $blocks_count+1; if($isTable) echo "
"; } } } echo'
'; $compnote = 0;//note competance $finalnote = 0; if($annuel) { $perfnote = $allNotes[0]; $compnoteCount = 0; for($p=1; $p < count($allNotes)-2; $p++) { $compnote += $allNotes[$p]; $compnoteCount += 1; } if($compnoteCount > 0) $compnote = $compnote/$compnoteCount; $rhnote = $allNotes[count($allNotes)-2]; $mgnote = $allNotes[count($allNotes)-1]; $compnotesurdix = $compnote; $compnote = round($compnote*0.7, 2); //afficher la note pour superieurs hierarchique + admin + drh if($_SESSION['glpiactiveprofile']['name'] == "Super-Admin" || $_SESSION['glpiactiveprofile']['name'] == "Directeur RH" || $_SESSION['glpiactiveprofile']['name'] == "Charge Des Formations"){ echo '
'.translate("NOTE COMPETENCE").': '.$compnote.'/7

'; $finalnote = ($perfnote*0.4)+($compnotesurdix*0.3)+($rhnote*0.2)+($mgnote*0.1); echo ''.translate("NOTE FINALE").': '.round($finalnote, 2).'/10

'; }else{ $UsersHierarchy = getUserHierarchy($candidatId); unset($UsersHierarchy[0]);//utilisateur courant if(in_array($_SESSION["glpiID"],$UsersHierarchy)){ echo '
'.translate("NOTE COMPETENCE").': '.$compnote.'/7

'; $finalnote = ($perfnote*0.4)+($compnotesurdix*0.3)+($rhnote*0.2)+($mgnote*0.1); echo ''.translate("NOTE FINALE").': '.round($finalnote, 2).'/10

'; } } } echo '

'; if($annuel) { $display = "display:none"; if($blocks[4][1][1]['reponse'] != '' && $blocks[4][1][1]['reponse'] != '0') $display = ""; echo'




'.translate("Contribution opérationnelle").' [0-2]

'.translate("Il s'agit d'avoir un impact sur les objectifs à court terme en sécurisant les résultats opérationnels et en produisant ses propres résultats selon des objectifs et des normes spécifiques").'

'.translate("Apport tactique").' [2-4]

'.translate("Il s'agit d'avoir un impact sur la stratégie à court et moyen terme en utilisant des processus opérationnels et tous les moyens disponibles afin d'atteindre des objectifs basés sur les décisions de l'entreprise et plans stratégiques, afin de résoudre les problèmes et de prendre des décisionsles décisions").'

'.translate("Apport stratégique").' [4-6]

'.translate("Il s'agit d'avoir un impact direct sur la stratégie à long terme et les objectifs de l'entreprise dans le cadre de la vision définie.").'

'.translate("Contribution visionnaire").' [6-7]

'.translate("Il s'agit d'avoir un impact direct sur l'ensemble de l'organisation mettant en œuvre et en réalisant une vision globale, des missions et en impolémentant des valeurs").'


'; //walid if($annuel) { //insertScore($candidatId,$_GET['idrfe'],$finalnote,$blocks[0][0]['reponse']); if($candidatId != $_SESSION["glpiID"]) echo''; }else{ echo''; } //walid echo' '.translate("Annuler").''; echo'
'; } 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.""; } 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 = ""; } } 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.""; } if( isTable($lbreponses) ) { $treponse = substr($lbreponses, 1, strlen($lbreponses)-2); $astrings = explode(',', $treponse); if(count($astrings) > 1) { $percent = 100/count($astrings); $reponseString = ""; $aleft = 0; for($i=1; $i < count($astrings); $i++) { $aleft = $aleft+$percent-7; $reponseString = $reponseString.""; } } 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 = ""; $astrings = explode(':', $question, 2); if(count($astrings) > 1 && count(explode(':', $question)) < 4) $questionString = ""; 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."
"; } } 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 " ".$mainquestionHTML." ".$mainreponseHTML." ".$maincommentHTML.""; 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)."
".translate($str4)."
"; } /* 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 " "; if($annuel && $blockscount == $blockssize-1) echo " "; if(isset($isTable) && $isTable) echo " "; } ?>