30require
'../main.inc.php';
31require_once DOL_DOCUMENT_ROOT.
'/recruitment/class/recruitmentjobposition.class.php';
32require_once DOL_DOCUMENT_ROOT.
'/recruitment/class/recruitmentcandidature.class.php';
33require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
34require_once DOL_DOCUMENT_ROOT.
'/core/lib/dashboard.lib.php';
45$langs->loadLangs(array(
"recruitment",
"boxes"));
47$action =
GETPOST(
'action',
'aZ09');
54if (!empty($user->socid) && $user->socid > 0) {
56 $socid = $user->socid;
65restrictedArea($user,
'recruitment', 0,
'recruitment_recruitmentjobposition',
'recruitmentjobposition',
'',
'rowid');
84llxHeader(
"", $langs->trans(
"RecruitmentArea"));
86print
load_fiche_titre($langs->trans(
"RecruitmentArea"),
'',
'object_recruitmentjobposition');
88print
'<div class="fichecenter"><div class="fichethirdleft">';
97$sql =
"SELECT COUNT(t.rowid) as nb, status";
98$sql .=
" FROM ".MAIN_DB_PREFIX.
"recruitment_recruitmentjobposition as t";
99$sql .=
" WHERE t.entity IN (".getEntity(
'recruitmentjobposition').
")";
100$sql .=
" GROUP BY t.status";
101$sql .=
" ORDER BY t.status ASC";
102$resql = $db->query($sql);
105 while ($obj = $db->fetch_object($resql)) {
106 $vals[$obj->status] = $obj->nb;
110 $colorofstatus = array(
117 foreach (array(0, 1, 3, 9) as $status) {
119 'label' =>
dol_html_entity_decode($staticrecruitmentjobposition->LibStatut($status, 1), ENT_QUOTES | ENT_HTML5),
120 'labelnojs' => $staticrecruitmentjobposition->LibStatut($status, 0),
121 'nb' => (isset($vals[$status]) ? (
int) $vals[$status] : 0),
122 'color' => $colorofstatus[$status],
123 'url' =>
'recruitmentjobposition_list.php?search_status='.$status,
126 print
getStatusPieChart($langs->trans(
"Statistics").
' - '.$langs->trans(
"JobPositions"), $series, array(
'total' =>
false));
128 dol_print_error($db);
131$sql =
"SELECT COUNT(t.rowid) as nb, status";
132$sql .=
" FROM ".MAIN_DB_PREFIX.
"recruitment_recruitmentcandidature as t";
133$sql .=
" WHERE t.entity IN (".getEntity(
'recruitmentcandidature').
")";
134$sql .=
" GROUP BY t.status";
135$sql .=
" ORDER BY t.status ASC";
136$resql = $db->query($sql);
139 while ($obj = $db->fetch_object($resql)) {
140 $vals[$obj->status] = $obj->nb;
144 $colorofstatus = array(
145 RecruitmentCandidature::STATUS_DRAFT =>
'-'.$colors[0],
146 RecruitmentCandidature::STATUS_VALIDATED => $colors[1],
147 RecruitmentCandidature::STATUS_CONTRACT_PROPOSED => $colors[4],
148 RecruitmentCandidature::STATUS_CONTRACT_SIGNED => $colors[5],
149 RecruitmentCandidature::STATUS_REFUSED => $colors[9],
150 RecruitmentCandidature::STATUS_CANCELED => $colors[9],
153 foreach (array(0, 1, 3, 5, 8, 9) as $status) {
155 'label' =>
dol_html_entity_decode($staticrecruitmentcandidature->LibStatut($status, 1), ENT_QUOTES | ENT_HTML5),
156 'labelnojs' => $staticrecruitmentcandidature->LibStatut($status, 0),
157 'nb' => (isset($vals[$status]) ? (
int) $vals[$status] : 0),
158 'color' => $colorofstatus[$status],
159 'url' =>
'recruitmentcandidature_list.php?search_status='.$status,
162 print
getStatusPieChart($langs->trans(
"Statistics").
' - '.$langs->trans(
"RecruitmentCandidatures"), $series, array(
'graphid' =>
'idgraphstatuscandidature',
'total' =>
false));
164 dol_print_error($db);
248print
'</div><div class="fichetwothirdright">';
252if (
isModEnabled(
'recruitment') && $user->hasRight(
'recruitment',
'recruitmentjobposition',
'read')) {
253 $sql =
"SELECT s.rowid, s.ref, s.label, s.date_creation, s.tms, s.status, COUNT(rc.rowid) as nbapplications";
254 $sql .=
" FROM ".MAIN_DB_PREFIX.
"recruitment_recruitmentjobposition as s";
255 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"recruitment_recruitmentcandidature as rc ON rc.fk_recruitmentjobposition = s.rowid";
256 if (
isModEnabled(
'societe') && !$user->hasRight(
'societe',
'client',
'voir') && !$socid) {
257 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
259 $sql .=
" WHERE s.entity IN (".getEntity($staticrecruitmentjobposition->element).
")";
260 if (
isModEnabled(
'societe') && !$user->hasRight(
'societe',
'client',
'voir') && !$socid) {
261 $sql .=
" AND s.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
264 $sql .=
" AND s.fk_soc = ".((int) $socid);
266 $sql .=
" GROUP BY s.rowid, s.ref, s.label, s.date_creation, s.tms, s.status";
267 $sql .= $db->order(
's.tms',
'DESC');
268 $sql .= $db->plimit($max, 0);
270 $resql = $db->query($sql);
272 $num = $db->num_rows($resql);
275 print
'<div class="div-table-responsive-no-min">';
276 print
'<table class="noborder centpercent">';
277 print
'<tr class="liste_titre">';
278 print
'<th colspan="2">';
279 print $langs->trans(
"BoxTitleLatestModifiedJobPositions", $max);
281 print
'<th class="right">';
282 print $langs->trans(
"Applications");
284 print
'<th class="right" colspan="2"><a href="'.DOL_URL_ROOT.
'/recruitment/recruitmentjobposition_list.php?sortfield=t.tms&sortorder=DESC">'.$langs->trans(
"FullList").
'</th>';
288 $objp = $db->fetch_object($resql);
289 $staticrecruitmentjobposition->id = $objp->rowid;
290 $staticrecruitmentjobposition->ref = $objp->ref;
291 $staticrecruitmentjobposition->label = $objp->label;
292 $staticrecruitmentjobposition->status = $objp->status;
293 $staticrecruitmentjobposition->date_creation = $objp->date_creation;
295 print
'<tr class="oddeven">';
296 print
'<td class="nowrap">'.$staticrecruitmentjobposition->getNomUrl(1,
'').
'</td>';
297 print
'<td class="right nowrap">';
299 print
'<td class="right">';
300 print $objp->nbapplications;
302 print
'<td class="right nowrap">'.dol_print_date($db->jdate($objp->tms),
'day').
"</td>";
303 print
'<td class="right nowrap" width="16">';
304 print $staticrecruitmentjobposition->getLibStatut(3);
312 print
'<tr class="oddeven"><td colspan="4"><span class="opacitymedium">'.$langs->trans(
"None").
'</span></td></tr>';
318 dol_print_error($db);
323if (
isModEnabled(
'recruitment') && $user->hasRight(
'recruitment',
'recruitmentjobposition',
'read')) {
324 $sql =
"SELECT rc.rowid, rc.ref, rc.email, rc.lastname, rc.firstname, rc.date_creation, rc.tms, rc.status";
325 $sql .=
" FROM ".MAIN_DB_PREFIX.
"recruitment_recruitmentcandidature as rc";
326 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"recruitment_recruitmentjobposition as s ON rc.fk_recruitmentjobposition = s.rowid";
327 if (
isModEnabled(
'societe') && !$user->hasRight(
'societe',
'client',
'voir') && !$socid) {
328 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
330 $sql .=
" WHERE rc.entity IN (".getEntity($staticrecruitmentjobposition->element).
")";
331 if (
isModEnabled(
'societe') && !$user->hasRight(
'societe',
'client',
'voir') && !$socid) {
332 $sql .=
" AND s.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
335 $sql .=
" AND s.fk_soc = ".((int) $socid);
337 $sql .= $db->order(
'rc.tms',
'DESC');
338 $sql .= $db->plimit($max, 0);
340 $resql = $db->query($sql);
342 $num = $db->num_rows($resql);
345 print
'<div class="div-table-responsive-no-min">';
346 print
'<table class="noborder centpercent">';
347 print
'<tr class="liste_titre">';
348 print
'<th colspan="2">';
349 print $langs->trans(
"BoxTitleLatestModifiedCandidatures", $max);
351 print
'<th class="right" colspan="2"><a href="'.DOL_URL_ROOT.
'/recruitment/recruitmentcandidature_list.php?sortfield=t.tms&sortorder=DESC">'.$langs->trans(
"FullList").
'</th>';
355 $objp = $db->fetch_object($resql);
356 $staticrecruitmentcandidature->id = $objp->rowid;
357 $staticrecruitmentcandidature->ref = $objp->ref;
358 $staticrecruitmentcandidature->email = $objp->email;
359 $staticrecruitmentcandidature->status = $objp->status;
360 $staticrecruitmentcandidature->date_creation = $objp->date_creation;
361 $staticrecruitmentcandidature->firstname = $objp->firstname;
362 $staticrecruitmentcandidature->lastname = $objp->lastname;
364 print
'<tr class="oddeven">';
365 print
'<td class="nowrap">'.$staticrecruitmentcandidature->getNomUrl(1,
'').
'</td>';
366 print
'<td class="right nowrap">';
368 print
'<td class="right nowrap">'.dol_print_date($db->jdate($objp->tms),
'day').
"</td>";
369 print
'<td class="right nowrap" width="16">';
370 print $staticrecruitmentcandidature->getLibStatut(3);
378 print
'<tr class="oddeven"><td colspan="4"><span class="opacitymedium">'.$langs->trans(
"None").
'</span></td></tr>';
384 dol_print_error($db);
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Class for RecruitmentCandidature.
Class for RecruitmentJobPosition.
const STATUS_VALIDATED
Validated.
const STATUS_RECRUITED
Recruited.
const STATUS_CANCELED
Canceled.
const STATUS_DRAFT
Draft status.
getThemeBadgeStatusColors()
Return the colors of status badges defined by the current theme (theme_vars.inc.php)
getStatusPieChart($title, $series, $options=array())
Return the HTML table with a pie chart of values by status, as shown on the home page of a module.
dol_html_entity_decode($a, $b, $c='UTF-8', $keepsomeentities=0)
Replace html_entity_decode functions to manage errors.
dol_now($mode='gmt')
Return date for now.
getDolUserInt($key, $default=0, $tmpuser=null)
Return Dolibarr user constant int value.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0, $nodefault=0)
Return value of a param into GET or POST supervariable.
GETPOSTINT($paramname, $method=0, $nodefault=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
isModEnabled($module)
Is Dolibarr module enabled.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='', $morecssonpicto='widthpictotitle')
Load a title with picto.
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $nodie=0, $mode='')
Check permissions of a user to show a page and an object.