/**
  * Write skills
  *
  * @param
  * @return
  */
 function writeSkills()
 {
     global $lng, $ilCtrl;
     return;
     include_once "./Modules/Survey/classes/class.ilSurveySkill.php";
     $sskill = new ilSurveySkill($this->survey);
     $apps = $this->survey->getAppraiseesData();
     $ctpl = new ilTemplate("tpl.svy_skill_list_changes.html", true, true, "Modules/Survey");
     foreach ($apps as $app) {
         $new_levels = $sskill->determineSkillLevelsForAppraisee($app["user_id"]);
         foreach ($new_levels as $nl) {
             if ($nl["new_level_id"] > 0) {
                 ilBasicSkill::writeUserSkillLevelStatus($nl["new_level_id"], $app["user_id"], $this->survey->getRefId(), $nl["tref_id"], ilBasicSkill::ACHIEVED);
             }
         }
     }
     ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
     $ilCtrl->redirect($this, "listSkillChanges");
 }
 /**
  * Look for all skill level that have a trigger and update
  * the user skill level information, if it has changed
  */
 public static function updateSkillLevelsByTriggerRef($a_user_id, $a_ref_id)
 {
     global $ilDB;
     die("ilBasicSkill::updateSkillLevelsByTriggerRef is deprecated.");
     $set = $ilDB->query("SELECT id, trigger_obj_id FROM skl_level WHERE " . " trigger_ref_id = " . $ilDB->quote($a_ref_id, "integer"));
     while ($rec = $ilDB->fetchAssoc($set)) {
         $skill_level_id = $rec["id"];
         $tr_obj_id = $rec["trigger_obj_id"];
         if (ilObject::_hasUntrashedReference($tr_obj_id)) {
             include_once "./Services/Tracking/classes/class.ilLPStatusWrapper.php";
             $completed = ilLPStatusWrapper::_lookupCompletedForObject($tr_obj_id);
             foreach ($completed as $user_id) {
                 if ($a_user_id == $user_id) {
                     ilBasicSkill::writeUserSkillLevelStatus($skill_level_id, $user_id, ilBasicSkill::ACHIEVED);
                 }
             }
         }
     }
 }
 /**
  * Write appraisee skills
  *
  * @param
  * @return
  */
 function writeAppraiseeSkills($a_app_id)
 {
     // write raters evaluation
     $new_levels = $this->determineSkillLevelsForAppraisee($a_app_id);
     foreach ($new_levels as $nl) {
         if ($nl["new_level_id"] > 0) {
             ilBasicSkill::writeUserSkillLevelStatus($nl["new_level_id"], $a_app_id, $this->survey->getRefId(), $nl["tref_id"], ilBasicSkill::ACHIEVED, true);
         }
     }
     // patch optes start
     // write self evaluation,
     /*
     		$new_levels = $this->determineSkillLevelsForAppraisee($a_app_id, true);
     		foreach ($new_levels as $nl)
     		{
     			if ($nl["new_level_id"] > 0)
     			{
     				ilBasicSkill::writeUserSkillLevelStatus($nl["new_level_id"],
     					$a_app_id, $this->survey->getRefId(), $nl["tref_id"], ilBasicSkill::ACHIEVED, true, 1);
     			}
     		}*/
     // patch optes end
 }
 /**
  * Write appraisee skills
  *
  * @param
  * @return
  */
 function writeAppraiseeSkills($a_app_id)
 {
     $new_levels = $this->determineSkillLevelsForAppraisee($a_app_id);
     foreach ($new_levels as $nl) {
         if ($nl["new_level_id"] > 0) {
             ilBasicSkill::writeUserSkillLevelStatus($nl["new_level_id"], $a_app_id, $this->survey->getRefId(), $nl["tref_id"], ilBasicSkill::ACHIEVED, true);
         }
     }
 }
 /**
  * Save self evaluation
  *
  * @param int $a_user_id user id
  * @param int $a_top_skill the "selectable" top skill
  * @param int $a_tref_id template reference id
  * @param int $a_basic_skill the basic skill the level belongs to
  * @param int $a_level level id
  */
 static function saveSelfEvaluation($a_user_id, $a_top_skill, $a_tref_id, $a_basic_skill, $a_level)
 {
     global $ilDB;
     include_once "./Services/Skill/classes/class.ilBasicSkill.php";
     ilBasicSkill::writeUserSkillLevelStatus($a_level, $a_user_id, 0, $a_tref_id, ilBasicSkill::ACHIEVED, false, 1);
     return;
     $set = $ilDB->query("SELECT * FROM skl_self_eval_level " . " WHERE user_id = " . $ilDB->quote($a_user_id, "integer") . " AND top_skill_id = " . $ilDB->quote($a_top_skill, "integer") . " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer") . " AND skill_id = " . $ilDB->quote($a_basic_skill, "integer"));
     if (!$ilDB->fetchAssoc($set)) {
         $ilDB->manipulate("INSERT INTO skl_self_eval_level " . "(user_id, top_skill_id, tref_id, skill_id, level_id, last_update) VALUES (" . $ilDB->quote($a_user_id, "integer") . "," . $ilDB->quote($a_top_skill, "integer") . "," . $ilDB->quote((int) $a_tref_id, "integer") . "," . $ilDB->quote($a_basic_skill, "integer") . "," . $ilDB->quote($a_level, "integer") . "," . $ilDB->quote(ilUtil::now(), "timestamp") . ")");
     } else {
         $ilDB->manipulate("UPDATE skl_self_eval_level SET " . " level_id = " . $ilDB->quote($a_level, "integer") . ", " . " last_update = " . $ilDB->quote(ilUtil::now(), "timestamp") . " WHERE user_id = " . $ilDB->quote($a_user_id, "integer") . " AND top_skill_id = " . $ilDB->quote($a_top_skill, "integer") . " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer") . " AND skill_id = " . $ilDB->quote($a_basic_skill, "integer"));
     }
 }
 private function invokeSkillLevelTrigger($userId, $skillBaseId, $skillTrefId, $skillLevelId)
 {
     ilBasicSkill::writeUserSkillLevelStatus($skillLevelId, $userId, $this->testOBJ->getRefId(), $skillTrefId, ilBasicSkill::ACHIEVED, true);
     //mail('*****@*****.**', "trigger skill $skillBaseId:$skillTrefId level $skillLevelId for user $userId", '');
 }