28 require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobject.class.php';
40 public $module =
'recruitment';
45 public $element =
'recruitmentjobposition';
50 public $table_element =
'recruitment_recruitmentjobposition';
55 public $picto =
'recruitmentjobposition';
107 public $fields = array(
108 'rowid' => array(
'type' =>
'integer',
'label' =>
'TechnicalID',
'enabled' => 1,
'position' => 1,
'notnull' => 1,
'visible' => 0,
'noteditable' => 1,
'index' => 1,
'comment' =>
"Id"),
109 'entity' => array(
'type' =>
'integer',
'label' =>
'Entity',
'enabled' => 1,
'visible' => 0,
'position' => 5,
'notnull' => 1,
'default' =>
'1',
'index' => 1),
110 'ref' => array(
'type' =>
'varchar(128)',
'label' =>
'Ref',
'enabled' => 1,
'position' => 10,
'notnull' => 1,
'visible' => 4,
'noteditable' => 1,
'default' =>
'(PROV)',
'index' => 1,
'searchall' => 1,
'showoncombobox' => 1,
'comment' =>
"Reference of object",
'css' =>
'nowraponall'),
111 'label' => array(
'type' =>
'varchar(255)',
'label' =>
'JobLabel',
'enabled' => 1,
'position' => 30,
'notnull' => 1,
'visible' => 1,
'searchall' => 1,
'css' =>
'minwidth500',
'csslist' =>
'tdoverflowmax300',
'showoncombobox' =>
'2',
'autofocusoncreate' => 1),
112 'qty' => array(
'type' =>
'integer',
'label' =>
'NbOfEmployeesExpected',
'enabled' => 1,
'position' => 45,
'notnull' => 1,
'visible' => 1,
'default' =>
'1',
'isameasure' => 1,
'css' =>
'maxwidth75imp'),
113 'fk_project' => array(
'type' =>
'integer:Project:projet/class/project.class.php:1',
'label' =>
'Project',
'enabled' =>
'$conf->project->enabled',
'position' => 52,
'notnull' => -1,
'visible' => -1,
'index' => 1,
'css' =>
'maxwidth500',
'picto' =>
'project'),
114 'fk_user_recruiter' => array(
'type' =>
'integer:User:user/class/user.class.php:1:(statut:=:1)',
'label' =>
'ResponsibleOfRecruitement',
'enabled' => 1,
'position' => 54,
'notnull' => 1,
'visible' => 1,
'foreignkey' =>
'user.rowid',
'css' =>
'maxwidth500',
'csslist' =>
'tdoverflowmax150',
'picto' =>
'user'),
115 'email_recruiter' => array(
'type' =>
'varchar(255)',
'label' =>
'EmailRecruiter',
'enabled' => 1,
'position' => 54,
'notnull' => 0,
'visible' => -1,
'help' =>
'ToUseAGenericEmail',
'picto' =>
'email'),
116 'fk_user_supervisor' => array(
'type' =>
'integer:User:user/class/user.class.php:1:(statut:=:1)',
'label' =>
'FutureManager',
'enabled' => 1,
'position' => 55,
'notnull' => 0,
'visible' => -1,
'foreignkey' =>
'user.rowid',
'css' =>
'maxwidth500',
'csslist' =>
'tdoverflowmax150',
'picto' =>
'user'),
117 'fk_establishment' => array(
'type' =>
'integer:Establishment:hrm/class/establishment.class.php',
'label' =>
'Establishment',
'enabled' =>
'$conf->hrm->enabled',
'position' => 56,
'notnull' => 0,
'visible' => -1,
'foreignkey' =>
'establishment.rowid',),
118 'fk_soc' => array(
'type' =>
'integer:Societe:societe/class/societe.class.php:1:((status:=:1) AND (entity:IN:__SHARED_ENTITIES__))',
'label' =>
'WorkPlace',
'enabled' =>
'isModEnabled("societe")',
'position' => 57,
'notnull' => -1,
'visible' => -1,
'css' =>
'maxwidth500',
'index' => 1,
'help' =>
"IfJobIsLocatedAtAPartner",
'picto' =>
'company'),
119 'date_planned' => array(
'type' =>
'date',
'label' =>
'DateExpected',
'enabled' => 1,
'position' => 60,
'notnull' => 0,
'visible' => 1,),
120 'remuneration_suggested' => array(
'type' =>
'varchar(255)',
'label' =>
'Remuneration',
'enabled' => 1,
'position' => 62,
'notnull' => 0,
'visible' => 1,),
121 'description' => array(
'type' =>
'html',
'label' =>
'Description',
'enabled' => 1,
'position' => 65,
'notnull' => 0,
'visible' => 3,),
122 'note_public' => array(
'type' =>
'html',
'label' =>
'NotePublic',
'enabled' => 1,
'position' => 101,
'notnull' => 0,
'visible' => 0,),
123 'note_private' => array(
'type' =>
'html',
'label' =>
'NotePrivate',
'enabled' => 1,
'position' => 102,
'notnull' => 0,
'visible' => 0,),
124 'date_creation' => array(
'type' =>
'datetime',
'label' =>
'DateCreation',
'enabled' => 1,
'position' => 500,
'notnull' => 1,
'visible' => -4,),
125 'tms' => array(
'type' =>
'timestamp',
'label' =>
'DateModification',
'enabled' => 1,
'position' => 501,
'notnull' => 0,
'visible' => -2,),
126 'fk_user_creat' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'UserAuthor',
'enabled' => 1,
'position' => 510,
'notnull' => 1,
'visible' => -2,
'foreignkey' =>
'user.rowid',),
127 'fk_user_modif' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'UserModif',
'enabled' => 1,
'position' => 511,
'notnull' => -1,
'visible' => -2,),
128 'last_main_doc' => array(
'type' =>
'varchar(255)',
'label' =>
'LastMainDoc',
'enabled' => 1,
'position' => 900,
'notnull' => 0,
'visible' => 0,),
129 'import_key' => array(
'type' =>
'varchar(14)',
'label' =>
'ImportId',
'enabled' => 1,
'position' => 1000,
'notnull' => -1,
'visible' => -2,),
130 'model_pdf' => array(
'type' =>
'varchar(255)',
'label' =>
'Model pdf',
'enabled' => 1,
'position' => 1010,
'notnull' => -1,
'visible' => 0,),
131 'status' => array(
'type' =>
'smallint',
'label' =>
'Status',
'enabled' => 1,
'position' => 1000,
'notnull' => 1,
'visible' => 5,
'default' =>
'0',
'index' => 1,
'arrayofkeyval' => array(
'0' =>
'Draft',
'1' =>
'Validated',
'3' =>
'Recruited',
'9' =>
'Canceled'),),
148 public $fk_user_recruiter;
153 public $email_recruiter;
158 public $remuneration_suggested;
160 public $fk_user_supervisor;
161 public $fk_establishment;
162 public $date_planned;
165 public $note_private;
166 public $date_creation;
167 public $fk_user_creat;
168 public $fk_user_modif;
169 public $last_main_doc;
183 global $conf, $langs;
187 $this->ismultientitymanaged = 1;
188 $this->isextrafieldmanaged = 1;
191 $this->fields[
'rowid'][
'visible'] = 0;
193 if (!
isModEnabled(
'multicompany') && isset($this->fields[
'entity'])) {
194 $this->fields[
'entity'][
'enabled'] = 0;
204 foreach ($this->fields as $key => $val) {
205 if (isset($val[
'enabled']) && empty($val[
'enabled'])) {
206 unset($this->fields[$key]);
211 if (is_object($langs)) {
212 foreach ($this->fields as $key => $val) {
213 if (!empty($val[
'arrayofkeyval']) && is_array($val[
'arrayofkeyval'])) {
214 foreach ($val[
'arrayofkeyval'] as $key2 => $val2) {
215 $this->fields[$key][
'arrayofkeyval'][$key2] = $langs->trans($val2);
243 global $langs, $extrafields;
253 $result =
$object->fetchCommon($fromid);
254 if ($result > 0 && !empty(
$object->table_element_line)) {
268 if (property_exists(
$object,
'ref')) {
269 $object->ref = empty($this->fields[
'ref'][
'default']) ?
"Copy_Of_".$object->ref : $this->fields[
'ref'][
'default'];
271 if (property_exists(
$object,
'label')) {
272 $object->label = empty($this->fields[
'label'][
'default']) ? $langs->trans(
"CopyOf").
" ".
$object->label : $this->fields[
'label'][
'default'];
274 if (property_exists(
$object,
'status')) {
277 if (property_exists(
$object,
'date_creation')) {
280 if (property_exists(
$object,
'date_modification')) {
281 $object->date_modification =
null;
285 if (is_array(
$object->array_options) && count(
$object->array_options) > 0) {
286 $extrafields->fetch_name_optionals_label($this->table_element);
287 foreach (
$object->array_options as $key => $option) {
288 $shortkey = preg_replace(
'/options_/',
'', $key);
289 if (!empty($extrafields->attributes[$this->element][
'unique'][$shortkey])) {
292 unset(
$object->array_options[$key]);
298 $object->context[
'createfromclone'] =
'createfromclone';
299 $result =
$object->createCommon($user);
303 $this->errors =
$object->errors;
315 if (property_exists($this,
'socid') && $this->socid ==
$object->socid) {
322 unset(
$object->context[
'createfromclone']);
329 $this->db->rollback();
341 public function fetch($id, $ref =
null)
344 if ($result > 0 && !empty($this->table_element_line)) {
357 $this->lines = array();
376 public function fetchAll($sortorder =
'', $sortfield =
'', $limit = 0, $offset = 0, $filter =
'', $filtermode =
'AND')
384 $sql .=
' FROM '.MAIN_DB_PREFIX.$this->table_element.
' as t';
385 if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) {
386 $sql .=
' WHERE t.entity IN ('.getEntity($this->element).
')';
388 $sql .=
' WHERE 1 = 1';
395 $this->errors[] = $errormessage;
396 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
400 if (!empty($sortfield)) {
401 $sql .= $this->db->order($sortfield, $sortorder);
403 if (!empty($limit)) {
404 $sql .= $this->db->plimit($limit, $offset);
407 $resql = $this->db->query(
$sql);
409 $num = $this->db->num_rows($resql);
411 while ($i < ($limit ? min($limit, $num) : $num)) {
412 $obj = $this->db->fetch_object($resql);
414 $record =
new self($this->db);
415 $record->setVarsFromFetchObj($obj);
417 $records[$record->id] = $record;
421 $this->db->free($resql);
425 $this->errors[] =
'Error '.$this->db->lasterror();
426 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
451 public function delete(
User $user, $notrigger = 0)
468 $this->error =
'ErrorDeleteLineNotAllowedByObjectStatus';
487 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
492 if ($this->
status == self::STATUS_VALIDATED) {
493 dol_syslog(get_class($this).
"::validate action abandoned: already validated", LOG_WARNING);
510 if (!$error && (preg_match(
'/^[\(]?PROV/i', $this->
ref) || empty($this->
ref))) {
515 $this->newref = $num;
519 $sql =
"UPDATE ".MAIN_DB_PREFIX.$this->table_element;
520 $sql .=
" SET ref = '".$this->db->escape($num).
"',";
521 $sql .=
" status = ".self::STATUS_VALIDATED;
522 if (!empty($this->fields[
'date_validation'])) {
523 $sql .=
", date_validation = '".$this->db->idate($now).
"',";
525 if (!empty($this->fields[
'fk_user_valid'])) {
526 $sql .=
", fk_user_valid = ".$user->id;
528 $sql .=
" WHERE rowid = ".((int) $this->
id);
530 dol_syslog(get_class($this).
"::validate()", LOG_DEBUG);
531 $resql = $this->db->query(
$sql);
534 $this->error = $this->db->lasterror();
538 if (!$error && !$notrigger) {
540 $result = $this->
call_trigger(
'RECRUITMENTJOBPOSITION_VALIDATE', $user);
549 $this->oldref = $this->ref;
552 if (preg_match(
'/^[\(]?PROV/i', $this->
ref)) {
554 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filename = CONCAT('".$this->db->escape($this->newref).
"', SUBSTR(filename, ".(strlen($this->
ref) + 1).
")), filepath = 'recruitmentjobposition/".$this->db->escape($this->newref).
"'";
555 $sql .=
" WHERE filename LIKE '".$this->db->escape($this->
ref).
"%' AND filepath = 'recruitmentjobposition/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
556 $resql = $this->db->query(
$sql);
559 $this->error = $this->db->lasterror();
561 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filepath = 'recruitmentjobposition/".$this->db->escape($this->newref).
"'";
562 $sql .=
" WHERE filepath = 'recruitmentjobposition/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
563 $resql = $this->db->query(
$sql);
566 $this->error = $this->db->lasterror();
572 $dirsource = $conf->recruitment->dir_output.
'/recruitmentjobposition/'.$oldref;
573 $dirdest = $conf->recruitment->dir_output.
'/recruitmentjobposition/'.$newref;
574 if (!$error && file_exists($dirsource)) {
575 dol_syslog(get_class($this).
"::validate() rename dir ".$dirsource.
" into ".$dirdest);
577 if (@rename($dirsource, $dirdest)) {
580 $listoffiles =
dol_dir_list($conf->recruitment->dir_output.
'/recruitmentjobposition/'.$newref,
'files', 1,
'^'.preg_quote($oldref,
'/'));
581 foreach ($listoffiles as $fileentry) {
582 $dirsource = $fileentry[
'name'];
583 $dirdest = preg_replace(
'/^'.preg_quote($oldref,
'/').
'/', $newref, $dirsource);
584 $dirsource = $fileentry[
'path'].
'/'.$dirsource;
585 $dirdest = $fileentry[
'path'].
'/'.$dirdest;
586 @rename($dirsource, $dirdest);
603 $this->db->rollback();
619 if ($this->
status <= self::STATUS_DRAFT) {
630 return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger,
'RECRUITMENTJOBPOSITION_UNVALIDATE');
640 public function cancel($user, $notrigger = 0)
643 if ($this->
status != self::STATUS_VALIDATED) {
654 return $this->
setStatusCommon($user, self::STATUS_CANCELED, $notrigger,
'RECRUITMENTJOBPOSITION_CLOSE');
666 public function cloture($user, $status, $note =
"", $notrigger = 0)
668 global $langs, $conf;
677 $sql =
"UPDATE ".MAIN_DB_PREFIX.$this->table_element;
678 $sql .=
" SET status = ".((int) $status).
", note_private = '".$this->db->escape($newprivatenote).
"'";
680 $sql .=
" WHERE rowid = ".((int) $this->
id);
682 $resql = $this->db->query(
$sql);
684 $modelpdf = $this->model_pdf;
685 $triggerName =
'RECRUITMENTJOB_CLOSE_REFUSED';
687 if ($status == self::STATUS_RECRUITED) {
688 $triggerName =
'RECRUITMENTJOB_CLOSE_RECRUITED';
689 $modelpdf = $this->model_pdf;
694 $outputlangs = $langs;
697 $newlang = (
GETPOST(
'lang_id',
'aZ09') ?
GETPOST(
'lang_id',
'aZ09') : $this->thirdparty->default_lang);
698 $outputlangs->setDefaultLang($newlang);
707 $this->
generateDocument($modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
711 $this->oldcopy = clone $this;
713 $this->date_cloture = $now;
714 $this->note_private = $newprivatenote;
717 if (!$notrigger && empty($error)) {
730 $this->
status = $this->oldcopy->status;
731 $this->date_cloture = $this->oldcopy->date_cloture;
732 $this->note_private = $this->oldcopy->note_private;
734 $this->db->rollback();
738 $this->error = $this->db->lasterror();
739 $this->db->rollback();
751 public function reopen($user, $notrigger = 0)
754 if ($this->
status != self::STATUS_CANCELED) {
765 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'RECRUITMENTJOBPOSITION_REOPEN');
778 public function getNomUrl($withpicto = 0, $option =
'', $notooltip = 0, $morecss =
'', $save_lastsearch_value = -1)
780 global $conf, $langs, $hookmanager;
782 if (!empty($conf->dol_no_mouse_hover)) {
788 $label =
img_picto(
'', $this->picto).
' <u class="paddingrightonly">'.$langs->trans(
"PositionToBeFilled").
'</u>';
789 if (isset($this->
status)) {
790 $label .=
' '.$this->getLibStatut(5);
793 $label .=
'<b>'.$langs->trans(
'Ref').
':</b> '.$this->ref;
794 $label .=
'<br><b>'.$langs->trans(
'Label').
':</b> '.$this->label;
796 $url =
dol_buildpath(
'/recruitment/recruitmentjobposition_card.php', 1).
'?id='.$this->id;
798 if ($option !=
'nolink') {
800 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
801 if ($save_lastsearch_value == -1 && isset($_SERVER[
"PHP_SELF"]) && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
802 $add_save_lastsearch_values = 1;
804 if ($add_save_lastsearch_values) {
805 $url .=
'&save_lastsearch_values=1';
810 if (empty($notooltip)) {
812 $label = $langs->trans(
"ShowRecruitmentJobPosition");
813 $linkclose .=
' alt="'.dol_escape_htmltag($label, 1).
'"';
815 $linkclose .=
' title="'.dol_escape_htmltag($label, 1).
'"';
816 $linkclose .=
' class="classfortooltip'.($morecss ?
' '.$morecss :
'').
'"';
818 $linkclose = ($morecss ?
' class="'.$morecss.
'"' :
'');
821 $linkstart =
'<a href="'.$url.
'"';
822 $linkstart .= $linkclose.
'>';
825 $result .= $linkstart;
827 if (empty($this->showphoto_on_popup)) {
829 $result .=
img_object(($notooltip ?
'' : $label), ($this->picto ? $this->picto :
'generic'), ($notooltip ? (($withpicto != 2) ?
'class="paddingright"' :
'') :
'class="'.(($withpicto != 2) ?
'paddingright ' :
'').
'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
833 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
835 list($class, $module) = explode(
'@', $this->picto);
838 $filename = $filearray[0][
'name'];
839 if (!empty($filename)) {
840 $pospoint = strpos($filearray[0][
'name'],
'.');
842 $pathtophoto = $class.
'/'.$this->
ref.
'/thumbs/'.substr($filename, 0, $pospoint).
'_mini'.substr($filename, $pospoint);
844 $result .=
'<div class="floatleft inline-block valignmiddle divphotoref"><div class="photoref"><img class="photo'.$module.
'" alt="No photo" border="0" src="'.DOL_URL_ROOT.
'/viewimage.php?modulepart='.$module.
'&entity='.$conf->entity.
'&file='.urlencode($pathtophoto).
'"></div></div>';
846 $result .=
'<div class="floatleft inline-block valignmiddle divphotoref"><img class="photouserphoto userphoto" alt="No photo" border="0" src="'.DOL_URL_ROOT.
'/viewimage.php?modulepart='.$module.
'&entity='.$conf->entity.
'&file='.urlencode($pathtophoto).
'"></div>';
851 $result .=
img_object(($notooltip ?
'' : $label), ($this->picto ? $this->picto :
'generic'), ($notooltip ? (($withpicto != 2) ?
'class="paddingright"' :
'') :
'class="'.(($withpicto != 2) ?
'paddingright ' :
'').
'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
856 if ($withpicto != 2) {
857 $result .= $this->ref;
863 global $action, $hookmanager;
864 $hookmanager->initHooks(array(
'recruitmentjobpositiondao'));
865 $parameters = array(
'id' => $this->
id,
'getnomurl' => &$result);
866 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
868 $result = $hookmanager->resPrint;
870 $result .= $hookmanager->resPrint;
898 if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
911 $statusType =
'status'.$status;
912 if ($status == self::STATUS_VALIDATED) {
913 $statusType =
'status4';
915 if ($status == self::STATUS_RECRUITED) {
916 $statusType =
'status6';
918 if ($status == self::STATUS_CANCELED) {
919 $statusType =
'status9';
922 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
933 $sql =
'SELECT rowid, date_creation as datec, tms as datem,';
934 $sql .=
' fk_user_creat, fk_user_modif';
935 $sql .=
' FROM '.MAIN_DB_PREFIX.$this->table_element.
' as t';
936 $sql .=
' WHERE t.rowid = '.((int) $id);
937 $result = $this->db->query(
$sql);
939 if ($this->db->num_rows($result)) {
940 $obj = $this->db->fetch_object($result);
942 $this->
id = $obj->rowid;
944 $this->user_creation_id = $obj->fk_user_creat;
945 $this->user_modification_id = $obj->fk_user_modif;
946 $this->date_creation = $this->db->jdate($obj->datec);
947 $this->date_modification = empty($obj->datem) ?
'' : $this->db->jdate($obj->datem);
950 $this->db->free($result);
974 $this->lines = array();
986 global $langs, $conf;
987 $langs->load(
"recruitment");
990 $conf->global->RECRUITMENT_RECRUITMENTJOBPOSITION_ADDON =
'mod_recruitmentjobposition_standard';
1000 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
1001 foreach ($dirmodels as $reldir) {
1005 $mybool = ((bool) @include_once $dir.$file) || $mybool;
1008 if ($mybool ===
false) {
1013 if (class_exists($classname)) {
1014 $obj =
new $classname();
1015 $numref = $obj->getNextValue($this);
1017 if ($numref !=
'' && $numref !=
'-1') {
1020 $this->error = $obj->error;
1025 print $langs->trans(
"Error").
" ".$langs->trans(
"ClassNotFound").
' '.$classname;
1029 print $langs->trans(
"ErrorNumberingModuleNotSetup", $this->element);
1045 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams =
null)
1047 global $conf, $langs;
1050 $includedocgeneration = 1;
1052 $langs->load(
"recruitment");
1062 $modelpath =
"core/modules/recruitment/doc/";
1064 if ($includedocgeneration && !empty($modele)) {
1065 $result = $this->
commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
1096 $this->db->commit();
1113 $selected = (empty($arraydata[
'selected']) ? 0 : $arraydata[
'selected']);
1115 $return =
'<div class="box-flex-item box-flex-grow-zero">';
1116 $return .=
'<div class="info-box info-box-sm">';
1117 $return .=
'<span class="info-box-icon bg-infobox-action">';
1119 $return .=
'</span>';
1120 $return .=
'<div class="info-box-content">';
1121 $return .=
'<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this,
'getNomUrl') ? $this->
getNomUrl(1) : $this->ref).($this->qty > 1 ?
' <span title="'.$langs->trans(
"NbOfEmployeesExpected").
'">('.$this->qty.
')</span>' :
'').
'</span>';
1122 if ($selected >= 0) {
1123 $return .=
'<input id="cb'.$this->id.
'" class="flat checkforselect fright" type="checkbox" name="toselect[]" value="'.$this->
id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1129 if (property_exists($this,
'remuneration_suggested')) {
1130 $return .=
'<br><span class="opacitymedium">'.$langs->trans(
"Remuneration").
'</span> : <span class="info-box-label">'.$this->remuneration_suggested.
'</span>';
1132 if (method_exists($this,
'getLibStatut')) {
1133 $return .=
'<br><div class="info-box-status">'.$this->getLibStatut(3).
' <span class="opacitymedium" title="'.$langs->trans(
"RecruitmentCandidatures").
'">'.$langs->trans(
"RecruitmentCandidatures",
'',
'',
'',
'', 5).
'</span> : <span>';
1134 $return .= $arraydata[
'nbapplications'];
1135 $return .=
'</span></div>';
1137 $return .=
'</div>';
1138 $return .=
'</div>';
1139 $return .=
'</div>';
if($user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
print $langs trans("AuditedSecurityEvents").'</strong >< span class="opacitymedium"></span >< br > status
Or an array listing all the potential status of the object: array: int of the status => translated la...
Parent class of all other business classes (invoices, contracts, proposals, orders,...
deleteLineCommon(User $user, $idline, $notrigger=0)
Delete a line of object in database.
commonGenerateDocument($modelspath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams=null)
Common function for all objects extending CommonObject for generating documents.
createCommon(User $user, $notrigger=0)
Create object in the database.
getFieldList($alias='', $excludefields=array())
Function to concat keys of fields.
updateCommon(User $user, $notrigger=0)
Update object into database.
setStatusCommon($user, $status, $notrigger=0, $triggercode='')
Set to a status.
initAsSpecimenCommon()
Initialise object with example values Id must be 0 if object instance is a specimen.
copy_linked_contact($objFrom, $source='internal')
Copy contact from one element to current.
fetchLinesCommon($morewhere='', $noextrafields=0)
Load object in memory from the database.
fetchCommon($id, $ref=null, $morewhere='', $noextrafields=0)
Load object in memory from the database.
deleteCommon(User $user, $notrigger=0, $forcechilddeletion=0)
Delete object in database.
call_trigger($triggerName, $user)
Call trigger based on this instance.
Class to manage Dolibarr database access.
Class for RecruitmentJobPosition.
validate($user, $notrigger=0)
Validate object.
deleteLine(User $user, $idline, $notrigger=0)
Delete a line of object in database.
const STATUS_VALIDATED
Validated.
generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
Create a document onto disk according to template module.
info($id)
Load the info information in the object.
__construct(DoliDB $db)
Constructor.
cloture($user, $status, $note="", $notrigger=0)
Close the recruitment.
getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1)
Return a link to the object card (with optionally the picto)
doScheduledJob()
Action executed by scheduler CAN BE A CRON TASK.
setDraft($user, $notrigger=0)
Set draft status.
getLibStatut($mode=0)
Return label of the status.
create(User $user, $notrigger=0)
Create object into database.
const STATUS_RECRUITED
Recruited.
const STATUS_CANCELED
Canceled.
LibStatut($status, $mode=0)
Return the status.
getLinesArray()
Create an array of lines.
reopen($user, $notrigger=0)
Set back to validated status.
getKanbanView($option='', $arraydata=null)
Return clicable link of object (with eventually picto)
fetchAll($sortorder='', $sortfield='', $limit=0, $offset=0, $filter='', $filtermode='AND')
Load list of objects in memory from the database.
const STATUS_DRAFT
Draft status.
update(User $user, $notrigger=0)
Update object into database.
fetch($id, $ref=null)
Load object in memory from the database.
cancel($user, $notrigger=0)
Set cancel status.
createFromClone(User $user, $fromid)
Clone an object into another one.
initAsSpecimen()
Initialise object with example values Id must be 0 if object instance is a specimen.
getNextNumRef()
Returns the reference to the following non used object depending on the active numbering module.
fetchLines()
Load object lines in memory from the database.
Class to manage translations.
Class to manage Dolibarr users.
if(isModEnabled('invoice') && $user->hasRight('facture', 'lire')) if((isModEnabled('fournisseur') &&!getDolGlobalString('MAIN_USE_NEW_SUPPLIERMOD') && $user->hasRight("fournisseur", "facture", "lire"))||(isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) if(isModEnabled('don') && $user->hasRight('don', 'lire')) if(isModEnabled('tax') && $user->hasRight('tax', 'charges', 'lire')) if(isModEnabled('invoice') &&isModEnabled('order') && $user->hasRight("commande", "lire") &&!getDolGlobalString('WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER')) $sql
Social contributions to pay.
dol_dir_list($utf8_path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0, $nbsecondsold=0)
Scan a directory and return a list of files/directories.
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
forgeSQLFromUniversalSearchCriteria($filter, &$errorstr='', $noand=0, $nopar=0, $noerror=0)
forgeSQLFromUniversalSearchCriteria
dol_now($mode='auto')
Return date for now.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_concatdesc($text1, $text2, $forxml=false, $invert=false)
Concat 2 descriptions with a new line between them (second operand after first one with appropriate n...
dolGetStatus($statusLabel='', $statusLabelShort='', $html='', $statusType='status0', $displayMode=0, $url='', $params=array())
Output the badge of a status.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.