FIX : several adaptations rank => rankorder and langs correction for HRM

This commit is contained in:
Gauthier PC portable 024 2022-01-13 11:39:54 +01:00
parent d7529e55b5
commit a77a2e9bcc
9 changed files with 29 additions and 33 deletions

View File

@ -236,7 +236,7 @@ class Evaluation extends CommonObject
$line = new Evaluationline($this->db);
$line->fk_evaluation = $resultcreate;
$line->fk_skill = $required->fk_skill;
$line->required_rank = $required->rank;
$line->required_rank = $required->rankorder;
$line->fk_rank = 0;
$res = $line->create($user, $notrigger);

View File

@ -978,7 +978,7 @@ class Skill extends CommonObject
$this->lines = array();
$objectline = new SkillLine($this->db);
$result = $objectline->fetchAll('ASC', 'rank', 0, 0, array('customsql'=>'fk_skill = '.$this->id));
$result = $objectline->fetchAll('ASC', 'rankorder', 0, 0, array('customsql'=>'fk_skill = '.$this->id));
if (is_numeric($result)) {
$this->error = $this->error;

View File

@ -107,7 +107,7 @@ class SkillRank extends CommonObject
public $fields=array(
'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>'1', 'position'=>1, 'notnull'=>1, 'visible'=>0, 'noteditable'=>'1', 'index'=>1, 'css'=>'left', 'comment'=>"Id"),
'fk_skill' => array('type'=>'integer:Skill:hrm/class/skill.class.php:1', 'label'=>'Skill', 'enabled'=>'1', 'position'=>3, 'notnull'=>1, 'visible'=>1, 'index'=>1,),
'rank' => array('type'=>'integer', 'label'=>'Rank', 'enabled'=>'1', 'position'=>4, 'notnull'=>1, 'visible'=>1, 'default' => 0),
'rankorder' => array('type'=>'integer', 'label'=>'Rank', 'enabled'=>'1', 'position'=>4, 'notnull'=>1, 'visible'=>1, 'default' => 0),
'fk_object' => array('type'=>'integer', 'label'=>'object', 'enabled'=>'1', 'position'=>5, 'notnull'=>1, 'visible'=>0,),
'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>'1', 'position'=>500, 'notnull'=>1, 'visible'=>-2,),
'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>'1', 'position'=>501, 'notnull'=>0, 'visible'=>-2,),
@ -371,7 +371,7 @@ class SkillRank extends CommonObject
global $user;
$this->fk_skill = $currentSkill->fk_skill;
$this->rank = $currentSkill->rank;
$this->rankorder = $currentSkill->rankorder;
$this->fk_object = $fk_user;
$this->date_creation = dol_now();
$this->fk_user_creat = $user->id;

View File

@ -372,7 +372,7 @@ function mergeSkills($TSkill1, $TSkill2)
foreach ($TSkill1 as &$sk) {
if (empty($Tab[$sk->fk_skill])) $Tab[$sk->fk_skill] = new stdClass;
$Tab[$sk->fk_skill]->rate1 = $sk->rank;
$Tab[$sk->fk_skill]->rate1 = $sk->rankorder;
$Tab[$sk->fk_skill]->how_many_max1 = $sk->how_many_max;
$Tab[$sk->fk_skill]->label = $sk->label;
$Tab[$sk->fk_skill]->description = $sk->description;
@ -380,7 +380,7 @@ function mergeSkills($TSkill1, $TSkill2)
foreach ($TSkill2 as &$sk) {
if (empty($Tab[$sk->fk_skill])) $Tab[$sk->fk_skill] = new stdClass;
$Tab[$sk->fk_skill]->rate2 = $sk->rank;
$Tab[$sk->fk_skill]->rate2 = $sk->rankorder;
$Tab[$sk->fk_skill]->label = $sk->label;
$Tab[$sk->fk_skill]->description = $sk->description;
$Tab[$sk->fk_skill]->how_many_max2 = $sk->how_many_max;
@ -481,7 +481,7 @@ function getSkillForUsers($TUser)
if (empty($TUser)) return array();
$sql = 'SELECT sk.rowid, sk.label, sk.description, sk.skill_type, sr.fk_object, sr.objecttype, sr.fk_skill, ';
$sql.= ' MAX(sr.rank) as "rank"';
$sql.= ' MAX(sr.rankorder) as "rankorder"';
$sql.= ' FROM '.MAIN_DB_PREFIX.'hrm_skill sk';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'hrm_skillrank sr ON (sk.rowid = sr.fk_skill)';
$sql.= " WHERE sr.objecttype = '".SkillRank::SKILLRANK_TYPE_USER."'";
@ -496,7 +496,7 @@ function getSkillForUsers($TUser)
$num = 0;
while ($obj = $db->fetch_object($resql) ) {
$sql1 = "SELECT count(*) as how_many_max FROM ".MAIN_DB_PREFIX."hrm_skillrank sr";
$sql1.=" WHERE sr.rank = ".((int) $obj->rank);
$sql1.=" WHERE sr.rankorder = ".((int) $obj->rankorder);
$sql1.=" AND sr.objecttype = '".Skillrank::SKILLRANK_TYPE_USER."'";
$sql1.=" AND sr.fk_skill = ".((int) $obj->fk_skill);
$sql1.=" AND sr.fk_object IN (".$db->sanitize(implode(',', $TUser)).")";
@ -511,7 +511,7 @@ function getSkillForUsers($TUser)
$Tab[$num]->skill_type = $obj->skill_type;
$Tab[$num]->fk_object = $obj->fk_object;
$Tab[$num]->objectType = SkillRank::SKILLRANK_TYPE_USER;
$Tab[$num]->rank = $obj->rank;
$Tab[$num]->rankorder = $obj->rankorder;
$Tab[$num]->how_many_max = $objMax->how_many_max;
$num++;
@ -536,7 +536,7 @@ function getSkillForJob($fk_job)
if (empty($fk_job)) return array();
$sql = 'SELECT sk.rowid, sk.label, sk.description, sk.skill_type, sr.fk_object, sr.objecttype, sr.fk_skill, ';
$sql.= ' MAX(sr.rank) as "rank"';
$sql.= ' MAX(sr.rankorder) as "rankorder"';
$sql.=' FROM '.MAIN_DB_PREFIX.'hrm_skill sk';
$sql.=' LEFT JOIN '.MAIN_DB_PREFIX.'hrm_skillrank sr ON (sk.rowid = sr.fk_skill)';
$sql.=" WHERE sr.objecttype = '".SkillRank::SKILLRANK_TYPE_JOB."'";
@ -559,7 +559,7 @@ function getSkillForJob($fk_job)
//$Tab[$num]->date_end = ''; // du poste
$Tab[$num]->fk_object = $obj->fk_object;
$Tab[$num]->objectType = SkillRank::SKILLRANK_TYPE_JOB;
$Tab[$num]->rank = $obj->rank;
$Tab[$num]->rankorder = $obj->rankorder;
$Tab[$num]->how_many_max = $obj->how_many_max;
$num++;

View File

@ -93,7 +93,7 @@ print '</td>';
<?php
global $permissiontoadd;
print displayRankInfos($line->rank, $line->fk_skill, 'TNote', ($this->status == 0 && $permissiontoadd) ? 'edit' : 'view');
print displayRankInfos($line->rankorder, $line->fk_skill, 'TNote', ($this->status == 0 && $permissiontoadd) ? 'edit' : 'view');
?>

View File

@ -156,7 +156,7 @@ if (empty($reshook)) {
$TNote = GETPOST('TNote', 'array');
if (!empty($TNote)) {
foreach ($object->lines as $line) {
$line->rank = $TNote[$line->fk_skill];
$line->rankorder = $TNote[$line->fk_skill];
$line->update($user);
}
}
@ -172,16 +172,12 @@ if (empty($reshook)) {
foreach ($object->lines as $key => $line) {
// no reference .. we add the line to use it
if (count($SkillrecordsForActiveUser) == 0) {
if ($res > 0) {
$newSkill = new SkillRank($db);
$resCreate = $newSkill->cloneFromCurrentSkill($line, $object->fk_user);
$newSkill = new SkillRank($db);
$resCreate = $newSkill->cloneFromCurrentSkill($line, $object->fk_user);
if ($resCreate <= 0) {
$errors++;
setEventMessage($langs->trans('ErrorCreateUserSkill'), $line->fk_skill);
}
} else {
setEventMessage($langs->trans('NoSkilRankLoaded'));
if ($resCreate <= 0) {
$errors++;
setEventMessage($langs->trans('ErrorCreateUserSkill'), $line->fk_skill);
}
} else {
//check if the skill is present to use it
@ -198,7 +194,7 @@ if (empty($reshook)) {
if ($find) {
$updSkill = $SkillrecordsForActiveUser[$k];
$updSkill->rank = $line->rank;
$updSkill->rankorder = $line->rankorder;
$updSkill->update($user);
} else { // sinon on ajoute la skill
$newSkill = new SkillRank($db);
@ -519,9 +515,9 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
$sql .= ' sk.label as "skilllabel",';
$sql .= ' sk.skill_type,';
$sql .= ' sk.description,';
$sql .= ' ed.rank,';
$sql .= ' ed.rankorder,';
$sql .= ' ed.required_rank,';
$sql .= ' ed.rank as "userRankForSkill",';
$sql .= ' ed.rankorder as "userRankForSkill",';
$sql .= ' skdet_user.description as "userRankForSkillDesc",';
$sql .= ' skdet_required.description as "required_rank_desc"';
@ -529,9 +525,9 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
$sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'hrm_evaluationdet as ed ON e.rowid = ed.fk_evaluation';
$sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'hrm_job as j ON e.fk_job = j.rowid';
$sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'hrm_skill as sk ON ed.fk_skill = sk.rowid';
$sql .= ' INNER JOIN ' . MAIN_DB_PREFIX . 'hrm_skilldet as skdet_user ON (skdet_user.fk_skill = sk.rowid AND skdet_user.rank = ed.rank)';
$sql .= ' INNER JOIN ' . MAIN_DB_PREFIX . 'hrm_skilldet as skdet_user ON (skdet_user.fk_skill = sk.rowid AND skdet_user.rankorder = ed.rankorder)';
//$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "hrm_skillrank as skr ON (j.rowid = skr.fk_object AND skr.fk_skill = ed.fk_skill AND skr.objecttype = 'job')";
$sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'hrm_skilldet as skdet_required ON (skdet_required.fk_skill = sk.rowid AND skdet_required.rank = ed.required_rank)';
$sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'hrm_skilldet as skdet_required ON (skdet_required.fk_skill = sk.rowid AND skdet_required.rankorder = ed.required_rank)';
$sql .= " WHERE e.rowid =" . ((int) $object->id);
// echo $sql;

View File

@ -124,13 +124,13 @@ function displayRankInfos($selected_rank, $fk_skill, $inputname = 'TNote', $mode
if (is_array($Lines) && !empty($Lines)) {
foreach ($Lines as $line) {
$MaxNumberSkill = isset($conf->global->HRM_MAXRANK) ? $conf->global->HRM_MAXRANK : Skill::DEFAULT_MAX_RANK_PER_SKILL;
if ($line->rank > $MaxNumberSkill) {
if ($line->rankorder > $MaxNumberSkill) {
continue;
}
$ret .= '<span title="' . $line->description . '" class="radio_js_bloc_number ' . $inputname . '_' . $line->fk_skill;
$ret .= $line->rank == $selected_rank ? ' selected' : '';
$ret .= '">' . $line->rank . '</span>';
$ret .= $line->rankorder == $selected_rank ? ' selected' : '';
$ret .= '">' . $line->rankorder . '</span>';
}
if ($mode == 'edit') {

View File

@ -130,7 +130,7 @@ if (empty($reshook)) {
$TSkills = $skill->fetchAll('ASC', 't.rowid', 0, 0, array('customsql' => 'fk_object=' . ((int) $id) . " AND objecttype='" . $db->escape($objecttype) . "' AND fk_skill = " . ((int) $skillId)));
if (is_array($TSkills) && !empty($TSkills)) {
foreach ($TSkills as $tmpObj) {
$tmpObj->rank = $rank;
$tmpObj->rankorder = $rank;
$tmpObj->update($user);
}
}
@ -305,7 +305,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
print '<td>';
print $sk->description;
print '</td><td class="linecolrank">';
print displayRankInfos($skillElement->rank, $skillElement->fk_skill, 'TNote', $objecttype == 'job' && $permissiontoadd ? 'edit' : 'view');
print displayRankInfos($skillElement->rankorder, $skillElement->fk_skill, 'TNote', $objecttype == 'job' && $permissiontoadd ? 'edit' : 'view');
print '</td>';
if ($objecttype != 'user' && $permissiontoadd) {
print '<td class="linecoledit"></td>';

View File

@ -23,7 +23,7 @@ HrmSetup=Configuration du module GRH
SkillsManagement=Gestion des compétences
HRM_MAXRANK=Nombre maximum de niveaux pour classer une compétence
HRM_DEFAULT_SKILL_DESCRIPTION=Description par défaut des rangs lors de la création de la compétence
deplacement=Ctrl
deplacement=Déplacement
DateEval=Date d'évaluation
JobCard=Fiche emploi
JobPosition=Emploi