|
@@ -24,25 +24,12 @@
|
|
|
* \brief Home page of recruitment top menu
|
|
|
*/
|
|
|
|
|
|
-// Load Dolibarr environment
|
|
|
-$res = 0;
|
|
|
-// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
|
|
|
-if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
|
|
|
-// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
|
|
|
-$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1;
|
|
|
-while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { $i--; $j--; }
|
|
|
-if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php";
|
|
|
-if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) $res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php";
|
|
|
-// Try main.inc.php using relative path
|
|
|
-if (!$res && file_exists("../main.inc.php")) $res = @include "../main.inc.php";
|
|
|
-if (!$res && file_exists("../../main.inc.php")) $res = @include "../../main.inc.php";
|
|
|
-if (!$res && file_exists("../../../main.inc.php")) $res = @include "../../../main.inc.php";
|
|
|
-if (!$res) die("Include of main fails");
|
|
|
-
|
|
|
+require '../main.inc.php';
|
|
|
+require_once DOL_DOCUMENT_ROOT.'/recruitment/class/recruitmentjobposition.class.php';
|
|
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
|
|
|
|
|
|
// Load translation files required by the page
|
|
|
-$langs->loadLangs(array("recruitment"));
|
|
|
+$langs->loadLangs(array("recruitment", "boxes"));
|
|
|
|
|
|
$action = GETPOST('action', 'alpha');
|
|
|
|
|
@@ -73,6 +60,7 @@ $now = dol_now();
|
|
|
|
|
|
$form = new Form($db);
|
|
|
$formfile = new FormFile($db);
|
|
|
+$staticrecruitmentjobposition = new RecruitmentJobPosition($db);
|
|
|
|
|
|
llxHeader("", $langs->trans("RecruitmentArea"));
|
|
|
|
|
@@ -81,6 +69,91 @@ print load_fiche_titre($langs->trans("RecruitmentArea"), '', 'object_recruitment
|
|
|
print '<div class="fichecenter"><div class="fichethirdleft">';
|
|
|
|
|
|
|
|
|
+/*
|
|
|
+ * Statistics
|
|
|
+ */
|
|
|
+
|
|
|
+if ($conf->use_javascript_ajax)
|
|
|
+{
|
|
|
+ $sql = "SELECT COUNT(t.rowid) as nb, status";
|
|
|
+ $sql .= " FROM ".MAIN_DB_PREFIX."recruitment_recruitmentjobposition as t";
|
|
|
+ $sql .= " GROUP BY t.status";
|
|
|
+ $sql .= " ORDER BY t.status ASC";
|
|
|
+ $resql = $db->query($sql);
|
|
|
+
|
|
|
+ if ($resql)
|
|
|
+ {
|
|
|
+ $num = $db->num_rows($resql);
|
|
|
+ $i = 0;
|
|
|
+
|
|
|
+ $totalnb = 0;
|
|
|
+ $dataseries = array();
|
|
|
+ $colorseries = array();
|
|
|
+ $vals = array();
|
|
|
+
|
|
|
+ include_once DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/theme_vars.inc.php';
|
|
|
+
|
|
|
+ while ($i < $num)
|
|
|
+ {
|
|
|
+ $obj = $db->fetch_object($resql);
|
|
|
+ if ($obj)
|
|
|
+ {
|
|
|
+ $vals[$obj->status] = $obj->nb;
|
|
|
+
|
|
|
+ $totalnb += $obj->nb;
|
|
|
+ }
|
|
|
+ $i++;
|
|
|
+ }
|
|
|
+ $db->free($resql);
|
|
|
+
|
|
|
+ print '<div class="div-table-responsive-no-min">';
|
|
|
+ print '<table class="noborder nohover centpercent">';
|
|
|
+ print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Statistics").' - '.$langs->trans("Recruitment").'</th></tr>'."\n";
|
|
|
+ $listofstatus = array(0, 1, 3, 9);
|
|
|
+ foreach ($listofstatus as $status)
|
|
|
+ {
|
|
|
+ $dataseries[] = array($staticrecruitmentjobposition->LibStatut($status, 1), (isset($vals[$status]) ? (int) $vals[$status] : 0));
|
|
|
+ if ($status == RecruitmentJobPosition::STATUS_DRAFT) $colorseries[$status] = '-'.$badgeStatus0;
|
|
|
+ if ($status == RecruitmentJobPosition::STATUS_VALIDATED) $colorseries[$status] = $badgeStatus1;
|
|
|
+ if ($status == RecruitmentJobPosition::STATUS_RECRUITED) $colorseries[$status] = $badgeStatus4;
|
|
|
+ if ($status == RecruitmentJobPosition::STATUS_CANCELED) $colorseries[$status] = $badgeStatus9;
|
|
|
+
|
|
|
+ if (empty($conf->use_javascript_ajax))
|
|
|
+ {
|
|
|
+ print '<tr class="oddeven">';
|
|
|
+ print '<td>'.$staticrecruitmentjobposition->LibStatut($status, 0).'</td>';
|
|
|
+ print '<td class="right"><a href="list.php?statut='.$status.'">'.(isset($vals[$status]) ? $vals[$status] : 0).'</a></td>';
|
|
|
+ print "</tr>\n";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($conf->use_javascript_ajax)
|
|
|
+ {
|
|
|
+ print '<tr><td class="center" colspan="2">';
|
|
|
+
|
|
|
+ include_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php';
|
|
|
+ $dolgraph = new DolGraph();
|
|
|
+ $dolgraph->SetData($dataseries);
|
|
|
+ $dolgraph->SetDataColor(array_values($colorseries));
|
|
|
+ $dolgraph->setShowLegend(2);
|
|
|
+ $dolgraph->setShowPercent(1);
|
|
|
+ $dolgraph->SetType(array('pie'));
|
|
|
+ $dolgraph->SetHeight('200');
|
|
|
+ $dolgraph->draw('idgraphstatus');
|
|
|
+ print $dolgraph->show($totalnb ? 0 : 1);
|
|
|
+
|
|
|
+ print '</td></tr>';
|
|
|
+ }
|
|
|
+ print "</table>";
|
|
|
+ print "</div>";
|
|
|
+
|
|
|
+ print "<br>";
|
|
|
+ } else {
|
|
|
+ dol_print_error($db);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+print '<br>';
|
|
|
+
|
|
|
/* BEGIN MODULEBUILDER DRAFT MYOBJECT
|
|
|
// Draft MyObject
|
|
|
if (! empty($conf->recruitment->enabled) && $user->rights->recruitment->read)
|
|
@@ -89,7 +162,7 @@ if (! empty($conf->recruitment->enabled) && $user->rights->recruitment->read)
|
|
|
|
|
|
$sql = "SELECT c.rowid, c.ref, c.ref_client, c.total_ht, c.tva as total_tva, c.total_ttc, s.rowid as socid, s.nom as name, s.client, s.canvas";
|
|
|
$sql.= ", s.code_client";
|
|
|
- $sql.= " FROM ".MAIN_DB_PREFIX."commande as c";
|
|
|
+ $sql.= " FROM ".MAIN_DB_PREFIX."recruitment_recruitmentjobposition as c";
|
|
|
$sql.= ", ".MAIN_DB_PREFIX."societe as s";
|
|
|
if (! $user->rights->societe->client->voir && ! $socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
|
|
$sql.= " WHERE c.fk_soc = s.rowid";
|
|
@@ -167,18 +240,16 @@ print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
|
|
|
$NBMAX = 3;
|
|
|
$max = 3;
|
|
|
|
|
|
-/* BEGIN MODULEBUILDER LASTMODIFIED MYOBJECT
|
|
|
+/* BEGIN MODULEBUILDER LASTMODIFIED MYOBJECT */
|
|
|
// Last modified myobject
|
|
|
-if (! empty($conf->recruitment->enabled) && $user->rights->recruitment->read)
|
|
|
+if (! empty($conf->recruitment->enabled) && $user->rights->recruitment->recruitmentjobposition->read)
|
|
|
{
|
|
|
- $sql = "SELECT s.rowid, s.nom as name, s.client, s.datec, s.tms, s.canvas";
|
|
|
- $sql.= ", s.code_client";
|
|
|
- $sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
|
|
|
+ $sql = "SELECT s.rowid, s.ref, s.label, s.date_creation, s.tms";
|
|
|
+ $sql.= " FROM ".MAIN_DB_PREFIX."recruitment_recruitmentjobposition as s";
|
|
|
if (! $user->rights->societe->client->voir && ! $socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
|
|
- $sql.= " WHERE s.client IN (1, 2, 3)";
|
|
|
- $sql.= " AND s.entity IN (".getEntity($companystatic->element).")";
|
|
|
- if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
|
|
- if ($socid) $sql.= " AND s.rowid = $socid";
|
|
|
+ $sql.= " WHERE s.entity IN (".getEntity($staticrecruitmentjobposition->element).")";
|
|
|
+ if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND s.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
|
|
|
+ if ($socid) $sql.= " AND s.fk_soc = $socid";
|
|
|
$sql .= " ORDER BY s.tms DESC";
|
|
|
$sql .= $db->plimit($max, 0);
|
|
|
|
|
@@ -191,9 +262,7 @@ if (! empty($conf->recruitment->enabled) && $user->rights->recruitment->read)
|
|
|
print '<table class="noborder centpercent">';
|
|
|
print '<tr class="liste_titre">';
|
|
|
print '<th colspan="2">';
|
|
|
- if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) print $langs->trans("BoxTitleLastCustomersOrProspects",$max);
|
|
|
- else if (! empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) print $langs->trans("BoxTitleLastModifiedProspects",$max);
|
|
|
- else print $langs->trans("BoxTitleLastModifiedCustomers",$max);
|
|
|
+ print $langs->trans("BoxTitleLatestModifiedJobPositions",$max);
|
|
|
print '</th>';
|
|
|
print '<th class="right">'.$langs->trans("DateModificationShort").'</th>';
|
|
|
print '</tr>';
|
|
@@ -202,16 +271,15 @@ if (! empty($conf->recruitment->enabled) && $user->rights->recruitment->read)
|
|
|
while ($i < $num)
|
|
|
{
|
|
|
$objp = $db->fetch_object($resql);
|
|
|
- $companystatic->id=$objp->rowid;
|
|
|
- $companystatic->name=$objp->name;
|
|
|
- $companystatic->client=$objp->client;
|
|
|
- $companystatic->code_client = $objp->code_client;
|
|
|
- $companystatic->code_fournisseur = $objp->code_fournisseur;
|
|
|
- $companystatic->canvas=$objp->canvas;
|
|
|
+ $staticrecruitmentjobposition->id=$objp->rowid;
|
|
|
+ $staticrecruitmentjobposition->ref=$objp->ref;
|
|
|
+ $staticrecruitmentjobposition->label=$objp->label;
|
|
|
+ $staticrecruitmentjobposition->status = $objp->status;
|
|
|
+ $staticrecruitmentjobposition->date_creation = $objp->date_creation;
|
|
|
+
|
|
|
print '<tr class="oddeven">';
|
|
|
- print '<td class="nowrap">'.$companystatic->getNomUrl(1,'customer',48).'</td>';
|
|
|
+ print '<td class="nowrap">'.$staticrecruitmentjobposition->getNomUrl(1, '').'</td>';
|
|
|
print '<td class="right nowrap">';
|
|
|
- print $companystatic->getLibCustProspStatut();
|
|
|
print "</td>";
|
|
|
print '<td class="right nowrap">'.dol_print_date($db->jdate($objp->tms),'day')."</td>";
|
|
|
print '</tr>';
|
|
@@ -227,9 +295,11 @@ if (! empty($conf->recruitment->enabled) && $user->rights->recruitment->read)
|
|
|
print '<tr class="oddeven"><td colspan="3" class="opacitymedium">'.$langs->trans("None").'</td></tr>';
|
|
|
}
|
|
|
print "</table><br>";
|
|
|
+ } else {
|
|
|
+ dol_print_error($db);
|
|
|
}
|
|
|
}
|
|
|
-*/
|
|
|
+
|
|
|
|
|
|
print '</div></div></div>';
|
|
|
|