27 require
'../main.inc.php';
28 require_once DOL_DOCUMENT_ROOT.
'/recruitment/class/recruitmentjobposition.class.php';
29 require_once DOL_DOCUMENT_ROOT.
'/recruitment/class/recruitmentcandidature.class.php';
30 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
33 $langs->loadLangs(array(
"recruitment",
"boxes"));
35 $action =
GETPOST(
'action',
'aZ09');
40 $socid =
GETPOST(
'socid',
'int');
41 if (isset($user->socid) && $user->socid > 0) {
43 $socid = $user->socid;
55 restrictedArea($user,
'recruitment', 0,
'recruitment_recruitmentjobposition',
'recruitmentjobposition',
'',
'rowid');
74 llxHeader(
"", $langs->trans(
"RecruitmentArea"));
76 print
load_fiche_titre($langs->trans(
"RecruitmentArea"),
'',
'object_recruitmentjobposition');
78 print
'<div class="fichecenter"><div class="fichethirdleft">';
85 if ($conf->use_javascript_ajax) {
86 $sql =
"SELECT COUNT(t.rowid) as nb, status";
87 $sql .=
" FROM ".MAIN_DB_PREFIX.
"recruitment_recruitmentjobposition as t";
88 $sql .=
" GROUP BY t.status";
89 $sql .=
" ORDER BY t.status ASC";
93 $num = $db->num_rows(
$resql);
97 $dataseries = array();
98 $colorseries = array();
101 include DOL_DOCUMENT_ROOT.
'/theme/'.$conf->theme.
'/theme_vars.inc.php';
104 $obj = $db->fetch_object(
$resql);
106 $vals[$obj->status] = $obj->nb;
108 $totalnb += $obj->nb;
114 print
'<div class="div-table-responsive-no-min">';
115 print
'<table class="noborder nohover centpercent">';
116 print
'<tr class="liste_titre"><th colspan="2">'.$langs->trans(
"Statistics").
' - '.$langs->trans(
"JobPositions").
'</th></tr>'.
"\n";
117 $listofstatus = array(0, 1, 3, 9);
118 foreach ($listofstatus as $status) {
119 $dataseries[] = array(
dol_html_entity_decode($staticrecruitmentjobposition->LibStatut($status, 1), ENT_QUOTES | ENT_HTML5), (isset($vals[$status]) ? (
int) $vals[$status] : 0));
120 if ($status == RecruitmentJobPosition::STATUS_DRAFT) {
121 $colorseries[$status] =
'-'.$badgeStatus0;
123 if ($status == RecruitmentJobPosition::STATUS_VALIDATED) {
124 $colorseries[$status] = $badgeStatus4;
126 if ($status == RecruitmentJobPosition::STATUS_RECRUITED) {
127 $colorseries[$status] = $badgeStatus6;
129 if ($status == RecruitmentJobPosition::STATUS_CANCELED) {
130 $colorseries[$status] = $badgeStatus9;
133 if (empty($conf->use_javascript_ajax)) {
134 print
'<tr class="oddeven">';
135 print
'<td>'.$staticrecruitmentjobposition->LibStatut($status, 0).
'</td>';
136 print
'<td class="right"><a href="list.php?statut='.$status.
'">'.(isset($vals[$status]) ? $vals[$status] : 0).
'</a></td>';
140 if ($conf->use_javascript_ajax) {
141 print
'<tr><td class="center" colspan="2">';
143 include_once DOL_DOCUMENT_ROOT.
'/core/class/dolgraph.class.php';
145 $dolgraph->SetData($dataseries);
146 $dolgraph->SetDataColor(array_values($colorseries));
147 $dolgraph->setShowLegend(2);
148 $dolgraph->setShowPercent(1);
149 $dolgraph->SetType(array(
'pie'));
150 $dolgraph->SetHeight(
'200');
151 $dolgraph->draw(
'idgraphstatus');
152 print $dolgraph->show($totalnb ? 0 : 1);
164 $sql =
"SELECT COUNT(t.rowid) as nb, status";
165 $sql .=
" FROM ".MAIN_DB_PREFIX.
"recruitment_recruitmentcandidature as t";
166 $sql .=
" GROUP BY t.status";
167 $sql .=
" ORDER BY t.status ASC";
168 $resql = $db->query($sql);
171 $num = $db->num_rows(
$resql);
175 $dataseries = array();
176 $colorseries = array();
179 include DOL_DOCUMENT_ROOT.
'/theme/'.$conf->theme.
'/theme_vars.inc.php';
182 $obj = $db->fetch_object(
$resql);
184 $vals[$obj->status] = $obj->nb;
186 $totalnb += $obj->nb;
192 print
'<div class="div-table-responsive-no-min">';
193 print
'<table class="noborder nohover centpercent">';
194 print
'<tr class="liste_titre"><th colspan="2">'.$langs->trans(
"Statistics").
' - '.$langs->trans(
"RecruitmentCandidatures").
'</th></tr>'.
"\n";
195 $listofstatus = array(0, 1, 3, 5, 8, 9);
196 foreach ($listofstatus as $status) {
197 $dataseries[] = array(
dol_html_entity_decode($staticrecruitmentcandidature->LibStatut($status, 1), ENT_QUOTES | ENT_HTML5), (isset($vals[$status]) ? (
int) $vals[$status] : 0));
198 if ($status == RecruitmentCandidature::STATUS_DRAFT) {
199 $colorseries[$status] =
'-'.$badgeStatus0;
201 if ($status == RecruitmentCandidature::STATUS_VALIDATED) {
202 $colorseries[$status] = $badgeStatus1;
204 if ($status == RecruitmentCandidature::STATUS_CONTRACT_PROPOSED) {
205 $colorseries[$status] = $badgeStatus4;
207 if ($status == RecruitmentCandidature::STATUS_CONTRACT_SIGNED) {
208 $colorseries[$status] = $badgeStatus5;
210 if ($status == RecruitmentCandidature::STATUS_REFUSED) {
211 $colorseries[$status] = $badgeStatus9;
213 if ($status == RecruitmentCandidature::STATUS_CANCELED) {
214 $colorseries[$status] = $badgeStatus9;
217 if (empty($conf->use_javascript_ajax)) {
218 print
'<tr class="oddeven">';
219 print
'<td>'.$staticrecruitmentcandidature->LibStatut($status, 0).
'</td>';
220 print
'<td class="right"><a href="list.php?statut='.$status.
'">'.(isset($vals[$status]) ? $vals[$status] : 0).
'</a></td>';
224 if ($conf->use_javascript_ajax) {
225 print
'<tr><td class="center" colspan="2">';
227 include_once DOL_DOCUMENT_ROOT.
'/core/class/dolgraph.class.php';
229 $dolgraph->SetData($dataseries);
230 $dolgraph->SetDataColor(array_values($colorseries));
231 $dolgraph->setShowLegend(2);
232 $dolgraph->setShowPercent(1);
233 $dolgraph->SetType(array(
'pie'));
234 $dolgraph->SetHeight(
'200');
235 $dolgraph->draw(
'idgraphstatuscandidature');
236 print $dolgraph->show($totalnb ? 0 : 1);
331 print
'</div><div class="fichetwothirdright">';
334 $NBMAX = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT;
335 $max = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT;
338 if (!empty($conf->recruitment->enabled) && $user->rights->recruitment->recruitmentjobposition->read) {
339 $sql =
"SELECT s.rowid, s.ref, s.label, s.date_creation, s.tms, s.status, COUNT(rc.rowid) as nbapplications";
340 $sql .=
" FROM ".MAIN_DB_PREFIX.
"recruitment_recruitmentjobposition as s";
341 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"recruitment_recruitmentcandidature as rc ON rc.fk_recruitmentjobposition = s.rowid";
342 if (
isModEnabled(
'societe') && empty($user->rights->societe->client->voir) && !$socid) {
343 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
345 $sql .=
" WHERE s.entity IN (".getEntity($staticrecruitmentjobposition->element).
")";
346 if (
isModEnabled(
'societe') && empty($user->rights->societe->client->voir) && !$socid) {
347 $sql .=
" AND s.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
350 $sql .=
" AND s.fk_soc = $socid";
352 $sql .=
" GROUP BY s.rowid, s.ref, s.label, s.date_creation, s.tms, s.status";
353 $sql .= $db->order(
's.tms',
'DESC');
354 $sql .= $db->plimit($max, 0);
356 $resql = $db->query($sql);
358 $num = $db->num_rows(
$resql);
361 print
'<div class="div-table-responsive-no-min">';
362 print
'<table class="noborder centpercent">';
363 print
'<tr class="liste_titre">';
364 print
'<th colspan="2">';
365 print $langs->trans(
"BoxTitleLatestModifiedJobPositions", $max);
367 print
'<th class="right">';
368 print $langs->trans(
"Applications");
370 print
'<th class="right" colspan="2"><a href="'.DOL_URL_ROOT.
'/recruitment/recruitmentjobposition_list.php?sortfield=t.tms&sortorder=DESC">'.$langs->trans(
"FullList").
'</th>';
374 $objp = $db->fetch_object(
$resql);
375 $staticrecruitmentjobposition->id = $objp->rowid;
376 $staticrecruitmentjobposition->ref = $objp->ref;
377 $staticrecruitmentjobposition->label = $objp->label;
378 $staticrecruitmentjobposition->status = $objp->status;
379 $staticrecruitmentjobposition->date_creation = $objp->date_creation;
381 print
'<tr class="oddeven">';
382 print
'<td class="nowrap">'.$staticrecruitmentjobposition->getNomUrl(1,
'').
'</td>';
383 print
'<td class="right nowrap">';
385 print
'<td class="right">';
386 print $objp->nbapplications;
388 print
'<td class="right nowrap">'.dol_print_date($db->jdate($objp->tms),
'day').
"</td>";
389 print
'<td class="right nowrap" width="16">';
390 print $staticrecruitmentjobposition->getLibStatut(3);
398 print
'<tr class="oddeven"><td colspan="4" class="opacitymedium">'.$langs->trans(
"None").
'</td></tr>';
409 if (!empty($conf->recruitment->enabled) && $user->rights->recruitment->recruitmentjobposition->read) {
410 $sql =
"SELECT rc.rowid, rc.ref, rc.email, rc.lastname, rc.firstname, rc.date_creation, rc.tms, rc.status";
411 $sql .=
" FROM ".MAIN_DB_PREFIX.
"recruitment_recruitmentcandidature as rc";
412 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"recruitment_recruitmentjobposition as s ON rc.fk_recruitmentjobposition = s.rowid";
413 if (
isModEnabled(
'societe') && empty($user->rights->societe->client->voir) && !$socid) {
414 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
416 $sql .=
" WHERE rc.entity IN (".getEntity($staticrecruitmentjobposition->element).
")";
417 if (
isModEnabled(
'societe') && empty($user->rights->societe->client->voir) && !$socid) {
418 $sql .=
" AND s.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
421 $sql .=
" AND s.fk_soc = $socid";
423 $sql .= $db->order(
'rc.tms',
'DESC');
424 $sql .= $db->plimit($max, 0);
426 $resql = $db->query($sql);
428 $num = $db->num_rows(
$resql);
431 print
'<div class="div-table-responsive-no-min">';
432 print
'<table class="noborder centpercent">';
433 print
'<tr class="liste_titre">';
434 print
'<th colspan="2">';
435 print $langs->trans(
"BoxTitleLatestModifiedCandidatures", $max);
437 print
'<th class="right" colspan="2"><a href="'.DOL_URL_ROOT.
'/recruitment/recruitmentcandidature_list.php?sortfield=t.tms&sortorder=DESC">'.$langs->trans(
"FullList").
'</th>';
441 $objp = $db->fetch_object(
$resql);
442 $staticrecruitmentcandidature->id = $objp->rowid;
443 $staticrecruitmentcandidature->ref = $objp->ref;
444 $staticrecruitmentcandidature->email = $objp->email;
445 $staticrecruitmentcandidature->status = $objp->status;
446 $staticrecruitmentcandidature->date_creation = $objp->date_creation;
447 $staticrecruitmentcandidature->firstname = $objp->firstname;
448 $staticrecruitmentcandidature->lastname = $objp->lastname;
450 print
'<tr class="oddeven">';
451 print
'<td class="nowrap">'.$staticrecruitmentcandidature->getNomUrl(1,
'').
'</td>';
452 print
'<td class="right nowrap">';
454 print
'<td class="right nowrap">'.dol_print_date($db->jdate($objp->tms),
'day').
"</td>";
455 print
'<td class="right nowrap" width="16">';
456 print $staticrecruitmentcandidature->getLibStatut(3);
464 print
'<tr class="oddeven"><td colspan="4" class="opacitymedium">'.$langs->trans(
"None").
'</td></tr>';
474 print
'</div></div>';