27require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobject.class.php';
39 public $module =
'recruitment';
44 public $element =
'recruitmentcandidature';
49 public $table_element =
'recruitment_recruitmentcandidature';
54 public $picto =
'recruitmentcandidature';
59 public $email_fields_no_propagate_in_actioncomm;
62 const STATUS_DRAFT = 0;
63 const STATUS_VALIDATED = 1;
65 const STATUS_CONTRACT_PROPOSED = 3;
66 const STATUS_CONTRACT_SIGNED = 5;
67 const STATUS_CONTRACT_REFUSED = 6;
68 const STATUS_REFUSED = 8;
69 const STATUS_CANCELED = 9;
101 public $fields = array(
102 'rowid' => array(
'type' =>
'integer',
'label' =>
'TechnicalID',
'enabled' => 1,
'position' => 1,
'notnull' => 1,
'visible' => 0,
'noteditable' => 1,
'index' => 1,
'comment' =>
"Id"),
103 'entity' => array(
'type' =>
'integer',
'label' =>
'Entity',
'enabled' => 1,
'visible' => 0,
'position' => 5,
'notnull' => 1,
'default' =>
'1',
'index' => 1),
104 '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 candidature",
'csslist' =>
'nowraponall'),
105 'fk_recruitmentjobposition' => array(
'type' =>
'integer:RecruitmentJobPosition:recruitment/class/recruitmentjobposition.class.php:0:(t.status:=:1)',
'label' =>
'Job',
'enabled' => 1,
'position' => 15,
'notnull' => 0,
'visible' => 1,
'index' => 1,
'picto' =>
'recruitmentjobposition',
'css' =>
'minwidth300 maxwidth500 widthcentpercentminusx',
'csslist' =>
'minwidth100 nowraponall'),
106 'note_public' => array(
'type' =>
'html',
'label' =>
'NotePublic',
'enabled' => 1,
'position' => 61,
'notnull' => 0,
'visible' => 0,),
107 'note_private' => array(
'type' =>
'html',
'label' =>
'NotePrivate',
'enabled' => 1,
'position' => 62,
'notnull' => 0,
'visible' => 0,),
108 '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',
'csslist' =>
'tdoverflowmax100'),
109 'fk_user_modif' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'UserModif',
'enabled' => 1,
'position' => 511,
'notnull' => -1,
'visible' => -2,
'csslist' =>
'tdoverflowmax100'),
110 'lastname' => array(
'type' =>
'varchar(128)',
'label' =>
'Lastname',
'enabled' => 1,
'position' => 20,
'notnull' => 0,
'visible' => 1,
'csslist' =>
'tdoverflowmax150'),
111 'firstname' => array(
'type' =>
'varchar(128)',
'label' =>
'Firstname',
'enabled' => 1,
'position' => 21,
'notnull' => 0,
'visible' => 1,
'csslist' =>
'tdoverflowmax150'),
112 'email' => array(
'type' =>
'email',
'label' =>
'EMail',
'enabled' => 1,
'position' => 30,
'notnull' => 1,
'visible' => 1,
'picto' =>
'email',
'csslist' =>
'tdoverflowmax150'),
113 'phone' => array(
'type' =>
'phone',
'label' =>
'Phone',
'enabled' => 1,
'position' => 31,
'notnull' => 0,
'visible' => 1,
'picto' =>
'phone',
'csslist' =>
'tdoverflowmax150'),
114 'date_birth' => array(
'type' =>
'date',
'label' =>
'DateOfBirth',
'enabled' => 1,
'position' => 70,
'visible' => -1,),
115 'email_msgid' => array(
'type' =>
'varchar(255)',
'label' =>
'EmailMsgID',
'visible' => -2,
'enabled' => 1,
'position' => 540,
'notnull' => -1,
'help' =>
'EmailMsgIDDesc'),
116 'email_date' => array(
'type' =>
'datetime',
'label' =>
'EmailDate',
'visible' => -2,
'enabled' => 1,
'position' => 541),
118 'remuneration_requested' => array(
'type' =>
'integer',
'label' =>
'RequestedRemuneration',
'enabled' => 1,
'position' => 80,
'notnull' => 0,
'visible' => -1,),
119 'remuneration_proposed' => array(
'type' =>
'integer',
'label' =>
'ProposedRemuneration',
'enabled' => 1,
'position' => 81,
'notnull' => 0,
'visible' => -1,),
120 'description' => array(
'type' =>
'html',
'label' =>
'Description',
'enabled' => 1,
'position' => 300,
'notnull' => 0,
'visible' => 3,
'cssview' =>
'wordbreak'),
121 'date_creation' => array(
'type' =>
'datetime',
'label' =>
'DateCreation',
'enabled' => 1,
'position' => 500,
'notnull' => 1,
'visible' => -4,
'csslist' =>
'nowraponall'),
122 'tms' => array(
'type' =>
'timestamp',
'label' =>
'DateModification',
'enabled' => 1,
'position' => 501,
'notnull' => 0,
'visible' => -2,
'csslist' =>
'nowraponall'),
123 'fk_user' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'LinkedToDolibarrUser',
'enabled' => 1,
'position' => 600,
'notnull' => 0,
'visible' => -1,
'csslist' =>
'tdoverflowmax100'),
124 'import_key' => array(
'type' =>
'varchar(14)',
'label' =>
'ImportId',
'enabled' => 1,
'position' => 1000,
'notnull' => -1,
'visible' => -2,),
125 'model_pdf' => array(
'type' =>
'varchar(255)',
'label' =>
'Model pdf',
'enabled' => 1,
'position' => 1010,
'notnull' => -1,
'visible' => 0,),
126 'status' => array(
'type' =>
'smallint',
'label' =>
'Status',
'enabled' => 1,
'position' => 1000,
'notnull' => 1,
'visible' => 2,
'index' => 1,
'default' =>
'0',
'arrayofkeyval' => array(
'0' =>
'Draft',
'1' =>
'Received',
'3' =>
'ContractProposed',
'5' =>
'ContractSigned',
'8' =>
'Refused',
'9' =>
'Canceled')),
131 public $fk_recruitmentjobposition;
133 public $fk_user_creat;
134 public $fk_user_modif;
143 public $remuneration_requested;
144 public $remuneration_proposed;
145 public $fk_recruitment_origin;
159 global $conf, $langs;
163 $this->ismultientitymanaged = 1;
164 $this->isextrafieldmanaged = 1;
167 $this->fields[
'rowid'][
'visible'] = 0;
169 if (!isModEnabled(
'multicompany') && isset($this->fields[
'entity'])) {
170 $this->fields[
'entity'][
'enabled'] = 0;
180 foreach ($this->fields as $key => $val) {
181 if (isset($val[
'enabled']) && empty($val[
'enabled'])) {
182 unset($this->fields[$key]);
187 if (is_object($langs)) {
188 foreach ($this->fields as $key => $val) {
189 if (!empty($val[
'arrayofkeyval']) && is_array($val[
'arrayofkeyval'])) {
190 foreach ($val[
'arrayofkeyval'] as $key2 => $val2) {
191 $this->fields[$key][
'arrayofkeyval'][$key2] = $langs->trans($val2);
219 global $langs, $extrafields;
229 $result =
$object->fetchCommon($fromid);
230 if ($result > 0 && !empty(
$object->table_element_line)) {
244 if (property_exists(
$object,
'ref')) {
245 $object->ref = empty($this->fields[
'ref'][
'default']) ?
"Copy_Of_".$object->ref : $this->fields[
'ref'][
'default'];
247 if (property_exists(
$object,
'label')) {
248 $object->label = empty($this->fields[
'label'][
'default']) ? $langs->trans(
"CopyOf").
" ".
$object->label : $this->fields[
'label'][
'default'];
250 if (property_exists(
$object,
'status')) {
251 $object->status = self::STATUS_DRAFT;
253 if (property_exists(
$object,
'date_creation')) {
256 if (property_exists(
$object,
'date_modification')) {
257 $object->date_modification =
null;
262 if (is_array(
$object->array_options) && count(
$object->array_options) > 0) {
263 $extrafields->fetch_name_optionals_label($this->table_element);
264 foreach (
$object->array_options as $key => $option) {
265 $shortkey = preg_replace(
'/options_/',
'', $key);
266 if (!empty($extrafields->attributes[$this->table_element][
'unique'][$shortkey])) {
269 unset(
$object->array_options[$key]);
275 $object->context[
'createfromclone'] =
'createfromclone';
276 $result =
$object->createCommon($user);
280 $this->errors =
$object->errors;
292 if (property_exists($this,
'socid') && $this->socid ==
$object->socid) {
299 unset(
$object->context[
'createfromclone']);
306 $this->db->rollback();
319 public function fetch($id, $ref =
null, $email_msgid =
'')
323 $morewhere =
" AND email_msgid = '".$this->db->escape($email_msgid).
"'";
325 $result = $this->
fetchCommon($id, $ref, $morewhere);
326 if ($result > 0 && !empty($this->table_element_line)) {
339 $this->lines = array();
358 public function fetchAll($sortorder =
'', $sortfield =
'', $limit = 0, $offset = 0, $filter =
'', $filtermode =
'AND')
366 $sql .=
' FROM '.MAIN_DB_PREFIX.$this->table_element.
' as t';
367 if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) {
368 $sql .=
' WHERE t.entity IN ('.getEntity($this->element).
')';
370 $sql .=
' WHERE 1 = 1';
377 $this->errors[] = $errormessage;
378 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
382 if (!empty($sortfield)) {
383 $sql .= $this->db->order($sortfield, $sortorder);
385 if (!empty($limit)) {
386 $sql .= $this->db->plimit($limit, $offset);
389 $resql = $this->db->query($sql);
391 $num = $this->db->num_rows($resql);
393 while ($i < ($limit ? min($limit, $num) : $num)) {
394 $obj = $this->db->fetch_object($resql);
396 $record =
new self($this->db);
397 $record->setVarsFromFetchObj($obj);
399 $records[$record->id] = $record;
403 $this->db->free($resql);
407 $this->errors[] =
'Error '.$this->db->lasterror();
408 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
433 public function delete(
User $user, $notrigger = 0)
450 $this->error =
'ErrorDeleteLineNotAllowedByObjectStatus';
467 global $conf, $langs;
469 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
474 if ($this->
status == self::STATUS_VALIDATED) {
475 dol_syslog(get_class($this).
"::validate action abandoned: already validated", LOG_WARNING);
492 if (!$error && (preg_match(
'/^[\(]?PROV/i', $this->
ref) || empty($this->
ref))) {
497 $this->newref = $num;
501 $sql =
"UPDATE ".MAIN_DB_PREFIX.$this->table_element;
502 $sql .=
" SET ref = '".$this->db->escape($num).
"',";
503 $sql .=
" status = ".self::STATUS_VALIDATED;
504 if (!empty($this->fields[
'date_validation'])) {
505 $sql .=
", date_validation = '".$this->db->idate($now).
"',";
507 if (!empty($this->fields[
'fk_user_valid'])) {
508 $sql .=
", fk_user_valid = ".$user->id;
510 $sql .=
" WHERE rowid = ".((int) $this->
id);
512 dol_syslog(get_class($this).
"::validate()", LOG_DEBUG);
513 $resql = $this->db->query($sql);
516 $this->error = $this->db->lasterror();
520 if (!$error && !$notrigger) {
522 $result = $this->
call_trigger(
'RECRUITMENTCANDIDATURE_VALIDATE', $user);
531 $this->oldref = $this->ref;
534 if (preg_match(
'/^[\(]?PROV/i', $this->
ref)) {
536 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filename = CONCAT('".$this->db->escape($this->newref).
"', SUBSTR(filename, ".(strlen($this->
ref) + 1).
")), filepath = 'recruitmentcandidature/".$this->db->escape($this->newref).
"'";
537 $sql .=
" WHERE filename LIKE '".$this->db->escape($this->
ref).
"%' AND filepath = 'recruitmentcandidature/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
538 $resql = $this->db->query($sql);
541 $this->error = $this->db->lasterror();
543 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filepath = 'recruitmentcandidature/".$this->db->escape($this->newref).
"'";
544 $sql .=
" WHERE filepath = 'recruitmentcandidature/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
545 $resql = $this->db->query($sql);
548 $this->error = $this->db->lasterror();
554 $dirsource = $conf->recruitment->dir_output.
'/recruitmentcandidature/'.$oldref;
555 $dirdest = $conf->recruitment->dir_output.
'/recruitmentcandidature/'.$newref;
556 if (!$error && file_exists($dirsource)) {
557 dol_syslog(get_class($this).
"::validate() rename dir ".$dirsource.
" into ".$dirdest);
559 if (@rename($dirsource, $dirdest)) {
562 $listoffiles =
dol_dir_list($conf->recruitment->dir_output.
'/recruitmentcandidature/'.$newref,
'files', 1,
'^'.preg_quote($oldref,
'/'));
563 foreach ($listoffiles as $fileentry) {
564 $dirsource = $fileentry[
'name'];
565 $dirdest = preg_replace(
'/^'.preg_quote($oldref,
'/').
'/', $newref, $dirsource);
566 $dirsource = $fileentry[
'path'].
'/'.$dirsource;
567 $dirdest = $fileentry[
'path'].
'/'.$dirdest;
568 @rename($dirsource, $dirdest);
578 $this->
status = self::STATUS_VALIDATED;
585 $this->db->rollback();
601 if ($this->
status <= self::STATUS_DRAFT) {
612 return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger,
'RECRUITMENTCANDIDATURE_UNVALIDATE');
622 public function cancel($user, $notrigger = 0)
625 if ($this->
status != self::STATUS_VALIDATED) {
636 return $this->
setStatusCommon($user, self::STATUS_CANCELED, $notrigger,
'RECRUITMENTCANDIDATURE_CLOSE');
646 public function reopen($user, $notrigger = 0)
649 if ($this->
status != self::STATUS_REFUSED && $this->
status != self::STATUS_CANCELED && $this->
status != self::STATUS_CONTRACT_REFUSED) {
660 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'RECRUITMENTCANDIDATURE_REOPEN');
672 public function getFullName($langs, $option = 0, $nameorder = -1, $maxlen = 0)
674 $lastname = $this->lastname;
675 $firstname = $this->firstname;
676 if (empty($lastname)) {
677 $lastname = (isset($this->lastname) ? $this->lastname : (isset($this->
name) ? $this->
name : (isset($this->nom) ? $this->nom : (isset($this->societe) ? $this->societe : (isset($this->company) ? $this->company :
'')))));
697 public function getNomUrl($withpicto = 0, $option =
'', $notooltip = 0, $morecss =
'', $save_lastsearch_value = -1)
699 global $conf, $langs, $hookmanager;
701 if (!empty($conf->dol_no_mouse_hover)) {
707 $label =
img_picto(
'', $this->picto).
' <u class="paddingrightonly">'.$langs->trans(
"RecruitmentCandidature").
'</u>';
708 if (isset($this->
status)) {
709 $label .=
' '.$this->getLibStatut(5);
712 $label .=
'<b>'.$langs->trans(
'Ref').
':</b> '.$this->ref;
713 $label .=
'<br><b>'.$langs->trans(
'Email').
':</b> '.$this->email;
714 $label .=
'<br><b>'.$langs->trans(
'Name').
':</b> '.$this->
getFullName($langs);
716 $url =
dol_buildpath(
'/recruitment/recruitmentcandidature_card.php', 1).
'?id='.$this->id;
718 if ($option !=
'nolink') {
720 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
721 if ($save_lastsearch_value == -1 && isset($_SERVER[
"PHP_SELF"]) && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
722 $add_save_lastsearch_values = 1;
724 if ($add_save_lastsearch_values) {
725 $url .=
'&save_lastsearch_values=1';
730 if (empty($notooltip)) {
732 $label = $langs->trans(
"ShowRecruitmentCandidature");
733 $linkclose .=
' alt="'.dol_escape_htmltag($label, 1).
'"';
735 $linkclose .=
' title="'.dol_escape_htmltag($label, 1).
'"';
736 $linkclose .=
' class="classfortooltip'.($morecss ?
' '.$morecss :
'').
'"';
738 $linkclose = ($morecss ?
' class="'.$morecss.
'"' :
'');
741 $linkstart =
'<a href="'.$url.
'"';
742 $linkstart .= $linkclose.
'>';
745 $result .= $linkstart;
747 if (empty($this->showphoto_on_popup)) {
749 $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);
753 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
755 list($class, $module) = explode(
'@', $this->picto);
758 $filename = $filearray[0][
'name'];
759 if (!empty($filename)) {
760 $pospoint = strpos($filearray[0][
'name'],
'.');
762 $pathtophoto = $class.
'/'.$this->
ref.
'/thumbs/'.substr($filename, 0, $pospoint).
'_mini'.substr($filename, $pospoint);
764 $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>';
766 $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>';
771 $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);
776 if ($withpicto != 2) {
777 $result .= $this->ref;
783 global $action, $hookmanager;
784 $hookmanager->initHooks(array(
'recruitmentcandidaturedao'));
785 $parameters = array(
'id' => $this->
id,
'getnomurl' => &$result);
786 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
788 $result = $hookmanager->resPrint;
790 $result .= $hookmanager->resPrint;
818 if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
821 $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
822 $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Received').
' ('.$langs->transnoentitiesnoconv(
"InterviewToDo").
')';
823 $this->labelStatus[self::STATUS_CONTRACT_PROPOSED] = $langs->transnoentitiesnoconv(
'ContractProposed');
824 $this->labelStatus[self::STATUS_CONTRACT_SIGNED] = $langs->transnoentitiesnoconv(
'ContractSigned');
825 $this->labelStatus[self::STATUS_CONTRACT_REFUSED] = $langs->transnoentitiesnoconv(
'ContractRefused');
826 $this->labelStatus[self::STATUS_REFUSED] = $langs->transnoentitiesnoconv(
'Refused');
827 $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Canceled');
828 $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
829 $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Received');
830 $this->labelStatusShort[self::STATUS_CONTRACT_PROPOSED] = $langs->transnoentitiesnoconv(
'ContractProposed');
831 $this->labelStatusShort[self::STATUS_CONTRACT_SIGNED] = $langs->transnoentitiesnoconv(
'ContractSigned');
832 $this->labelStatusShort[self::STATUS_CONTRACT_REFUSED] = $langs->transnoentitiesnoconv(
'ContractRefused');
833 $this->labelStatusShort[self::STATUS_REFUSED] = $langs->transnoentitiesnoconv(
'Refused');
834 $this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Canceled');
837 $statusType =
'status'.$status;
839 if ($status == self::STATUS_CANCELED) {
840 $statusType =
'status9';
842 if ($status == self::STATUS_CONTRACT_PROPOSED) {
843 $statusType =
'status4';
845 if ($status == self::STATUS_CONTRACT_SIGNED) {
846 $statusType =
'status6';
848 if ($status == self::STATUS_REFUSED) {
849 $statusType =
'status10';
852 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
863 $sql =
'SELECT rowid, date_creation as datec, tms as datem,';
864 $sql .=
' fk_user_creat, fk_user_modif';
865 $sql .=
' FROM '.MAIN_DB_PREFIX.$this->table_element.
' as t';
866 $sql .=
' WHERE t.rowid = '.((int) $id);
867 $result = $this->db->query($sql);
869 if ($this->db->num_rows($result)) {
870 $obj = $this->db->fetch_object($result);
872 $this->
id = $obj->rowid;
874 $this->user_creation_id = $obj->fk_user_creat;
875 $this->user_modification_id = $obj->fk_user_modif;
876 $this->date_creation = $this->db->jdate($obj->datec);
877 $this->date_modification = empty($obj->datem) ?
'' : $this->db->jdate($obj->datem);
880 $this->db->free($result);
904 $this->lines = array();
907 $result = $objectline->fetchAll(
'ASC',
'position', 0, 0,
'(fk_recruitmentcandidature:=:'.((
int) $this->
id).
')');
909 if (is_numeric($result)) {
910 $this->error = $objectline->error;
911 $this->errors = $objectline->errors;
914 $this->lines = $result;
926 global $langs, $conf;
927 $langs->load(
"recruitment@recruitment");
930 $conf->global->RECRUITMENT_RECRUITMENTCANDIDATURE_ADDON =
'mod_recruitmentcandidature_standard';
940 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
941 foreach ($dirmodels as $reldir) {
945 $mybool = ((bool) @include_once $dir.$file) || $mybool;
948 if ($mybool ===
false) {
953 if (class_exists($classname)) {
954 $obj =
new $classname();
955 $numref = $obj->getNextValue($this);
957 if ($numref !=
'' && $numref !=
'-1') {
960 $this->error = $obj->error;
965 print $langs->trans(
"Error").
" ".$langs->trans(
"ClassNotFound").
' '.$classname;
969 print $langs->trans(
"ErrorNumberingModuleNotSetup", $this->element);
985 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams =
null)
987 global $conf, $langs;
990 $includedocgeneration = 0;
992 $langs->load(
"recruitment@recruitment");
1002 $modelpath =
"core/modules/recruitment/doc/";
1004 if ($includedocgeneration && !empty($modele)) {
1005 $result = $this->
commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
1020 global $conf, $langs;
1036 $this->db->commit();
1052 $selected = (empty($arraydata[
'selected']) ? 0 : $arraydata[
'selected']);
1054 $return =
'<div class="box-flex-item box-flex-grow-zero">';
1055 $return .=
'<div class="info-box info-box-sm">';
1056 $return .=
'<span class="info-box-icon bg-infobox-action">';
1058 $return .=
'</span>';
1059 $return .=
'<div class="info-box-content">';
1060 $return .=
'<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this,
'getNomUrl') ? $this->
getNomUrl(1) : $this->ref).
'</span>';
1061 if ($selected >= 0) {
1062 $return .=
'<input id="cb'.$this->id.
'" class="flat checkforselect fright" type="checkbox" name="toselect[]" value="'.$this->
id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1064 if (property_exists($this,
'fk_recruitmentjobposition')) {
1068 $return .=
'<div class="info-box-label tdoverflowmax150">';
1070 $tmpjob->fetch($this->fk_recruitmentjobposition);
1073 $return .=
'</div>';
1075 if (property_exists($this,
'phone') && $this->phone) {
1076 $return .=
'<div class="info-box-label small">'.dol_print_phone($this->phone, $mysoc->country_code, 0, 0,
'AC_TEL',
' ',
'phone').
'</div>';
1078 if (property_exists($this,
'email') && $this->email) {
1079 $return .=
'<div class="info-box-label small">'.dol_print_email($this->email, 0, 0, 1, 64, 1, 1).
'</div>';
1081 if (method_exists($this,
'getLibStatut')) {
1082 $return .=
'<div class="info-box-status">'.$this->getLibStatut(3).
'</div>';
1084 $return .=
'</div>';
1085 $return .=
'</div>';
1086 $return .=
'</div>';
1092require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobjectline.class.php';
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.
Parent class for class inheritance lines of business objects This class is useless for the moment so ...
Class to manage Dolibarr database access.
Class for RecruitmentCandidature.
getLinesArray()
Create an array of lines.
createFromClone(User $user, $fromid)
Clone an object into another one.
cancel($user, $notrigger=0)
Set cancel status.
doScheduledJob()
Action executed by scheduler CAN BE A CRON TASK.
getKanbanView($option='', $arraydata=null)
Return clicable link of object (with eventually picto)
getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1)
Return a link to the object card (with optionally the picto)
getNextNumRef()
Returns the reference to the following non used object depending on the active numbering module.
reopen($user, $notrigger=0)
Set back to validated status.
initAsSpecimen()
Initialise object with example values Id must be 0 if object instance is a specimen.
__construct(DoliDB $db)
Constructor.
getLibStatut($mode=0)
Return label of the status.
fetch($id, $ref=null, $email_msgid='')
Load object in memory from the database.
fetchLines()
Load object lines in memory from the database.
generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
Create a document onto disk according to template module.
update(User $user, $notrigger=0)
Update object into database.
validate($user, $notrigger=0)
Validate object.
deleteLine(User $user, $idline, $notrigger=0)
Delete a line of object in database.
LibStatut($status, $mode=0)
Return the status.
fetchAll($sortorder='', $sortfield='', $limit=0, $offset=0, $filter='', $filtermode='AND')
Load list of objects in memory from the database.
getFullName($langs, $option=0, $nameorder=-1, $maxlen=0)
Return full name ('name+' '+lastname)
setDraft($user, $notrigger=0)
Set draft status.
create(User $user, $notrigger=0)
Create object into database.
info($id)
Load the info information in the object.
Class RecruitmentCandidatureLine.
__construct(DoliDB $db)
Constructor.
Class for RecruitmentJobPosition.
Class to manage Dolibarr users.
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)
dolPrintHTML($s, $allowiframe=0)
Return a string (that can be on several lines) ready to be output on a HTML page.
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.
dolGetFirstLastname($firstname, $lastname, $nameorder=-1)
Return firstname and lastname in correct order.
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...
dol_trunc($string, $size=40, $trunc='right', $stringencoding='UTF-8', $nodot=0, $display=0)
Truncate a string to a particular length adding '…' if string larger than length.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
$conf db name
Only used if Module[ID]Name translation string is not found.