This commit is contained in:
Laurent Destailleur 2023-01-03 13:33:04 +01:00
parent f5792d692a
commit 79b9fd7bc9

View File

@ -28,9 +28,6 @@
* 2- the central part displays the skills. display of the maximum score for this group and the number of occurrences. * 2- the central part displays the skills. display of the maximum score for this group and the number of occurrences.
* *
* 3- the right part displays the members of group 2 or the job to be compared * 3- the right part displays the members of group 2 or the job to be compared
*
*
*
*/ */
@ -48,6 +45,7 @@ require_once DOL_DOCUMENT_ROOT . '/hrm/lib/hrm.lib.php';
// Load translation files required by the page // Load translation files required by the page
$langs->load('hrm'); $langs->load('hrm');
$job = new Job($db);
// Permissions // Permissions
$permissiontoread = $user->rights->hrm->evaluation->read || $user->rights->hrm->compare_advance->read; $permissiontoread = $user->rights->hrm->evaluation->read || $user->rights->hrm->compare_advance->read;
@ -61,8 +59,8 @@ if (!$permissiontoread || ($action === 'create' && !$permissiontoadd)) accessfor
* View * View
*/ */
$css = array(); $css = array('/hrm/css/style.css');
$css[] = '/hrm/css/style.css';
llxHeader('', $langs->trans('SkillComparison'), '', '', 0, 0, '', $css); llxHeader('', $langs->trans('SkillComparison'), '', '', 0, 0, '', $css);
$head = array(); $head = array();
@ -74,8 +72,6 @@ $head[$h][2] = 'compare';
print dol_get_fiche_head($head, 'compare', '', 1); print dol_get_fiche_head($head, 'compare', '', 1);
//$PDOdb = new TPDOdb;
$form = new Form($db);
?> ?>
<script type="text/javascript"> <script type="text/javascript">
@ -114,8 +110,6 @@ $form = new Form($db);
<?php <?php
$job = new Job($db);
$form = new Form($db);
$fk_usergroup2 = 0; $fk_usergroup2 = 0;
$fk_job = (int) GETPOST('fk_job'); $fk_job = (int) GETPOST('fk_job');
@ -133,11 +127,19 @@ $fk_usergroup1 = GETPOST('fk_usergroup1');
<div class="fichehalfleft"> <div class="fichehalfleft">
<table class="border tableforfield" width="100%"> <table class="border tableforfield" width="100%">
<tr> <tr>
<td><?php echo $langs->trans('group1ToCompare').'</td><td>'.$form->select_dolgroups($fk_usergroup1, 'fk_usergroup1', 1); ?></td> <td><?php
print $langs->trans('group1ToCompare').'</td><td>';
print img_picto('', 'group', 'class="pictofixedwidth"');
print $form->select_dolgroups($fk_usergroup1, 'fk_usergroup1', 1);
?></td>
</tr> </tr>
<tr><td>&nbsp;</td></tr> <tr><td>&nbsp;</td></tr>
<tr> <tr>
<td><?php echo $langs->trans('group2ToCompare').'</td><td>'.$form->select_dolgroups($fk_usergroup2, 'fk_usergroup2', 1); ?></td> <td><?php
print $langs->trans('group2ToCompare').'</td><td>';
print img_picto('', 'group', 'class="pictofixedwidth"');
print $form->select_dolgroups($fk_usergroup2, 'fk_usergroup2', 1);
?></td>
</tr> </tr>
<tr> <tr>
<td><STRONG><?php print $langs->trans('or'); ?></STRONG></td> <td><STRONG><?php print $langs->trans('or'); ?></STRONG></td>
@ -397,10 +399,11 @@ function mergeSkills($TSkill1, $TSkill2)
/** /**
* Display a list of User with picto * Display a list of User with picto
* @param array $TUser list of users (employees) in selected usergroup of a column *
* @param int $fk_usergroup selected usergroup id * @param array $TUser list of users (employees) in selected usergroup of a column
* @param string $namelist html name * @param int $fk_usergroup selected usergroup id
* @return string * @param string $namelist html name
* @return string
*/ */
function displayUsersListWithPicto(&$TUser, $fk_usergroup = 0, $namelist = 'list-user') function displayUsersListWithPicto(&$TUser, $fk_usergroup = 0, $namelist = 'list-user')
{ {
@ -412,19 +415,19 @@ function displayUsersListWithPicto(&$TUser, $fk_usergroup = 0, $namelist = 'list
$excludedIdsList = GETPOST($list); $excludedIdsList = GETPOST($list);
$sql = "SELECT u.rowid FROM " . MAIN_DB_PREFIX . "user u
$sql = "SELECT DISTINCT u.rowid FROM " . MAIN_DB_PREFIX . "user u
LEFT JOIN " . MAIN_DB_PREFIX . "usergroup_user as ugu ON (u.rowid = ugu.fk_user) LEFT JOIN " . MAIN_DB_PREFIX . "usergroup_user as ugu ON (u.rowid = ugu.fk_user)
WHERE u.statut > 0 WHERE u.statut > 0 AND ugu.entity = ".((int) $conf->entity);
AND ugu.fk_usergroup=" . ((int) $fk_usergroup); $sql .= " AND ugu.fk_usergroup=" . ((int) $fk_usergroup);
$res = $db->query($sql); $res = $db->query($sql);
$out .= '<ul name="' . $namelist . '">'; $out .= '<ul name="' . $namelist . '">';
$TExcludedId = explode(',', $excludedIdsList); $TExcludedId = explode(',', $excludedIdsList);
$form = new Form($db); $out .= '<input id="'.$list.'" type="hidden" name="'.$list.'" value="'.$excludedIdsList.'"> ';
$out .= '<input id="'.$list.'" type="HIDDEN" name="'.$list.'" value="'.$excludedIdsList.'"> ';
$job = new Job($db);
while ($obj = $db->fetch_object($res)) { while ($obj = $db->fetch_object($res)) {
$class = ''; $class = '';
@ -441,11 +444,10 @@ function displayUsersListWithPicto(&$TUser, $fk_usergroup = 0, $namelist = 'list
if (!in_array($user->id, $TUser)) $TUser[] = $user->id; if (!in_array($user->id, $TUser)) $TUser[] = $user->id;
} }
$desc = ''; $desc = '';
$job = Job::getLastJobForUser($user->id); $jobstring = $job->getLastJobForUser($user->id);
$desc .= $job; $desc .= $jobstring;
$static_eval = new Evaluation($db); $static_eval = new Evaluation($db);
$evaluation = $static_eval->getLastEvaluationForUser($user->id); $evaluation = $static_eval->getLastEvaluationForUser($user->id);
@ -487,7 +489,7 @@ function getSkillForUsers($TUser)
if (empty($TUser)) return array(); 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 = 'SELECT sk.rowid, sk.label, sk.description, sk.skill_type, sr.fk_object, sr.objecttype, sr.fk_skill, ';
$sql.= ' MAX(sr.rankorder) as "rankorder"'; $sql.= ' MAX(sr.rankorder) as rankorder';
$sql.= ' FROM '.MAIN_DB_PREFIX.'hrm_skill sk'; $sql.= ' FROM '.MAIN_DB_PREFIX.'hrm_skill sk';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'hrm_skillrank sr ON (sk.rowid = sr.fk_skill)'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'hrm_skillrank sr ON (sk.rowid = sr.fk_skill)';
$sql.= " WHERE sr.objecttype = '".SkillRank::SKILLRANK_TYPE_USER."'"; $sql.= " WHERE sr.objecttype = '".SkillRank::SKILLRANK_TYPE_USER."'";
@ -501,7 +503,7 @@ function getSkillForUsers($TUser)
//For each skill, we count the number of times that the max score has been reached within a given group //For each skill, we count the number of times that the max score has been reached within a given group
$num = 0; $num = 0;
while ($obj = $db->fetch_object($resql) ) { while ($obj = $db->fetch_object($resql) ) {
$sql1 = "SELECT count(*) as how_many_max FROM ".MAIN_DB_PREFIX."hrm_skillrank sr"; $sql1 = "SELECT COUNT(rowid) as how_many_max FROM ".MAIN_DB_PREFIX."hrm_skillrank as sr";
$sql1.=" WHERE sr.rankorder = ".((int) $obj->rankorder); $sql1.=" WHERE sr.rankorder = ".((int) $obj->rankorder);
$sql1.=" AND sr.objecttype = '".Skillrank::SKILLRANK_TYPE_USER."'"; $sql1.=" AND sr.objecttype = '".Skillrank::SKILLRANK_TYPE_USER."'";
$sql1.=" AND sr.fk_skill = ".((int) $obj->fk_skill); $sql1.=" AND sr.fk_skill = ".((int) $obj->fk_skill);
@ -541,18 +543,17 @@ function getSkillForJob($fk_job)
if (empty($fk_job)) return array(); 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 = 'SELECT sk.rowid, sk.label, sk.description, sk.skill_type, sr.fk_object, sr.objecttype, sr.fk_skill,';
$sql.= ' MAX(sr.rankorder) as "rankorder"'; $sql.= " MAX(sr.rankorder) as rankorder";
$sql.=' FROM '.MAIN_DB_PREFIX.'hrm_skill sk'; $sql.=' FROM '.MAIN_DB_PREFIX.'hrm_skill as sk';
$sql.=' LEFT JOIN '.MAIN_DB_PREFIX.'hrm_skillrank sr ON (sk.rowid = sr.fk_skill)'; $sql.=' LEFT JOIN '.MAIN_DB_PREFIX.'hrm_skillrank as sr ON (sk.rowid = sr.fk_skill)';
$sql.=" WHERE sr.objecttype = '".SkillRank::SKILLRANK_TYPE_JOB."'"; $sql.=" WHERE sr.objecttype = '".SkillRank::SKILLRANK_TYPE_JOB."'";
$sql.=' AND sr.fk_object = '.((int) $fk_job); $sql.=' AND sr.fk_object = '.((int) $fk_job);
$sql.=' GROUP BY sk.rowid, sk.label, sk.description, sk.skill_type, sr.fk_object, sr.objecttype, sr.fk_skill '; // group par competence*/ $sql.=' GROUP BY sk.rowid, sk.label, sk.description, sk.skill_type, sr.fk_object, sr.objecttype, sr.fk_skill'; // group par competence*/
$resql = $db->query($sql); $resql = $db->query($sql);
$Tab = array(); $Tab = array();
if ($resql) { if ($resql) {
$num = 0; $num = 0;
while ($obj = $db->fetch_object($resql) ) { while ($obj = $db->fetch_object($resql) ) {
@ -574,6 +575,5 @@ function getSkillForJob($fk_job)
dol_print_error($db); dol_print_error($db);
} }
return $Tab; return $Tab;
} }